Some time ago, I started to get involved a bit in the hiring process for teams at the last companies I worked for, and more recently at Dentsu World Services Brazil. This experience brought me some insights that may seem obvious to some, but perhaps not so much to others, so I decided to share them.
The idea is not exactly to explore or suggest how selection processes should be or to bring here a proposal for a flow or template, especially because I believe this is something particular to each company, one of those things that works differently in each place, you know? Culture, projects, workflow, among other things.
Being involved in these processes can have great value (hey devs, we can also learn things that are not purely technical, haha). For now, you learn some lessons and the ability to perceive different points of view on how the relationship between company and employee is or should be.
The Power of Decision
Don't think that just because you participate in the process or evaluate the candidate at some point, you have the power to choose who will join or who won't. It's not about how much you can feed your ego, but rather about how much your involvement in the process can help find good people who have a purpose aligned with the company's. After all, culture is one of the most amazing things about working at a company, and you can be responsible for maintaining it, improving it, or even ending up placing trust in a person who may join the team and contaminate other people in a harmful way in the work environment. Do you understand the responsibility you carry?
Sometimes, regardless of the technical complexity you need to solve, a developer who understands everything about how your stack works can be more harmful to your project than someone who doesn't fully master it but has a very strong cultural fit with the team.
Seniority is Relative
I still remember well when I was starting my professional journey as an intern or junior developer. I thought that as soon as I managed to climb one step on the seniority ladder and become a mid-level developer, I would be able to occupy this same position in any company, and all I would need to do is choose which company creates the coolest product/service and work there. (Sweet illusion, hahaha).
One of the strong signs that you are not a mature professional is thinking that you already know how to solve any problem that comes your way. After all, you're already a MID-LEVEL, or maybe even a SENIOR, right?
It happens that at some point the market will put you in your place and show you where you stand. What I've already experienced and heard many times are stories of professionals who, because they held a certain position at one company, passed a selection process at another company with the same position and GOT BEATEN UP trying to keep up with their colleagues and even theoretically less experienced people.
Have you ever imagined yourself at the peak of your wrong perception of SENIORITY discovering that your junior colleague performs much better than you? Or maybe receiving demands so complex that you discover you're not capable of solving them in the expected time to avoid delaying the project? The fact is that it happens, and this is the part where you discover that seniority is relative and that the "junior developer" at company X can be considered "mid-level developer" and vice versa?
So think carefully before puffing your chest and saying "I am a [position] software developer." You might end up being a bit disappointed, especially if you're put to the test.
Also, don't get angry if you hold an engineer position and the company offers you a mid-level position. You probably demonstrated all the signs for this to happen during the selection process. Have you thought that the mid-level position might pay you more than your current engineer position?
English is Still a Point of Attention
In my perception, there's still a long way to go for me to be a good communicator in the language, but the fact is that it's not new that English is said to be important for the market (especially for technology), and there are still people (and not a few) who keep postponing this until they lose a great opportunity.
Sometimes I've been in interviews where everything flowed super well until we got to the topic and the person didn't feel comfortable exchanging a few words for a position where the language was essential.
My tip is: lose the fear as soon as possible. I assure you that in your first interview in English, you'll do better than you think. It may not be enough, okay, it happens, but after you lose the fear, you'll realize how silly that feeling was and for how long it prevented you from evolving. Just do it!
The gringos understand that English is not our native language, and some errors end up being totally tolerable.
Not Passing the Process Isn't Always About Capacity
This is one of the short but necessary topics and has a lot to do with cultural fit. You can be the paladin of technical skills and have done super well in the technical stage, but in some places, this isn't the most important thing. Try to look at yourself as a professional and as a person. What are your weaknesses regarding relationships, communication, or posture in situations that don't make you comfortable or that irritate you in some way?
I confess that this was a difficult point to understand during my professional maturation process. When you start to know yourself and face your personal problems and understand how you can be a better person, you'll automatically take this to your professional life. You'll have more empathy and patience, which will certainly make you grow.
You Can Contribute Without Necessarily Hiring
One of the most difficult things to deal with, in my opinion, of course, is hearing the candidate's stories and, even knowing that there's no technical or cultural fit, keep self-sabotaging and looking for reasons for the candidate to continue in the process.
It's not easy to even find an explanation for this (certainly a point I still need to develop), but sometimes, despite empathy and the desire to hire the person, it's necessary to realize that job requirements are sometimes not very flexible, especially when it comes to culture. Although the candidate seems like a good person who deserves the opportunity, maybe it's not the ideal moment or project.
One thing that can be as valuable as a hire is great feedback. Sometimes that's all the candidate is looking for, even unconsciously.
Pay the necessary attention to details. Note things about the candidate's profile that you feel will serve as input for feedback that can boost them and better prepare them for the next opportunities.
Align Expectations
It seems like that cliché phase, right? But it's true... Just as it's important for the company to understand the candidate's expectations and objectives when looking for a new opportunity, it's also very important for the company to make clear what its expectations are for the candidate and what roles and activities are expected of them.
Technically, it's not at all cool for a candidate who works with recent languages and frameworks to switch companies to work with legacy languages with pure jQuery. The probability of frustration occurring is very high. So it's mandatory to align expectations between candidate and company, as both should have a plan for next steps, both the company with its projects and the candidate with their career planning.
More Specialists Than Generalists
Maybe it's a mistake on my part, even considering the speed at which technology has been growing along with frameworks and libraries, but I've been noticing that the number of specialist professionals is increasingly larger compared to the number of generalists, which isn't exactly a problem, but it's worth noting that both have their value in the market.
Everything has a beginning. It's evident that it's very good for you to master a framework and follow its evolution, knowing how to work with different versions, etc. But I think the secret is to always seek more, and indeed there will come a time when you'll learn a new version much faster than the time needed for the next release.
I notice that some people are satisfied with keeping their knowledge focused on a single thing, and then some positions end up appearing with mega-specific requirements like: Programmer, front-end, React with Next and styled-components. My point is, why not learn more? More than one framework, more than one language, more than one paradigm, maybe even a bit more about areas that touch your knowledge? More about business, people, etc.
Thanks to excellent people I had around me, I managed to see early on the importance of continuing to be "hungry" to learn new and different things and gradually becoming a specialist in different things. And this certainly has numerous advantages.
100% Remote
It's scary how all of a sudden people started to see that 100% remote work is also work, and the number of people who mention in their interviews that they prefer to work 100% remotely is growing quite a bit. In Brazil, especially in the technology area, I believe this will become increasingly common, but with a high price to pay. And what is that price?
Well, in my opinion, quality of life and remuneration. After all, why would I work remotely for a company from the interior of my little town when I can work remotely for a company from São Paulo that, because it has a higher cost of living in the region, will probably pay me better doing the "same thing"?
I'll go even further: why would I work remotely with technology for a Brazilian company if I can work for a company that pays in dollars (euros, pounds, bitcoin...)? The market is super heated, but I have the perception that it will heat up much more, bringing several side effects with it.
Online Training
I gave a brief account to @Diego Fernandes about how RocketSeat has been having a very strong impact on the development community in Brazil. It's been almost a rule to interview people who mention participating in these trainings, and I've been noticing that the technical quality of these people is improving more and more. It must be really cool to be part of something so impactful. Congratulations to the content creators.
Coding Interview
One of the things I've been evaluating better is the need for code challenge resolution for candidates. For a long time, this was part of the selection process in many places, and it still is. However, in some contexts, if you stop to think, it's very easy for the company to always send the same challenges to candidates, correct them, and continue in the process. However, have you ever stopped to think about how onerous this process can be?
The vast majority of people seek a company change and are probably doing more than one process at the same time. There are companies that do a 1-hour live coding while others send challenges to be done in two weeks.
As a candidate, I would certainly give preference to processes that are more effective (and this doesn't mean easier and faster). There are ways to absorb candidates' technical knowledge through conversations and questions that lead them to develop a line of reasoning on different subjects.
Diversity
We live in a country that still suffers because of prejudice and dogmatic thinking. Therefore, it's important to have representation in interviews.
It's increasingly common for diversity committees to be formed within companies. A great tip from a colleague of mine is to ask the candidate: "What do you understand about diversity in the technology world?" It's incredible how the vast majority of candidates don't have a formed opinion about this.
Keep betting your chips on this theme. Diversity has a fundamental role in the evolution of society, culture, and breaking paradigms, not only in technology companies but throughout the world. Diversity is the path for the world to be a better place, with better people. Evangelize diversity, and for this, it's not necessary to adopt non-binary language. Just create an environment where everyone feels good. That's already a good start.