The Software Developer is responsible for designing, developing, testing and maintaining the software solutions according to specifications, ensuring delivery of the product on time while producing maintainable, scalable, reusable, well-documented quality code, following the standard and the full software development lifecycle (SDLC).
- Develop detailed technical design specifications and code accordingly.
- Share technical expertise with the team through mentoring and code reviews.
- Establish and ensure best practices and coding standards are applied maintaining high standards of software quality.
- Communicate estimates and assist management with resource and task planning.
- Ensure an appropriate level of documentation is maintained as required to facilitate the development, delivery and traceability of the project.
- Participate in explaining and presenting the system design, functional requirements, and documentation to various audiences (e.g. support, PM, security, Ops/DevOps…).
- Develop solutions according to the provided specifications, ensuring the systems’ extensibility, robustness, and scalability.
- Test and debug the implemented functionalities and provide fixes for the reported bugs and issues.
- Provide training to users and the technical support staff on the implemented system.
Experience / Education / Skills
Master’s degree in the information technology field, or equivalent.
A minimum of at least 3 years of experience in software development in Java
Software development experience within a team using the agile development methodology.
Experience in maintaining code quality, standards, processes and development processes.
Knowledge of the following technologies/tools :
SQL/ Java/ Spring Boot/ Nginx/ MSA/ SOA/ REST/ API/ Cryptography/ Secure Coding/ Design patterns/ Docker/ HSM/ PKCS11/ OpenSSL/ PKI/ CI/ Linux/ Windows/ PostgreSQL/ Git/ Jenkins/ JIRA/ Confluence.