How can I get my first job as a software engineer❓
After spending years at the university or months in a boot camp learning critical thinking, coding and the fundamentals of computer engineering, this is a question that every software engineer needs to answer if they want to pursue a career in the field. I also have been in this situation after finishing university, and I hope to share some valuable tips with this article.
The reality is that you have little or no experience in the field, and you are competing with thousands of people who want to get a job as bad as you.
There are a lot of external factors, such as timing, economy and luck, that are significant to finding a job. However, in this article, I want to focus on what you have 100% control over hard and soft skills.
ℹ️ All links and references below are personal recommendations and not sponsored.
Job Hunting
The first step in finding your first job is looking for companies hiring junior or associate engineers. Most of the time, it’s a matter of numbers, and the more companies you apply to, the more chances you have to get an answer.
When reading the job specification, don’t get discouraged if you don’t have 100% of the requirements. Companies typically accept people who only match 70% of the requirements, and if you show you are willing to learn, then it shouldn’t be an issue.
Where to find opportunities?
Websites
The easiest way to start finding jobs is to type on your browser “[junior/graduate/associate] software engineer roles in [location]”, for example: “graduate software engineer roles in London”. It will show a list of websites with job advertisements, and you can start filtering the ones that may look promising. You can also search directly on well-established websites that consistently advertise new roles.
This list is my personal preference
Tip: Set alerts to update you on new jobs. Timing is crucial, and you don’t want to miss an opportunity.
Internships
An excellent way to start your career is by finding a company that offers internships. Usually, big companies have partnerships with universities and are actively hunting top fresh graduates. Try to find out if your institution is part of some programme. During summertime, some companies also offer code camps to help you find a job after graduation and help you create your network.
Networking
Ask your network! One of the main advantages of attending the university is meeting people with the same interests as you and creating a network that will be valuable during your career. Ask around your colleagues and people that you know that are already working in the field. Sometimes, their companies have referral programs to hire graduates, and usually, those roles never go public on their website.
Communities
Another great option is to be involved in communities. There are a lot of communities nowadays organised by passionate people and companies. Some are online, but if you live in a big city, there are undoubtedly local meetups. You can use the meetup.com website to find communities of your interest (not only tech-related). Communities are excellent places to help you find a job because you will meet people passionate about the same topics. Also, it’s a great place to learn, networking and recruiters are always looking for the best talent (you).
Tip: Try contributing to the community by giving presentations or helping to organise.
Resume
Hopefully, you now have a list of potential companies to apply to, and you need to send your “resume” to showcase your skills and achievements. A great resume is what makes the difference for recruiters to call you. It’s like your profile on a dating app. The more appealing, the more chances to get a match. However, preparing a resume without professional experience can be daunting, and I hope you will get some valuable hints in the following section.
Resume Structure
Personal Information - Every resume should start with your basic information at the top. This section should include your name, contacts (email, phone number), social links (Linkedin, GitHub, personal website, etc.) and a brief introduction about yourself to make it more personalised.
Experience - This section is for people with working experience. If you had a chance to do internships or summer code camps, include your responsibilities and the outcome of your work.
Projects - In this section, you should show off your projects. Highlight the technologies, challenges and processes (documentation, tickets, diagrams). Ideally, it would help to have links to the GitHub repositories and the website in case the project is live. Most recruiters don’t look at the code, but some companies involve engineers in the process, and they like to see the quality of the code.
Education - List the relevant institutions and courses you enrolled in. Since you may not have previous professional experience, list appropriate activities to emphasise your soft skills, like presentations, teamwork or published papers.
Achievements - This is the brag section where you should share extra achievements outside work or education. You may have contributed to open-source projects or participated in hackathons.
Tips
- Your resume should be one or two pages maximum. Recruiters and automatic readers handle hundreds of resumes daily and don’t have time to read every page. Some studies mention that recruiters spend, on average, 5-7 seconds to decide if you are a good candidate.
- Avoid sharing personal information such as photos or addresses. Your name, email, phone number and location should be enough for the company to get in contact.
- Write clean and concise language to maximise readability and make scanning easy. Use bullet lists when possible and bold to emphasise important information.
- Avoid having long lists of frameworks and technologies. List only the technologies you feel comfortable discussing during the interview.
- Show projects such as personal blogs, open source projects and contributions to the community. These initiatives show the companies that you are passionate about the field.
- When explaining your work experience, use specific and explicit examples where you describe what you did and the outcome. For example, you worked on feature X, which increased customer conversion by Y%.
- Review your resume and ensure it doesn’t have any grammatical errors. If you are not a native English speaker, you can ask a peer to review it.
Writing a good resume takes hours, but luckily, there are a lot of fantastic resources online and free, explaining in detail how to write a resume.
Here are some templates that you can use as a reference:
Interview Process
Congratulations, you have your first interview! It will be daunting to start, but interviewing is all about practising.
How do I prepare for interviews?
Company interview process
Ask the recruiter about the interview process and if there is any preparation material. Some companies have a blog explaining the process, which can help you prepare. If it’s a well-known company, you can try to find out more about the company in online communities like Glassdoor, Reddit or Blind.
Research about the company
Before any interview, it is crucial to understand the company’s business. Please spend some time reading their website and trying their product. If you want to stand out, think about a potential feature or improvement in their product. As an extra, try to understand their competitors and what is the company’s advantages.
Mock Interviews
Mock interviews are one of the best ways to practice for interviews. Having someone simulating an interview can help your confidence and spot potential areas of improvement. Ask friends with professional experience hiring software engineers if they can interview you. Initially, It might be awkward, but it will help you be more comfortable and confident during an actual interview.
Example of a mock interview (video)
Study for the interview
A solid software engineer foundation will increase your chances of getting the job, and it only depends on you. Ultimately, that will be your daily job, and you must be proficient at it. Here is a list of my favourite resources (books & courses) to help you prepare for any interview independently of your level:
- The interview Handbook (FREE)
- Cracking the Coding Interview
- Clean Code
- Design Patterns
- System Design Interview Volume 1
- System Design Interview Volume 2
- Grokking Coding Interview Patterns (Course)
- System Design for Beginners Course (FREE)
- AlgoExpert (Courses)
How do I behave during the interview?
- Communicate effectively during the interview by listening carefully and communicating your thought process. You can have fantastic technical skills, but it can be a reason to reject you if you can’t communicate and work as a team.
- Show the interviewer that you have done your homework and understand their business basics.
- Honesty! If you don’t know an answer to a specific question, say you don’t know. Don’t try to impress and say something out of context. It is okay to say: “I don’t know the answer, but from my knowledge of the topic, I think this solution might work…“. You are being honest, saying that you don’t know, but simultaneously, you are trying to solve the problem with your current knowledge. That’s the expected attitude from an engineer.
- Show off your technical skills if there is an opportunity. Discussing a topic with someone with more professional experience can be intimidating. However, it does not mean that person knows more than you on a specific topic. If you feel comfortable, try to go deep on the subject and share all your knowledge. Just be careful not to be arrogant.
- Ask questions! An interview should be both ways. You want to understand if you would like to work in that company. So, prepare a list of questions to ask at the end of the interview. Don’t be afraid to challenge them. If you don’t have anything in mind, ask the basic ones like:
- Which project will I work on?
- What a day looks like in your team?
- What was the biggest challenge you faced?
- What are the team processes?
- What are your expectations from me during the first three months?
Follow up
You have finished the whole interview process. Now, it’s the period where you keep refreshing your inbox, waiting for the company’s decision.
When that email lands in your email, there are two outcomes. Either you got the job and, in that case, congratulations, or you got rejected. If it’s the second option, don’t give up. It is hard to get rejected, and it happens to everyone. Stay positive and learn from your mistakes. Ask the interviewer if they can give you constructive feedback.
Focus on the following interview and keep trying until you get your desired job. The more interviews you have, the more chances you have to get a positive outcome.