Onboarding at Unleash
Hi! I joined Unleash last week.
Switching jobs is stressful. Even after thorough research into the company and going through the entire recruitment process, the first week has a lot of unknowns: about responsibilities, about expectations and most of all, about meeting new people. Quickly finding your own place in a team isn’t easy. With this experience fresh in mind I’d like to share what it looked like in my case, and what I learned.
What we did
Contributing on the first week
From the very start of the first day everybody made very clear what the goal was for me as a new employee: to contribute a feature before the end of the week. This starts with feature goals, an initial wireframe or mock, and a list of people to coordinate with. There were no strict requirements or final design. Starting with code commits early in the week helped me explore and find what works and what can cause problems. It’s hard to find the best solution upfront, so this was a time to experiment.
Code and design
Once I got up to speed with the codebase and tested some technical details, it was time for an impromptu design session. Before brainstorming on what the best solution was, Elise and Nicolae (the UX team) and I took some time to get to know each other. This helped build trust, so we arrived at a good solution fairly quickly. At this point everybody agrees on how this feature should look and work, but there is still room for improvement.
We were moving fast, because a lot of work was done in parallel. Review starts when code is still being worked on. Design can be tweaked any time. We are introducing a practice to do UX review on the same step as code review. Finally, the changes I was working on were merged to `main` before the end of the week.
Not just wins
Parts of the code on the front end I was working on didn’t have a clear and up to date testing strategy. I didn’t cover my features with tests as well as I hoped for, and some improvements were made a bit late. This is something we are already addressing in order to use TDD even more not only on backend, but in React codebase too. It’s important, because tests written before functional code are much more accurate.
Frequently sharing updates in front-end code related to enterprise features was tricky. Only free and open source functionality was enabled in our per-branch build system. I hope we will be able to simplify and significantly speed it up soon. (It was fixed before I finished writing this article. “Welcome to Unleash, where things just happen.”)
How we did it
Assigning an employee to support a new hire is a standard, and for a good reason. I had someone to turn to and ask for directions, and getting oriented feels more natural. Many times this help was just pointing me to someone else with a better answer. What I really appreciate is how this helped me to stay motivated and on track. After pointing out concerns in the project setup I was surprised by the amount of encouragement I received to fix it immediately. Everybody in the company is here to effect change and help others do the same.
Value of open source
I found two relevant advantages to the open core model adopted at Unleash. First: I could see what I will be dealing with even before getting hired. Or even before applying! It’s so great that it feels like cheating!
I just now realised how much this helped me focus on absorbing other things about the company, instead of trying to figure out technical details of my first tasks.
Another advantage that I found open source over closed source is how easy it is to set up and start working. In my opinion, the effort of preparing and maintaining all tools needed for the open source community pays back in spades when onboarding new contributors. I’m also pleased to say that this quality in Unleash extends to the Enterprise codebase as well. A setup that takes a day or three would make it impossible to start contributing in the first week, and just crush my enthusiasm as a new hire. Instead, I was able to hit the ground running.
Repeat. Repeat what counts. Repeat often
Not every detail needs to be shared in the first week, and thanks to that I had plenty of time to work on my own. It almost reminds me of spaced repetition technique. It’s great to have slides from meetings, referenced documents and relevant code to go back to after a meeting.
Employers don’t like saying things twice, right? But there are things worth reiterating. Core company values were repeated at least 3 times, and I don’t mind. This information is important. It’s OK to repeat something. Even if I should already remember it from recruitment calls.
It’s my first time dealing with proper security certification. It’s taken very seriously here. I used to think that my personal practices like using a password manager, precautions when sharing access and general knowledge about IT was enough. I’m rethinking that.
This is how new hires at Unleash are able to add new features to our product before (or on) their first Friday on the job.
— Tymek (/ˌtɨ̃mek/)