Job Specifications
Senior Software Engineer (JVM, Kotlin)
Simple Machines
Hybrid · Full-time · London, UK
About Simple Machines
Simple Machines is a leading independent boutique technology firm with a global footprint across London, Sydney, San Francisco, and New Zealand. We operate at the intersection of data, AI, machine learning, data engineering, and software engineering—building bespoke platforms and products that turn complex data into real-world outcomes.
We work with enterprises, technology companies, and governments to help them better understand their organisations, customers, and citizens. Our teams design and build large-scale data platforms, intelligent systems, and high-impact software products.
We engineer data to life™.
Requirements
The Role
As a Senior Software Engineer, you'll play a key role in delivering complex, scalable systems for ambitious clients. This is a hands-on engineering role where you'll work across the full stack—backend services, APIs, frontend components, data pipelines, and cloud infrastructure.
You'll collaborate closely with our internal engineering teams and client stakeholders, influencing technical direction while remaining deeply involved in design and delivery. This role suits someone who enjoys solving hard problems, owning outcomes end-to-end, and operating in a consultative engineering environment.
What You'll Be Doing
Design and build backend services for a highly scalable marketing platform
Own the design of APIs, applications, and supporting infrastructure
Document technical designs and requirements clearly for both internal teams and clients
Deliver solutions end-to-end: build, automate, deploy, operate, and support
Partner with clients and delivery teams to translate business requirements into robust technical solutions
Work within an Agile, iterative delivery model
Collaborate in a hybrid setup with both remote and in-person team members and stakeholders
The Team
You'll join a high-performing engineering team working on a large-scale machine learning platform for a global telecommunications client.
The team operates with a high degree of autonomy and shared ownership. Engineers work across the full stack, support one another's growth, and collaborate closely with data scientists and adjacent teams to design cross-system solutions.
Strong engineering culture, real influence, and meaningful problems to solve.
What We're Looking For
Core Experience
Strong foundation in JVM-based development (Kotlin preferred, Java welcome)
Experience designing and implementing data-driven APIs
Background working on large-scale web services
Solid SQL experience, including schema design and performance-aware queries
Deep experience with automated testing (unit, integration; TDD/BDD preferred)
Frontend & Full Stack Exposure
Experience with React, TypeScript, Redux, and Tailwind (or similar modern frameworks)
Cloud & Infrastructure
Experience with AWS, GCP, Azure, or similar
Infrastructure-as-code (Terraform, CloudFormation, etc.)
Containerised deployments using Docker, ECS, Kubernetes, or equivalent
Nice to Have
Exposure to Scala or functional programming concepts
Experience with asynchronous and highly concurrent backend frameworks (e.g. Ktor, http4k, Play, RxJava)
NoSQL experience (DynamoDB, Cassandra, BigTable, Cosmos DB, etc.)
Strong Git workflow experience and the ability to adapt workflows to project needs
A genuine appetite for learning and adopting new technologies quickly