This is not exactly a guide but some thoughts I have had recently after interviewing a few candidates for SE roles.
As I've been conducting interviews for software engineering positions across various teams in my company, I've observed a concerning pattern: many candidates lack the fundamental skills required for our team.
Key issues I've encountered include:
The field of software engineering is surprisingly approachable – it's one of the aspects that initially drew me to it. While building great software requires careful consideration, and teams benefit from both exceptional performers and reliable contributors, the fundamental principles remain straightforward.
For those seeking to understand these fundamentals, "Software Engineering at Google" is an invaluable resource. Though some might argue that Google's scale isn't relevant to their context, the core principles are universally applicable.
I strongly recommend reading "The Phoenix Project". This novel follows Parts Unlimited's transformation from traditional enterprise software development to embracing DevOps principles. It's an excellent benchmark: if your team's processes align more with the "before" than the "after," it's time for change – either within your team or by finding a new one.
Begin by attempting to improve your current team environment. Showcase modern practices and tools, demonstrate their value, and encourage adoption. If you consistently encounter resistance or disinterest in improvement, consider exploring new opportunities.
Keep in mind: joining a stronger team requires elevating your own skills first. Hiring managers are typically reluctant to onboard engineers who haven't maintained currency with modern practices or demonstrated thoughtful system ownership.
Pro tip: Professional growth doesn't require overtime. Allocating just one hour daily to learning or experimenting with new debugging approaches can significantly enhance your regular work productivity.
To position yourself for better opportunities:
Finding time for professional development can be challenging, particularly with family commitments. However, investing in your growth is essential before expecting others to invest in you.
The age-old wisdom "Look after the pennies, and the pounds will look after themselves" applies here. By mastering fundamentals and embracing best practices, your growth as a software engineer will naturally follow. Focus on steady, intentional improvement rather than seeking dramatic overnight changes.