When learning to code – or considering learning to code – it’s wise to look at software engineering job descriptions to see what type of jobs interest you, and the skills you need to acquire to qualify for those jobs. However, job descriptions can sometimes be scary. Even some entry-level developer postings solicit 2+ years experience and a university Computer Science (CS) degree.
But wait – an entry-level job for someone with years of experience?!
Oftentimes, these job postings describe a “dream” candidate – because why not advertise for the best developer you could hope for? While these qualifications are ideal, in reality, many companies are willing to hire a candidate with less experience who meets other qualifications. Especially someone who they feel confident can learn on the job.
After training developers at our Java bootcamp in Bali, we've learned what employers are really looking for in a junior developer, how to read between the lines on software engineering job descriptions, and how to reverse engineer job postings to strategically approach your education and interview preparation.
Most software developer job descriptions include a section about the company, as well as the responsibilities, qualifications, and salary / benefits for the job opening. Let’s break down each of these sections to understand what the company is looking for, and what you can do to fit the bill.
To get started, let’s look at the responsibilities and qualifications from an actual entry-level software developer job description with Angaza.
You should have 4+ years of professional experience writing software
Python (we use SQLAlchemy and Flask heavily)
Postgres (SQL and management)
REST API design and implementation
AWS, Heroku, Grafana, and associated deployment platforms and tools
Android app development
You’ll notice that even for an entry-level position, they solicit someone with 4+ years of experience, plus back-end, front-end, and mobile development skills. That’s a lot of skills for an entry-level candidate :)
However, after this list, the job posting says point blank, “We don’t expect you to check all of these boxes! ... You’re not expected to arrive as an expert in everything.”
Phew! This is a great example of a company soliciting their dream candidate, while also being open to candidates who meet some, but not all of their dream qualities.
A software engineer uses computer science principles to develop software solutions that will satisfy the wants and needs of businesses and consumers. Software engineers create many types of solutions such as desktop and web applications, mobile apps, games, robots, operating systems, network systems, etc. They do so using programming languages, frameworks, databases, servers and other technologies to turn an idea into a final product.
Your daily duties as a Software Engineer largely depend on the type of developer you are. Below are some examples of software engineering responsibilities by specialty.
A backend developer for Amazon AWS builds and maintains APIs like the EC2 API.
A data engineer for Spotify extracts song metadata and stores it efficiently to allow for quick retrieval.
A mobile developer for Whatsapp adds new features to the Android and iOS versions of the app and fixes bugs that arise.
A machine learning engineer at American Express builds systems that monitor transactions and detect fraud.
A frontend web developer at Cornell University ensures the website works smoothly and it looks and feels right.
Danica, Kezia and Heather are CodingNomads alumni, and work as backend developers using Java.
While software engineering responsibilities vary, all engineers experience new challenges and problems to solve every single day. This means you will constantly be learning and collaborating to figure out the best solution for the job.
Additionally, a survey conducted by Electric Cloud found that most developers spend up to 54% of their time on non-coding tasks including brainstorming, waiting for builds/tests to be complete and administrative tasks. If continuously learning in a dynamic environment is something that excites you, you could be a great candidate for a software engineering job.
Once upon a time, a CS degree was a must to get a foot in the door with software companies. Now with the worldwide technology boom, more employers are willing to hire a candidate that can get the job done, even without a CS degree. In fact, many large companies such as Apple and IBM have now scrapped their degree requirements.
While many software engineering job descriptions still include this ideal qualification, if you can demonstrate your skills through projects that use the company’s technology stack, you may still be a qualified candidate for the job.
Most hiring managers understand that technical skills can be taught, but personalities and attitudes are inherent. Technical skills aside, here are 10 important soft skills that companies look for in junior devs:
Ability to communicate effectively in a team setting
Logical thinking / good problem solving skills
Persistence – someone who will work the problem, and work well under pressure
Curiosity and creativity to turn ideas into code
Culture Fit / Likeability – someone they will enjoy working with
Positive mental attitude – important for when deadlines get stressful
Future-oriented thinker – someone who can see beyond the current task and think about the bigger picture
A confident learner – someone who is not afraid to “figure it out”
Genuine interest in the company’s product / mission
Genuine excitement for software development
When preparing for the job search, think about how you can emanate these qualities in your outreach and interviews. If you feel you lack in some of these areas, what can you do to improve your mindset or attitude to be someone a company is excited to hire?
Image Source: CodingNomads
Because of their highly specialized skills and global demand, software engineers are some of the highest paid professionals in the world. Not only salaries, the perks that software engineers enjoy are next to none. Take, for example, Google, whose employees enjoy free food on campus, shuttle services to work, and 20% of their time allocated to work on a project they love!
Another major perk of being a software engineer is the possibility to work remotely – from your home office, a co-working space, or a cafe on the beach – as long as you have stable wifi! Remote work is becoming increasingly common, with companies like Gitlab, Automattic, Zapier and Wikimedia being fully remote. If you want to try a taste of the digital nomad lifestyle, you can even learn to code while traveling the world.
Looking at software engineer salaries and benefits can help you determine the type of engineer you want to be, the type of company you want to work for, and the location you’d like to work from. This information will help you approach your learning experience strategically, with the end goal in mind. By following these steps, our alumni Heather received a job offer for her dream company only 2 weeks after completing our Java bootcamp in Bali!
Image Source: CodingNomads
In order to become a company’s dream candidate, you’ll want to learn the hard skills and possess the soft skills that they company is looking for. By researching these skills before learning to code, you can tailor your learning experience towards the jobs you want.
Follow these specific steps to reverse engineer software developer job descriptions and become a company’s dream candidate.
Gather 10-15 job postings for your ideal job
Consider the job role, location, industry and size of company, and other factors that are important to you.
Make a list of the job description requirements / qualifications
For each job posting, sort the job requirements and qualifications into a list with 3 columns: soft (non-technical) skills, “must know” tech skills, and “good to know” tech skills. If you notice many job postings requiring the same technical skills, add those to the “must know” column. For technical skills only listed on a few job postings, list those in the “good to know” column.
Learn and build projects with the skills you need
At Coding Nomads, we always recommend starting by learning to code online for free, so you can see if you enjoy learning these concepts before investing in a paid course.
Once you’re ready to take your skills to the next level, an intensive software engineering course – or coding bootcamp – is the most efficient way to gain professional level skills. This is because a bootcamp’s curriculum is based on the tasks engineers actually do, and they are designed to help you learn quickly with dedicated mentor support.
While you’re learning to code, make it your goal to build projects that use the technologies for your desired job. Especially in a bootcamp setting, you’ll have the support of your instructor who can help you gain more advanced skills.
By the time you finish the bootcamp, aim to have at least two demonstrable projects that utilize the skills companies seek. The projects don’t need to be massively complex, just working examples that will give you talking points in an interview and impress a hiring manager.
Position yourself as the dream candidate
When preparing for the job search, use the language directly from the job postings in your resume, cover letter / outreach email, LinkedIn, and any other online profiles or outreach efforts. Using the exact keywords from software developer job descriptions will improve your relevancy to the position they want to fill, and make you searchable on online profiles like LinkedIn.
When preparing for the interview, prepare talking points about your technical skills and project experience based on their job description.For the soft skills, think of examples from your current/previous jobs where you’ve used these soft skills so you can convey these qualities in your interview. Most companies also seek candidates that fit into the company culture. You can research a company’s core values in their about page to ensure you vibe with their culture, and to prepare your interview talking points to demonstrate how you’d be a great fit.
While companies tend to advertise for their dream candidates, you likely don’t need to check every box to be a great candidate for the job. If a job requires skills you don’t yet have, you can seek out education or build projects using their tech stacks to become a qualified candidate. By starting with the end result in mind – the job you want to get – you can reverse engineer a software engineering job description to approach your learning experience strategically, saving time and money in the process!
Wrapping ip 2019 and Making Predictions for 2020!
These are the skills to add to your 2020 tech toolbox...
These are the skills to add to your 2020 tech toolbox...