Simple Machines UK – Job Ad – Senior Software Engineer - ML-driven applications
Position: Senior Software Engineer - ML-driven applications
Location: London, UK
Simple Machines. Data Engineered to Life™
Simple Machines is a leading independent boutique technology firm with a global presence, including teams in London, Sydney, San Francisco, and New Zealand. We specialise in creating technology solutions at the intersection of data, AI, machine learning, data engineering, and software engineering. Our mission is to help enterprises, technology companies, and governments better connect with and understand their organisations, their people, their customers, and citizens. We are a team of creative engineers and technologists dedicated to unleashing the potential of data in new and impactful ways. We design and build bespoke data platforms and unique software products, create and deploy intelligent systems, and bring engineering expertise to life by transforming data into actionable insights and tangible outcomes.
We engineer data to life™.
Requirements
The Role:
The Senior Engineer at Simple Machines is a dynamic, hands-on role focused on collaborating with internal and client teams to develop sophisticated and scalable solutions across data, software, infrastructure and AI.
Technical Responsibilities:
- Responsible for design and development of technical solutions for Simple Machines clients, including:
- Front end and back end software applications
- Data pipeline and data platforms
- Integration with and operations for AI models
- Responsible for end-to-end delivery and support, including build, automation, deployment, and operations.
- Partner with client stakeholders, and team members, to gather business requirements, collaborate on design decisions, and translate them into technical and design requirements.
- Operate within an iterative delivery team using Agile delivery tools and practices.
- Hybrid remote and in-person collaboration with the delivery team and client stakeholders.
Consulting Responsibilities:
- Client Advisory: Provide expert advice to clients on optimal data practices that align with their business requirements and project goals.
- Training and Empowerment: Educate client teams on the latest technologies and strategies, enabling them to efficiently utilise and maintain the solutions we have developed.
- Professional Development: Keep up with the latest industry trends and technological advancements, continually upgrading skills and achieving certifications in the technologies Simple Machines implements across its client base.
About the team:
Each team member has varying degrees of strength in each area, but all work together across the full stack and assist one another to learn and contribute.
The engineering team enjoys a high degree of autonomy over technical design and actively engages with stakeholders to design solutions. They also actively engage with data scientists and other teams to design and document cross-system solutions.
Essential:
- A consultative approach to software development.
- Core foundation in programming, especially in JVM languages (particularly Kotlin or Java).
- Experience designing and implementing data-driven APIs.
- Exposure to frontend development (particularly React.js, Tailwind, REDUX, Typescript)
- Experience in building applications which integrate with AI models
- Experience designing and building an experimentation capability to track and deliver optimisation of AI performance within a software application.
- Past project experience with large scale webservices.
- Cloud infrastructure experience with AWS and/or Google Cloud, Azure, etc.
- Infrastructure-as-code experience, such as with Terraform or Cloud Formation.
- In-depth experience with unit and integration testing, and test automation generally. Ideally TAA and/or BDD
- Experience working with SQL databases in the context of implementing data-driven APIs, and designing database schemas and queries to meet business requirements.
Desirable:
- A passion and proven background in picking up and adopting new technologies on the fly.
- Backend server experience using Kotlin.
- Exposure to Scala, or functional programming generally.
- Experience with highly concurrent, asynchronous backend technologies, such as Ktor, http4k, http4s, Play, RxJava, etc.
- Experience with DynamoDB or similar NoSQL databases, such as Cassandra, HBase, BigTable, or Cosmos DB.
- Experience with Git workflows, and the ability to tailor the workflow to project needs.
- Experience with containerised application deployment using Docker, Amazon ECS, Kubernetes, etc.