I have been retained for a new contract (Developer - Mapping) at Registers of Scotland from March 2022. The brief is below.
Summary
An experienced full-stack developer with solid commercial experience of building web applications and REST APIs using Java or Python microservices is required to accelerate the replacement and retirement of our legacy mapping system by delivering and maintaining modern GIS products.
Requirements
Main outcomes & objectives:
- development of Land Register Maintenance service and retirement of Mapbase Maintenance;
- development of digital delivery of land register data from the Cadastral Map;
- decommission DMS and other mapping legacy infrastructure and services.
Additional services:
- continued development and support of Mapping domain products in line with the product and architecture roadmaps with a view to improving digital sustainability and tackling areas of architectural and technical debt;
- demonstrate excellent, sustainable, and collaborative software development practice that’s focused on delivering highly readable, maintainable, and appropriate artefacts;
- extend and sustain the high-quality support procedures, dashboards, monitoring and deployment capabilities to ensure the team can continue to improve services via feedback;
- actively participating in all team events, leading where specialist knowledge is required, and supporting the team to improve their process through inspection and adaptation;
- engage with the wider RoS communities of practice and interest to share knowledge, techniques and experience;
- ensure high quality of developed solutions through development and maintenance of unit tests – with appropriate code coverage – and code analysis using code quality tools;
- ensure that developed software complies with non-functional requirements, such as accessibility, security, UI/UX, performance, maintainability, deployability, etc.
- troubleshoot development and production problems across multiple environments and operating platforms, from the AWS-based modern stack to the multiple strands of ETL and database (legacy and otherwise) that underpins the service;
- routinely use collaborative development practices such as pairing and mobbing techniques in programming, code reviews, system design and requirements analysis/refinement, etc.
- coaching and mentoring other team members, as appropriate.
Essential skills & experience
Significant commercial experience in the following technology:
- JavaScript UI frameworks, including React;
- Java 11+ and/or Python 3;
- Spring Boot, Python Flask microservices;
- Spring Security and OAuth2;
- Postgres/PostGIS;
- AWS;
- modern DevOps and CI/CD practices including deployment pipelines and Jenkins.
Significant and demonstrable commercial 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;
- using testing tools for unit testing, including system test automation frameworks;
- cloud monitoring, telemetry, intelligence tools and processes, including Grafana;
- incrementally replacing enterprise legacy systems;
- 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.
Desirable skills & experience
- Demonstrable experience in successful data migration initiatives;
- demonstrable experience in successful migration to cloud native development practices and techniques;
- demonstrable experience in transitional architectures;
Commercial experience of the following:
- AWS including:
- CDK
- Serverless (Lambda)
- S3
- SQS
- API Gateway
- CloudFormation
- Aurora/Postgres
- TypeScript;
- OpenLayers.