The role of Software Developer is responsible for the design, development, documentation and technical support of software applications and solutions. The Software Developer will be working across a range of projects complex and simple developing software/solutions and integrations for our platform using an agile delivery methodology.
Our integrated information and visualisation platform and is a key component of our service to support asset owning clients with the development of infrastructure and building digital twins.
The role will be responsible for the successful development of functionality and delivery of the platform to end clients.
- Translate work items and “use” cases into functional applications.
- Estimate and tracking of work items.
- Design, build, implement and maintain efficient, reusable and reliable code.
- Ensure the best possible performance, quality and responsiveness of applications.
- Timely completion of work items.
- Design and Quality test code to achieve bug free development
- Document all development work to assist users and product support.
- Successful exploitation of technology and tools.
- Understanding specifications, functional requirements and user stories.
- Estimating time to complete work items.
- Coding (testable, clean, reusable, maintainable, readable)
- Ability to deliver quality coding which is free from defects (few bugs, few iterations with refactoring)
- Analytical thinking and experience (design prior to coding)
- Creativity (find better ways to achieve project goals)
- Understanding of the benefits technology can bring (ability to see the bigger picture)
Job Skills & Knowledge (Essential)
- At least (5 years’) commercial knowledge and experience in Java Development.
- Knowledge of methodologies, design patterns and enterprise architecture including OO, SOLID, TDD, DDD, BDD and Unit testing frameworks.
- Proficiency in developing REST based applications (JSON and XML).
- Familiar with the development of database application including SQL and NoSQL databases.
- Experience with Full Software Development Life Cycle practices.
- Analytical mindset and good problem-solving skills.
- Excellent written and verbal communication.
- Good organizational skills.
- Ability to work as part of a team.
- Attention to detail.
Job Skills & Knowledge (Desirable)
- Knowledge of Continuous Integration/Continuous Deployment solutions.
- Knowledge of Microsoft Azure, and other cloud providers.
- Knowledge of Mobile technology and systems including Android and iOS.
Degree and / or Higher National qualifications related to Computer Science/Software Engineering as well as relevant professional qualification(s)
Member of or working towards full membership of a relevant professional institution