- OwnerGreg Navis Consulting2016 - PRESENT
Technologies: Ruby, Ruby on Rails, PostgreSQL, Python, Heroku, Linux
- Advised multiple clients on PostgreSQL performance and scalability (can provide testimonials).
- Created and maintained active_record_doctor based on consulting experiences. See more at GitHub.com/gregnavis/active_record_doctor.
- Developed and launched an MVP of a crowd-sourced financial advice platform for a client. The project used Rails, Heroku and integrated with Plaid.
- Built a back-end for a mobile app for an agency. The backend included an admin panel (using the administrate gem), a support text/voice chat (implemented with Twilio) and international recurring payments (Braintree).
- Created a console tool for easily switching between projects. See more at GitHub.com/gregnavis/bash-ctx.
- Lead Software Developer for an Online Survey AppBeag.ly2016 - 2018
- Implemented an email campaign feature (including storage-effective opt-outs) using SendGrid.
- Added browser tests for critical features (e.g., Facebook login) and ensured that they're always functional.
- Implemented geographic survey restrictions that reduced fraud.
- Implemented continuous delivery by integrating ClubHouse, Heroku, GitHub, and CodeShip. The process was heavily automated and the aforementioned systems were kept in sync with custom glue code.
- Monitored and optimized the app performance.
- Troubleshot multiple complex problems affecting Facebook Login, core product features, data consistency, performance, security.
- Implemented Slack notifications for important business events (survey published, paused, stopped, etc.).
- Implemented data exports and reports.
- Lead Software DeveloperClubCollect2014 - 2016
- Implemented an accounting system that managed millions of euros and handled hundredths different of business cases.
- Optimized the search feature in the support console using pg_trgm. Contributed support for it back to Rails (see more at Github.com/rails/rails/pull/19090).
- Came up with a design that allowed the company to implement features required by customers in a new market.
- Modified the business logic to prevent users from circumventing late payment fees.
- Helped hire three senior developers.
- Implemented grouped email notifications to reduce email volume.
- Optimized a search feature in the support console using pg_trgm. Contributed support for it back to Rails (see more at Github.com/rails/rails/pull/19090).
- Optimized a few memory intensive operations and reduced the hosting bill by $1,600 a month.
- Maintained an extensive test suite for the whole billing cycle.
- Software DeveloperAdbeat2013 - 2014
Technologies: Python, PyQt, AWS, Ansible, Jenkins, Vagrant
- Implemented a system for identifying the most significant websites in the US display advertising space.
- Automated scraping proxy setup with Ansible.
- Introduced continuous integration, set up and maintained Jenkins.
- Introduced Vagrant for local development.
- Lead Software Developer and Manager of the Internal Tools DepartmentRed Sky2012 - 2013
Technologies: Python, MySQL, Redis, Twisted, Flask, Tornado, Git, dpkg
- Introduced development processes based on Kanban using Trello, GitLab, code reviews, and continuous integration (Jenkins).
- Mentored developers concerning software architecture, design, and development.
- Led the design and development of an auto-completion service. The design was easily extensible and each component (e.g., data storage) was replaceable without affecting the rest of the system.
- Led the design and development of a distributed scraper built with Flask on the server and a pure Python script on the client. The team responsible for scraping used the service to distribute scrapers to nodes and collected results via the API.
- Oversaw the development of a scraping proxy built on Tornado.
- Software Developer (Online Gambling Project)Red Sky2011 - 2012
- Designed an API for games provided by vendors that eliminated repetitive integration work and decoupled validation protocol and game mechanics.
- Overhauled a fraud detection system by moving validators from imperative to declarative style. This made them simple-to-understand and reduced their length from approximately 500 lines to about 50.
- Maintained and enhanced an ActionScript library used by vendors to integrate games with the platform. Implemented extensive debugging logic and simplified the implementation by using state machines.
- Built a developer console for use by vendors that allowed them to troubleshoot games on their own. This reduced support overhead from 40 to 4 hours a week.
- Automated the game testing with a custom Python tool that reduced the QA feedback cycle from weeks to minutes and made it easier to troubleshoot hard-to-reproduce concurrency issues.
- Integrated several games with the platform and supported other developers.
- Integrated the fraud detection system with the front-end.
- Software Developer in a Distributed File System ProjectRed Sky2010 - 2011
Technologies: C++, Boost, Python, FUSE, Linux
- Implemented HTTP actions in a custom C++ HTTP server.
- Implemented file system calls in a FUSE module that exposed the file system to the userland.
- Implemented server monitoring (CPU load, bandwidth and disk usage) that helped the file system make better decisions where to put file replicas.
- Built a distributed file system stress test automation tool in Python that helped measure file system performance and troubleshoot hard-to-reproduce concurrency issues.
- Troubleshot low-level networking and concurrency issues during development and maintenance.
- Improved error handling and made the file system more reliable.
- Software DeveloperCoriolis PRO2007 - 2009
- Prepared digital maps for publication with MapGuide.