Role Description:
Senior Java Software Engineer acts as a technical consultant and is responsible for proposing suitable technical solutions according to the project’s requirements and the best practices.
The role also includes the development, design, and implementation of new or modified software products or ongoing business projects. Engages in mentoring activities with other team members and collaborates with other team managers.
Design and implement the technical solutions together with other experienced colleagues (Technical Lead, Architect etc.). Gradually expand your knowledge about the software development application lifecycle, code quality, performance and trends in the field.
Responsibilities
Technical
- Research, assess, and recommend efficient and robust software solutions while being in line with the client’s needs
- Deliver a high-quality code ensuring the fulfilment of the requirements, taking into consideration also its performance
- Identify areas of improvement in existing programs and subsequent refactoring
- Be up to date with latest trends in your area of expertise
- Continue to learn and refine your skills as senior software engineer and offer support for your colleagues
Collaboration
- Work closely with other software engineers, product owners, team managers and clients
- Provide technical consultancy for the clients
- Mentor colleagues that would benefit from your knowledge
- Manifest a constructive and proactive attitude with the client and the team members
- Communicate risks/issues and improvement ideas to the relevant stakeholders
- Reinforce the implementation of the processes and agreements set up together with the project lead and the client
Job Requirements
- 5+ years of experience in software development
- Backend knowledge: Java 8/11, Spring Framework 4/5, Spring Boot (REST, JPA), Spring Boot 2, Maven, Typescript, NodeJS, SQL and NoSQL databases, Kotlin 1.4, PostgreSQL, JUnit/Mockito, Git
- DevOps knowledge: Docker, Kubernetes, Helm, Azure (ideal: IoT Hub), Terraform, (Kafka)
- Willingness to continuously improve the software
- Experience with Azure, microservice architectures & cloud adoption would be considered a plus
- Good troubleshooting and problem-solving skills (debugging, source control)
- Effective communication skills for team and client interaction
- Ability to adjust your strategies and ways of working in accordance with specific contexts
- Team player, having mentoring skills and being able to collaborate with colleagues and participate in feedback discussions
- German communication skills would be considered a plus