Software Engineer (Machine Learning) (Foursquare Labs Inc, New York, NY)
Use a variety of tools, technologies, and languages to build software (including Scala, Thrift, MongoDB, Memcached, JS/jQuery, Kafka, Pants, Hadoop, MR, and Spark). Leverage machine learning techniques to build systems which process and derive insights from billions of location data points every day. Build resilient services and tooling which drive all of the offline processing of petabytes of data. Use strong communication skills (verbal and written) to express ideas and learn new skills on a bleeding edge platform. Design and write software systems that address evolving business needs. Participate in the planning process and provide completion time estimates for software development projects. Provide feedback, mentorship and training to other engineers. Write object oriented and/or functional code in languages such as Python and Scala. Conduct scripting using Unix tools and shell. Create offline analytics pipelines that work well with the company’s Hadoop infrastructure. Develop features and data pipelines for consumer and enterprise applications. Build tools to allow the company to more effectively use and organize the company’s data. Optimize existing processes to facilitate better resource utilization and performance using tools like YourKit and statistical and relational analysis to guide decision making using SQL.
Minimum Requirements: Bachelor’s degree or U.S. equivalent in Computer Science, Engineering, Computer Engineering, Computing, Information Technology, Electrical and Computer Engineering, Language Technologies, or related field, plus 4 years of professional experience in working on all phases of the software development lifecycle (including requirement gathering and analysis, planning, design, development, implementation, testing, deployment, and maintenance) and in working with Machine Learning software development techniques. Must also have the following: 1 year of professional experience in applying computer science fundamentals in developing software (including data structures, algorithms, and system design); 1 year of professional experience in using Java or other object-oriented programming languages; 1 year of professional experience in using machine learning algorithms; 1 year of professional experience in training, revising, and tuning machine learning models; 1 year of professional experience in using code repositories, version control systems, and task tracking systems in software development.