About this role
Software Engineer
Product Engineering & Client Solutions
About the Role
We are looking for a versatile Software Engineer to join our team and contribute across both product development and client consulting engagements.
This is a varied, hands-on role that combines building and improving our core product with working on technical projects for clients. You will help design, develop, deploy, and maintain high-quality software, while also applying your engineering skills to solve real-world problems across different environments and use cases.
Our primary technology stack includes Go, Python, TypeScript, AWS, and Kubernetes , although we recognise that strong engineers can work across different technologies and are open to candidates with complementary experience.
We are looking for someone who enjoys taking ownership, learning new technologies, working through ambiguity, and adapting to different technical challenges. You should be comfortable moving between longer-term product initiatives and shorter-term client assignments, collaborating with colleagues and clients to deliver practical, reliable solutions.
The Opportunity
This role is ideal for a software engineer who enjoys building great software but also values variety, exposure to different problems, and the opportunity to work directly with clients.
You will have the opportunity to contribute to a product over time while also applying your skills to new challenges as they arise. The ideal candidate is technically capable, adaptable, commercially aware, and motivated by making a tangible difference through software.
Key Responsibilities
Product Development
- Design, build, test, and maintain features for our core software product.
- Contribute to technical architecture, engineering decisions, and the evolution of our platform.
- Write clean, maintainable, well-tested, and production-quality code.
- Identify opportunities to improve product functionality, performance, reliability, security, and scalability.
- Collaborate with product and engineering colleagues to translate requirements into effective technical solutions.
- Participate in code reviews and contribute to engineering standards and best practices.
Client Consulting & Project Delivery
- Work on software engineering assignments and technical projects for clients as business needs arise.
- Understand client requirements, assess technical challenges, and develop pragmatic solutions.
- Contribute to the design, development, integration, and deployment of software across a range of client environments.
- Adapt to different technology stacks, architectures, and delivery approaches where required.
- Communicate technical concepts clearly to both technical and non-technical stakeholders.
- Take ownership of assigned deliverables and help ensure projects are completed to a high standard.
Cloud Infrastructure & Platform Engineering
- Build and deploy applications and services in cloud environments, principally AWS.
- Work with containerisation and orchestration technologies, particularly Docker and Kubernetes.
- Contribute to CI/CD pipelines, automated testing, deployment processes, and infrastructure automation.
- Help monitor and troubleshoot applications and services in production.
- Apply good practices around cloud security, observability, reliability, and operational efficiency.
Collaboration & Continuous Improvement
- Work effectively across product development and client-facing project teams.
- Break down complex problems into manageable technical tasks.
- Share knowledge, contribute ideas, and help improve our development processes.
- Stay curious about emerging technologies and identify opportunities to apply them where they deliver genuine value.
Technical Skills & Experience
We are looking for a strong software engineer with a solid foundation in software development and an interest in working across multiple areas of technology.
Core technologies
- Go (Golang): Experience developing backend services, APIs, or distributed systems.
- Python: Experience building applications, automation, integrations, or data-processing solutions.
- TypeScript: Experience developing applications, APIs, or frontend components.
- AWS: Familiarity with cloud services, application deployment, and cloud architecture.
- Kubernetes: Experience deploying, operating, or supporting containerised applications.
We do not expect every candidate to be an expert in every technology. Strong experience in some areas, combined with the ability and willingness to learn others, is important.
Additional skills that would be beneficial
- Experience designing and integrating REST APIs or other service interfaces.
- Familiarity with Docker, CI/CD pipelines, Git, and automated testing.
- Understanding of databases, data modelling, and distributed systems.
- Experience with infrastructure as code, such as Terraform or AWS CloudFormation.
- Knowledge of observability, logging, monitoring, and production troubleshooting.
- Experience working with third-party APIs, legacy systems, or complex integrations.
- Exposure to security best practices and cloud-native application design.
What We're Looking For
- Strong software engineering fundamentals and sound problem-solving skills.
- A practical, delivery-focused approach to building software.
- The ability to take ownership of tasks and work independently when needed.
- Adaptability and an interest in working across different projects and technical environments.
- Clear communication skills and the ability to collaborate with clients and colleagues.
- A willingness to work with evolving requirements and navigate ambiguity.
- A commitment to writing quality code and building maintainable solutions.
- Curiosity, initiative, and a desire to keep learning.
Experience in a consulting, professional services, startup, or product engineering environment would be an advantage, particularly for candidates who enjoy balancing delivery commitments with longer-term product development.
Why Join Us?
- Variety: Work across a core product and a range of interesting client assignments.
- Ownership: Have a meaningful impact on technical decisions, product direction, and project outcomes.
- Modern technology: Work with Go, Python, TypeScript, AWS, Kubernetes, and related technologies.
- Continuous learning: Develop your skills across product engineering, cloud infrastructure, and client solutions.
- Problem-solving: Tackle different technical challenges rather than working within a narrowly defined engineering remit.
- Collaboration: Work with a team that values practical engineering, initiative, and delivering results.