Scala Engineer at Snowplow Analytics

Scala Engineer (Management Console)
UK (remote or office-based)

Who are we:
We are a team of engineers who want to get things done.
Our open core behavioural data platform is used by data teams to drive a better understanding of their customers – the right way. We empower and actively encourage companies to own their data strategy and the data it creates. Data quality, privacy and security are our top priorities.

Snowplow is a technical product, so our Engineering team is at the forefront of what we’re offering our customers and community. We have steadily grown the team over the last two years, following investment from Atlantic Bridge and MMC Ventures. Our aim through this growth has been to maintain, if not increase, our productivity from the early days. We focus on building autonomous teams of engineers who understand where they fit in the wider Engineering efforts and collaborate closely with our top team of Product Managers. That’s us in 146 words, but there is so much more we could tell you!

The Opportunity:
We’re looking for an experienced Scala Engineer to enhance and extend the capabilities of the online data management experience we give our customers. You’ll be working to build features that support the daily workflows of data teams and make their lives easier. Our management console is offering control of the pipelines and visibility into them, while also trying to solve problems of organisational complexity. The cross-functional team you will join sits between infrastructure, the pipeline, and our customers, offering a complete view of how Snowplow technology is positively impacting data teams and their capability to drive their business forward.

Our ethos is that we want the right people making the best decisions, and you can expect we’ll be asking you what you think. Our engineers take on a lot of responsibility. This includes product ownership, testing (automated wherever possible), route to live, etc. We are not micromanaged and we don’t throw our work over the fence. In learning about and taking on these responsibilities we believe we can make quicker decisions.

Our wider team of 25+ fully remote engineers work directly and closely with other teams in the business. We have been remote for many years and do remote very well, while continually looking at how to do it better and adapt as we grow. There is a huge opportunity at Snowplow to learn more about all aspects of engineering and data, from code to customers, and how to be the most productive and empowered version of you.

What you’ll be doing:
Enhancing the Snowplow management console. Building features to monitor pipelines, control their configuration, and support data governance.
Working within the Scala ecosystem. You’ll primarily be working with purely functional Scala, along with with cats, cats-effect, fs2, http4s and various other libraries mostly from Typelevel stack. Although you might also get a chance to explore a Python repository with code sitting outside the critical path.
Building fine-grained access policies. We have integrated with the Open Policy Agent to manage fine-grained policies in the console. You will be building Rego expressions to implement such policies together with their automated tests. We understand this is a bit too specialised and do not expect you to be familiar with OPA/Rego already (but of course would highly appreciate it if you are).
Looking after the route to live. You’ll be writing Terraform to automate the deployment process of our backend.
Protecting future-us through automated testing. Continue to improve our automation and testing experiences, extend our existing Github Actions CI/CD processes to make it easier to work and contribute to our projects.
Writing top documentation. We understand the importance of documentation in supporting our users and scaling that support as efficiently as possible. Whenever we release new features we try to ensure they are accurately documented.
Supporting our customers. The team you will join does not have on-call rotations, but its members engage in escalated tickets to support our customers when they need help.
Be empowered and empower others. Working in a productive, empowered team. Most companies talk about the importance of this, but we’re really doing it. Let’s talk about how.

Technical requirements of the role:
You have professional Scala experience. You are also experienced with the Typelevel stack, or at the very least you are eager to dive into pure functional programming and master it with Scala.
You have had some exposure to AWS. We are running on AWS and use services such as ECS/Fargate, Elasticache, RDS, ECR, SNS, SQS. Ideally you have also written a bit of Terraform in the past.
You place maximum emphasis on security. Data security and integrity are fundamental to what we do, so you’ll need a solid understanding of security threats and how to overcome them.

What you need to be successful in this role:
We take pride in our culture. A strong culture fit is at least as important as technical skills. We try to remain humble while doing our job as best as we can. We recognise that successful teams are not simply the sum of their parts, but rather an empowered, motivated, highly collaborative whole.
You are kind and empathetic. We expect team members to be polite and respectful when interacting with customers and colleagues alike. Nobody knows everything, no-one is always right, and we all make mistakes. Being able to recognise that and drive discussions or retrospectives towards learning and improvement is paramount.
You are pragmatic. We can’t do everything today. We highly value correctness and want to be proud of our code, but cannot aim for arbitrary definitions of quality at the expense of feature delivery. We balance our speed of learning with our commitment to providing a reliable and trusted service to customers.
You enjoy working remotely. Our remote team depends on expert collaborators to work effectively. You’ll be a great communicator and enjoy working closely with the team.
You are self-motivated. You don’t wait to be told what to do. You can understand a problem, drive toward a solution and recognise when you need support or more direction.
You care about data and data teams. Previous experience in data is a plus, but most importantly you have an interest in data, supporting data professionals and empowering companies to make better decisions.

What you get in return:
A competitive package, including share options25 days of holiday a year (plus public holidays)
Freedom to work from wherever suits you best
Cycle to work scheme if UK-based
Two fantastic company Away Weeks in a different European city each year (or when this isn’t possible, we have “Stay Away Weeks”)
Mental health support including therapy sessions
Work alongside a supportive and talented team with the opportunity to work on cutting edge technology and challenging problems
Grow and develop in a fast-moving, collaborative organisation
MacBook and home office equipment
Enjoy fun events organised by our Cultural Work Committee
Convenient location in central London for those who want to work there / when you come to visit
Continuous supply of Pact coffee and healthy snacks in the office when you’re here!

Snowplow is dedicated to building and supporting a brilliant, diverse and hugely inclusive team. We don't discriminate against gender, race, religion or belief, disability, age, marital status or sexual orientation. Whatever your background may be, we welcome anyone with talent, drive and emotional intelligence.

Please let the company know you found this position on so we can keep providing you with quality jobs.