We are seeking a talented and experienced Senior Software Engineer with expertise in C++ and computer graphics to join our innovative team.
In this role, you will work on the design, development, and optimization of advanced 3D visualization and rendering technologies, pushing the boundaries of performance, scalability, and usability. If you thrive in a challenging and collaborative environment, we would love to hear from you!
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 maintaining and developing 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
5-9 years of experience in software development4+ years of experience with C++ software development and architecture, including test methods, performance, scalability, usability, and securityDevelopment experience on the Linux operating system and familiarity with tools like CMakeDeep knowledge of computer graphics with experience using OpenGL, OpenInventor, nVidia NDX, Unity, or similar visualization frameworksBackground in distributed computing, scalable parallel computing, and object-oriented programmingProficiency in developing, debugging, and optimizing C++ software for 3D graphics enginesExpertise in large-scale hierarchical data formats such as HDF, with a focus on IO-bound performance and scaling concernsFamiliarity with Slurm and Singularity Container for distributed computingExperience with web sockets and streaming compressed video (H.264) between a rendering server and distributed web clientsUnderstanding of security testing tools, including CodeQL, SonarQube, Dependabot, Mend, and InvicitiFlexibility to work in both Linux and Windows environmentsAbility to independently solve complex problems while collaborating as a team playerSkills Required
Webgl, Cmake, h.264, Computer Graphics, Distributed Computing, Unity, Opengl, Sonarqube