Senior Software Engineer - (C++ with Graphics)
Office in Hyderabad, Bangalore, Pune, Gurgaon
C++
& others
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 development
- 4+ years of experience with C++ software development and architecture, including test methods, performance, scalability, usability, and security
- Development experience on the Linux operating system and familiarity with tools like CMake
- Deep knowledge of computer graphics with experience using OpenGL, OpenInventor, nVidia NDX, Unity, or similar visualization frameworks
- Background in distributed computing, scalable parallel computing, and object-oriented programming
- Proficiency in developing, debugging, and optimizing C++ software for 3D graphics engines
- Expertise in large-scale hierarchical data formats such as HDF, with a focus on IO-bound performance and scaling concerns
- Familiarity with Slurm and Singularity Container for distributed computing
- Experience with web sockets and streaming compressed video (H.264) between a rendering server and distributed web clients
- Understanding of security testing tools, including CodeQL, SonarQube, Dependabot, Mend, and Inviciti
- Flexibility to work in both Linux and Windows environments
- Ability to independently solve complex problems while collaborating as a team player