Josh Marchello


If I Were Starting A Software Engineering Career Today

I’ve been writing software professionally for over a decade now, and during that time I’ve taken part in hiring many other talented software engineers. So when I hear new graduates and junior developers express fear or frustration about finding a job in today’s economic climate, I stop and think about what I would do if I were starting my career today.

I’d build, build, and build

As the interest rate increases, companies will be refocusing on finding developers that are low risk and offer a high return on their salaries. This means they want developers with proven track records and a breadth of skills. The beautiful thing about programming is you can start to develop those traits without anyone’s permission.

I’d just build stuff. I’d build as much I could. I’d build stuff that already exists. I’d build stupid stuff. I’d build stuff I thought would be fun to play with. The more you build, the more stuff you can point to and say “I built that”. But also, building stuff is the only real way to learn. I’d make sure I explored a wide range of technologies as I built. The more things about which you can say “I’ve played with that before”, the more attractive you’ll be to interviewers.

I’d write about what I built

This is something I did not do enough of earlier in my career, as I didn’t feel I had enough experience. If I were starting my career today I’d start writing the second I learned anything new. Even if nobody read it but me, it’d be an extremely useful reference. Additionally, it would give me something to send to potential employers to show exactly what I knew. It would also showcase my abilities to communicate clearly and effectively. Such skills are absolutely crucial for software engineers to develop.

I’d collaborate and contribute

Another avenue I under-utilized early in my career was open source. If starting today I’d dive head first into a couple open source projects I found interesting and start triaging issues.

This would provide a number of powerful benefits. First, it’d expose me to a real-world codebase. Most of the work you do in your career will most likely not be greenfield, so learning how to explore and understand other people’s code is an important skill.

Second, it would provide a great networking opportunity as I worked along side the maintainers and consumers of the projects. It’s even possible to land a job this way.

Finally, it’d be yet another powerful example to show interviewers. Having contributed to a few open source projects serves as a certain status symbol in the industry. It’s also a tangible example of how well you work with others, which is a key trait interviewers are trying to learn about you.

I’d network

Finally, I’d get myself out there and rub shoulders with people in the industry. You’ve probably heard this a thousand times but it’s a cliche for a reason. It’s single handedly the best way to get a job. One of the main things interviewers are trying to figure out is simply if you’re a likable person who is easy to work with. They just want to know what kind of person you are. For this reason, someone who comes at the recommendation of an existing employee ALWAYS has the upper hand. Even if that employee only sort of knows you.

I’d find folks at companies I want to work for or who are doing the kind of work I want to do, and I’d take them to lunch periodically. Even after you get a job keep doing this. It will build strong friendships and a network through which you will likely get most of your jobs throughout your career.

The future is bright

Things may seem harder than they were before, and in some ways that’s true. But harder doesn’t always mean worse. The past decade was a time of widespread inefficiency and hiring for the sake of showing “growth”. As the economy tightens companies will seek hard working, productive professionals. Prove yourself to be one of those, and you’ll consistently be in high demand.