Embedded Software Engineer II
Cambridge Mobile Telematics
Cambridge Mobile Telematics (CMT) is the world’s largest telematics service provider. Its mission is to make the world’s roads and drivers safer. The company’s AI-driven platform, DriveWell® Fusion, gathers sensor data from millions of IoT devices — including smartphones, proprietary Tags, connected vehicles, dashcams, and third-party devices — and fuses them with contextual data to create a unified view of vehicle and driver behavior. Auto insurers, automakers, commercial mobility companies, and the public sector use insights from CMT’s platform to power risk assessment, safety, claims, and driver improvement programs. Headquartered in Cambridge, MA, with offices in Budapest, Chennai, Seattle, Tokyo, and Zagreb, CMT measures and protects tens of millions of drivers across the world every day.
We are looking for an embedded software engineer to join the IoT group that builds the software for the microcontroller-based sensor hardware designed and manufactured in-house. Our products offer an interesting engineering challenge: microcontrollers with just a few hundred kilobytes of RAM and code space must collect data from sensors such as accelerometers and GPS, communicate with back-end systems over the Internet and nearby devices with Bluetooth, perform over-the-air upgrades with new firmware, and manage cryptographically-secured storage – all while using so little power that they can run for years on a battery.
Responsibilities:
- Develop and maintain software for microcontroller-based sensor hardware
- Collaborate with colleagues in the firmware group to build new features and products
- Design and implement software architecture that supports efficient data collection from sensors such as accelerometers and GPS
- Ensure seamless communication with back-end systems over the Internet and nearby devices using Bluetooth
- Implement over-the-air firmware upgrades and manage cryptographically-secured storage
- Optimize software to operate within the constraints of limited RAM and code space
- Measure and analyze key metrics, such as power consumption, to ensure the longevity of battery-powered devices
- Maintain and enhance the codebase, ensuring its health and manageability as complexity increases
- Participate in the entire design process, working closely with product managers and hardware engineers to align technical feasibility with customer requirements
- Write and execute tests to validate software functionality and performance
- Contribute to the continuous improvement of software development processes and practices
- Complete any additional tasks as they arise
Requirements:
- Bachelor’s degree or equivalent years of experience and/or certification
- 2+ years of relevant work experience
- Fluency in C and Python programming
- Experience with systems software issues – e.g., race conditions, memory management
- Experience working at the boundary of hardware and software – e.g., interrupt handling, device driver development, bringing up untested hardware
- Comfortable with the Linux command-line
- Comfortable with git
- Track record of writing clean, readable, testable code
- Complete any additional tasks as they arise
- Be nice. We’re nice, and it’s not fun to work with people who aren’t
- Have a “leave things better than you found them” philosophy. For example: If you’re adding a new feature and discover that it would be cleaner to refactor some code first, do the refactor
Nice-to-haves:
- Past experience with bare-metal programming on ARM Cortex M CPUs
- Know your way around an oscilloscope and how to read a hardware schematic
- Experience with wireless tech, including Bluetooth and LTE
- Familiarity with AWS
- Knowledge of networking, messaging protocols, and end-to-end encryption
- Experience with low-power design
- Experience building and running tests in CI environments, including running tests automatically on real hardware
- Experience instrumenting systems for performance measurement: e.g., are any of these interrupt handlers too slow? How does the energy use of flash operations inform our write coalescing policy?
Compensation and Benefits:
- Fair and competitive salary based on skills and experience
- Equity may be awarded in the form of Restricted Stock Units (RSUs)
- Medical, Dental, Vision and Life Insurance, matching 401k, short-term & long-term disability and parental leave
- Unlimited Paid Time Off including vacation, sick days & public holidays
- Flexible scheduling and work from home policy depending on role and responsibilities
Additional Perks:
- Feel great working to improve road safety around the world!
- Join one of our many employee resource groups including Black, AAPI, LGBTQIA+, Women, Book Club and Health & Wellness
- Extensive wellness, education and employee assistance programs
- CMT will do all that is possible to support our employees and create a positive and inclusive work environment for all!
Commitment to Diversity and Inclusion:
At CMT, we are intensifying our commitment to provide opportunities and career growth to the underrepresented. We are focused on creating an inclusive work environment that encourages a diversity of background and thought to produce the best products and services within our industry.
CMT is an equal opportunity employer and strives to create an inclusive and diverse environment that enriches our employees’ lives in and outside of work. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status or disability state. CMT is headquartered in Cambridge MA. To learn more, visit www.cmtelematics.com and follow us on Twitter @cmtelematics.