Your Role will Involve:
- Working on a message processing application in a cloud environment.
- Writing and delivering code for functionality and features in application modules and debugs existing code.
- Following coding guidelines and practices and all technical processes.
- Developing and validating estimates for technical work that will be undertaken.
- Participating in analysis of requirements for designing new application and system features and analyzing and triaging defects on an as-needed basis.
- Ensuring the quality of the software, believing that disciplines like TDD, CI, and regression testing through automated testing are just as important as writing the code itself.
- Being accountable for the consistency of application code, ensuring it meets the requirements of the functional specification/s and ensuring any issues or risks that may affect the project deliverables are raised to the Development or Project Manager.
We would like it if you have below qualifications, knowledge and experience:
- Software engineering experience in a development capacity preferably using a mainstream Object Orientated language Java
- Bachelors or master’s degree in Computer Sciences or Engineering.
- Professional programming certification in a mainstream programming language is a plus.
- Java – including collections, JDBC, String handling, Generics, threads,
- Apache Service Mix, Camel, IBM MQ, Oracle, Maven
- Spring framework (including inversion of control container for the Java platform)
- JAXB, Mockito, JUnit testing/mocking
- Experience working in Test Driven Development environments and have strong experience with Unit Testing.
- Have the mindset that Unit Test code is as important as Application code.
- Good understanding of developing from server to database.
- Experience developing within an Agile team and Continuous Integration environment.
- Sound knowledge of and ability to apply standard software development principles, theories, concepts, and techniques.
- Ability to develop designs for small to medium systems or features in large applications.
- Demonstrate an understanding of trade-offs and risks with programming choices.
- Ability to coordinate multiple technical streams of work to produce a complete solution.
- Ability to estimate and lead the estimation process for small initiatives.
- Ability to work well both independently or as a member of a team