Overview

WHAT YOU’LL DO
The Senior Software Engineer is the core of the engineering team. They are able to take ill-defined requirements and use their understanding of the system architecture and the business to expound and fill in gaps while asking the right questions of the business along the way.  They should take full responsibility to mentor the less experienced members of their team and have top notch troubleshooting skills.  They are always available for peer code reviews and often jump it to help resolve critical issues facing the platform. Their finished code is always self-tested and peer reviewed and should be exemplary to more junior engineers when a feature is ready to be handed off to QA for testing.

PRIMARY RESPONSIBILITIES
Develop the necessary best practices to work with and write a great code base
Help evaluate and select the tools, languages and frameworks used by the team
On board and mentor new members of the team ensuring their success
Ownership position on code and systems developed by others
Champion for engineering best practices including have reasonable code test coverage and an acceptable static code quality analysis score.
Design, develop, test, deploy, maintain and improve software
Manage project priorities, deadlines and deliverables
Technical and business expert on G5 products
Performance tuning and scaling
After hours primary on-call for production systems
Help create acceptance criteria for software features and bug fixes as needed

REQUIRED KNOWLEDGE/SKILLS/ABILITIES
BA/BS degree in Computer Science, similar technical field of study or equivalent practical experience.
5-7 years of professional software development experience working with teams.
2+ years work experience as a Ruby on Rails Developer
Experience working w/ numerous client-side development technologies
Software development experience in one or more general purpose programming languages.
Experience working with one or more of the following: web application development, Unix/Linux environments, mobile application development, distributed and parallel systems, machine learning, information retrieval or natural language processing.
Working proficiency and communication skills in verbal and written English.

PREFERRED KNOWLEDGE/SKILLS/ABILITIES
Experience with engineering best practices: TDD, CI and Scrum
Experience with one or more general purpose programming languages including but not limited to: Ruby, Java, Go or JavaScript.
Interest and ability to learn other coding languages as needed.
Experience with MVC pattern in Ruby on Rails, Sinatra or Express (Node.js) to build REST Services in a micro-services architecture
Proficiency with SQL to be used with Postgres and MySQL
Previous use of NoSQL and in-memory databases
Working knowledge of front-end frameworks and tooling: NPM, EmberJS, Angular, Webpack
Understanding of XLSX Generation
Experience administering Linux, Kubernetes, AWS, EC2, Heroku, RDS, S3, EMR, ELB, Docker, CodeShip
Experience building and configuring inter-service messaging systems using common data transport standards such as JSON and SOAP
Experience architecting and/or managing ETL services
Marketing industry knowledge and use of Google Analytics API, Google Adwords API, Bing Ad API, Facebook Ad API
Data Warehousing experience: Pentaho Data Integration, Star Schema pattern, Big Query, Big Table, Redshift, Map Reduce
Experience building and/or managing application monitoring services as well as configuring them to ensure critical systems stay up.
Proficiency with source code management in git
Experience leading Agile scrum teams a plus
Ability to communicate at the C level and with G5 clients