Design, develop, and maintain complex software systems using C, C++, or C#.
Work on system-level programming, application development, and automation.
Implement software features and modules as part of a larger application, ensuring they meet functional and technical requirements.
Ensure that code is well-organized, modular, and follows the industry’s best practices for readability and maintainability; participate in code reviews.
Identify and address performance bottlenecks; optimize code for better resource utilization and ensure optimal performance across platforms.
Use debugging tools (debugger) to troubleshoot and fix issues in both development and production environments.
Identify and resolve software bugs and technical challenges efficiently, maintaining software stability.
Develop and execute tests to verify the functionality and correctness of the software; contribute to automated test scripts and continuous integration.
Maintain thorough documentation for software features, APIs, algorithms, and technical details.
Communicate with stakeholders to clarify requirements, provide status updates, and deliver features on time.
Collaborate with engineers, product managers, and cross-functional teams to deliver technical solutions.
Requirements
Basic understanding of C, C++, and C# programming languages along with knowledge of object-oriented programming (OOP) concepts such as inheritance, polymorphism, and encapsulation.
Familiarity with basic data structures and algorithms, and the ability to implement them in C/C++ or C#.
Exposure to Linux operating systems internals.
Exposure to scripting languages like python, bash etc. is a plus.
Familiarity with Integrated Development Environments (IDEs) like Visual Studio, VS Code, Eclipse, CLion, or other C/C++ IDEs.
Basic Knowledge of Software Development along with tools like Jira, Perforce, Git, Swarm etc.
Familiarity with debugging tools for C/C++ and C#, such as GDB, Visual Studio Debugger, or WinDbg.
Knowledge of unit testing frameworks like Google Test (for C++), NUnit, or xUnit (for C#).
Excellent problem-solving skills and ability to debug and troubleshoot complex issues.
Strong communication and collaboration skills, with the ability to work effectively in a team-oriented environment.
A willingness to learn new languages, frameworks, or tools as needed.
Bachelor’s degree is required in computer science, Software Engineering, or a related field.