Principal / Senior Software Engineer (San Francisco OR Seattle)
This position could be filled either in our client’s San Francisco HQ office or their Seattle office.
Primary responsibilities:
Building high performance systems for personalization, optimization, and targeting
Coordinating with a research team to move prototypes into production
Contributing to algorithm design, research and scalability
Building systems with Hadoop and Spark (MLib, GraphX), Mesos, Marathon
Designing and implementing data pipelines to support data needs for machine learning (both batch and online), reporting, monitoring and alerting. (Crunch, Cassandra, HBase, Hive, Presto, no-SQL databases)
Software engineering in Java and optionally Scala
Working with rapid development methodologies such as Continuous Delivery and SCRUM
Automating tests at various levels, including end to end integration testing with synthetic known data, unit testing with JUnit, performance testing and tuning
Coordination with internal and external teams
Mentoring junior engineers
Minimum requirements:
BS/MS in CS, Electrical Engineering or foreign equivalent
At least 5+ years of software development experience
Expert in Java, Scala or any other object oriented language
Experience with HDFS and Spark
Proficient in data modeling with advanced knowledge of data structures
Additional language skills for scripting and rapid application development
Desired skills and experience:
Production experience with big data (high volume, high velocity) systems
Knowledge of numerical programming, data science, machine learning and/or statistics a strong plus
Familiarity with UNIX (systems skills a plus)
Working in a distributed environment and has dealt with challenges around scaling and performance