Metropolis is an artificial intelligence company for the real world. Metropolis' computer vision platform enables people to transact in the physical world with even greater ease than we experience online. Today, we are reimagining parking. Because it's important, it's everywhere, and impacts everyone – enabling millions of consumers to just "drive in and drive out" – that's it. Tomorrow, we will power "checkout-free" experiences anywhere you go.
Metropolis is seeking a Senior Embedded Systems Engineer to lead software development for our field deployed custom hardware systems. We are developing a broad suite of technologies that enable the operation of our Computer Vision and Machine Learning platform, including but not limited to camera and computer vision systems, edge and embedded computers, IoT sensors and automated access control systems. In this role, you will be responsible for defining and developing software that supports these systems, including both platform and application development, and will have the opportunity to work up and down the stack, from microcontrollers to embedded Linux and more.
You will work closely with members of the Hardware Engineering, Application Engineering, Machine Learning, and Technical Operations organizations to define requirements and support deployment of software into production. You will be expected to wear many engineering hats and support a variety of development efforts. If you have a background in embedded systems, sensors, cameras, and computer vision, and are interested in developing systems that go out into the real world, please reach out!
- Lead design and development of embedded software and systems to enable, integrate, and operate the field deployed Metropolis hardware platform
- Participate in all phases of embedded software development, from concept and design to deployment and maintenance
- Collaborate with other Engineering and Product teams to evaluate requirements and use cases for new systems
- Identify top level embedded software requirements and establish development best practices
- Lead and participate in software and architecture design reviews
- Work with hardware engineers and operations to support hardware bring-up, debug and deployment
Requirements and Qualifications
- BS in CS/ECE or related engineering discipline
- 6+ years of embedded software development experience with demonstrated end-to-end ownership of an embedded software project
- Experience as the technical lead, leading small groups of other engineers across multiple designs
- Experience designing software for microcontrollers (ARM, PIC, etc.), Linux environments (Ubuntu, Debian) and embedded linux (Yocto/Buildroot)
- Expert level knowledge of at least one modern embedded language, such as C/C++ or Rust, including object-oriented design.
- Experience contributing to the designs and architectures of both new and existing software systems, including design patterns, reliability, test strategy and scaling
- Experience in development and test of common embedded hardware interfaces (GPIO, ethernet, USB, etc.)
- Experience with real time software development, including RTOS (FreeRTOS, Zephyr, etc.), bare metal embedded systems, and/or Linux kernel and device drivers
- Demonstrated experience debugging/troubleshooting embedded systems, including the use of real-time tools
- 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 is a plus
- Local to greater Seattle area
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. The anticipated base salary for this position is $121,000.00 to 201,000.00 annually. The actual base pay offered is determined by a number of variables, including, as appropriate, the applicant's qualifications for the position, years of relevant experience, distinctive skills, level of education attained, certifications or other professional licenses held, and the location of residence and/or place of employment. Base pay is one component of Metropolis’s total compensation package, which may also include access to or eligibility for healthcare benefits, a 401(k) plan, short-term and long-term disability coverage, basic life insurance, a lucrative stock option plan, bonus plans and more.