8 months ago
Job Title: Enterprise Java Developer Vacancy
Clearance Level Required: BPSS
6 months Contractor
Part B - Job/Person Specification
The department develops and supports a number of key software products used during the manufacture of satellite payloads based out of the company site in Portsmouth.
Experience of modern development methodologies is paramount, with fluency in Maven, CI (Jenkins) and Test Driven Development.
The complex and critical products are a mix of architectures and languages satisfying various customer (internal and external) needs.
As well as maintaining and developing current software products, a number of legacy C++ products need to be re-architected in Java to fulfil customer requirements.
The successful candidate must show experience and previous knowledge in designing distributed software architectures utilising Java 8 (onwards), Java EE, & the Spring Framework across Windows/Linux platforms. The successful candidate shall also be experienced in both relational (SQL) & non-relational (NoSQL) databases including the setup, performance tuning & replication of such systems.
The successful candidate must show experience and previous knowledge in designing software architectures utilising Java EE/Spring technologies across windows/Linux application archetypes as well as with Relational/NoSQL database server, setup, performance tuning, replication etc.
A full-stack developer who can interpret written & verbal business requirements / technical specifications to design, develop, test (Unit & Regression), and deliver developments to agreed timescales, the resultant software being architecturally sound and scalable.
Role within Department:
The implementation and development of current software applications and process for current and future software platforms used within the design / testing a satellite payload during manufacture.
Writing, debugging and validation of software components migrating to future software architectures and databases, but there may be required some support of the current software builds.
Working closely with the software testers to resolve defects as well as contributing to the code coverage of products by generating unit tests.
Providing software support to live projects using the products.
Knowledge of the following:
o Agile SCRUM and full SDLC experience with JIRA / TFS.
o Application and Service software architect background in Java.
o Experience with both Windows and Linux platforms.
o Microservices & scalable, distributed software systems.
o Enterprise Design Patterns
o Relational & Non-Relational Databases
o Software Modelling (UML)
o XML & JSON Message-based Parsing
o System Administration of Linux & Windows machines
o Basic Understanding of Networks (LAN)
* Agile SCRUM methodology
* Full-stack Java Development, Architect, Developer, Lead.
* Mixture of Spring and AKKA reactive programming development.
* Demonstrable experience of developing client/server or distributed software systems in Java.
* Good working knowledge of software architecture and design.
* Good understanding of database solutions.
* Experienced in message-based parsing (JSON & XML)
* Problem solving and the ability to think laterally as part of a team or individually to meet the needs of the project.
* The ability to work unsupervised, within a team on multiple and concurrent tasks to tight deadlines.
Extensive software development experience:
o Java 8 onwards & JavaEE (5+ years' experience)
o Spring Framework (3+ years' experience)
o Importance of TDD & BDD.
o Scalable, distributed systems experience.
o Relational & Non-Relational Database Models
o Documentation skills (UML)
o Connectivity and protocol stack experience (TCP/UDP)
o Can work independently and quickly to a high standard
o Unit & integration testing (JUnit, TestNG, Selenium)
o Agile (Scrum/Kanban : JIRA / Confluence / Crucible & FishEye)
o Understanding of CI/CD (Jenkins / Maven / Nexus).
o Team player
Desirable additional experience with:
o Functional Programming
o Reactive Development & Actor Based Concurrency (AKKA)
o Behaviour Driven Development (BDD) with Cucumber
o Mentoring and Lead Capabilities
o RESTful APIs
o User Interface Design
o Container & Cloud Technologies (Docker / AWS / Azure)