A senior engineering position in a role involving code review, mentoring other engineers, and working on reliable, sustainable development. I advocate for project management, documentation and tests, and believe that both are required for the health and wellbeing of projects and the developers working on them.
- Application architecture
- GUI applications
- GAeson – a library for aiding YAML processing in Go
- Orizentic – a library for managing JWT-based authentication tokens, available in Haskell, Go, and Rust
- Palimpsest – a suite of tools to bridge the gaps between standard devops suites
- Emseries – an embedded time series database for small applications
- A health tracking application
- Betrayal-driven Development, Object-oriented design, Functional programming design, requirements gathering and project management.
- Programming Languages
- Haskell, including Servant, Scotty, Yesod, Happstack, Heist, Persistent, Esqueleto, and GTK.
- Python: 15 years of experience across a variety of projects that have gone into production.
- Standard C: 20 years of experience.
- Databases: MySQL, PostgreSQL, SQLite, Lightcloud with Tokyo Tyrant
- Devops: Docker, AWS, Terraform, Ansible, Packer, Nix
- Lecturer in Haskell programming topics
Cloud City Development: August 2017 - current, Senior Developer
As a consultant here, I have a changing set of software development responsibilities that include network setup and management, developing and managing automatic upgrades for IoT hardware in the field, developing server software to receive and process data from hardware, and developing web applications.
CollegeVine: December 2016 - June 2017, Software Engineer
My responsibilities involved server and client-side development in the platform our consultants and clients used to coordinate their activities.
Curb: October 2015 - October 2016, Software Engineer
I was responsible for the entire energy monitoring platform infrastructure, including provisioning, load balancing, disaster recovery and performance.
- Created policies and automation for replaceable infrastructure using Terraform, reducing operational error and improving service reliability.
- Automated a zero-downtime software deployment using Ansible on a data ingestion cluster.
- Built ingestion services capable of handling more than 100 megabits/s of metrics in near-realtime using off-the-shelf components and purpose-specific code developed primarily in Haskell and Python.
- Build a stand-alone OAuth 2.0 server.
Powerhouse Management: June 2014 - August 2015, Software Engineer
I was the lead developer for add-on service offerings for VyprVPN. I lead the design, project management, and development of the VyprVPN for Business product, which provides a turnkey VPN solution for employees to securely connect to corporate intranets.
- Coached developers on Python programming with Flask, object oriented design, and automated testing.
- Helped lead a collaborative design process yielding the system architecture and development plan for VyprVPN for Business.
- Conducted agile project management to provide a clear view on how far the project had progressed and how much further it had to go.
EMR Technical Solutions: December 2013 - February 2014
I was the lead developer for a web-based medical billing application. I handled design, task setting, and implementation.
Giganews/Goldenfrog/Powerhouse Management: 2005 - 2013
My role shifted over the years between being the sole developer on several projects and a team contributor in others. I introduced test-driven development, began the practice of frequent code reviews, and set up the practice of morning checkin metings.
- My work formed the backbone of the entire VyprVPN product, providing nearly all aspects of authentication, connection tracking, and VPN management.
- Built the DMCA response infrastructure for VyprVPN to help the business comply with the common carrier protections provided by the DMCA.
- Debugged and maintained the Giganews NNTP news servers, written in C.
- Wrote a connection and download accounting server, which has been in continuous operation, processing thousands of commands per second, with no failures since its creation, including handling unavailability of its database servers while still responding to requests.
- Core synchronization engine for the a Dropbox-like cloud storage product.
National Instruments: 2001 - 2005
I was the individual contributor to the driver layer that connected our software to our measurement hardware through USB and IEEE1394.
- Maintenance of the legacy USB and IEEE1394 platform abstraction driver.
- Development of a new API and communication model for future USB and IEEE1394 devices.
- Primary tools involved were C++, Windows 2000 DDK
University of Oklahoma Health Sciences Center: 2000
- Sole designer and developer of a web interface for recording and tracking structured lab notes on genetic sequences
Internships: 1997 - 1998
- Hewlett-Packard — math sciences automated test engineer
- Halliburton — system administrator
- Landmark Graphics — software tester
Bachelor of Science in Computer Science with a minor in Mathematics from the University of Oklahoma. Graduated with honors in December, 2000.