t’s OK to be rejected
As a new grad, you may not have a lot of achievements that will guarantee that you will be a successful software engineer. You may have done internships but:
- They are very noisy signals – how well you perform and what you learn heavily depends on your mentor, the project you were given and the company you join.
- They provide a bias signal in my opinion – a lot of companies hire only from a few selected universities, so from there internships just give an additional edge to students in top schools.
With all that being said, doing an internship will give you a first work experience and insights on how companies operate (more thoughts in the comments). I personally never did an internship before getting my first job as a software engineer – I did land a job in the San Francisco bay area when I was located in France.
One thing that helped me get the job and quickly perform well in my opinion was my experience tinkering and hacking my tools, system and environments. A few examples:
- Using archlinux as my base distro and keeping a few software on the bleeding edge (e.g. nodejs)
- Flashing my router with DD-WRT
- Tweaking my work environment (e.g. with awesomewm, vim etc.)
What I got from playing around is the ability to not freeze when facing a difficult situation and keep calm while trying to figure out a way forward (though there are cases where I ended up bricking a device…).
I worked (and still do!) on very important systems in my career with high impact ($XB revenue and $XB regulatory potential fines). I still don’t think there was a time when I was more anxious than the first time I screwed up my GRUB and couldn’t boot. This experience (with other similar ones) helped me grow to better face whatever curved ball is thrown at me.
Thoughts/tips on how to develop useful software engineering skills without working at a company? More in the comments