TL;DR: Given the state of the tech market, young graduates have more value than you might think. Since there are so few accounts about what entering this job market is like, it’s important for you to understand why you're valuable, what to expect, and who’s out there wanting to get you.
As the tech market keeps growing, companies keep doing more and more to capture recent graduates, some of them even jumping over backwards trying to establish good relationships with graduates while they're still students. But for all this effort from companies in trying to hire the best talent right out of college, there's still little feedback from a graduate's perspective regarding the recruitment process.
As you can guess by now, this won't be much of a technical post, but rather some insights to a considerably larger target audience of soon-to-be professionals entering the tech job market.
When I was a student, the best advice I got always came from older Teaching Assistants. They still knew what it was to be in my shoes while having a better perspective of what reality really was like. These types of midpoints between students and professors are equally valuable to recent graduates entering the real industry but unfortunately, they're severally missing. I myself was in this position not too long ago when I finished my master's in Electrical and Computers Engineering in the summer of 2021. And even though I had a strong idea of what to do next, I noticed that there weren't many recollections of what the next steps were from a graduate's point of view. So, as a junior/young engineer and a somewhat recent graduate myself, I feel like now that I have been through those steps, I'm capable of providing some important pointers I wish I had when entering the job market.
If you're close to finishing your studies and are wondering how the rest of it plays out, or if you're just entering the job market - welcome to the big leagues, this is for you.
Big leagues, same game
So, you just got out of university. Degree in hand, having completed all the required steps to be whatever tech title you wanted but you don't quite feel like a full-fledged engineer/programmer/developer just yet. I mean, you are one. And you have the oh-so important diploma that says you are one. But you don't really feel all that different from the day before. In fact, you don't feel that you're all that prepared to actually do what a professional engineer/programmer/developer does, do you? And on top of all that, you don't even know what you want to do next, which technologies you want to work with, in which area to specialize in, and on and on...
All the early onset Impostor Syndrome aside, the great majority of people coming out of university don't know either. And obviously, you didn't magically turn into a fully-fledged anything the moment you finished your course - you'll have to slowly grow into one by actually working at it, failing at it, and then learning it. As a matter of fact, this isn't all that different from what you were doing as a student. Don't get me wrong, it's not the same as before: things are a lot more real now - there are real requirements, with real goals and clients, and there's real money involved in all these steps since you're actually producing real value - this really is the big leagues after all. But you're used to this failing/learning cycle, and you've played this game before, there are just higher stakes now.
Your value in this game
Speaking of stakes and value, after entering this market you start understanding what your value as an employee really is, and how it's measured by a company. You also realize how much these 2 differ from what you thought when you were just getting out of college. At the end of the day, your quality as an employee and your ability to produce will always be keys factors in determining how much you contribute to a company's goals, but what you don't see as a fresh graduate, is how much a company invests just to get you. When you're on the applicant side of an interview you're obviously more focused on the challenges being presented, and on how well you're doing. You don't really think about what's happening on the interviewer's side, who are the people interviewing you, what do they do, or what led you to even make contact with them.
The truth is, the whole hiring process is incredibly costly for a company. Even if they have a specific hiring department (which already is a whole department just for this type of thing), there's usually at least one "higher-up" engineer involved throughout the interview process. Senior engineers' time doesn't come cheap and these are valuable resources a company needs to allocate just to make sure they're getting the best talent.
Beyond that, there's still the onboarding process. You don't just start contributing the moment you're hired, even if by some chance you already know exactly what's needed from you. Every company has some form of inner workings and internal procedures of how they operate and you only learn these types of things during an onboarding process, regardless of whether you're a senior or fresh out of college. So even after all the logistics and resources spent on hiring you, a company is still not making any return on their investment in you just yet.
All of this to say that, you, even as a student, have an infinitely stronger position in the interview process than you think. It's easy to enter into a mindset where you, as a younger and recent graduate, put yourself on the back foot and sell yourself short throughout the entire process. The truth is you should handle job interviews a lot more like sightly less casual conversations, where both parties have a shared interest.
The interview process
I've been talking a lot about the logistics of this dreaded interview process so it's about time I actually address the interview component of it.
Most hiring processes have around 2-3 interviews, generally, the 1st is more HR-focused. They'll look over your CV during the interview, trying to know you a bit more, but mostly see what your goals or aspirations are. Funny enough, a lot of companies will try to skip this step by e-mailing you a list of personal questions or by asking for a cover letter just to get a feel of who you are. This poses a problem in itself since most candidates don't have a clear idea of what they want, but I'll get to that in a bit.
Technical questions usually only come up around the 2nd interview/interaction, with maybe a coding challenge in between. This interview focuses around what you coded and why you did so, you then usually have a round of more traditional tech interview questions (sorting algorithms, Big O notation, that type of thing) and if everything looks alright, you go on through - I will also go more into what "looks alright" means in a second.
The final interviews are again more personality-focused, and you'll probably meet with someone higher up in the company, which depending on the company's size can be anyone from your future team leader, to the company's head of Engineering or even the company's CEO. Here, you already passed through the major technical hoops and people just want to know you and see if you would vibe well with the rest of the company.
But you can get this little abstract from a simple google search, I feel that what I understood after seeing both sides of the process is a lot more insightful:
Interviewing a fresh candidate is tricky, and odds are, most interviewers aren't doing a very good job either. The classical tech interview questions don't get you very far into getting a feel of what a candidate actually knows, and although knowing how to reverse a linked list with minimal space and time complexity is cool, it's not a very realistic requirement. There's almost an art in assessing the range of a candidate's technical knowledge from a 15 min conversation and trust me, most engineers aren't artists. But you don't need me piling on the technical interview questions are broken topic, and this isn't even a problem for the candidate to solve, in fact, you should use this in your favor.
You might feel like if your answers aren't 100% correct then you failed to transmit all your knowledge to the interviewers, but the truth is, most of these answers, even when correct, don't even tell the interviewer much. Again, don't get me wrong, you better know your stuff, and it's better to be 100% correct than 50% wrong, but at best, most of these questions just serve to see how you try to "unblock" yourself, and you should see them more as checkboxes and not roadblocks because that's how most engineers that are interviewing you see them as.
What you should focus more on, however, is the personal component in these steps. Remember when I said, "most candidates don’t have a clear idea of what they want"? That's normal and perfectly fine, you still haven't been exposed to much of the market and there are so many different technologies that making a decision like that right now is almost reckless. But most companies already heard that from all their other candidates. What surprised me most when seeing the other side of this process was how many candidates simply say "I don't know what I want to do" and leave it there, without even following up with something like "But I think Company X gives me a positive and challenging environment to discover!".
I think this all comes from that "back foot" perspective I mentioned before, but this type of passive attitude towards not knowing comes off as very reactive in your own career, as opposed to embracing this factor and taking it as a challenge that can be aligned with the environment a company can offer you.
Besides that, don't forget that there are two dynamics involved in a job interview. Sure, someone is interviewing you to see if you're the right person to fill a position, but you should also be interviewing them to see if they're the right company for you. This is the perfect opportunity for you to get some insights into what you would actually be doing if hired, and what to expect from the company:
> What's expected of someone in this position?
> What technologies would someone work with day-to-day?
> What's the typical workflow throughout the week here?
> Who would be working alongside me during tasks?
These types of questions not only paint you in a more proactive light but also ease off some of the pressure you might feel due to the whole "judging" component of a job interview.
Basically, I think most people neglect the human and personality aspect of these interviews, which ironically are what these interviews can judge best. It's odd how after so much technical work it took you to get you here, I'm now telling you to focus on the vibes. But it's true, and I feel like at this initial "entering the job market" phase, how well you mesh with the company's atmosphere plays a very important role. However, this atmosphere depends on which type of company we're talking about, which neatly segues into my next topic.
(Following the whole "game" analogy...)
So, you've made it this far (or probably skipped to the spiciest part), how do the companies out here differ from each other? Right off the bat, there are 2 major types of players you'll encounter:
- Large household names:
> Everything from FAANGs, to large ISPs and online platforms.
These are well-established companies with traditional business models in the tech market. They're the ones you think of when you think about the software world, with big scope products and large organizational structures.
> As a subset of these, and their presence has to be acknowledged by their sheer magnitude alone:
- Consulting firms:
The Big Four, and all the same usual suspects. You know who they are, because they made sure of it, being by far the players who hire recent graduates the most. With years of history and gigantic international business infrastructures, these technology behemoths scoop up most of the up and coming talent. Honestly, they're considered somewhat of meat-grinders, having a somewhat high turnover rate and although they can be good long-run choices, as they can offer some of the better higher-up positions, typical juniors don't tend to stay that long.
The risk-takers and unicorn chasers. Small and daring companies hoping to be the next big thing while trying to carve out a place for themselves in the market. They're what some of the big names used to be before their meteoric rise, and are what you think of when you think about open office floors and ping-pong tables in the office (the ones who get funding, at least).
I'm gonna briefly outline what each one can offer you while highlighting some of the drawbacks associated with them.
It's no big surprise that a large company will have more resources when compared to a startup. This goes beyond financial incentives into things like employee privileges, internal employee structure, and even employee guidance. This last one might be an important aspect for most recent graduates.
A guiding hand can be a big relief when starting out, and that might be something hard to come by in a startup since they usually have no hands to spare. In a big company, you'll typically have more seniors, knowledgeable in specific tech areas, alongside a mostly mature and stable product. This gives you a solid learning environment where you not only have a lot of content with which you can learn, but also a reliable and constant guiding presence for when you inevitably get stuck.
In a startup, however, given their high-pressure environment and more flexible structure, more often than not, you might be flying by the seat of your pants, working and figuring things out on your own. Speaking of which...
Even though there's still big pressure in a large company environment, I don't think it compares with the startup atmosphere. Now, this can be a negative aspect for a lot of people, but this type of pressure comes with a lot of challenges, and in solving these challenges large opportunities come up.
One of the major upsides of a startup for someone fresh out of college is the opportunity to wear many hats and work with different technologies while impacting the overall final product, even if most of the time by necessity. And this goes beyond tech-specific issues, as a startup environment allows you not only to have a feel for each of your product components but also to see and understand the different aspects and areas of a company. Were you ever curious about how a Sales team closes a deal? Or how specific features are prioritized over others by a Product team? Or even how a Marketing department publicizes your product? A startup can actually present you with these types of insights, in a more real and closer way, than any large company could. This leads me right to the next topic:
This is another point where startups win convincingly over larger companies. I alluded that, by necessity, you might have to do a lot of different things in a startup setting, as there aren't simply enough people to go around. But this also has the upside of making your efforts in a product very notable. In large companies, you might spend a month developing something that you don't even know who's gonna use, and you probably won't even notice its impacts on the final product.
There's no way around it, 90% of all startups fail, and even though the initial employees of the lucky 10% that succeed have a major career progression, you're always balancing on a knife's edge.
Larger and well-established companies, on the other hand, can offer their employees a large security net, with some, even having very predictable and well-defined career paths, where you can effectively start climbing the corporate ladder from the moment you begin. This is definitely more of a personal choice: do you bet on a startup having major success and work towards building that next big thing, or do you go with the more stable choice and try to evolve in a more structured environment?
For a recent graduate, I think that given the potential upside and the state of the tech market, there's virtually almost nothing to lose in betting on a startup. I see how suggesting that you should look at your career as some sort of gamble might come off as odd, but honestly, if you're the type of person who can thrive under a more flexible and independent environment, you should consider going with a startup.
The truth is you won't have much difficulty in finding another job in case a startup fails. The work experience you acquired is still highly valuable and you can only get insights into other technical areas besides your own in a setting such as this. Worst case scenario, you get exposed to a lot more than you would by going with a larger company, and have a couple of years of experience under your belt by the time you get out.
What mattered most to me
Having given you the rundown of most of the options, it's time I share with you why my choice was Codavel and not any of the other players (you can even say this is the #ad part of the post...)
From a personal perspective, above all else, I didn't want to be just another employee. This is very hard to avoid when you're a junior in a big company, even with all the corporate "we're just like a big family" slogans, it's almost impossible to truly be known by someone outside your immediate team when a company employs 100+ people. I wanted my impact to be seen and my work reflected in a real, concrete product. This kind of ruled out most large companies right off the bat.
Secondly, from my initial contact with Codavel I saw that this was one of the work environments where I excel at. At the early stages of the interview process, I was told more about this independent workflow, where I would have the opportunity to follow any technical path I deemed best for the task at hand, while still having a solid anchor to fallback if needed be. I actually then read Codavel's technical blog posts and saw that these people knew what they were talking about, so this "anchor" seemed legit.
Regarding this technical component, when I finished my degree, I felt this sort of hunger to tackle something big head-on, and Codavel presented itself with a daring technical challenge that was right up my alley. Building up a CDN from the ground up is no easy feat and given who the major players in this space are, and their sheer magnitude, I knew this would be an exciting problem. Besides, doing so while using Bolina, Codavel’s state-of-the-art network coding protocol, I knew I would be doing something truly unprecedented. I wouldn’t just be racing with a different car, I would be competing with a whole new engine.
Finally, I saw the market Codavel is targeting and the upside Codavel actually brings to the table. Mobile content delivery, especially with network instability, is a real problem that needs to be dealt with and the value Codavel can add by solving this problem is very tangible. You can find out more about it in our latest performance report, or by reading some of our technical blog posts.
If any one of these points resonated with you, Codavel will be a good fit for you. If you're interested in joining us, reach out and use some of the insights outlined above to determine for yourself if this is where you would like to be.