Grade GResponsible for delivering software / platform engineering activities (depending on specialism), using advanced technical capabilities to fully understand user requirements, acting as the lead for the design, development and maintenance of a software system / infrastructure platform, and assisting in creating the vision to maximize value from current and emerging technologies. Specialisms: Software Engineering; Platform Engineering.
- Preferably a Bachelor's (or higher) degree, preferably in Computer Science, MIS/IT, Mathematics or a hard science.
- Data Platform Delivery & Management: Delivers, manages and operates data platforms including but not limited to: data hubs, ETL and data ingestion, storage and repository maintenance, data publishing and consumption. Ensures that services and components meet fundamental data management and governance best practices, and the necessary security, devops and dataops control framework are in place.
- Availability Management: Contributes to the availability management process and its operation and performs defined availability management tasks. Analyses service and component availability, reliability, maintainability and serviceability. Ensures that services and components meet and continue to meet all of their agreed performance targets and service levels. Implements arrangements for disaster recovery and documents recovery procedures. Conducts testing of recovery procedures.
- Capacity Management: Monitors service component capacity and initiates actions to resolve any shortfalls according to agreed procedures. Applies techniques to control the demand upon a particular resource or service.
- Emerging Technology Management: Maintains awareness of opportunities provided by new technology to address challenges or to enable new ways of working. Within own sphere of influence, works to further organisational goals, by the study and use of emerging technologies and products
- Programming Development: Designs, codes, tests, corrects and documents complex programs and scripts from agreed specifications, and subsequent iterations, using agreed standards and tools, to achieve a well-engineered result
- Release and Deployment: Assesses and analyses release components. Provides input to scheduling. Carries out the builds and tests in coordination with testers and component specialists maintaining and administering the tools and methods – manual or automatic - and ensuring, where possible, information exchange with configuration management. Ensures release processes and procedures are maintained
- Systems Design: Produces detailed designs and documents all work using required standards, methods and tools, including prototyping tools, physical data flows, file layouts, common routines and utilities, program specifications or prototypes and backup, recovery and restart procedures where appropriate
- Technical Specialism: Maintains knowledge of specific specialisms, provides detailed advice regarding their application and executes specialised tasks
• Deep and hands-on experience designing, planning, implementing, maintaining and documenting reliable and scalable data infrastructure and data products in complex environments.
• Development experience in one or more object-oriented programming languages (e.g., Python, Go, Java, C++)
• Experience designing and implementing large-scale distributed systems
• Exposure to adjacent domains such as platforms, storage, databases, etc
• Knowledge and experience in development and managing operations of IOT streaming, IOT Edge processing, and Digital Twins is a plus
• Knowledge of graph technologies is a plus
• Good knowledge and understanding of modern development methodologies (Agile using Scrum and/or Kanban).