A look into how we welcome new teammates and bring them on board. It is an evolving process and we're making continuous adjustments.

Onboarding

The onboarding process is focused on familiarizing new employees with the organization (and vice versa), their role, the technologies we use, our processes and practices, and the culture. It also involves creating a safe environment that makes newcomers comfortable enough to interact and socialize with their new colleagues.

Before starting

  • You'll get a link to this handbook so that you can prepare yourself for what is going to happen.
  • We establish your hardware needs as early as possible to ensure that everything arrives on time. All employees get a laptop and a mobile phone. Other equipment such as monitor, mouse, headphones, and keyboard are provided to those who want to have a desk at the office.
  • We collect any info we're missing in order to set up administrative things like payroll and a mobile phone subscription.
  • We'll assign a mentor to you and provide you with contact info in case you have any questions before starting.

First day

The first day is as important as it is exciting! It is a pivotal moment and we do our best to ensure that the experience is great for everyone involved.

What to expect on day one:

  • The day usually starts in the kitchen. Introductions are made, a small welcome pack (company notebook, branded t-shirts, pens, stickers etc) is handed out, and hot beverages are consumed.
  • You're introduced to the mentor that has been assigned to you. Your mentor will guide you during your first 90 days, answer any questions you may have, and make sure everything proceeds smoothly. When possible, we also pair more junior developers with a "buddy" -- a person with a similar role and level of experience -- with whom you can work together and share your experience.
  • Keys are handed out and we do a detailed tour of the office (facilities, talk about restaurants in the area, commuting options etc).
  • Hardware-time! Best part of the day! You finally get the laptop and other equipment you requested!
  • System access is granted (email, VCS, chat, project management, WiFi etc).
  • We sit down and discuss what the first week will look like in a little bit more detail.
  • Company-wide welcome on Slack. We encourage you to tell your new colleagues a little bit about yourself (e.g. background, interests). Edit your profile by adding your contact information, role, and a photo.
  • We usually go out for lunch at a local restaurant.
  • The rest of the day is typically spent chatting with colleagues and getting the new laptop configured and up and running.

First couple of weeks

We always recommend newcomers to work from the office as much as possible during the first couple of weeks. While onboarding does work really well when working remotely, it is easier for newcomers to engage naturally with coworkers when physically present at the office. Being at the office, simply put, speeds up the process.

Things we do during the first couple of weeks:

  • We gradually introduce the colleagues. No walls of faces in gigantic company-wide video meetings here. We take it slowly and create meaningful and purposeful interactions.
  • Explore the contents of our internal Notion board at your convenience.
  • You'll be invited to different events that you can participate in to get to know everyone (e.g. breakfasts, hackathons, board game evenings).
  • What the first couple of weeks look like in detail depends on the newcomer's experience. Our ambition is always to get people into productive teams as quickly as possible, but the first weeks are normally spent on research and training.
  • We schedule continuous one-on-one conversations to make sure that everything is proceeding smoothly and that our expectations are in alignment.

When you're ready we'll assign you to a team to work on a project. You'll be introduced to the tech lead and technical product owner first, and then to the rest of the team. Your role and availability requirements will be established. We enjoy flexible working hours, but everyone is expected to participate in scheduled meetings and to be available for their teammates as needed (pair programming assignments, code reviews etc).

After about a month we'll start discussing learning, performance, and personal goals. We continue with scheduled one-on-ones to make sure that everything is on track.

Laptop setup

Choice of operative system is something highly personal and virtualisation makes this a non-issue. Most of us use GNU/Linux but there are plenty of Mac and Windows users around.

What you need to install when configuring your laptop depends on what OS you're on and personal preference. Everyone is required to install a browser (we recommend Firefox because we love freedom), a terminal, git, and Docker. Everything else is optional and depends on the project you’ll be working on and individual needs.

  • The most commonly used window managers for GNU/Linux are Sway and i3, but use whatever you prefer.
  • Editor is a very personal choice. You're free to use whatever you want as long as it doesn't affect the project you're working on negatively. Like any other self-respecting tech company we have a healthy and subtle editor war going on. The main battle is fought between vim/nvim, emacs, and VS Code, with some random skirmishes from the smaller editor camps.
  • TBA: notes on securing the laptop, shared configurations (dotfiles).

Tools

These are the most commonly used tools you'll get exposed to during normal day-to-day work. Many projects require specialized tools that are not included in this list.

Code management

Communication

  • Slack (URL needs to be updated)
  • Discord (used when playing online games, for big meetings, or just to hang out at the voice channel called "the coffee machine". Ask for invite on Slack)
  • Google Mail
  • Google Meet

Project management

  • Trello. See notes on how we use Trello here.
  • Jira (but always prefer Trello)

Document collaboration

  • Notion (our primary document collaboration tool)
  • Confluence (project specific documentation)
  • Google Docs (mostly used by business people ... and Tom)
  • Miro (more or less as a whiteboard during meetings)
  • Figma (wire frame collaboration)

Misc

Technologies

Choice of technology varies from project to project. This is a list of technologies that are frequently used that you should be familiar with:

Programming languages

  • Python
  • TypeScript

Frameworks and libraries

  • React, Htmx
  • Django, DRF, Django Ninja
  • FastAPI
  • Commonly used Python libs: Pandas, Numpy, Pendulum, Pytest
  • Commonly used React/TS/JS libs: React Router, Query, Signals.

Infra

  • Docker/podman (containers)
  • Kubernetes
  • Argo CD / FluxCD
  • Gitlab

Other

  • Keycloak and OPA
  • Airflow and Argo Workflows
  • Kafka (Redpanda) and RabbitMQ
  • TimescaleDB and PostgreSQL
  • Grafana, Prometheus and Loki
  • Minio
  • Redis
  • Snowflake and Databricks

Processes and practices

We're continuously documenting our processes and practices in the Resources section of the web site. Please let us know on Slack if there's anything missing!

Some highlighted articles to get you started:

Slack

  • Use your full name, a profile photo in which you are recognizable, timezone, and describe your role at the company in the title-field.
  • Use the public Slack channels as much as possible. Resort to private messages and channels only when absolutely necessary. The public channels encourage discussion, decrease the need for repetition, and makes sure information is shared within the company.

Want to know more about how we can work together and launch a successful digital energy service?