Muhammad Hasan Khan speaks to Revive about job satisfaction, portfolio building and the future of the tech industry
Muhammad Hasan Khan is a prolific writer with a knack for concise, succinct advice. His almost daily posts on LinkedIn are liked and shared by software engineers and beyond; with so much to say and say well, it’s a small wonder he can also hold down a career as a software engineer at the top of his game. Formerly of Microsoft and Amazon, Hasan is now a Software Engineer at Google in California. He took some time out of his busy schedule to speak to Revive about the current and future jobs market, and his advice to candidates currently looking for work as a software engineer.
What advice would you give software engineers currently looking for roles?
1. Build a solid profile: Build side projects, publish them online on GitHub or the AppStore. Contribute to open-source software and participate in online forums like Stack Overflow.
2. Prepare for interviews: Have a solid grip on at least one language, learn the DS&A theory, practice solving problems, and do lots of mock interviews. You're ready when you're comfortable solving problems.
3. Apply for jobs: Find a job you’d like to apply for, tailor your resume for each job by mentioning relevant experience, submit the resume and reach out to your recruiter to have them look at your submission.
4. Schedule multiple interviews back to back: This allows you to stay in high spirits, warmed up, and also allows you to negotiate better with multiple offers in hand.
5. Have a great interview: Be friendly, have a good conversation, listen carefully; it’s fine to get hints, don't strive for perfection.
6. Finally relax: You did everything you could at your disposal. Now don't worry about what is beyond your control i.e. the results. It's natural to feel anxious but don't sweat it too much.
A portfolio of personal side projects can really help someone stand out. How can candidates stay motivated to spend their spare time building up a portfolio of personal projects?
The purpose of the side project is to demonstrate your skill. Anyone can write anything on a resume or CV but our work shows what we've written on our resume is true. Your side project should be relevant to your interests and it doesn't really matter what you build. Do whatever you're passionate about and is in line with your career interests. Publish it online for your potential employers to see.
As for motivation, if we're doing something out of interest, we don't need extra motivation to do it, just as we don't need the motivation to watch Netflix or play video games. To be successful in this career, passion and personal interest is important.
Why do you think many software engineers change jobs so frequently? How can applicants tell whether a company offers a challenging and diverse environment when looking for jobs?
The demand is high and supply of engineers is great, however very few prepare well enough to get through and excel at interview. Those who do know how to interview can easily move to the next opportunity that offers a better package and working environment.
Due to the advancement of technology at our fingertips, we're also becoming more and more impatient and look for instant gratification. We often have great and sometimes unrealistic expectations of intellectual fulfillment in our jobs and when we don't get what we're looking for in a short amount of time, we tend to start finding alternatives. This is not limited to our career, this now manifests in how we deal with personal relationships and other struggles in life.
What programming languages are employers mostly looking for at the moment, and how might that change over the next five years?
Big product companies don't hire for specific programming languages usually. It is expected a smart person can learn any programming language needed for the job. If we know a programming language then learning another one doesn't take a lot of effort or time.
Consultancy companies, on the other hand, hire for specific skills and that varies on market demand. Generally, any language that allows rapid development will continue to dominate in the job market.
What will be the impact of more permanent remote working on the tech industry?
I remember developers craving for remote work before the pandemic. Now that it is forced upon us, companies are adjusting to this new cultural shift and it is expected that this will become more common and accepted practice in the industry. This gives the opportunity to more engineers who are unable to relocate to a different place to work in their dream companies. For companies, this means access to more talent and less friction in attracting talent. This may also remove the immigration and visa barriers for a lot of people.
What would you suggest to software engineers wanting to get into management?
A software engineer is not obliged to remain as a software engineer for the rest of their life. They can move into management or into a different field altogether. For moving into any role, it is important that we study what is needed to succeed in that area and get a mentor that can help us and guide us through our transition.
Have you benefited from good mentorship, and what are the qualities of a good software engineer mentor?
I have had various mentors throughout my life and mentors help you in many ways. They can point out our shortcomings, give us guidance on how to improve. They can help us set our goals and decide on a path to achieve them.
For software engineers, a mentor can be someone who helps us with our communication skills, a senior engineer who reviews our design and gives us feedback, someone who gives us tips on how to prepare for interviews or succeed in our career in general.