The main purpose of this role is to take technical ownership of the architecture, design, development, and evolution of software platforms and supporting systems. The primary focus is full stack software architecture and hands-on development, covering back-end services, databases, APIs, integrations, and web applications. The role also provides senior technical ownership of ICT infrastructure, security, and operational practices required to deliver dependable systems. This is a hands-on technical leadership position with responsibility throughout the software lifecycle-from requirements and architecture through development, deployment, support, and continuous improvement . Requirements: A degree or diploma in Computer Science, Software Engineering, Electronic Engineering, Information Technology or a related discipline; equivalent demonstrable experience will also be considered. Substantial professional software development experience, typically eight or more years, including ownership of production applications. Demonstrated experience in a senior development, technical lead, software architect or comparable role. Proven experience designing and delivering full stack applications from requirements through deployment and operational support. Practical experience with Linux, databases, cloud infrastructure and production troubleshooting. Experience guiding developers, reviewing technical work and making architectural decisions. Relevant cloud, networking or Linux certifications would be advantageous Required Technical Competencies Software Engineering & Architecture: Strong back-end skills in Java and/or languages like Python, PHP, TypeScript, or C#; proficiency in JavaScript/TypeScript, HTML, CSS, and modern front-end frameworks. Core Principles: Expertise in object-oriented design, SOLID principles, modular architecture, REST APIs, asynchronous processing, and secure development (authentication/authorization). Databases & Data Processing: Strong SQL skills and relational database experience (MySQL, MariaDB, PostgreSQL) covering indexing, transactions, optimisation, and migrations, plus familiarity with NoSQL, caching, and messaging. Infrastructure & DevOps: Solid Linux administration, cloud experience (preferably AWS), Git, CI/CD pipelines, Docker deployments, networking (TCP/IP, DNS, firewalls, VPNs), and system monitoring/backups. Advantageous Experience Industrial IoT, telemetry, smart metering, utilities, renewable energy, MQTT, or event-driven systems managing fleets of intermittent devices. MongoDB, Redis, message brokers, event-streaming, IaC, hybrid/hosted infrastructure, Android development, and embedded hardware collaboration. Operational analytics, anomaly detection, or practical AI integration. Personal Attributes Takes full ownership, combines architectural judgement with hands-on coding, and balances technical quality with practical delivery. Systematic problem solver, independent worker, and effective cross-functional collaborator. Communicates clearly and maintains a customer-focused approach to reliability and service delivery Duties will include, but not limited to: Software and systems architecture Lead the architecture and technical design of new software platforms and enhancements to existing systems. Translate business objectives, customer requirements and operational constraints into practical technical solutions. Define application structures, service boundaries, data models, APIs and integration approaches. Design for security, maintainability, scalability, performance, availability and interoperability. Assess existing applications and infrastructure, identify technical debt and develop prioritised improvement roadmaps. Evaluate technologies and frameworks, considering lifecycle cost, team capability and long-term supportability. Maintain architectural documentation and provide technical authority for design decisions and reviews. Full stack software development Lead and contribute directly to developing, maintaining and improving back-end services, web applications and operational tools. Develop business logic, APIs, dashboards, reporting functions and customer workflows. Design and optimise database schemas, queries and data-access mechanisms. Integrate applications with the Company's devices, communication systems, customer platforms and third-party services. Improve existing Java-based and web-based applications while maintaining operational continuity. Write secure, efficient, testable, and maintainable code. Conduct code reviews and resolve complex defects across application, database, and integration layers. IoT platform and data integration Design and develop software for device connectivity, telemetry collection, remote monitoring and control. Establish reliable processes for receiving, validating, processing and storing device data. Account for intermittent connectivity, delayed and duplicate messages, retries and device reconnection. Develop device-management, alerting, incident-management and diagnostic capabilities. Support integration with metering, utility and industrial systems. Work with hardware and firmware engineers to define interfaces, communication behaviour and diagnostic requirements. Establish data foundations for reporting, analytics and appropriate AI or machine-learning applications. Development planning and delivery Work with management, engineering teams and customers to define scope, priorities and acceptance criteria. Prepare technical specifications, development estimates and implementation plans. Identify technical risks, dependencies and resource requirements. Break complex projects into achievable development stages and communicate progress clearly. Support technical proposals, feasibility assessments and customer demonstrations. Take responsibility for technical delivery against agreed requirements and quality expectations. Software quality, DevOps and deployment Establish and maintain development standards, version-control practices and code-review processes. Define appropriate unit, integration, system and performance testing. Develop and improve CI/CD pipelines, deployment automation and configuration management. Implement controlled releases, database migrations and rollback procedures. Ensure suitable logging, monitoring and diagnostics are included in production applications. Maintain technical documentation, deployment guides and operational handover material. Improve development efficiency while maintaining accountability for software quality, including when using AI-assisted development tools. ICT infrastructure, security and reliability Provide senior technical ownership of the infrastructure supporting the company's applications and services. Design, maintain and optimise Linux servers, cloud resources, virtualised environments, containers and databases. Oversee application connectivity, routing, firewalls, VPNs and secure remote access in collaboration with the technical team. Implement appropriate access controls, secrets management, patching and vulnerability remediation. Establish effective monitoring, capacity planning, backups and tested recovery arrangements. Assess infrastructure costs and improve resource utilisation. Lead the technical investigation of complex production incidents and implement corrective actions. Technical leadership and customer support Act as a senior technical authority across software development and supporting systems. Mentor colleagues and strengthen the team's design, development and troubleshooting capability. Review technical work and promote consistent engineering practices. Engage directly with customers and partners on requirements, architecture, integrations and complex technical matters. Provide senior escalation support during commissioning and live operation. Share knowledge and maintain documentation that enables the wider team to operate and support systems effectively. In return, a competitive salary is on offer