Getting experience as a new grad posted on 02 April 2024

Computer science at school is fundamentally different from being a software engineer. While you need the fundamentals of computer science to work as an engineer, your day to day job is today significantly different from what you learn at school.

You don’t implement quicksort, a paxos algorithm or a red black tree implementation as an engineer – you just use an existing library. In general working as a software engineer is more around connecting systems/libraries than crafting systems from scratch (obviously there are some exceptions).

Looking from a hiring manager perspective (as a senior IC), I have little interest in your school projects as it’s not a good signal for being successful as an engineer. The same in general goes for small personal projects – I may find them interesting/funny but in general they aren’t a good signal.

What would be a solid signal is participating in large open source projects. For example if you performed significant core changes to a large project (Chrome, Gnome, Krita etc.), I would take it as a good proof that you can be successful in an engineering company:

  • You can ramp up on a large (and probably messy) codebase – you can navigate a large code base and abstract a large system into multiple boxes
  • You have the tools to be successful – you figured out how to set up the tools you need to build/test that repository
  • You can operate independently – in general you don’t get mentored to work on these large open source projects

I’m not saying this is the only good signal, but it is the closest work to a software engineer you can do as a new grad. I would honestly consider this type of work more significant than a previous internship – since you can demonstrate that you were successful in working on the open source project.

What other good signals do you use to calibrate a new grad?

LinkedIn post