Senior Software Engineer (Backend)
Role details
Job location
Tech stack
Job description
- Contribute to the design, development, and deployment of robust software solutions, promoting best practices throughout the software development lifecycle.
- Contribute to architecting and maintaining complex data engineering pipelines, backend services, and APIs to ensure scalability, reliability, and high performance.
- Support the thorough review of Python and SQL code via Git, promoting code quality, security, and adherence to engineering standards.
- Support cloud-based deployments and infrastructure (e.g. Azure, GCP), leveraging Linux scripting and advanced Docker skills including storage, volumes, and permissions.
- Develop and implement database solutions using SQL and Cloud platforms, with a focus on optimising performance and data integrity.
- Mentor and guide junior engineers, facilitating knowledge sharing and the adoption of best engineering practices.
- Troubleshoot and enhance existing systems, applying advanced problem-solving and analytical skills.
- Effectively communicate technical concepts and project outcomes to stakeholders through written documentation, calls, and presentations.
- Demonstrate high attention to detail across all development activities, contributing to deliverables that meet technical and business requirements.
- Remain up to date with emerging software engineering technologies and industry trends and proactively suggest improvements and new approaches.
- Identify technical risks and contribute to project planning and task management, helping to achieve successful outcomes.
Requirements
We are looking for a Senior Software Engineer (Backend) to play a pivotal role in leading the design, development, and deployment of complex software solutions. You will architect and maintain data engineering pipelines, backend services, and APIs, delivering reliable and scalable systems that address business needs across diverse industries. This position requires deep expertise in software engineering concepts, advanced coding abilities (preferably Python), and hands-on experience with cloud deployments, databases, and containerisation (Docker).
We're looking for someone with a co-operative, can-do attitude who can build high-quality data engineering solutions., * Mastery of at least one programming language (preferably Python) with deep understanding of advanced technical concepts (system architecture, microservices, cloud-native design, OOP, concurrency, decorators, recursion)
- Experience in delivering, designing, and deploying scalable software solutions and complex software projects, including backend services, data engineering pipelines, and APIs
- Experience in DevOps practices, such as CI/CD, version control (Git, GitHub, Azure DevOps), infrastructure as code, and collaborative workflows
- Experience with Docker development workflows, including DockerFiles, storage, volumes, and production-grade deployments
- Strong understanding of databases (SQL Server, Postgres) and ORMs (e.g., SQLAlchemy, Prisma), including database migrations (Alembic)
- Advanced knowledge of cloud deployment (AWS, Azure) and Linux scripting (e.g., bash)
- High attention to detail with a thorough approach to code review and testing
- Track record of mentoring, establishing engineering best practices, and code quality assurance
- Effective communication skills, able to convey complex technical concepts to diverse audiences (stakeholders, technical/non-technical)
- Demonstrated ability to work independently and make architectural decisions
- Ability to identify, propose, and implement improvements to engineering processes
- Strong problem-solving skills and analytical thinking
- Hands-on experience with cloud infrastructure (deployment, monitoring, scaling)