Developer (Supporting Doc-Man)
£400-450 per day. Outside IR35
Homeworking for foreseeable.
When the risk of COVID infection is eliminated or much reduced, we envision many of the team activities to take place at our offices in Edinburgh, for at least part of each week.
An experienced full-stack developer with solid commercial AWS development experience is required to accelerate Registers of Scotland's move from legacy onprem document management and archiving solutions to new cloud-native solutions.
We have made significant strides re-organising its IT software delivery capability to align to the key domains within the business. The organisations ambition is to have enduring development teams aligned to the business domains ensuring that ownership of software products is clear.
We design, develop, and operate 20 public registers. In addition to the well-known property registers (Land Register and Sasines), there are also registers of people, legislation, and documents.
The Supporting domain is one of six product domains established to enable to develop and support high quality and resilient digital products. The team is multi-functional with a strong collaborative and agile culture, and employing a test-driven and infrastructure-as-code ethos.
The Supporting domain owns and develops some of our core supporting products, such as document management and archiving, and our finance and HR systems.
- Migrate remaining sasine/archive images and retire legacy RAC system
- Develop suitable replacement and retire legacy LR Archive system
- Continued development and support of document management and archiving products in line with the domain product and architecture roadmaps.
- Demonstrate excellent, sustainable and collaborative software development practice that's focused on delivering highly readable, maintainable and appropriate artefacts.
- Actively participate in all team events, leading where specialist knowledge is required and supporting the team to improve their process through inspection and adaptation.
- Troubleshooting and fixing development and production problems across multiple environments and operating platforms.
- Engage with the wider communities of practice and interest to share knowledge, technique and experience
- Coach and mentor other members of staff and advise on team and organisational training requirements
- Ensures high quality of developed solutions through development and maintenance of unit tests - with appropriate code coverage - and code analysis using code quality tools,
- Ensures that developed software complies with non-functional software requirements such as accessibility, security, UI/UX, performance, maintainability and deployability,
- Routinely use collaborative development practices such as pairing and mobbing techniques in programming, code reviews, system design and requirements analysis, etc.
Significant commercial experience of the following technology:
- Serverless (Lambda)
- S3 (access monitoring)
- API Gateway
- CloudWatch/X-ray alert & monitoring integration
- Node JS
- Testing frameworks, including Cypress/React testing library
- Strong HTML/CSS skills and an awareness of accessibility considerations
Significant and demonstrable experience in the following areas:
- Delivering high quality software collaboratively in high-performing, cross-functional development teams.
- Designing, gaining consensus, and implementing technical solutions for software development projects
- Developing within Digital First or GDS quality standards
- Developing solutions using human-centred, research-driven, inclusive design practices
- Designing and implementing solutions using service and event-based architectures
- Front and back-end development
- Using testing tools for unit testing, including system test automation frameworks
- Cloud monitoring, telemetry, intelligence tools and processes, including Grafana
- Using written, verbal, and visual communication to explain complex topics concisely to both technical and non-technical audiences
- Incrementally replacing enterprise legacy systems
- Using CI/CD, Test Driven Development (TDD) and Pair Programming to produce high quality, maintainable code
- Working in Agile delivery models
- Defining infrastructure as code
- Using UI pattern libraries to achieve consistent, tested and high-quality interfaces
- Code quality, monitoring, telemetry and analytics tools
- Domain-driven design
- Human-centred, research-driven, inclusive design practices