MS2 is a national leader in transportation data management and analysis and has the largest traffic count database in North America. More than 270 agencies in 31 US States, and 3 Canadian Provinces, including 28 state Departments of Transportation, are using MS2 software to manage their transportation data.
MS2 is located in the beautiful city of Ann Arbor, Michigan, the home of high-tech industries and the University of Michigan. Residents of the city enjoy beautiful parks, mature neighborhoods, amenities of the Huron River and easy access to downtown Detroit or to colorful “Pure Michigan” woods and waterways.
MS2 is a friendly, open, team working to support our clients' software needs. Staff members work on a variety of tasks and are given a high degree of responsibility. We offer an excellent environment for transportation professionals and Software Engineers with competitive compensation and benefit packages. We're a small team and you'll have an opportunity to make a big impact!
We are seeking a Senior Software Engineer to design, build, and maintain the core systems that power MS2's transportation platform. You will partner with product and engineering teams to deliver features across the full stack, from backend services and APIs to database integration and front-end user experiences. The role emphasizes ownership, technical craftsmanship, and the ability to solve complex problems independently while collaborating with an experienced, supportive team.
Responsibilities:
- Own delivery of moderately to highly complex features across the SDLC, from discovery and design through implementation, release, and support.
- Design and implement well-structured, maintainable, and testable solutions in alignment with agreed technical patterns and project goals.
- Translate business requirements into clear technical specifications (workflows, APIs, data models), including tradeoffs, risks, and effort.
- Collaborate closely with product, QA, and other engineers to align on approach and execution.
- Act as a primary owner for one or more services, modules, or core capabilities, including code health, operational readiness, and ongoing improvements.
- Contribute to system reliability and supportability through automated testing, monitoring/alerting, performance tuning, and root-cause analysis.
- Troubleshoot, debug, and upgrade existing systems, including participation in incident response and prevention (follow-up fixes and improvements).
- Participate in code reviews and design reviews, and help raise engineering quality through feedback, standards, and shared learning.
- Mentor and support Software Engineers through pairing, technical guidance, and coaching on best practices.
- Partner with engineering leadership to break down work, estimate, surface dependencies and risks, and drive delivery of assigned initiatives.