Software Engineer
What you will be doing
We are looking for driven, talented Software Engineers to join our Transaction Services team within the Platform Tribe. You will help build and maintain backend platform components that power our SaaS-based transaction monitoring solutions and enable new client product offerings.
As a Software Engineer, you will
- Write new features that enable orchestration of complex workflows in our platform as well as large scale data migrations
- Join one of our scrum teams and help us make the right technical and architectural decisions as we evolve and scale our systems. As a team member, we will look to you to sometimes take a lead in these discussions and bring your own ideas as well as solicit and incorporate ideas from others in the team
- Write tests, and take ownership of the systems that ensure the quality of our code
- Be working alongside our ML engineers, data scientists, and other software engineers within the tribe
Our Tech Stack
- Our technology stack is designed to run on public cloud architectures, notably AWS and GCP
- Development is organised around Kotlin and Python for our backend languages and TypeScript/ES6+React for our frontend stack
- We make substantial use of relational database technologies, notably Postgres and also use of large scale noSQL technologies such as Cassandra
- We also use an event-sourced model powered by Kafka for our communication bus and gRPC for our intra-service communication protocol
- For our data and AI teams, experience of machine learning development and very large scale columnar data stores (e.g. Apache HBase, Databricks) is key, as well as experience of large scale data streaming technologies such as Apache Spark, graph databases (e.g. Neo4j, AWS Neptune, TigerGraph)
- We use modern observability solutions built on Grafana Cloud, and deploy our code using ArgoCD
About you
As a Software Engineer, you will have
- At least 3 years experience writing production-grade Kotlin or Java based applications
- Awareness of a range of languages and paradigms, with the ability to share knowledge
- Experience with high scale applications such as APIs dealing with large request volumes, or data processing pipelines
- Experience with containerisation and cloud infrastructure
- Ownership of software from idea inception to production
- Experience working with tooling for testing, build and deployment pipelines (setting it up is a plus)
- Working understanding of logging, monitoring and alerting tooling (setting it up is a plus)
- Good communication and written skills including experience producing technical documentation
Nice to haves
- It would be nice if you had experience working in a multi-disciplinary team (ML Engineers, SREs, Product)
- Worked in an agile environment and have experience in pair programming
Education
- BSc/BA degree in computer science, engineering or related discipline OR relevant years of experience in required skills.
What’s in it for you?
- Equity as we...