Software Engineer

Key Responsibilities:

  • Set Technical Vision & Strategy: Define the direction and objectives for a large ML team, focusing on project impact, system design, and ML excellence.
  • Optimize ML for Modern Hardware: Adapt machine learning methods to efficiently leverage parallel computing environments (e.g., distributed clusters, multicore SMP, and GPUs).
  • Enhance & Maintain ML Systems: Continuously reassess the trade-offs of existing ML systems and features, driving large-scale efforts to reduce technical debt and redesign from first principles when needed.
  • Provide Technical Leadership: Guide teams in developing ML best practices, fostering an engineering culture that prioritizes excellence in model development and deployment.
  • Solve Complex Production Issues: Act as the go-to expert for diagnosing and resolving critical ML system performance and evaluation issues that impact production environments.
  • Develop Scalable ML Models: Build highly scalable classifiers and predictive models, utilizing techniques such as data regression, rules-based modeling, and deep learning.
  • Define Feature Roadmap: Gather, analyze, and synthesize business requirements, translating them into an effective ML feature roadmap.
  • Collaborate on Implementation: Work closely with the engineering team to write production-ready code and integrate ML solutions seamlessly.

Minimum Qualifications:

  • Experience:
    • 8+ years of experience in software engineering or a related technical field (4+ years if holding a PhD).
    • 6+ years of experience in machine learning, recommendation systems, data mining, artificial intelligence, or related fields.
  • Programming & Development:
    • Proficiency in Python, JavaScript, Hack, or other scripting languages.
    • Experience developing and debugging in C/C++ and Java.
    • Familiarity with scripting languages such as Perl, PHP, and shell scripting.
  • Technical Leadership:
    • Proven ability to lead major ML initiatives and set the technical direction for projects.
    • Experience building and shipping high-quality, scalable, and reliable ML systems.
    • Ability to analyze complex data-driven problems and provide detailed solutions.
  • ML & Production Expertise:
    • Hands-on experience developing machine learning models at scale, from initial research to business impact.
    • Understanding of ML system architecture and how ML models interact with large-scale applications.
  • Education:
    • Bachelor’s degree in Computer Science, Computer Engineering, or a related technical field, or equivalent practical experience.

Preferred Qualifications:

  • Advanced Degree: Master’s or PhD in Computer Science, Machine Learning, or a related field.
  • Large-Scale System Design: Exposure to architectural patterns for large-scale software applications.
  • Deep Learning Frameworks: Experience working with PyTorch and TensorFlow for ML model development.