New site using hugo for 2020
BIN
.DS_Store
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "themes/github-style"]
|
||||
path = themes/github-style
|
||||
url = git@github.com:sharpshark28/github-style.git
|
6
archetypes/default.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
19
config.toml
Normal file
|
@ -0,0 +1,19 @@
|
|||
baseURL = "https://www.wroten.me/"
|
||||
title = "Ava Wroten"
|
||||
theme = "github-style"
|
||||
|
||||
[params]
|
||||
author = "Ava Gaiety Wroten"
|
||||
pronouns = "She/Her"
|
||||
description = "Canine pretending to be a web engineer"
|
||||
github = "sharpshark28"
|
||||
gitlab = "gaiety"
|
||||
email = "ava@wroten.me"
|
||||
avatar = "/avatar.png"
|
||||
resume = "/resume.pdf"
|
||||
blogurl = "https://gaiety.life/"
|
||||
blogtext = "Life (Blog)"
|
||||
arturl = "https://gaiety.gallery/"
|
||||
arttext = "Art (Gallery)"
|
||||
rss = false
|
||||
githubfollow = false
|
14
content/about.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: "About"
|
||||
date: 2019-12-08T09:37:42-06:00
|
||||
layout: "about"
|
||||
---
|
||||
|
||||
Web Engineer by day who pretends to be a dog. Dog by night who pretends to be a programmer.
|
||||
|
||||
With a background in design and far too many years coding web apps I strive to build things that make a positive impact in people's lives.
|
||||
|
||||
I'm proudly working at [Allovue](https://allovue.com/about/team) as a Software Engineer.
|
||||
|
||||
[View my Resume](/resume.pdf)
|
||||
|
112
content/repos/blabber-comic.md
Normal file
|
@ -0,0 +1,112 @@
|
|||
---
|
||||
title: "blabber-comic"
|
||||
date: 2018-12-30
|
||||
summary: Converts chat logs to comics.
|
||||
---
|
||||
|
||||
[Fork on Gitlab](https://gitlab.com/gaiety/blabber-comic)
|
||||
|
||||
# Blabber-Comic
|
||||
|
||||
[](https://badge.fury.io/js/blabber-comic)
|
||||
|
||||
## Sample
|
||||
|
||||

|
||||
|
||||
## How it works
|
||||
|
||||
Powered by Node and a node-canvas a comic can automatically be generated from a json array of users/text and some characters/backgrounds to be chosen at random.
|
||||
|
||||
## How to use it from the CLI
|
||||
|
||||
### Installing
|
||||
|
||||
Note: Your system may need some [compiled dependencies for canvas to work](https://github.com/Automattic/node-canvas#compiling).
|
||||
|
||||
`npm install -g blabber-comic`
|
||||
|
||||
### Using
|
||||
|
||||
```
|
||||
$ blabber
|
||||
$ Who?: Glen
|
||||
$ Said What?: Test 1
|
||||
$ Another? (y/n) y
|
||||
$ Who?: Sarah
|
||||
$ Said What?: Test 2
|
||||
$ Another? (y/n) y
|
||||
$ Who?: Glen
|
||||
$ Said What?: Test 3
|
||||
$ Another? (y/n) n
|
||||
$ Generating Comic...
|
||||
$ [ Comic Generated @ comics/1.png ]
|
||||
```
|
||||
|
||||
### Additional Options
|
||||
|
||||
```
|
||||
$ blabber --path ~/Pictures
|
||||
```
|
||||
|
||||
|
||||
## How to use it in other projects
|
||||
|
||||
### Generate base64Data
|
||||
|
||||
```javascript
|
||||
const blabbercomic = require('blabber-comic');
|
||||
let messages = [] // Array of messages...
|
||||
|
||||
blabbercomic(messages).then(response => {
|
||||
console.log('Generated comic as base64 data', response);
|
||||
}).catch(error => {
|
||||
throw error;
|
||||
});
|
||||
```
|
||||
|
||||
### Save as file with `fs`
|
||||
|
||||
Example included in project. Clone then run `npm run test`.
|
||||
|
||||
```javascript
|
||||
const blabbercomic = require('blabber-comic');
|
||||
const fs = require('fs');
|
||||
let messages = [] // Array of messages...
|
||||
|
||||
blabbercomic(messages).then(response => {
|
||||
let base64Data = response.replace(/^data:image\/png;base64,/, '');
|
||||
|
||||
fs.writeFile('./storage/comics/comic.png', base64Data, 'base64', error => {
|
||||
if (error) console.error('Uhoh...', error);
|
||||
else console.log('Saved file as `comic.png`');
|
||||
});
|
||||
}).catch(error => {
|
||||
throw error;
|
||||
});
|
||||
```
|
||||
|
||||
### Customizing characters and backgrounds
|
||||
|
||||
```javascript
|
||||
const blabbercomic = require('blabber-comic');
|
||||
let backgrounds = ['./assets/backgrounds/1.png', './assets/backgrounds/2.png'];
|
||||
let characters = ['./assets/characters/1.png', './assets/characters/2.png', './assets/characters/3.png']; // Provide at least 3
|
||||
let comicSize = 500; // in px square
|
||||
let borderColor ='#CCCCCC';
|
||||
let font = 'Impact';
|
||||
let textColor: '#000000';
|
||||
|
||||
let messages = [] // Array of messages...
|
||||
let config = { backgrounds, characters, comicSize, borderColor, font, textColor };
|
||||
|
||||
blabbercomic(messages, config);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Special thanks to:
|
||||
|
||||
* [node-canvas](https://github.com/Automattic/node-canvas) by Cairo
|
||||
* avatars by Iulia Ardeleanu from the Noun Project
|
||||
* backgrounds by Olga Libby from Subtle Patterns
|
119
content/repos/ember-select-light.md
Normal file
|
@ -0,0 +1,119 @@
|
|||
---
|
||||
title: "ember-select-light"
|
||||
date: 2019-09-01
|
||||
summary: Ember Select Light is an Ember Addon written data-down, actions up (DDAU) written with in test-driven development practices.
|
||||
pinned: true
|
||||
---
|
||||
|
||||
[Fork from Github](https://github.com/q2ebanking/ember-select-light)
|
||||
|
||||
# Ember-Select-Light
|
||||
|
||||
 [](https://badge.fury.io/js/ember-select-light) [](https://emberobserver.com/addons/ember-select-light)
|
||||
|
||||
Ember Select Light is an Ember Addon written [data-down, actions up (DDAU)](https://dockyard.com/blog/2016/11/18/checkbox-list-ember) written with in [test-driven development](https://www.agilealliance.org/glossary/tdd/) practices.
|
||||
|
||||
The intent is to provide a barebones `<select>` element that pairs well with modern Ember practices without styling assumptions. The result is a very functional, yet customizable, option for developers seeking a simple solution to select elements in their forms and apps.
|
||||
|
||||
## Install
|
||||
|
||||
```bash
|
||||
ember install ember-select-light
|
||||
```
|
||||
|
||||
## Running
|
||||
|
||||
* `ember serve`
|
||||
* Visit your app at [http://localhost:4200](http://localhost:4200).
|
||||
|
||||
### Linting
|
||||
|
||||
* `npm run lint:hbs`
|
||||
* `npm run lint:js`
|
||||
* `npm run lint:js -- --fix`
|
||||
|
||||
## Contributing
|
||||
|
||||
We love pull requests from everyone. By participating in this project, you agree to abide by the [code of conduct](./code-of-conduct.md) and is subject to the [project license](./LICENSE.md).
|
||||
|
||||
Clone this repo, make your changes with test coverage, push up a fork and [submit a pull request](https://github.com/sharpshark28/ember-select-light/compare).
|
||||
|
||||
Soon after some primary contributors will review your code and submit feedback and hopefully click the fancy green approve button. Any test and linting failures should be caught during the pull request continuous integration environment and human eyes here after.
|
||||
|
||||
## Running Tests
|
||||
|
||||
* `npm run test` (Runs `ember try:each` to test your addon against multiple Ember versions)
|
||||
* or `ember test`
|
||||
|
||||
## Example Usage
|
||||
|
||||
```javascript
|
||||
this.setProperties({
|
||||
myValue: 'turtle',
|
||||
myOptions: ['turtle', 'tortoise'],
|
||||
myAction: (event) => {
|
||||
console.log(event.target.value);
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
```handlebars
|
||||
{{select-light value=myValue options=myOptions change=(action myAction)}}
|
||||
```
|
||||
|
||||
### `value`
|
||||
|
||||
String that matches the selected `<option value="...`.
|
||||
|
||||
### `options`
|
||||
|
||||
#### As a Flat Array
|
||||
|
||||
```javascript
|
||||
['clam', 'starfish']
|
||||
```
|
||||
|
||||
#### As an Array of Key/Value Objects
|
||||
|
||||
```javascript
|
||||
[
|
||||
{ value: 'shortfin', label: 'Shortfin Shark' },
|
||||
{ value: 'mako', label: 'Mako Shark' },
|
||||
]
|
||||
```
|
||||
`value` and `label` will be the default keys used unless `valueKey="...` and/or `displayKey="...` are used respectively.
|
||||
|
||||
#### As a Yield
|
||||
|
||||
```handlebars
|
||||
{{#select-light}}
|
||||
<option value="clown">Clown Fish</option>
|
||||
<option value="cat">Cat Fish</option>
|
||||
{{/select-light}}
|
||||
```
|
||||
|
||||
### Handling Events
|
||||
|
||||
Any javascript event can be handled directly on the component such as `change` or `focusIn`. The `event` javascript object is passed along to be used however you desire.
|
||||
|
||||
Common usages are...
|
||||
|
||||
```javascript
|
||||
myAction(event) {
|
||||
console.log(event.target.value); // Do something useful with the changed value
|
||||
},
|
||||
```
|
||||
|
||||
or to modify a property without a custom action...
|
||||
|
||||
```handlebars
|
||||
{{select-light change=(action (mut myValue) value="target.value")}}
|
||||
```
|
||||
|
||||
### Other parameters
|
||||
|
||||
`disabled`, `tabindex`, and `class` work as you'd expect.
|
||||
|
||||
```handlebars
|
||||
{{select-light disabled=true tabindex="0" class="my-dropdown"}}
|
||||
```
|
94
content/repos/json-query-chain.md
Normal file
|
@ -0,0 +1,94 @@
|
|||
---
|
||||
title: "json-query-chain"
|
||||
date: 2018-02-23
|
||||
summary: Chain queries onto POJOs to return precise results.
|
||||
---
|
||||
|
||||
[Fork on Gitlab](https://gitlab.com/gaiety/json-query-chain)
|
||||
|
||||
# json-query-chain
|
||||
|
||||
[](https://travis-ci.org/sharpshark28/json-query-chain) [](https://badge.fury.io/js/json-query-chain)  [](https://codeclimate.com/github/sharpshark28/json-query-chain/maintainability)
|
||||
|
||||
Chain queries onto POJOs to return precise results.
|
||||
|
||||
## Usage
|
||||
|
||||
```javascript
|
||||
import Query from 'json-query-chain';
|
||||
|
||||
let myQ = new Query(someJsonData)
|
||||
.search('isActiveUser', true)
|
||||
.results;
|
||||
```
|
||||
|
||||
### Chainable Methods
|
||||
|
||||
#### Search
|
||||
|
||||
Currently supports booleans and strings. (See [#1](https://github.com/sharpshark28/json-query-chain/issues/1) for Integer Support)
|
||||
|
||||
##### By Boolean
|
||||
|
||||
```javascript
|
||||
.search('isActiveUser', true)
|
||||
```
|
||||
|
||||
##### By String
|
||||
|
||||
```javascript
|
||||
.search('name', 'steele')
|
||||
```
|
||||
|
||||
#### Filter
|
||||
|
||||
Simpler version of search using a custom function in the chain.
|
||||
|
||||
```javascript
|
||||
.filter(a => a.age >= 21)
|
||||
```
|
||||
|
||||
##### By Key
|
||||
|
||||
```javascript
|
||||
.filterBy('age', x => x >= 21)
|
||||
```
|
||||
|
||||
#### Sort
|
||||
|
||||
##### By Boolean
|
||||
|
||||
```javascript
|
||||
.sort('isActiveUser', true)
|
||||
```
|
||||
|
||||
##### By String
|
||||
|
||||
```javascript
|
||||
.sort('name')
|
||||
```
|
||||
|
||||
##### By Number
|
||||
|
||||
```javascript
|
||||
.sort('netWorth')
|
||||
```
|
||||
|
||||
#### Pagination
|
||||
|
||||
Page 1 with 5 results per page.
|
||||
|
||||
```javascript
|
||||
.paginate(1, 5)
|
||||
```
|
||||
|
||||
Page 2 wtih default of 10 results per page.
|
||||
|
||||
```javascript
|
||||
.paginate(2)
|
||||
```
|
||||
|
||||
## Tests
|
||||
|
||||
`npm test` runs tests through Jest
|
||||
|
50
content/repos/my_spells.md
Normal file
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
title: "my_spells"
|
||||
date: 2019-01-27
|
||||
summary: Your personal D&D 5e Spellbook.
|
||||
---
|
||||
|
||||
[Fork on Gitlab](https://gitlab.com/gaiety/my_spells)
|
||||
|
||||
_Note_: Since the release of Wizards of the Coast's latest online tools, I've discontinued this mobile app. But, I learned a lot along the way in making this :)
|
||||
|
||||
# My Spells
|
||||
|
||||
My Spells is an open source web-based application to elegantly view spells and save them to your local spellbook.
|
||||
|
||||
[](https://play.google.com/store/apps/details?id=io.cordova.myspells)
|
||||
|
||||
## License
|
||||
|
||||
Open Game License v1.0a Copyright 2000, Wizards of the Coast, Inc.
|
||||
|
||||
App contains content from the SRD and is restricted and covered by the OGL. You can find the OGL 1.0a at [ogl.html](./ogl.html) in this app's repo, or [online here](http://www.opengamingfoundation.org/ogl.html). When using said data, please make sure to conform appropriately with the proper licenses and whatnot.
|
||||
|
||||
## Credit
|
||||
|
||||
* ephe's [grimoire](https://github.com/ephe/grimoire/) spell list converted json by vorpalhex and cleaned up to meet OGL license standards [labeled under srd_spells](https://github.com/vorpalhex/srd_spells)
|
||||
* Built on [Vue.js](https://vuejs.org/) and the [Quasar Framework](http://quasar-framework.org/)
|
||||
* Logo magic wand icon by David from the Noun Project
|
||||
|
||||
## Build Setup
|
||||
|
||||
``` bash
|
||||
# install dependencies
|
||||
$ npm install
|
||||
|
||||
# serve with hot reload at localhost:8080
|
||||
$ npm run dev_web
|
||||
|
||||
# build for production with minification
|
||||
$ npm run build_web # or build_app
|
||||
|
||||
# build cordova (android, iOS potentially in future) release
|
||||
$ npm run build_app_cordova
|
||||
# sign apk with android studio or jarsigner
|
||||
# install on device
|
||||
$ adp install cordova/platforms/android/build/apk/<BUILT-FILE.apk>
|
||||
|
||||
# lint code
|
||||
$ npm run lint
|
||||
```
|
||||
|
51
content/repos/svgdir2sprite.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
title: "svgdir2sprite"
|
||||
date: 2019-01-03
|
||||
summary: Creates a spritesheet from a directory of svgs.
|
||||
---
|
||||
|
||||
[Fork from Gitlab](https://gitlab.com/gaiety/svgdir2sprite)
|
||||
|
||||
# svgdir2sprite
|
||||
|
||||
[](https://www.npmjs.com/package/svgdir2sprite)
|
||||
|
||||
Creates a spritesheet from a directory of svgs. Can return the results directly or write to a spritesheet svg file. Node based and powered by [svg2sprite](https://github.com/mrmlnc/svg2sprite).
|
||||
|
||||
## As a Module
|
||||
|
||||
`npm install --save svgdir2sprite`
|
||||
|
||||
### Return SVG Spritesheet as String
|
||||
|
||||
``` javascript
|
||||
const svgdir2sprite = require('svgdir2sprite');
|
||||
|
||||
svgdir2sprite('./src/svgs') // Async Promise
|
||||
.then((svgContent) => console.log(svgContent));
|
||||
```
|
||||
|
||||
### Write SVG Spritesheet to File
|
||||
|
||||
``` javascript
|
||||
const svgdir2sprite = require('svgdir2sprite');
|
||||
|
||||
svgdir2sprite('./src/svgs', './build/spritesheet.svg');
|
||||
```
|
||||
|
||||
## From the CLI
|
||||
|
||||
`npm install -g svgdir2sprite`
|
||||
|
||||
### Return SVG Spritesheet to the Console
|
||||
|
||||
``` bash
|
||||
svgdir2sprite ./src/svgs
|
||||
```
|
||||
|
||||
### Write SVG Spritesheet to File
|
||||
|
||||
``` bash
|
||||
svgdir2sprite ./src/svgs ./build/spritesheet.svg
|
||||
```
|
||||
|
127
content/repos/team-cli.md
Normal file
|
@ -0,0 +1,127 @@
|
|||
---
|
||||
title: "team-cli"
|
||||
date: 2019-09-01
|
||||
summary: Automate all the things with a team-centric CLI. Abstract away annoying day-to-day tasks and eliminate tribal team knowledge by building your team their very own CLI.
|
||||
pinned: true
|
||||
---
|
||||
|
||||
[Fork on Github](https://github.com/q2ebanking/team-cli)
|
||||
|
||||
# team-cli
|
||||
|
||||
[](https://badge.fury.io/js/team-cli)
|
||||
|
||||
Automate all the things with a team-centric CLI. Abstract away annoying day-to-day tasks and eliminate tribal team knowledge by building your team their very own CLI.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Initialize Project
|
||||
|
||||
```bash
|
||||
mkdir teamname-cli
|
||||
cd teamname-cli
|
||||
git init
|
||||
npm init
|
||||
npm install --save team-cli
|
||||
```
|
||||
|
||||
### Create Bin index.js
|
||||
|
||||
Then in an `index.js` you could write the following:
|
||||
|
||||
```javascript
|
||||
#!/usr/bin/env node
|
||||
|
||||
const { resolve } = require('path');
|
||||
const cli = require('team-cli');
|
||||
|
||||
const commandsDir = resolve(__dirname, 'commands');
|
||||
cli(commandsDir);
|
||||
```
|
||||
|
||||
### Point to Bin index.js in Package
|
||||
|
||||
Then customize your `package.json` to include a path to the bin:
|
||||
|
||||
```json
|
||||
"bin": {
|
||||
"NAME_OF_TOOL": "./index.js"
|
||||
}
|
||||
```
|
||||
|
||||
### Create Commands
|
||||
|
||||
Then you may make a `commands` directory with files like `command-foo.js`:
|
||||
|
||||
```javascript
|
||||
const run = require('team-cli/terminal');
|
||||
const { resolve } = require('path');
|
||||
|
||||
const script = resolve(__dirname, 'foo.sh'); // also supports bash .ps1 scripts
|
||||
|
||||
const action = async param => {
|
||||
await run(script, param)
|
||||
// Or, run any Node code you wish
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
title: 'foo <param>',
|
||||
description: 'Calls foo',
|
||||
action,
|
||||
}
|
||||
```
|
||||
|
||||
### Try it out!
|
||||
|
||||
```bash
|
||||
node ./index.js --help
|
||||
```
|
||||
|
||||
## Options
|
||||
|
||||
Any command can export the following options:
|
||||
|
||||
```javascript
|
||||
{
|
||||
title: 'foo', // or 'foo <required_param>' or 'foo [optional_param]'
|
||||
action: (param) => {} // function with param as a string or undefined
|
||||
description: 'Calls foo', // optional
|
||||
alias: 'f', // optional
|
||||
option: ['-f, --force', 'Forces something to happen'], // optional, this will become available globally not just per-command
|
||||
}
|
||||
```
|
||||
|
||||
## For Your Users
|
||||
|
||||
At any time a `--help` or `-h` may be passed to log commands to the console.
|
||||
|
||||
### Prompts
|
||||
|
||||
Optionally, you may find it useful to walk users through a guided CLI experience with prompts to your users. I suggest [prompts](https://www.npmjs.com/package/prompts) for this task, but any tool of your choice will work within an action.
|
||||
|
||||
#### Example usage with prompts:
|
||||
|
||||
```javascript
|
||||
const action = async (cmd) => {
|
||||
if (!cmd) {
|
||||
let { value: cmdResponse } = await prompts({
|
||||
type: 'text',
|
||||
name: 'value',
|
||||
message: 'Which git command would you like to run?',
|
||||
});
|
||||
cmd = cmdResponse
|
||||
}
|
||||
await run(`git ${cmd}`, '~/aCoolRepo');
|
||||
};
|
||||
```
|
||||
|
||||
### Logging
|
||||
|
||||
The environment's log level can be changed with `process.env.LOG_LEVEL` to any of [winston's](https://github.com/winstonjs/winston) supported log levels including `verbose`.
|
||||
|
||||
To customize where logs are saved, pass a second param in your `index.js`'s `cli` call like so:
|
||||
|
||||
```javascript
|
||||
cli(commandsDir, logsDir)
|
||||
```
|
||||
|
19
content/volunteering/code2college.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
title: "Code 2 College"
|
||||
date: 2019-01-01
|
||||
summary: Interview preparation, event hosting and curriculum planning.
|
||||
pinned: true
|
||||
---
|
||||
|
||||
## Preparing the Next Generation for Success
|
||||
|
||||
There's more than one way to volunteer in today's world. Offering one's skills as a web designer and developer is a great way to give back while tackling unique challenges.
|
||||
|
||||

|
||||
|
||||
Homegrown tech talent is what Code2College is all about. Eager students from underrepresented groups are ready to learn STEM field topics and Code2College reaches out to those in the industry to help them get there.
|
||||
|
||||
Meeting with these excited young minds for interview preparation really changed the way I connect with potential hires.
|
||||
|
||||
Recently they've opened their curriculum planning to outside collaboration. It's been an exciting challenge to carefully consider the best ways to teach the fundamentals of web development from "What is HTML?" to "I can build my own web app!".
|
||||
|
13
content/volunteering/gabriellas-smile-foundation.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
title: "Gabriella’s Smile Foundation"
|
||||
date: 2019-06-01
|
||||
---
|
||||
|
||||
# Gabriella’s Smile Foundation
|
||||
## Stronger than DIPG
|
||||
|
||||
_A Pro-bono web project done during 2019's Austin Give Camp_
|
||||
|
||||
A facelift project for an organization fighting DIPG. We rewrote the site using Squarespace so it was easy to maintain after the event was over and was mobile-ready by default.
|
||||
|
||||

|
25
content/volunteering/theseed.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
title: "Austin Give Camp - The SEED"
|
||||
date: 2016-10-01
|
||||
summary: Adult & Family Learning Community
|
||||
---
|
||||
|
||||
# The SEED
|
||||
## Adult & Family Learning Community
|
||||
|
||||
_A Pro-bono web project done during 2016's Austin Give Camp_
|
||||
|
||||
Through analytics it was apparent very few could find out how to sign up for classes on learning English - an all English website and the page being burried through subnavs was the likely culprit. We user tested some updated designs where a non-native speaker could jump right to a Spanish page on how to sign up for classes first.
|
||||
|
||||

|
||||
|
||||
We then improved **internationalization** for the rest of the website to support all the user personas we had discovered: The Student, The Donor, and The Volunteer. Next up was improving ways people can get involved either through their time or their dollar through a better workflow and cleaned up content.
|
||||
|
||||

|
||||
|
||||
Small tweaks made a world of difference for these users. Even ensuring the site ran on **HTTPS significantly raised the confidence of a potential donor**. I just about cried tears of happiness when the thank you letters came in from the group for impact we made on their group and org.
|
||||
|
||||

|
||||
|
||||
_P.S. My name was Joe back when these were written, prior to my transition._
|
||||
|
15
content/work-history/allovue.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
title: "Software Engineer at Allovue"
|
||||
date: 2019-12-08
|
||||
summary: _(Aug 2019 - Present)_ Building budgeting software in EmberJS to give educators the tools and support they need to allocate resources to the needs of students for a more equitable world.
|
||||
pinned: true
|
||||
---
|
||||
|
||||
_(Aug 2019 - Present)_
|
||||
|
||||
# Software Engineer at Allovue
|
||||
|
||||
Empowering educators to strategically and equitably allocate resources to best support the needs of students. We're building budgeting software to give school districts the tools they need to give educators the tools they need.
|
||||
|
||||
Along with a talented team we're developing an ambitious EmberJS app using the latest web standards. I'm so proud to be here!
|
||||
|
14
content/work-history/antharia.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: "Web Design & Dev Intern at Antharia"
|
||||
date: 2010-08-01
|
||||
summary: _(Jan 2010 - Aug 2010)_ Working with a homegrown CMS, custom coded solutions in response to new situations fueled my learning every day. Never missed an opportunity to learn the backend administrative panels and mySQL databases of real sites.
|
||||
---
|
||||
|
||||
_(Jan 2010 - Aug 2010)_
|
||||
|
||||
# Web Design & Dev Intern at Antharia
|
||||
|
||||
Working with a homegrown CMS, custom coded solutions in response to new situations fueled my learning every day. Never missed an opportunity to learn the backend administrative panels and mySQL databases of real sites.
|
||||
|
||||
A well designed and functional web presence can make all the difference in boosting any nonprofit’s reputation and quality donations.
|
||||
|
12
content/work-history/cyto-communications.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: "Interactive Technologies Lead & Web Admin at Cyto Communications"
|
||||
date: 2012-12-01
|
||||
summary: _(May 2011 - Dec 2012)_ Developed, designed and animated projects for Host Hotels & Resorts, Johns Hopkins Health System, World Wildlife Fund and more.
|
||||
---
|
||||
|
||||
_(May 2011 - Dec 2012)_
|
||||
|
||||
# Interactive Technologies Lead & Web Admin
|
||||
|
||||
Developed, designed and animated projects for Host Hotels & Resorts, Johns Hopkins Health System, World Wildlife Fund and more.
|
||||
|
23
content/work-history/eyemaginations.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
title: "Senior Web Engineer at Eyemaginations"
|
||||
date: 2015-12-30
|
||||
summary: _(2013 - Dec 2015)_ Launched two Ember.js, HTML5 Video & Canvas powered enterprise scale apps now educating thousands of patients nationwide. Lead UX design initiatives,tech stack decisions and technical project management.
|
||||
---
|
||||
|
||||
_(2013 - Dec 2015)_
|
||||
|
||||
## Senior Web Engineer at Eyemaginations (now, Rendia)
|
||||
|
||||
Patient education can be difficult. Plastic eyeballs as a teaching tool is a thing of the past. Modern media and technology can help solve this problem.
|
||||
|
||||

|
||||
|
||||
Formerly known as Eyemaginations, the company [Rendia](https://rendia.com/) offers high quality animations to doctors to communicate complex medical topics to their patients and their families.
|
||||
|
||||

|
||||
|
||||
Launched two **Ember.js**, **HTML Video** & **Canvas** powered enterprise scale apps now educating thousands of patients nationwide. _Lead UX design_ initiatives, _tech stack decisions_ and technical _project management_.
|
||||
|
||||
Doctors can build playlists of content, upload their own images/videos, and then share their creations with patients via email and by embedding them directly on their practice website. Or they can play this content right in their practice while taking advantage of onscreen drawing features with a mouse or touch device. [The media player](https://share.rendia.com/theater/5276fa67-49cb-48f8-40da-45b94cd34364) offers content protection, and patients may choose between multiple languages, closed captions, fullscreen, and more.
|
||||
|
||||
[](https://share.rendia.com/theater/5276fa67-49cb-48f8-40da-45b94cd34364)
|
21
content/work-history/q2.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
title: "Developer III at Q2ebanking"
|
||||
date: 2019-08-01
|
||||
summary: _(Jan 2016 - Aug 2019)_ Enterprise Ember.js & Vue.js powered banking software used by tens of millions worldwide.
|
||||
---
|
||||
|
||||
_(Jan 2016 - Aug 2019)_
|
||||
|
||||
# Developer III at Q2ebanking
|
||||
## Stronger communities w/ better financial tools.
|
||||
|
||||
[Q2](https://www.q2ebanking.com/) provides a banking platform that interfaces personal and professional banking needs into a single tool. They then offer this as a customizable software as a service to banks and credit unions big or small. Community banks who would have otherwise had to outsource or hire a team to build a platform with potential security holes and poor usability are a thing of the past.
|
||||
|
||||

|
||||
|
||||
Built **Ember.js & Vue.js** powered banking software used by tens of millions worldwide. _Mentored_ new hires, reforged _automation_ testing standards, improved **A11y**.
|
||||
|
||||

|
||||
|
||||
Lead an innovative [HTML5 Web Components project](https://gaiety.life/on-web-components) to achieve ambitious cross-team goals. [Read more about that here...](https://gaiety.life/on-web-components)
|
||||
|
BIN
static/.DS_Store
vendored
Normal file
BIN
static/avatar.png
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
static/code2college.jpg
Normal file
After Width: | Height: | Size: 174 KiB |
BIN
static/patienteducation1.gif
Normal file
After Width: | Height: | Size: 1.6 MiB |
BIN
static/patienteducation2.jpg
Normal file
After Width: | Height: | Size: 505 KiB |
BIN
static/patienteducation3.png
Normal file
After Width: | Height: | Size: 896 KiB |
BIN
static/q21.jpg
Normal file
After Width: | Height: | Size: 194 KiB |
BIN
static/q22.jpg
Normal file
After Width: | Height: | Size: 332 KiB |
BIN
static/resume.pdf
Executable file
BIN
static/strongerthandipg1.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
static/theseed1.jpg
Normal file
After Width: | Height: | Size: 149 KiB |
BIN
static/theseed2.png
Normal file
After Width: | Height: | Size: 469 KiB |
BIN
static/theseed3.png
Normal file
After Width: | Height: | Size: 794 KiB |
1
themes/github-style
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit dccca8a9fa979f488cc22d771902b0768a7a66ac
|