Senior/Principal Platform Engineer
Summary
Senior/Principal engineer on a Platform team building scalable, distributed server-side services and shared frameworks in Scala used by millions of consumers. Day-to-day work spans API/ETL design, performance tuning, security hardening, and infrastructure troubleshooting, using Spark, Hadoop, Consul, Postgres/MongoDB, and cloud tools.
- Deliver software to the market. Design, code, and test high quality software in Scala that will be used by millions of consumers and dozens of developers every day.
- Think frameworks. As a member of the Platform team you will lead efforts to deliver various frameworks that other teams can leverage. Smart API design, ETL patterns, documentation, and a desire to make your peers more efficient are a must.
- Focus on Scale. Performance is at the center of everything we do and you will have your hands full creating tight algorithms, scalable data design, and efficient communication protocols.
- Get your hands dirty. Analyze and troubleshoot network and infrastructure issues. Monitor and measure system performance. The heart of any well-tuned system is a known system.
- Own security. In this role you will become an expert in system security and will work towards hardening our platform.
- Learn. Quickly learn and use new technologies: Scala, Machine Learning, Distributed Computing, Spark, Hadoop, Consul, AngularJS, security, cloud computing, DevOps, security, system performance, profiling, etc.
- Drive Solutions. You will drive solutions from end to end in an agile, iterative, environment.
- Work with others. You will work with operations, product managers and development leads to come up with ways to invent, productize, and delivery analytic applications.
- 4+ years as a software engineer with progressive levels of responsibility
- Java or C++ preferred; Scala helpful
- Commercial software. Significant experience developing and releasing commercial software products that solve business problems
- Database experience in both relational and no-SQL environments. Postgres and Mongo experience is a plus.
- ETL design and implementation experience helpful.
- Distributed Software Design. Ability to understand business requirements and decompose into highly distributed subsystems.
- Software Analysis. Ability to analyze complex data and present results to business users; report building and data visualization skills a plus
- Undergraduate degree in a quantitative field (Math, Physics, Engineering, and/or Computer Science) is required.
- Motivated. You love this stuff, are a self-starter with a can do attitude.
- Soft skills. You need strong listening and communications skills, an ability to drive solutions independently.
- We offer our employees health care, paid time off, retirement savings plans, parental leave, and professional development opportunities.
- We also provide in-office meals, a fully stocked kitchen, an open office full of fun, generous, and friendly people, plus company outings.