Advice for breaking in as a Software Engineer

I wrote this for a friend that is helping people making a career change to software engineering and thought I would share it here. I am not hiring entry level engineers at the moment as we were able to hire several recently.

-----

Over the past six weeks, I have interviewed several entry level software engineers and was able to hire a few.  All of the candidates I interviewed recently went to college for computer science or engineering or went through a web development boot camp.  I do not think that is the only path to becoming a software engineer.  I would interview people who had done substantial learning and work on web applications regardless of a related degree or bootcamp.

So, how do you actually get the interview and get the job?

Getting the interview:

Find an experienced developer that can give you guidance and answer questions.

Have someone review your resume.  Make sure it looks professional and makes you seem like you know how to put a document together.

Have several relevant projects on a public repository site like GitHub.  Preferably have some of them hosted, so I can see them in action live.

  • Get them to at least have a decent look and user experience.  Use bootstrap or the applicable variant of MaterialUI for your front end framework to quickly achieve a good look and feel.
  • Organize your files and use good names, so I can figure out how your app works quickly.  Get help from an experienced engineer if needed.
  • Unit test your application.  Bonus points for API tests and UI system tests.  https://martinfowler.com/bliki/TestPyramid.html
  • Don’t know how to write unit tests?  The first two parts of this excellent test-driven development course are free.  The course video listing is about half way down the page.  https://online-training.jbrains.ca/p/wbitdd-01 
  • Don’t know what to build?  Find a tutorial for a full stack web app or combine a front end and back end tutorial.  Build the tutorial then build something that is your own.
https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/introduction/getting-started (full stack)
https://angular.io/tutorial (front end)
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api (back end)
  • Bonus points: Utilize a database, Setup proper authentication and authorization
  • Need more direction?  Lots of people learn to be web developers through https://www.freecodecamp.org/ 

Network.  If I meet you at a local meetup or community event, I am much more likely to interview you.  Or if you met someone else I work with and they refer you to me.  Plus you will learn a lot at these events.


Getting the job:

General Stuff

Organizing interviews is hard.  Help me out by responding promptly, reading all instructions ahead of time, and keeping your appointments.

Research the company before your first interview and refresh the information before each interview.

  • Social media
  • YouTube
  • Press releases
  • About Us, Company Values, etc. on the company website.

Be prepared to answer non technical questions.  Come up with good examples from previous experiences and practice telling the story.

  • Why do you want to get into software engineering?
  • Can you tell me about a time when you received constructive feedback and what you did as a result?
  • Tell me about a time when you struggled with something.
  • You are going to have to learn a lot quickly.  How do you approach learning?
  • How will you start contributing to your team right away? https://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382 (good answers around learning and contributing)

Be prepared to discuss your portfolio or open source projects in detail.  Come up with some alternative approaches you could have taken in critical areas.


What do you need to know “technically”?

What does good code look like?

What are automated tests?  What does quality look like in software development?

How do you turn an idea into valuable software?

  • Most places you interview will practice Scrum in an effort to be Agile.
  • Read the scrum guide. https://scrumguides.org/index.html
  • Know the difference between Scrum and Agile software development.
  • Understand the roles of product people, software engineers, and quality engineers in a typical software development process.

Will I have to write code?

  • Don’t be afraid to ask what you will be doing in the interview.
Will I be writing code?
Will I have to work on a whiteboard or otherwise without an IDE?
What language will we be using?
  • I pair program with people on a simple problem.  Like a Roman numeral converter (turn an integer into a string that is its Roman numeral representation).
Know how to write unit tests.
Practice writing code with other people (go to Software Crafters Atlanta meetup or Code Craft Saturdays and Sundays).

What else might I have to do?

  • I recommend knowing how to write a recursive function to generate the Fibonacci Sequence and a function that will generate the FizzBuzz pattern for numbers 1 to whatever.
Don’t just memorize them.  Practice breaking the problem into small parts and solving it.
  • Practice doing it on a “whiteboard”.  A piece of paper will suffice.
  • There are numerous sites with katas, algorithm practice, and coding challenges.

Thank you Ryan! This was very helpful for me.

Like
Reply

I always appreciated any advice you gave me and knew you truly cared about others’ careers! Great article

Like
Reply

This post is written with profound care. Ryan you excel at leadership with humbleness and great personality traits as always.

Thank you for sharing, Ryan 😬

To view or add a comment, sign in

Others also viewed

Explore content categories