Skip to content

Latest commit

 

History

History
35 lines (20 loc) · 5.35 KB

AdviceForNewEngineers.md

File metadata and controls

35 lines (20 loc) · 5.35 KB

Advice for first engineering job seekers

I have been asked about this topic dozens if not hundreds of times. I thought I'd write it down to hopefully come up with a better answer than I usually give and provide people something to reference if they are interested.

For software engineers looking for that first job, a few words of advice:

  1. Your career will have ups and downs, but understand that the first job is the HARDEST to get. Hands down, no question. Be patient, be relentless, do whatever you have to do (within your morals, dignity, and the law) to get that first 18-24months of real-world developer experience that is the most important thing...Just get in the door.

  2. If you have options, index on the best manager (this can include more senior devs on the team) you can find. You will be on an exponential learning curve for the first two years, and the better the manager, the better the curve.

  3. Don't be too picky; obviously, it’s great to have options, work with an amazing team/product, and get paid a great rate out of the gate. That can be an accelerator for your career, but don't be too picky. Again...the most important thing is that you get that real-world experience.

  4. If you are struggling to get offers, break it down like a production debug. Where is the failure happening?

    1. Are you not getting interviews from your applications? Probably an issue with your resume/application.

    2. Are you getting interviews but not that many? It Could be an issue with your resume/application, or it could be you're not just not applying to enough places. Assume a super high failure rate and act accordingly.

    3. Are you getting interviews and going all the way through the process but not getting an offer? They probably want to hire you, but you're not worth the risk at this point. See number 6 for ideas on how to de-risk yourself.

    4. Are you doing well in the technical interviews, but not moving forward to later stages? You probably have a behavioral issue that is a red flag. Find a friend or advisor that will mock interview you and give genuine feedback. Take the process seriously, and assume you're the problem and fix it.

    5. Are you bombing the technical interviews? Well...get to work. Practice them, find study groups to grill each other. Go on CodeWars (or similar platform) and get the reps. I know there's a lot of talk in the community about white-boarding and algorithm tests not being good tests of an engineer's ability to do the job. IGNORE that, that conversation is not helpful to you. Your goal is to get the job, not attempt to transform an industry you haven't broken into yet.

  5. Understand that everyone that is hiring engineers is short on good people. Their bias is to hire you, if you're not getting in, there's a reason. Assume you're the problem, this might not be true, but it is irrelevant to your goal.

  6. It is hard to get the first engineer job because early engineering hires tend to need a lot of hand holding and aren’t productive. Hiring you is an investment in the future, and as a result hiring managers are going to be more picky than usual. If you want a job, you have to convince them you’re not going to be like all those other noobs. Ways to de-risk yourself as an first time engineering hire:

    1. Build things…end to end. Assuming you’re in the web development space. Build an app, and a backend, and have a DB. Finish it. Deploy it to AWS/GCP, and don’t use some easy helper tool like Elastic Beanstalk or Heroku. Treat it as “In Production”, and use it. It doesn’t have to be some app that you’re going to put on Product Hunt or anything. It just needs to be a real thing.
    2. Building on the previous item, learn cloud engineering. I recommend AWS, learn all the major services (EC2, Lambda, ECS, SNS, SQS, API Gateway, S3, Cloudfront, and on and on), how to use them and why people choose one vs the other. Play in the console, then use IaC to set it up. Try multiple IaC platforms – I’d recommend Cloudformation, Serverless Framework, and Terraform – I don’t know of a single company on AWS that isn’t using one of those. There is an enormous amount of educational information out there for free on how to use these tools, and AWS will give the service away for free.
    3. Demonstrate that you are someone that can figure things out on your own. If there’s a job in particular you want, reverse engineer their stack and build an app in their setup. Send it to the hiring manager and ask for time to walk them through it. Get out of the “this person will be a time suck” column and into the “wow, this person could help us out” column.
  7. Go out and engage in your local development community. Before COVID, I would have recommended finding good tech talks and Meetups to regularly attend. I’m not sure how that advice should be adjusted given the current world, be creative. Choose groups/topics that you are genuinely interested in – or that are hosted by companies you are interested in. Relationships matter, and those are great places to develop them, plus you learn lots of things about the local companies and interesting technical topics. Hint: People that give talks at those events love to help out more junior devs. It’s a great place to get hyperlocal advice and introductions to job opportunities.

  8. Stay focused, and stay positive, you’ll get there.

I hope this helps someone.