A look into how we welcome new teammates and bring them on board. It is an evolving process and we’re making continuous adjustments.
The onboarding process is focused on familiarizing new employees with the organization, 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.
- 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.
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.
Note: The first day is typically spent at the office. We adjust the experience for remote-only hires, but the principles apply.
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).
- We 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.
- 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.
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 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).
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.
- 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
- Confluence (project specific documentation)
- Google Docs (mostly used by business people … and Tom)
- Miro (more or less as a whiteboard during meetings)
- Figma (wireframe collaboration)
Choice of technology varies from project to project. This is a list of technologies that are frequently used that you should be familiar with:
Frameworks and libraries
- Django Rest Framework
- Commonly used Python libs: Pandas, Pendulum, Pytest
- Commonly used React/TS/JS libs: React Router, Zustand, Query
- Docker and Kubernetes
- Argo CD
- Keycloak and OPA
- Airflow and Argo Workflows
- Kafka and RabbitMQ
- TimescaleDB and PostgreSQL
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:
- How we work
- User stories, tasks, and bug reports
- Code reviews and pair programming
- Version control
- Software testing practices
- More TBA (e.g. Style guides, Time management, CI/CD)
- 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.
- If you want to schedule a meeting with someone, please make sure to explicitly state what the meeting is about. “Can we do a meet and talk about how you wrote that DAG for project Fwunkle-Munkle?” is a lot better than just “Got a minute?”. The latter does not give the recipient any context and can even cause anxiety.
- Some channels of note:
#general: General discussions, announcements etc.
#random: Anything goes! The more random the better!
#social-media-repo: Photos from various events, the office, battlestations etc.
#dev: Anything development related that isn’t guild-specific (see below).
- Channels specific to our different guilds (albeit anyone is more than welcome to join). Questions, news, processes, best practices etc related to respective guild. Focus on how to solve broad questions and take the guild to the next level:
#browser-mages: Front-end development, UI/UX.
#project-wranglers: Product owners and tech leads.
#devops: Dev operations.
#data-science: Data scientists and engineers.
- Back-end development discussions are currently held in
#dev. We should probably create a guild-specific channel.
- Always read any pinned messages when joining a channel.
- Organize your channels into sections. Some common sections include: “General”, “Guilds”, and “Projects”.
Other things of importance
- You can download assets from our Brand guidelines page and use them to spread the word!
- We try to host plenty of social activities. We regularly do things like breakfasts at the office, board game evenings, hackathons, and play online games together. Please do not hesitate to let us know if you have any suggestions. We’ll provide you with a budget and help in any way we can.
- We host an annual trip to the ski resort Åre in Sweden. We used to take a vote on it, but Åre won every year so it became the default destination.
- We’re always friendly to each other! We can fight a little when deciding whether Timescale or Influx is the better option, but everyone is required to remain respectful. Avoid use of dismissive words and leave some room for empathy. Always remember that we operate on a foundation of trust in one another.
- Be on time during online meetings, turn your camera on, and allow everyone to speak.
- Please share some of your non-working skills with us! We’d love to try Yoga or learn more about how to cultivate Carolina Reapers.