About the Role
We're seeking a Senior/Principal Software Engineer to join our Platform team. Successful candidates will live and breathe server-side development and be very interested in delivering scalable distributed services in Scala. This role will involve working closely with other teams team to define, implement, and improve the technologies and frameworks that span our ecosystem.
- 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.
Qualifications and Skills
- 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.
Benefits and Perks
- 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.