Data Engineer/Senior Software Engineer2016 - 2018Assembled Brands
- Maintained and improved the data warehouse for a retail organization, a project that involved keeping a Rails-based ETL system up to date and maintaining a Looker-based reporting system.
- Created a "new customer lead allocator" Python app that compares newly-completed Shopify orders against other data sources, determines proximity to a retail store, then follows certain rules to assign new customers to salespersons. The app was built using TDD techniques, to make sure all business cases were covered. By hosting on AWS Lambda, the only cost of this app was the implementation and some minor updates. The usage of the app stayed within the free billing tier.
- Helped build two React-based front-ends for an online marketplace and merge the two code bases into a single project. Made minor changes to the back-end as needed in the course of work.
- Created a data dictionary generator as an afternoon project, which transformed a set of LookML source code into a form that is more useful for end users to refer to. Although the project is now dormant since LookML syntax moved away from YAML, the project was fun to write and useful for a few months.
President2009 - 2016Elevencraft, Inc.
- Used SaltStack to deploy groups of staging and production hosts.
- Set up a complete Windows/Linux/OS X compatible Django project development stack, using Packer to create base machine images for Vagrant and EC2 and using SSH and the PyCharm IDE to connect to a common environment.
- Designed, implemented, and deployed a cross-platform job execution and storage system plus two reference front-ends using an API for dynamically generating UI elements.
- Designed and implemented several user interface changes to a large body of existing front-end code using HTML5, Sass, and Backbone.js.
- Designed and created a transcription crowdsourcing system allowing volunteers to collaboratively turn podcast audio into text.
- Designed and created a vertical-market social network system using Django to integrate custom and third-party apps, providing a common set of tools to groups of volunteers operating in separate geographical regions.
Django Full-stack Developer2014 - 2015Funding Gates (via Toptal)
Technologies: Amazon Web Services (AWS), PostgreSQL, AWS, CSS3, HTML5, React, Ember.js, Ruby on Rails (RoR), Django
- Performed data science tasks, bug fixes, feature additions, and second-tier technical support for the company's flagship Ruby/Rails/Ember app.
- Assisted with DevOps tasks such as system monitoring, Ruby/Rails/Ember app deployment, and finding and resolving root causes of errors and performance issues.
- Designed and created an internal sales, customer service, and analytics/data science tools using Django and RethinkDB on the back-end and React.js on the front-end.
- Maintained and improved all aspects of Django and WordPress based marketing websites, including third-party service integrations, conversion of PSDs to HTML5+CSS+JS with animations, and integration with the flagship Ruby/Rails/Ember app.
- Used open source libraries to implement scroll-triggered animations in marketing website pages.
Django Back-end Developer2014 - 2014Toptal Client
Technologies: State Machines, Message Queues, Python-rq, Redis, Django
- Compared Python-RQ with Celery, based on client needs and their current architecture.
- Designed and developed a mechanism using Python-RQ for long-running file conversion/export processes involving email notification, page refresh, download tracking, expired media purging, and recreation of expired media.
- Used a finite state machine architecture to control the export process.
- Used TDD (test-driven development) techniques to drive architecture design and implementation.
- Refactored existing export code embedded in a Django view to facilitate both short-term queueing architecture needs and long-term desire by client to support additional export formats.
- Completed all work in target 2-week time frame on a part time schedule.
Core Developer, Consultant2004 - 2008Orbtech, LLC
Technologies: PyQt, Python
- Developed software for non-networked workstations to analyze test results from automated electrical testing equipment, correlate it with information about items being tested, record failure and reasons for failed tests, and finally export data for further analysis.
- Created a reliable, pure-Python, ACID-compliant database engine designed for developer productivity and highly reliable complex schema migrations running on non-networked systems.
- Created data-bound widget kits for PyQt and PyGTK allowing UI layouts to react to changes in database schema.
- Helped to create four different system prototypes in six months.
- Created a new version of the Python database engine to improve performance, reduce memory usage, and accommodate more complex schemata needed by a new app.
Founder/Lead Software Developer2001 - 2004OMAjA Information Systems/Nexlink, Inc.
Technologies: Python, PHP
- Worked with a business partner to provide Linux support, software and networking consultation, web and email hosting, and software development.
- Designed and managed software projects including to manage internal and customer-facing aspects for a reverse logistics company, and a web-based internal database to manage contacts and policies for a small insurance brokerage.
- Developed software to manage aspects of a terrestrial wireless ISP, including customer and subscription management, routing, DNS resolution, and bandwidth limiting.
- Used User Mode Linux to segregate ISP services into virtual machines for deployment into a single physical machine. (User Mode Linux is an early Linux virtualization technique also used by Linode in their early days.).
- Began work on the predecessor for an open source, pure-Python database engine that I would later help refine to create further commercial products.
Registrar & Database Administrator2000 - 2001Girl Scouts of the Missouri Heartland
Technologies: SQL, PHP, Perl, Linux, Microsoft Access, MySQL
- Implemented an ETL system using Perl and MySQL and what I would now call a warehouse query interface in PHP. The system corrected several deficiencies in a database schema used by an app that the organization was required to use, resulting in much more accurate reporting, important for fundraising. The query interface dramatically reduced the time it took for field staff to run reports and retrieve information, as it shifted business processes from a paper work-order model to a digital self-service model.
- Researched the structure and past practices of the client's summer camp program.
- Designed and created a complete summer camp management system based on the above research.
- Supported, maintained, and handled clerical and customer service activities related to the camp management system—managed registration and billing, produced attendance rosters and meal plans, and prepared end-of-session reports.