Key Responsibilities:
- Design, develop, and maintain robust, efficient, and scalable applications using C++.
- Write clean, well-documented, and testable code.
- Work effectively within Unix/Linux environments, including scripting and command-line tools.
- Collaborate with senior developers and architects to understand requirements and implement solutions.
- Participate in code reviews to ensure code quality and adherence to best practices.
- Assist in troubleshooting and debugging software issues.
- Contribute to the continuous improvement of development processes and methodologies.
- Perform basic database operations and understand data models in RDBMS (Oracle, SQL Server).
- Gain familiarity with basic database administration tasks.
- Stay up-to-date with the latest development methodologies and modern software design principles.
Required Skills and Qualifications:
- 3+ years of hands-on programming experience.
- Proficiency in C++ programming. This includes a strong understanding of C++ features, data structures, algorithms, and object-oriented programming (OOP) principles.
- Solid understanding of Unix/Linux environments: Experience with command-line tools, shell scripting, process management, and file systems.
- Basic understanding of RDBMS databases like Oracle and SQL Server: Ability to write basic SQL queries (SELECT, INSERT, UPDATE, DELETE) and understand database concepts.
- Basic knowledge of database administration: Familiarity with concepts like backups, user management, and performance monitoring (not necessarily hands-on administration, but an understanding of the principles).
- Latest knowledge of development methodologies (e.g., Agile, Scrum) and modern software design principles (e.g., SOLID, design patterns).
- Strong problem-solving and analytical skills.
- Excellent communication and teamwork abilities.
- Ability to work independently and as part of a team in a fast-paced environment.
Bonus Points (Nice-to-Have):
- Experience with version control systems (e.g., Git).
- Familiarity with debugging tools (e.g., GDB).
- Knowledge of network programming.
- Experience with multithreading/concurrency.
- Understanding of performance optimization techniques.