Senior Kotlin Software Engineer
Updated on 3/20/2023
Locations
London, UK
Experience Level
Entry
Junior
Mid
Senior
Expert
Desired Skills
Android Development
Apache Spark
AWS
Apache Kafka
Data Analysis
Docker
Google Cloud Platform
Kotlin
Postgres
SCRUM
Python
TypeScript
gRPC
NoSQL
Cassandra
Datadog
Requirements
- 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 from Datadog and deploy our code using ArgoCD
Responsibilities
- Be working alongside our ML engineers, data scientists and other software engineers within the tribe
- Write new features that enable our platform to understand articles in the media, extract information about individuals, apply ML models to categorise their actions, and merge all this with existing data we hold. Your work will allow our customers to find out who has done something bad, what they did, and when
- Join one of our scrum teams and help us to make the right technical and architectural decisions as we evolve and scale our systems. As a Senior, 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
- Coach others in the team, sharing best practices and mentoring them
- Proven Kotlin experience. Ideally this would be backend experience but we would also be open to individuals who have worked on Android development
- Experience writing production grade applications
- Awareness of a range of languages and paradigms, with the ability to coach/mentor juniors
- Experience with high scale applications such as APIs dealing with large request volumes, or data processing pipelines
- Experience with Docker/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)
- Experience of coaching or mentoring more junior members of an engineering team (nice to have)
- Good communication and written skills including experience producing technical documentation