Developers love to code. But that's not enough to make a sustainable career out of it. You also need to be willing to communicate with other people, take on initiatives out of your comfort zone, deal with failures, constantly learn new concepts etc. That's why I believe it's important to find an employer that not only pays you a solid salary, but also connects you to like-minded people and where striving for becoming a better professional is part of the company's culture.
Considering that good developers are in demand and the number of companies looking for developers is quite high, I'd like to share my thoughts on how to validate an employer that you will actually enjoy working for.
I believe that before one starts looking for a company to join, personal preferences should be evaluated. At least in Estonia, there are many great companies to join, Pipedrive(my first employer) definitely being one of them. From a developer's perspective, it's great as there are tons of options to choose from, but it also makes it important ask - what do YOU value about your future employer? Below, I'm going to list some questions to help you.
- Do I want to work in a small or big company?
- Is my goal to learn or earn?
- Do I want to work remotely?
- How autonomous do I want my job to be?
- What's the tech stack I want to work with?
- How much do I want to mentor others vs code myself?
- What are the core values I'm looking for in the company?
- Do I want to just code or also participate in the product development?
- Which business domains do I care about?
- What's my main goal in joining a new company?
Having answered those questions, you should have a much better understanding of the company that fits your needs. That said, having evaluated your personal preferences is just one side of the coin.
Having gone through your personal preferences, it's time to look at the other side of the coin - the company. A good company can be both big or small, work in banking or sales, use Go or Java as their main language... But based on my experiences, there are some universal features that great employers have. Next, I'll show those features and potential questions to ask during your research or interviews.
A good company solves an actual problem and generates real value. As a developer, you should be at least be able to understand the basics of the business engine and whether the founders have the potential to execute. For example Pipedrive had founders with experience in sales, development and startups in general. When I joined, they were already an established startup that generated revenue, had real clients with a feasible business plan, making it easy to trust the founders although I didn't fully understand the business domain.
Some of the questions to help you validate the business of the company
- What is the problem the company's solving?
- What is the business plan of the company? How do they make money?
- Do they have real clients?
- Is the company profitable?
- How long is the runaway of the company?
Besides business, I believe company's culture and its people to be the most important aspects of a great company. Working with like-minded people who share your values not only makes your work more efficient but also enjoyable.
...a great company has well-defined core values
Based on my experience from Pipedrive and Sentinel (a small startup I worked for), a great company has well-defined core values like
- "reach for greatness"
- "don't ruin other people's day"
- "put the team first"
- "no excuses"
- "radical transparency"
In Sentinel, I even had to read books like "Extreme Ownership" by Jocko Willink to fully understand the company's core values. As I already agreed with most of the ideas in the book, I was confident that the culture I'm becoming part of suits me.
In the end, a good company hires according to their values, making it easy for you to validate if you want to join them.
Some of the questions to help you validate the company's culture
- What are the core values of your company?
- What is the interview process like?
- How do you improve the team work between your employees?
- What kind of company- and team events do you have?
- Has anyone been fired from the company? Why?
- What's the best and the worst thing about working here?
A vital aspect of a great employer is that they provide employees with growth opportunities. For developers, it can include regular 1:1s, challenging assignments, active mentoring, option to go to conferences etc.
In one of my previous videos about my journey in Pipedrive, I showed the audience how I grew by taking on tasks, getting feedback, participating in regular 1:1s and time-to-time jumping completely out of my comfort zone. Eventually, I also started taking personal coaching sessions.
Eventually, I also started taking personal coaching sessions.
All that resulted in me becoming a developer who doesn't just care about the technical aspects, but also about the actual problem we're solving, the well-being of the people I worked with and the bigger goal we're aiming for.
The journey and takeaways here may differ from person to person, but my main point is that a good company provides people with challenges, feedback and a supportive environment for growth.
Some of the questions to help with validating if the company's investing in your growth
- Do you have a clear career path?
- How is the feedback given and received in the company?
- Do you carry out regular 1:1s?
- What do you see me doing in the company after X years?
- What have you(the interviewer) learned during the past month?
- What are the processes when someone makes a (technical) mistake?
- Do you have mentoring initiatives? Do you practice pair programming?
- Do you have an extra budget for educational purposes like books, courses and conferences?
Regarding growth, I believe trust and autonomy play an important role. A great employer knows that. There's a big difference whether you're constantly told what to do or coming up with solutions yourself. Although the first is easier, the latter improves you more and results in more autonomy.
For example, in both Sentinel and Pipedrive, I tried to be proactive, meaning solving problems either by doing tasks or leading projects. Eventually, that kind of mentality resulted in more autonomy, as I could lead more projects, come up with solutions on my own and grow so much faster. Also, the more I proved myself, the more I was trusted. In the end, I felt quite comfortable not working from 9-5(especially when doing things remotely) but just agreeing on when something needed to be done and plan my days accordingly.
I believe that a good employer should trust their employees to give their best and get things done. The processes in the company should encourage that kind of thinking.
Some of the questions to help you validate if the company's providing you with autonomy
- Do you allow remote work?
- Do you track your employees' working time and efficiency? If yes, how?
- How are the technical decisions(for example, architecture for a new service) made in the company?
- What are the expected working hours? Can I take a 2-hour-break in the middle of the day and work longer in the evening?
- How can one become a project lead in the company?
To have a sustainable career, your work and personal life need to be in balance. A great employer knows that. They care about their employees, their well-being and invests in that. In the end, a motivated employee that has less worries is more efficient and provides more value.
When working in Pipedrive, things like free coaching sessions, gym membership and awesome company events were accessible to all employees. I also remember how sometimes when the clock hit 5PM, my manager told me to just go home and continue the next day, implying that there's more to life than just being a developer (obviously there are times that require extra hours, but that was quite rare). The company even measured how willing were we, the employees, to recommend Pipedrive as an employer to others and took action based on the results.
Combine that kind of attitude with awesome colleagues of whom many you can call friends, and you'll get a place where work life balance is in place. That why I although I believe it's you who must take care of your work/life balance, the company can and should create a culture where taking care of oneself is encouraged.
Questions to help you validate the work/life balance in a company
- How does your company help the employees maintain a work/life balance?
- Do you provide any perks for mental and physical well-being?
- Do you allow remote work?
- How often do your employees have to work extra hours? How is it compensated?
- How often do you have team and company events?
- Can you walk me through a typical day of a developer in the company?
- How is employee feedback gathered? How often? What's the eNPS?
I believe that a good employer shares its success with its employees. As a developer, it's hard for me to justify working for a company that does not provide stock options, shares or bonuses.
Especially in early-stage startups, where working extra hours can be required often, it only makes sense to ask a piece of the pie, because you're part of the small team that helps to bring the idea to life.
In case the company does not provide any equity, I'd expect the salary to be higher to address the lack of equity.
Questions to ask about about shares, bonuses and stock options
- Do you offer stock options, shares or bonuses?
- If yes, based on what criteria? In case of stock options, what's the vesting schedule?
- If no, why?
Do your own research about the CTO, ask questions about the tech stack, why such decisions were made, what are the processes around development etc. That gives you confidence that from the technical aspects, you'll be joining a good place.
Additionally, if possible, ask to meet your future team and manager. As you'll be spending tons of time with these people, it's important that you'll get a long and your values align, at least professionally.
When choosing your next employer as a developer, you should first try to understand what are you after. Only after that can the evaluation of specific companies start. As developers, we're fortunate to be in demand, meaning we have the privilege to choose amongst the best options. Fortunately, I've worked in great companies like Pipedrive that have set my standards for an employer really high, so hopefully you can use my experience as a guidance in finding an employer that fits your needs.