Senior Software Engineer
As the Senior Software Engineer you will be responsible for designing, building, testing, and delivering new features. You will analyze and fix existing bugs and play an important role in refactoring and improving our Client’s existing code. You will also build strong network security skills by working in an industry-leading company in security policy orchestration, and improve your analytical skills and algorithmic thinking.
Responsibilities:
- Work as part of an agile team using Scrum as development method
- Design, build, test and deliver new features. Full ownership of all steps in the development life cycle is expected
- Analyze and fix existing bugs
- Put efforts to refactor and improve existing code
- Make use of extreme programming practices (CI, refactoring, reviews, pair programming, automated tests, incremental design)
- Continuously improve your skills and learn new technologies
Requirements:
- Very good analytical thinking and problem-solving skills
- Proven experience in designing and building large scale distributed systems
- Good understanding of quality properties (security, performance, scalability, availability, resilience, evolution etc.)
- Good knowledge of the HTTP protocol and of building software for the WWW
- Strong knowledge of the Java programming language and the related technologies (yes, we use Spring and Hibernate)
- Proven experience in applying object-oriented design principles, patterns and best practices
- Good knowledge of using SQL databases
- Experience using messaging protocols like JMS or AMQP, or other distributed messaging systems like Nats