--- title: "Resume" date: 2023-09-13T15:08:12-07:00 draft: false ---

# Resume

- Work Experience
- Education

### Work Experience

#### Software Engineer @ Meta

Mar 2023 - Present | Portland, OR (Remote)

Supernatural was acquired by Meta in March 2023 to bring our VR application in-house as a first-party Oculus studio.

- I helped spearhead the data migration effort (along with a few other senior engineers) to adapt Supernatural's database and API servers into Meta's infrastructure (rewriting back-end services from Python into Hack).
- Technologies: Python (Flask, SQLAlchemy); JavaScript (Vue.js); Hack (like PHP); Graph API; GraphQL; several proprietary internal tools for CI/CD, issue management, code review, etc.

#### Principal Software Engineer @ Supernatural

Oct 2018 - Mar 2023 | Los Angeles, CA

Within rebranded to Supernatural named after the Oculus VR app of the same title after finding a market fit with that application.

- I helped build out the back-end Python API server for Supernatural and its deployment pipeline on AWS Elastic Beanstalk (and later in EKS).
- I extended the Within CMS to support managing content & data for Supernatural before forking the CMS into a dedicated app for Supernatural.
- I built an internal Music Curation tool (named Wormhole) to help the content team identify and manage licensed music to use with the app. It provided a user interface to peruse the massive volume of music data delivered to us by our partner labels (sent in DDEX feed format). Behind the web app was a pipeline of Python worker scripts that ingested the DDEX feeds and handled licensing updates and metadata sync (with Spotify and Music Reports, Inc). Wormhole was backed by a Mongo DB which was the best fit for the loosely structured music data we were working with.
- Technologies: Python (Flask, SQLAlchemy); Go; JavaScript (Vue.js); GitHub; Docker; MongoDB; PostgreSQL; Redis; AWS

#### Senior Software Engineer @ Within (Virtual Reality)

Apr 2017 - Mar 2023 | Los Angeles, CA

I joined Within back when their primary product was a VR 360° video streaming platform (with multiple web & native apps), where videos were published via hand-edited JSON files (unique format per platform) and there were no dynamic web apps within the company. Within had ambitions to create a "Lobby" app for you & your friends to hang out in VR and join multiplayer "interactive experiences" together.

- I built out a Python microservice architecture that included an Authentication service (centralized user accounts for the Lobby app) and a Matchmaking service to coordinate multiplayer VR games. I also created a custom Push Notification service (written in Go) to target our desktop apps and website, which did not have a native push mechanism like Android or iOS do.
- I built a Content Management System (CMS) in Python to consolidate and automate the content publishing pipeline for the 360° VR streaming platform. I studied the various legacy JSON config formats (for the Android, iOS, PS VR, web player, and Unity stand-alone VR player apps) to determine the commonalities and data requirements to translate into a relational (PostgreSQL) database and CMS platform.
  - The video transcoding pipeline was based on `ffmpeg` via a third party API called Hybrik.
  - The CMS also managed Unity asset bundles and content publishing for our VR interactive experiences.
- Technologies: Python (Flask, SQLAlchemy); Go; JavaScript (Vue.js, Photon); GitHub; Docker; ffmpeg; PostgreSQL; Redis; AWS (Elastic Beanstalk, S3)

#### Software Developer @ (mt) Media Temple

Dec 2015 - Apr 2017 | Culver City, CA

- Built out Python microservices (Tornado framework) to translate between Media Temple and parent company GoDaddy's systems (for example, a Payments service that ran within a secure server on GoDaddy's infrastructure and was called out to from legacy Perl apps at Media Temple).
- Helped maintain and add new features to a legacy Perl codebase (including the Account Center web app).
- Technologies: Python (Tornado); Perl (Template::Toolkit, Moose); Puppet; RabbitMQ; cgit; Atlassian FishEye & Crucible.

#### Software Engineer @ ZEFR

May 2013 - Dec 2015 | Venice, CA

- Built out a Python/Flask web app called BrandID that provided search and notifications for brand managers regarding YouTube. The idea was that if a video was about to go viral about your brand, you should hear about it from us first. (We had code that would deeply crawl YouTube daily and make predictions based on view counts and trends detected).
- Also built out a free-to-use, consumer facing app called BrandID Pulse where users could input topics they're interested in and get daily digest e-mails of new and trending videos that match their interests.
- Helped build out an advertising platform that helped match advertisers to specific YouTube videos that we detected are about to go viral. (On Google's ad platform, you can either target general demographics or you can target specific Video IDs, but the latter feature is rarely used because it was tedious and unpredictable; ZEFR's product helped match advertisers to specific videos relevant to their brand that were detected to be going viral, e.g. the same data that powered BrandID).
- Upgraded several codebases from Python 2 to 3;
- Technologies: Python (Flash, Celery); JavaScript (jQuery, Knockout.js, Angular, MEAN stack); GitHub; MongoDB; PostgreSQL; Redis; Amazon Web Services (EC2, S3, SQS, SES, Elastic Beanstalk, RDS); HTML/CSS (Bootstrap); Docker; Jenkins

#### Senior Hosting Developer @ DreamHost

Feb 2012 - Apr 2013 | Los Angeles, CA

- I helped maintain and add features to web apps written in Perl (using a custom ORM and templating system for server-side rendered pages) and HTML/JavaScript (jQuery).
- Projects included work on the customer Control Panel, report automations for financial & marketing, and integration for customer sites and Cloudflare.
- Technologies: Perl; JavaScript; Chef; RabbitMQ; cgit.

#### Software Engineer @ Fonality

Jun 2008 - Feb 2012 | Culver City, CA

- Maintained and contributed features for a customer control panel (written in Perl) for Asterisk PBX servers (running a custom CentOS-based operating system branded as PBXtra and Trixbox).
- One project had me port our PBXtra OS to newer Dell server blades after our OEM discontinued the model we were selling. PBXtra was based on the (already outdated) CentOS 4 which lacked hardware drivers to support the new blades. I troubleshooted and created new installation ISOs that slipstreamed an updated Linux kernel and CD-ROM driver to function on these newer servers.
- Worked on an HTML5 web front-end for Fonality HUD (an in-house softphone and productivity tool that showed online/call status of your co-workers and managed chat and calls).
- Technologies: Perl (Template::Toolkit, Moose); HTML/JavaScript (jQuery in some places, mostly vanilla JS, AJAX); Asterisk; MySQL; Linux (CentOS)

#### Linux Systems Administrator @ Liquid Web

Jan 2008 - May 2008 | Lansing, MI

The job description was tech support and tech support at a web hosting company is synonymous with systems administration. A large portion of our customer base ran Linux servers (CentOS). My aim was to get hired as a software developer but as I had no prior work experience they started me out in support.

- Helped customers debug issues with their Apache config, managed cPanel installations, reading exim logs, and wrote custom Perl scripts to help me troubleshoot their e-mail servers and other such tasks.
- After a couple months I transitioned to the software dev team and worked on some internal tools and the customer control panel written in Perl.
- Technologies: Perl (Template::Toolkit, POE); HTML/JavaScript (jQuery); CVS version control; MySQL; Linux (CentOS)

### Education

##### ITT Technical Institute

Associates, Computer Network Systems
2006 - 2009 | Swartz Creek, MI | Culver City, CA | Torrance, CA

##### Flushing High School

2002 - 2006 | Flushing, MI