Newly graduated software developers sometimes ask what my company is looking for in an entry-level hire. I can answer this question in one word: potential.
It is much easier for us to hire senior or highly skilled positions, because in these roles, candidates’ accomplishments paint a picture of their abilities and what motivates them. But entry-level tech workers are a blank slate with short CVs. It is an art and a science to identify newbie developers who could be an integral part of the team.
How do hiring managers assess potential
I’ve seen a lot of managers skate around this issue relying on attributes that are easier to measure: “Did they attend a major university? “Did they do an internship in a large tech company?” Putting aside the negative societal implications of this approach, it’s a poor predictor of success – one that would have excluded some of the brightest engineers I’ve had the chance to work with.
If you’ve recently graduated from one of the top 20 universities in the world, congratulations – you are likely to find a privileged job. But if you are interviewing with me, it is not inevitable that you will be hired.
Some characteristics are more predictive of success than access to education, and you generally don’t need a fleet of diagnostic tools to identify them. It comes down to a open-mindedness for learning and a passion for gaining a deeper understanding of the inner workings of technology.
These traits are easier to show today than in the past. Most people have a working computer network at home (Wi-Fi, mobile devices, game consoles, even doorbells and light bulbs are all connected) – have you tinkered with it? Everyone has a smartphone in their pocket. Did you build anything for it?
And are you up to date with recent trends and technology tools? What do you like about them? In what situations would you use a certain technology and why? Have you contributed to an open source project or maybe even created one yourself?
Plus, the basics are still important. Even though technology evolves rapidly, most of the time these are layers of abstraction on top of existing fundamentals. Networking protocols, networking layers, load balancing algorithms and solutions, security best practices, file systems, and processor architectures are great places to start. A solid understanding of any of these fundamentals will allow a new team member to grow.
For example, if someone knows how to work with Linux based virtual machines, they will easily understand how to work with containers, be it Docker or containerd. Add strong networking knowledge on top of that, and Kubernetes is a cinch.
Nailing the interview
Look into the backgrounds of probably 90% of the engineers whose work you admire, and there was a job interview early in their careers that made them very nervous. My advice is to pay attention to more than just the technical requirements of the role.
Even as a developer, soft skills are important. New technology graduates – like new graduates in any field – need to be great listeners. I also appreciate the follow-up and the willingness to be part of a team and learn. In short, I hope to see aptitude, initiative and humility.
True story: we were interviewing a candidate for an entry-level position. One of my engineers asked him a question about containers, and he didn’t know the answer.
The next interview was scheduled for the next day with another member of our team. The second interviewer asked a similar question about the containers and the candidate not only answered correctly, but came over and clarified that he had been asked a similar question the day before and examined it afterwards, due of his curiosity about technology.
It impressed me. Taking the time to educate yourself, but also being honest that they didn’t know the answer before – it left such a positive impression on me. This person is now part of our team.
Succeed at work
Once you’ve landed that first role, you’re not out of the woods. You still have to prove yourself and integrate yourself into the culture of the team. Chances are, the team has some structures in place, such as processes, tools, responsibilities, and pace. These structures provide the framework within which the team’s priorities and working style are established.
Beginning workers should try to observe how it all plays out, and not rush to judge if the team is performing in a way they haven’t learned – there may be a reason why the best adaptations. accepted practices are best for this particular group. You should adopt the recommended tools, write code within the existing style guide, and generally keep up with the heartbeat of the team.
Critical thinking and problem solving are essential. If the role requires coding, programming languages don’t matter – clear, concise thinking does. Junior recruits should ensure that the code can be read and extended by other people. The performance of the team is more important than that of any individual.
Be self-reliant and look for ways to add value. If there are any open tickets on a bug tracking portal, offer to investigate a few. Even if you can’t find a solution, you will learn from experience.
Being able to give and accept feedback is also essential. Being able to give and accept feedback without feeling pain can help propel you into management roles.
Finally, don’t hesitate to ask lots of questions. It may sound silly for a while, but knowledge is eternal. Especially when you get out of school, people will expect your curiosity.
Now is the perfect time to become a software developer. Follow these steps and you will be on your way to a great career.