Role & responsibilities Collaborate with stakeholders, management, and customers to gather requirements and define specifications for software projects. Design, implement, and maintain efficient software systems and programs, using relevant programming languages like Java, Python, or C++. Write clean, testable, and well-documented code based on project requirements. Conduct software testing, troubleshoot issues, debug code, and work to improve overall software performance and reliability. Integrate developed software with existing systems, databases, and third-party applications as needed. Create comprehensive technical documentation for future maintenance and reference. Maintain, upgrade, and enhance current applications by adding features or fixing errors. Work effectively as part of a development team and participate in the complete software development lifecycle, including Agile or similar methodologies. Preferred candidate profile Strong expertise in multiple programming languages (e.g., Java, Python, C++, JavaScript). Knowledge of software design principles, data structures, algorithms, and databases. Familiarity with version control systems (like Git) and common development tools. Excellent problem-solving, analytical, and critical thinking abilities. Clear written and verbal communication, with attention to detail. Typically, a bachelors degree in Computer Science, Software Engineering, or a related discipline is required. Experience in Agile development environments and the ability to quickly learn new technologies.