Have you ever considered how a cultural match with your employer can affect your well-being and professional growth as a developer?
Nowadays, especially in the IT industry, money is no longer the only crucial factor in why employees decide to quit or not quit their company. The work culture started being as important as salary and benefits. However not as easy to verify during the recruitment process.
In this piece, you will learn why it's crucial to verify the company's culture before you accept the job offer and what questions to ask to make a well-informed decision and join a place that will fit your needs - through the senior developer lens. I also added a bonus - the answers I was looking for (and got) during my recruitment process.
Do I have your attention? Ok, so let's start from the beginning!
What Does a "Good Fit" Mean?
Truth is -
There is no one explanation of what "good fit" means. Everyone has their own definition based on current needs, personal situations, and professional goals. Moreover - how we feel what fits us best changes over time.
For example, for me, it means that I have opportunities to work with people who share similar values and strive for the best final results as much as I do. The possibility of learning best practices is significant as well.
So, the first thing you should do even before starting to look for new career opportunities is to think about your goals and needs. Write down your expectations for a future employer and create a list of must-haves for the position.
Ready? Great - we will need it in a while!
Take Time to Verify the Company
Do your research
Do your research to ensure that you invest time in a recruitment process that will lead you somewhere. Before a job interview, check the company's careers website and Social Media profiles (yep - you can learn a lot from them!).
Look for information such as
- Technology stacks
- Growth opportunities
- Model of work
- Company values
- More details about recruiting process.
Go right to the source
Another great option is to contact current employees via LinkedIn and simply ask about their experiences working at that particular place and position.
OK, I know what you're thinking:
Isn't it a bit awkward to ask random people on LinkedIn about their opinions?
Well - if people like their jobs and have great experiences, they will likely recommend their company to others. At worst, you will get no answer, which also shows you that either this person doesn't want to talk about their employer because there is nothing worth talking about or...is not an active user of Social Media. So to be sure, send 3-5 messages to different people before drawing conclusions.
A good option is also to participate in conferences or meetups organized by the company you’re considering. At the events, you will have a chance to talk with the company’s representatives and learn more about the project/ product.
The recruiter's responsibilities are to verify the candidate's technical skills and cultural fit, but it's worth remembering that the interview time is also time for you. Prepare the list of questions you want to ask the recruiter and potential future coworkers who will likely participate in the recruitment process as well.
Culture Fit Interview Questions
Did anyone say "questions"?
Here it is - a ready-to-use list of open questions that will help you verify the company's culture and style of working, specifically from a developer's perspective. I choose the open questions on purpose - they are more valuable in understanding what company culture looks like and how mature an organization is. It's also harder to embellish the answers because questions don't have one correct answer.
Ok, take a look at them:
- What is the software development process in your organization?
- How do you document your solutions?
- How do you care about best programming practices?
- How do you test your software?
- From what sources do you find out about errors in a production environment?
- How do you verify whether your work brings positive or negative results?
As you see, the questions are directly related to my needs (high quality, focus on impact and results, well-structured processes). Use the list of expectations you prepared earlier and, based on it, prepare your own list of questions that address topics you are interested in.
Need more arguments for using the list?
Open questions increase the chances of catching red flags and create space for discussion on your most important topics.
What answers would be the red flags for me?
- "We don’t need to create tests for our solution because we don’t make mistakes." Everybody in the IT industry makes mistakes! It is essential to create tests that decrease the chance of bugs in production.
- "We don’t have any processes - we are flexible." I can't imagine a company without processes, and this answer sounds like a lack of awareness of managing processes.
- “We don’t need verification of our results because we try to deliver new features to our users.” For me, it sounds like “nobody cares about feature usability.”
- “Everyone takes care of best programming practices themselves.” What about obligatory code review, linters, and CI/CD?
Of course, sometimes what you hear during recruitment doesn't always reflect reality. But it's still worth trying!
TIP: During the interview, don't be only a talker, but most of all - be an active listener. Recruiters may answer your questions before you even ask them. I know that stress doesn't help, but try to think about the interview as an excellent opportunity to learn more about the company and its employees, not as a necessary evil.
BONUS - the Answers I was Looking For
Do you want to know what answers I got during the recruitment process that gave me the perspective that Tidio's culture could be the right fit for me?
Radek Hryciów, an Engineering Manager at Tidio who was one of the interviewers, agreed to answer my questions once again and shared with you the way how we work and code at Tidio.
Ten months after the interview, I can confirm that what was said is implemented in my and my team's everyday work. So my effort didn't go down the drain.
What is the software development process in your organization?
At Tidio, we have a lot of things to do, improve, create, etc. We care about quality, so we write various types of tests and use automation to check the effects of our work before releasing it to repositories. We believe in code review and testing - we treat them as an investment of time for quality.
While merging new code, we follow the rules created together by all engineers.
After releasing a new feature, we monitor our systems and communication channels just to ensure everything is okay, and if it is not, we do our best to fix all issues.
How do you document your solutions?
We have several levels of documentation. The Help Center is a great place for our current and future customers to find all the needed information about us and our features.
Our front-end and back-end developers have their own internal documentation with all rules, best practices, and technical details that they need to know to understand and improve all areas of our product. Every developer can contribute to this documentation by adding something new or just updating existing parts for others developers.
We also document all our business initiatives and product features - our ideas, motivation, and expected results. Most of the time, we use Notion and Miro.
Thanks to Andrzej Jagielski - our Head of Product Design, we have a User Flow Template (created in Miro), and now all our flowcharts use the same flow blocks and are easy to use.
How do you care about best programming practices?
During the software development process, we have guild meetings to share new technical innovations and discuss pain points in our current technical stack or programming practices. It allows us to be up-to-date and informed.
How do you test your software?
There are numerous types of software testing techniques that we use to ensure our code changes work as expected. We use both manual and automated tests. We write unit, integration, functional, end-to-end, and other tests and run them manually if needed and automatically as part of our Software Development Life Cycle. We also cooperate daily with our Quality Assurance Team.
From what sources do you find out about errors in a production environment?
The answer will be short and simple: from data and people. We use several tools for database, application, and infrastructure monitoring, like Sentry, Kibana, Grafana, etc. We also integrate alerts and notifications into our communication methods to ensure that the right person will be informed immediately if anything bad happens.
Additionally, we collect information from our Support Team and directly from our customers.
How do you verify whether your work brings positive or negative results?
We do our best to make our product valuable, enjoyable, and easy to use at the same time. The UX Research Team helps us to understand our customers’ motivation, decision-making process, and behaviors. Having this team allows us to uncover users' insights after using new features and get evidence to prove our assumptions.
Now you see that interviews are an excellent chance to verify if the company's culture fits your values. A few hours spent figuring out what we expect from a future employer and coworkers can be a real game-changer.
Overall, we spend a significant part of our adult life at work. From that perspective, it all seems to be a relatively small investment with a high potential ROI in our professional growth and well-being.
Would you like to share your thoughts on this topic? Let's reach out via LinkedIn!