Scroll To View More
Greg Navis

Greg Navis

Szczecin, Poland
Member since September 19, 2016
Greg started programming at 7 and still loves it at 31. He specializes in software development, design, architecture, and processes. He's led 3 engineering teams, built and launched multiple products, advised clients on scalability, and rescued troubled projects. He's passionate about building business software and believes business should be driving development not the other way round. He also contributes to open source and has an MSc in maths.
Greg is now available for hire
Portfolio
  • Greg Navis Consulting
    Ruby, Ruby on Rails, PostgreSQL, Python, Heroku, Linux
  • Beag.ly
    Ruby on Rails, React, Redux, HTML, CSS, JavaScript, Bootstrap, PostgreSQL...
  • ClubCollect
    Ruby on Rails, HTML, CSS, JavaScript, Bootstrap, Heroku, PostgreSQL...
Experience
  • C, 16 years
  • Software Design, 13 years
  • Object-oriented Programming (OOP), 11 years
  • Software Architecture, 11 years
  • Python, 7 years
  • Software Development Management, 5 years
  • Ruby, 4 years
  • JavaScript, 2 years
Szczecin, Poland
Availability
Part-time
Preferred Environment
Linux, Vim, Terminal, Browser, Git
The most amazing...
...results of mine are at the intersection of business and technology: 8x reduction in code size, 10x reduction in support overhead, QA from months to minutes.
Employment
  • Owner
    2016 - PRESENT
    Greg Navis Consulting
    • 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.
    Technologies: Ruby, Ruby on Rails, PostgreSQL, Python, Heroku, Linux
  • Lead Software Developer for an Online Survey App
    2016 - 2018
    Beag.ly
    • 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.
    Technologies: Ruby on Rails, React, Redux, HTML, CSS, JavaScript, Bootstrap, PostgreSQL, Heroku
  • Lead Software Developer
    2014 - 2016
    ClubCollect
    • 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.
    Technologies: Ruby on Rails, HTML, CSS, JavaScript, Bootstrap, Heroku, PostgreSQL, Bootstrap, Mailgun
  • Software Developer
    2013 - 2014
    Adbeat
    • Implemented a system for identifying the most significant websites in the US display advertising space.
    • Wrote a test suite for ad identification code that used mitmproxy to hijack SSL sessions and PyQt to run JavaScript.
    • Automated scraping proxy setup with Ansible.
    • Introduced continuous integration, set up and maintained Jenkins.
    • Introduced Vagrant for local development.
    Technologies: Python, PyQt, AWS, Ansible, Jenkins, Vagrant
  • Lead Software Developer and Manager of the Internal Tools Department
    2012 - 2013
    Red Sky
    • 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.
    Technologies: Python, MySQL, Redis, Twisted, Flask, Tornado, Git, dpkg
  • Software Developer (Online Gambling Project)
    2011 - 2012
    Red Sky
    • 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.
    Technologies: PHP, HTML, CSS, JavaScript, ActionScript, MongoDB
  • Software Developer in a Distributed File System Project
    2010 - 2011
    Red Sky
    • 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.
    Technologies: C++, Boost, Python, FUSE, Linux
  • Software Developer
    2007 - 2009
    Coriolis PRO
    • Prepared digital maps for publication with MapGuide.
    • Developed MapGuide UI extensions in JavaScript.
    • Wrote waterway signage tracking software using PHP, JavaScript, Google Maps, and MySQL.
    Technologies: PHP, JavaScript, MapGuide, MySQL, GIS
Experience
Skills
  • Languages
    Ruby, Python, PHP, HTML, SQL, JavaScript, C, SCSS, CSS, C++
  • Frameworks
    Ruby on Rails (RoR), Flask, Scrapy, Twisted, Django, Redux, Knockout.js
  • Tools
    Git, GitHub, Jenkins, SemaphoreCI, Codeship, Vim Text Editor, Terminal
  • Paradigms
    Continuous Improvement, Unit Testing, Behavior-driven Development (BDD), Test-driven Development (TDD), Object-oriented Programming (OOP), Continuous Integration (CI), Continuous Deployment, Refactoring, Kanban, REST, Agile Software Development
  • Platforms
    Linux, Heroku, AWS EC2, Mac OS, Amazon Web Services (AWS)
  • Other
    Software Design, Code Review, Software Architecture, Mathematics, Debugging, API Design, Monitoring, Software Development Management, HTTP, Scalability, Performance Optimization, Integrations, Scraping, Reverse Engineering, Email Marketing, Marketing Automation, TCP/IP, UDP, DNS
  • Storage
    Redis, PostgreSQL, SQLite, AWS S3, MySQL, MongoDB
  • Libraries/APIs
    Braintree API, Twilio API, jQuery, AWS EC2 API, React
Education
  • Master's degree in Mathematics
    2006 - 2011
    University of Szczecin - Szczecin, Poland
I really like this profile
Share it with others