We are seeking a highly skilled and experienced Lead Software Engineer specializing in C++ and Graphics to join our team.
This role will focus on developing and optimizing 3D visualization solutions and include responsibilities spanning back-end computation, rendering, and front-end client-side integration. You will collaborate with a cross-functional team to deliver high-performance, scalable, and secure software systems tailored to complex visualization needs.
The role demands technical excellence, creativity, and a passion for solving complex visualization challenges, offering an opportunity to lead impactful projects in 3D software development.
Responsibilities
- Perform complex analysis, design, development, testing, and debugging of 3D visualization web applications
- Design, develop, and test full 'vertical' visualization features - back-end computation and rendering, data management and storage, and front-end client-side streaming
- Use expertise and tools, including distributed computing, object-oriented programming, scalable parallel computing, visualization, C++, graphics, and WebGL
- Understand, maintain, and extend C++ code that transforms a Finite Element Mesh into a read-optimized polygon rendering mesh
- Use 3rd-party commercial APIs to compose a compressed H.264 video stream from the server-side render format
- Troubleshoot, debug, and test C++ engine code, C# Web API service code, and client-side JavaScript web pages that comprise the vertical visualization stack
- Develop a test strategy for validating the functionality of graphics rendering code
- Fix security vulnerabilities within the prescribed timelines
- Work as part of a team to maintain and develop new enhancements
- Perform periodic upgrades of the technology stack
- Perform technical design and reviews within the team
- Participate in various Scrum ceremonies and meetings
Requirements
8-15 years of experience in software development5+ years of experience in C++ architecture and development, encompassing test methods, performance, scalability, usability, and securityAt least 1 year of relevant leadership experienceDevelopment experience on Linux, with familiarity with CMake and key tools / libraries enabling development, testing, and debuggingDeep knowledge of computer graphics, with experience in OpenGL, OpenInventor, nVidia NDX, Unity, or similar visualization frameworksStrong background in developing, debugging, and optimizing C++ software for a 3D graphics engineCompetency in handling large-scale, hierarchical data formats such as HDF, with a focus on IO-bound performance and scalingSkills in utilizing distributed computing, object-oriented programming, scalable parallel computing, C++, and graphics tools / frameworksFamiliarity with web technologies, including web sockets and streaming compressed video (H.264) between rendering servers and distributed web clientsUnderstanding of security testing tools such as CodeQL, SonarQube, Dependabot, Mend, or InvicitiProficiency in working in both Linux and Windows environmentsExperience with Slurm and Singularity Container for distributed computing tasksSkills Required
Webgl, Cmake, Web Technologies, h.264, Windows, Distributed Computing, Linux, Unity, Graphics, Opengl, Sonarqube