This week, I published Shahid Iqbal's #DevJourney story on my eponym Podcast: Software developer's Journey. Among many other things, here are my main personal takeaways:

  • The beginning of Shahid's technical story goes back to his childhood when he kept on taking things apart and didn't always manage to put them back together.
  • But all the while, he pursued programming and Computer Science on the side as a hobby. Shahiq was very interested in human bodywork, but instead of going into medicine, he decided to pursue drug design up to a Ph.D., working long hours in a laboratory until he sat down to write his thesis. That's when he realized he felt miserable as if he had flipped a switch, almost overnight. Shahid dropped out of the Ph.D. program and navigated from job to job to pay the bills. That's when he finally landed an IT Administrator job for the NHS (British Social Security).
  • The first stumbling block in IT is meeting the requirement specs of a job profile: " they are looking for six months experience in X, I have only five months and three weeks, so I won't apply." To put his foot in the door and boost his confidence, Shahid decided to pass Microsoft Certifications. It worked, and he got his first job as a developer.
  • A contractor he worked with introduced him to a few advanced concepts like DependencyInjection, CastleWindsor, and NHibernate. Even more importantly, he opened his eyes to the world of Meetups and user groups.
  • One of the critical skills Shahid learned as a Ph.D. student is to hunt for information. This skill proved itself very useful in the future as a software developer.
  • Shahid is accommodating by nature, and he struggled for a long time until he realized that enabling others to work is a big part of the senior developer role. You shouldn't feel bad you didn't achieve much today if you spent your time enabling others: "if you've helped three people, that's three times more productive than what you could have done yourself."
  • During his career, Shahid had the opportunity to interview quite a lot of candidates. He explained in length what was essential to him in terms of values, code quality, and so on. Only once did a developer ask to see the codebase. Ensued a formidable discussion about code ownership, tradeoffs, the things we are proud of, and the things we know we screwed up but have to leave in nonetheless. He encourages us to ask!
  • Shahid took the job-change challenge to a whole new level. He decided to change job and move to another continent during the COVID pandemic. After a Visa-Nightmare, he finally was able to join his company three months ago.


  • "Yes, your first talk is going to be terrible, but don't worry about it"


  • "I don't remember debugging the turtle"
  • "In small companies, the roles are very fluid"
  • "It's not just what you do, it's how you allow others to work"
  • "Celebrate the successes that others have made, that you might have helped with"
  • "That was the first time I realized that the interview process mainly was me interviewing them, then the other way around"
  • "There are a lot of decisions in our codebases that we made a few years prior, with the information we had at the time, and we have never revisited since"
  • "If I sum up my career, it's a succession of 'Screw it, let's just do it, what's the worst that can happen?'"

Thanks, Shahid, for sharing your story with us!

You can find the entire episode and the show notes on

Did you listen to his story?

  • What did you learn?
  • What are your takeaways?
  • What did you find particularly interesting?