Software Developer/ Engineer/ Architect

Java Developer AWS

Job Description

Java has been a key technology throughout our company history, and our Java evangelists have been responsible for delivering some of the largest Government systems as well as business-critical solutions to various sectors across a wide range of platforms, operating systems, open-source components and databases. This role can be remote if you are not in commutable distance to one of our sites with good flexible working. 

Version 1 utilises best of breed Java toolsets focused on Micro Services Architectures, powerful front- and backend frameworks, RESTful services, and everything from NoSQL databases like MongoDB and Hadoop, high-performance data grids like HazelCast to multi-node relational systems.

Developers will be responsible for the delivery of projects in an Agile way according to Functional and None Functional Requirements Specifications. You will be involved in technical leadership within a team to coordinate and deliver scalable, secure solutions in line with good industry software engineering practices (code quality, CI/CD, OWASP, TDD, SOLID, DRY etc). 

You will take technical ownership for a product or software components, covering design, estimation, shaping and functional/non-functional requirements. This will involved design, developing and maintaining cloud-based software applications using Java and associated frameworks (e.g., Spring, Groovy, Jersey, JUnit, Guava, Hibernate etc).

Essential Criteria:

  • Design, develop and maintain cloud-based software applications using Java and associated frameworks (e.g., Spring, Groovy, Jersey, JUnit, Guava, Hibernate etc)
  • Experience of developing RESTful microservice architectures and solutions which use data persistence approaches (e.g., SQL/No-SQL)
  • Experience of delivering software using Agile
  • Collaborate and liaise with other Version 1 team members, customer stakeholders and end users during the development lifecycle – e.g., PMs, BAs, Tester, Product, Platform etc
  • Clearly communicate technical designs in conversation, documentation, and presentations to stakeholders of various technical abilities
  • Provide effective knowledge transfer to team members and customers
  • Manage, coach, and develop junior members of your team and wider community