We're the team in the engine room responsible for delivering infrastructure, features, and consistent experiences to our millions of monthly page views.
How we work
We're an agile, cross-functional team and we encompass the following areas:
Team Backend / Infrastructure is coding almost exclusively in Scala the Backend team is responsible for developing the GraphQL API and data processing jobs. The team also focuses on monitoring and site reliability engineering as well as devOps improvements.
Team Frontend are the keepers of the serverless hosted React webApp the Frontend team is responsible for implementing a smooth and performant experience on The Org
Team Data is armed with the latest machine-learning techniques. The Data team is responsible for data excellence and for designing a deeply personal and helpful data driven experience on the platform.
What makes us unique?
Being based in Copenhagen, we work closely with Product and Design to scope and spec features, and we try to have short iterative cycles from concept to production. We believe in agility and curiosity and we enjoy experimenting with the latest technologies, educating ourselves, and challenge the status quo.
We take pride in delivering meaningful features written in pretty code (that sometimes has tests) and we are fans of functional programming and clean architecture.
We believe that there is no cookie cutter for optimal working conditions and we attempt to limit recurring meetings, embrace flexible working hours, and promote working remote in times of deep focus work.
Our team is built on trust and autonomy and we are not afraid to give a lot of responsibility and access to people who care about our mission and are up for a challenge. That doesn't mean that anyone should struggle on their own. A huge part of our values is to work closely as a team. We celebrate success together and we reflect on our mishaps together. We focus on communicating, and we offer each other support from a very diverse set of strengths. Developing code should be a fun, rewarding, and collaboratory experience that is best digested with an afterwork (craft) beer.
How we work
We work together with Product in cycles of 3 similar themed, 2 week sprints followed by a 1 week reflectionary period. Make sure to checkout the broader feature development pipeline in the Product section.
Our sprint specifications live in Notion and we communicate status updates and changes or drifts to the specs in dedicated sprint channels on Slack. Usually the sprint does not require the full team and we'll rotate who is involved and who does chores or technical exploratory work.
We kick off sprints on Mondays in extension to our weekly check-in with Team Product. Once the sprint is fully presented, the part of the team dedicated to the sprint work will sit together with the product owner and break it down into individual tasks. The team will then get to work and develop it on separate features branches within a Dockerized local environment seeded with test data.
All code that goes into production must do so through a PR directly towards the master branch. This PR must have at least one accepted review and it must pass our CI suite. It's important to us that we have transparency around our outgoing changes and that we never stand alone or feel pressure to ship unreviewed code.
Once accepted, the code is merged, it's continuously delivered to production, and the stability is monitored using New Relic.
👂Terms we use
⚙️Development and Pull request practices