We are looking for a Lead Software Engineer - Innovation Team to join our growing our new engineering innovation team who build our new product offering with our clients!
Our newest product line - a small, fast-moving team operating like a startup inside the company. While our core offering helps customers acquire better users and spend less doing it, Engage turns that intelligence inward: re-activating churned, dormant, and low-value users who are already on our customers' platforms. As a Senior Software Engineer, you'll work directly alongside the team's engineering lead, building the systems that take machine-learning predictions about user behavior and turn them into automated, continuously-learning decisions delivered straight into our customers' DB and CRM tools. This is a role with no narrow lane - you'll touch literally everything: data pipelines, ML and algorithms, applicative backend services, and even the UI. You'll partner closely with a VP Product and senior data scientists in a high-ownership environment where you shape the architecture, ship to production, and see your work drive a brand-new revenue stream for the company.
Responsibilities:
Design and build high-quality, production-grade systems across the entire Engage stack, from large-scale cloud data pipelines, to ML and decisioning services, to applicative backend and customer-facing UI, with an eye for performance, reliability, and easy maintenance.
Own the closed loop end-to-end: turning ML predictions into automated decisions, delivering them into customers' DB and CRM systems, and feeding outcomes back in so the system keeps learning.
Take features from idea to production largely on your own: designing the architecture, shipping it, monitoring it in production, and iterating, with the autonomy (and accountability) that comes with a small team.
Collaborate closely with the team's engineering lead, the VP Product, and senior data scientists to take models and research from prototype to reliable, scaled-up production systems.
Monitor performance and prioritize work by making data-driven decisions.
Participate in code reviews and uphold engineering standards and best practices across the team.
Requirements: 5+ years of hands-on experience building large-scale, production cloud systems end-to-end - architecture design, development, testing, and operating them in production.
Strong, broad software engineering foundations: solid grasp of software design principles, concurrency, data structures, and cost/performance trade-offs, and the judgment to know when each matters.
Hands-on experience with cloud-native, event-driven architectures (e.g. AWS Lambda and batch, SQS, S3 - or equivalent) and with modern data warehouses such as Snowflake / BigQuery / Databricks and pipeline tooling (dbt / Airflow / Spark / Glue).
Comfortable working across the whole stack and across domains: data pipelines, backend/applicative services, and a willingness to reach into ML/algorithmic code and frontend/UI when the work calls for it. You're a generalist who isn't scared of unfamiliar territory.
Proficiency in Python or a similar general-purpose language (e.g. Go, Java, Scala, C#, TypeScript/Node) - and the adaptability to pick up Python, our primary language, quickly.
A genuine "can-do" attitude and a strong sense of ownership - comfortable being accountable for systems end-to-end on a small team.
A team player with excellent communication skills, strong independent-learning ability, and the curiosity to explore new fields and constantly improve.
BSc in Computer Science / Engineering or equivalent (MSc an advantage).
Advantage:
Experience with applied ML / experimentation systems - recommendation, ranking, bandits, A/B testing, or causal inference.
Frontend / UI experience (we build our own dashboards and config tooling).
Containers and orchestration - Docker, Kubernetes, ArgoCD.
Infrastructure-as-code - Pulumi or Terraform.
This position is open to all candidates.