Senior Machine Learning Software Engineer

Metropolis Technologies

Metropolis Technologies

Software Engineering
Seattle, WA, USA
Posted on Friday, April 28, 2023

The Company

Metropolis develops advanced computer vision and machine learning technology that make mobile commerce remarkable. Our platform is already deployed in hundreds of mobility facilities and industries with billions of dollars in opportunity. We’re building the digital pipes through which the future of mobile commerce will move.

The Role

Metropolis is seeking a Senior Machine Learning Software Engineer to accelerate the development of our proprietary computer vision and machine learning software that powers our mobility products. As part of the Metropolis Machine Learning Team, you will be responsible for the development, deployment, and ongoing optimization of edge-deployed software. These systems are foundational to the Metropolis platform and have correspondingly large potential impacts on Metropolis and its customers. You will find this to be a challenging opportunity filled with unique technical and operational considerations while being able to learn from and leverage our existing Computer Vision based development and operational ecosystem.

The right candidate will possess a strong background in C++ and OpenCV, experience with model inference on edge systems, and demonstrated experience taking ML systems from concept to production. You can expect to be working on all stages of the ML software development pipeline – from problem analysis and design to prototyping and deployment. You should be able to thrive and succeed in an entrepreneurial setting, working collaboratively in a fast-paced environment with multiple stakeholders. You won’t be afraid to break new technological ground at Metropolis and are more than willing to roll up your sleeves, dig in and get the job done.

Responsibilities

  • Work with the Machine Learning Team to design, develop, improve, and optimize integrated ML model inference software on edge devices using C++.

  • Participate in all phases of embedded software development, from concept and design to deployment and maintenance.

  • Identify top-level software requirements and establish development best practices.

  • Deliver high-quality C++ code in a real-time embedded environment.

  • Implement, manage, and support over-the-air software updates to edge systems.

  • Communicate ideas and results effectively, verbally and in writing, to a wide range of technical and non-technical audiences.

Requirements and Qualifications

  • BS, MS, or Ph.D. in a Computer Science and Engineering or relevant discipline.

  • 5+ years experience in modern software design, development, version control, refactoring, and testing

  • 4+ years of experience with C++ and a strong understanding of object-oriented programming

  • 2+ years of experience working with OpenCV.

  • Experience in parallel computing, accelerator architecture, CUDA, CUDNN, and TensorRT libraries.

  • Experience with ARM Cortex series microcontroller

  • Experience deploying ML services to the cloud, including API development and design for scalability, performance, and reliability.

  • Excellent written and verbal communication skills with a proven ability to present complex technical information in a clear and concise manner to a variety of audiences

  • Previous experience working inside innovative, high-growth environments

  • Strong preference for candidates to be local to the Seattle area. Will also consider candidates in Los Angeles, Nashville, and New York. Remote for exceptional situations.

When you join Metropolis, you’ll join a team of world-class product leaders and engineers, building an ecosystem of technologies at the intersection of parking, mobility, and real estate. Our goal is to build an inclusive culture where everyone has a voice, and the best idea wins. You will play a key role in building and maintaining this culture as our organization grows.