Job Description:
What you'll do:
- Lead the design, development, and maintenance of high-performance C++ software for complex systems.
- Architect robust, scalable simulation solutions for systems of systems and real-time processing.
- Drive the integration of third-party software and hardware systems into comprehensive architectures.
- Set technical standards and mentor other engineers to promote excellence and best practices.
- Collaborate with cross-functional teams to ensure project alignment and successful delivery.
- Implement modern agile software development practices, including continuous integration and test-driven development.
- Tackle complex debugging and optimization challenges to enhance system performance.
- Explore and adopt new technologies to stay at the forefront of the field.
- Drive task decomposition for teams and individuals
Required qualifications:
- Typically requires a minimum of 7 years of related experience with a Bachelor’s degree; or 5 years and a Master’s degree; or 4 years with a PhD; or equivalent work experience.
- Advanced professional experience in software engineering and systems integration.
- Familiarity with design patterns and system-level engineering principles.
- Extensive experience in C++ using modern C++ (C++17/20) while possessing a solid understanding of older standards (C++98/03) for adapting to legacy code and systems seamlessly.
- Experience in Python.
- Programming experience in a Linux environment (Windows experience is a bonus).
- Expertise with Docker or other containerization mechanisms.
- Demonstrated success leading projects with 10+ contributors.
- Exceptional problem-solving skills, with a fast, efficient, and effective approach.
- Deep understanding of design patterns and system architecture principles.
- Experience in a collaborative development environment, focused on continuous integration/delivery and test-driven development.
Preferred qualifications:
- MS or greater in Computer Science, Electrical Engineering, Mechanical Engineering, Aerospace Engineering, and/or similar degree, or equivalent practical experience.
- Real-time and distributed simulation experience.
- Experience with surface and/or subsurface simulation environments and models.
- Proficiency in Python.
- Advanced knowledge of third-party system integration (software and hardware).
- Experience with web-service technologies like gRPC, REST APIs, message queues (ActiveMQ, ZeroMQ), etc.
- Familiarity with C++ tooling like CMake and Conan.
- Experience with UCI and OMS Standards.