I'm a software engineer with 10 years experience. My atypical background and work history has given me a unique perspective that makes me a skilled full-stack developer. I've developed all kinds of software including embedded systems, back-end servers, microservices, single page webapps, and more. I like to build systems that are type-safe, distributed, and fault-tolerant, but not over-engineered. I have natural leadership skills, and I enjoy collaborating with other engineers and across functional teams. At my previous role, I was been doing mostly of frontend development in TypeScript and React, and I would like to do more.

Senior Engineer @ Purposeful Marketplace for Charitable Giving (Bellevue)

Full-Stack Web Development in TypeScript using React, styled-components, Next.js, Express, PostGraphile, and PostgreSQL. Added user authentication and account management via Auth0

Added product search via Algolia

Added end-to-end type-safety, from UI to database, using graphql-code-generator

Automated AWS infrastructure using AWS CDK

Introduced database-level testing in SQL

Wrote a Chrome/Puppeteer based crawler for testing

Senior Engineer @ Sunlight Payments Payments Tracking Platform for Charitable Organizations (Seattle/Remote)

Sunlight Payments rebranded and pivoted to become Purposeful. Scala development in the Play Web Framework.

Built a continuous delivery system with AWS CodePipeline and AWS Elastic Container Service (ECS) with isolated AWS accounts. All changes merged to master are automatically deployed without user interaction in under 30 minutes.

Replaced the NixOS-based developer environment with Docker.

Infrastructure Developer @ Elastic Maker of Elasticsearch, Logstash, Kibana, and Beats (Remote)

The role of the infrastructure team at Elastic is to develop and manage internal and external services and act as infrastructure consultants for the product developers and other employees. We provided developers with infrastructure solutions and tested the company's products by using them for these services. Primary software developer for the infrastructure team.

Developed a configuration management library in Haskell, named Craft, as a more versatile and type-safe alternative to Puppet and Ansible.

Built, with Haskell/Craft, a large scale automated test suite to deploy and test Elasticsearch in 100 to 1000 node cluster configurations on AWS and Google Cloud.

Developed, using Haskell/Craft and oauth2_proxy, a highly available proxy service to allow employees to give secure Google SSO access to their internal Elasticsearch clusters without installing anything, having any special access, knowing any secrets, or asking the infrastructure team for help. It has a management portal and would automatically create user specified domain names and TLS certificates.

Deployed the Vault secrets management service in a highly available configuration.

Wrote a custom wildcard DNS service (ip.es.io) in Haskell as a highly available alternative to xip.io or nip.io. The existing solutions were not reliable enough.

Built AWS Lambda functions to monitor the company's internal AWS usage and billable activity.

Various other development in Python, Bash, Clojure, and Go.

Backend Software Engineer @ Flowroute VoIP/SIP Trunking Provider (Seattle, WA)

This was my first role as strictly a Software Engineer rather than as primarily DevOps or Systems Administrator. I was the company's first full-time developer after the CTO. My work was centered around the backend services. Because the company is a service provider, we were motivated to provide highly available services by building a fault tolerant and distributed architecture. Developed an asynchronous JSON-RPC client in C to be embedded in the synchronous SIP server Kamailio using libevent, Unix Domain Sockets, shared-memory, multiprocessing, and DNS SRV.

Developed microservices using Twisted Python.

Wrote automated unit tests for the SIP routing infrastructure.

Designed and implemented a distributed, high-throughput, reliable call detail record (CDR) database system using NSQ, Couchbase, Riak, and Twisted Python. It allows for idempotent, real-time account balance tracking. Also implemented an integration test suite for this system.

Implemented the SMPP binary protocol (SMS) in Python.

Django development for the website.

Successfully advocated development best practices to the team, such as linting and code review.

Built from scratch a prototype for a new SIP server in Haskell.

DevOps Engineer @ Wetpaint Celebrity News (Seattle, WA)

My job was to keep the websites and internal services running, test new releases, database management and migration, and release new versions of the site. I would also contribute to the frontend development whenever I had the opportunity. Managed ~80 physical servers and ~10 AWS instances.

Introduced Puppet for all new and existing infrastructure.

Helped transition everything from SVN to Git.

Implemented an automated release process using Git.

Managed the Jenkins CI infrastructure.

Managed the F5 BIG-IP load balancer array.

Improved site response time for the slow Ruby on Rails CMS backend using Varnish and cache warming.

Centralized all server logging using syslog-ng.

PostgreSQL configuration optimizations.

Automated backup and replication for MySQL and PostgreSQL.

Frontend web development for main site. (HTML/ERB, CSS, JS/jQuery)

Designed and built a high-performance and distributed web analytics prototype using Couchbase and modified Nginx.

Systems Administrator @ General Electric - Enterprise Sensor Grid The Enterprise Sensor Grid is an intrusion detection system for GE that monitors their global internal network for malicious traffic. (Cincinnati, OH)

My role was to deploy, configure, monitor, and maintain the data collection hosts that monitored traffic at network endpoints scattered around the globe. Deployed and managed ~150 physical servers running FreeBSD.

Introduced Puppet configuration management.

Replaced CVS with Git for some projects.

Built tools for automated deployments and management in Bash and Python.

Wrote a custom Splunk plugin to pull data from MS SQL Server.

Managed Nagios, BIND DNS, Apache, MySQL, WikiMedia, Wordpress, and Splunk.

Bachelor of Science in Electrical Engineering @ University of Washington (2008)

Embedded Computing Systems