Preparing for Software Engineering Interview — Where you start?
This post is in a series of posts I am writing to chronicle my thought process and learnings as I prepare for software engineering job interviews.
Prepare your mind — You’re not landing that job overnight, likely not in a week or even a month. You feel stressed when you realize that you’re not in best shape at this time, it all seems SOOOO hard… now scratch that thought and absorb this — “Lack of information/knowledge is the root cause of all anxiety. Once you bridge that gap you start to feel better”. So it’s hard BUT it’s not impossible. And instead of viewing it as hard, view it as a fun opportunity to refresh your basics, acquire new knowledge and skills. Relax. Be Calm. Take baby steps each day and you will have bridged the gap between what you know and what your interviewers expect you to know. In weeks and months you’ll know more than you know today. It’ll keep getting better because you’ll keep getting better. The key to making this happen is — disciplined dedication to taking those baby steps.
Update resume — At this point you don’t know what job you’ll be applying for but in general get the resume *in shape* — it should tell a story of progression, and impressive accomplishments. You have to put in the work to make it look appealing after all you are the product and you want them to feel that this is a great product which they can’t do without.
Whiteboard what you are looking for — The last thing you want is to go from one unsatisfying job to another. Start describing what kind of work you enjoy, what kind of environment, etc. A word of caution — don’t get too ideal here. What I mean is that let’s say you don’t like your current leader, you can’t put ‘A great leader to work with’ on your list because guess what it’s something you can’t search for, it’s the kind of stuff you’ll naturally sense during your interviews (which you should prepare for).
For example, I’m looking for
- Role: Solve problems affecting my users and my team mates through a combination of process, technology and mentoring. Learn from others and become a better professional and a better person.
- Leverage existing skills: C#; ASP.Net, EF, any database will do
- Scope to learn new skills: .Net Core, Angular, Cloud, Containers
- Environment: Small but mission driven team, smart engineers to work with, delivering software continuously to customers
- Others: Reputed organization that can sponsor Visa
Prepare Study Plan
- Fundamentals —Depth-First Search (stack), Breath-First Search (queue), Matching Parenthesis (stack), HashTables (memoization, caching), Manipulating multiple variables/pointers, reverse linked-list, sorting fundamentals (n Log(n)), recursion, constructing custom data structures, Binary search
- Concepts — OOPS, SOLID, REST, Scaling, Containers, CI/CD best practices
- Practice — Python (for fun), HTML, CSS, jQuery, Angular, Azure (demo)
- Certification — Azure
Practice — This is where you will spend MONTHS — learn a concept, practice solving problems. Enjoy the journey as you remind yourself each day how you’re getting better as a Software Engineer.
Job & Company Research — This activity should go on in parallel as it will help you understand what the market is looking for in a given role. Identify companies where you’d like to work for various reasons — you admire them, you want to experience their engineering culture. While you’ll definitely look at LinkedIn, also check out StackOverflow as they have some interesting small companies posting jobs there.
My list includes — LinkedIn, Microsoft, StackOverflow, Pluralsight, Tesla, Square, StitchFix, Paypal, Whole Foods, Atlassian, Starbucks, Southwest
Start giving interviews — Start this activity after you’ve spent a 4–6 weeks solving problems. Gaining this experience while learning is also vital so that by the time you get done with your full preparation, you’ve also overcome the mental block of giving interviews, and now you’ll be ready to apply at your dream companies.
Resources
- Cracking the Coding interview
- http://algoexpert.io
- https://www.youtube.com/watch?v=zHczhZn-z 30