Self Taught Web Developer

From Electrical Engineering to Software Development

Today’s interview is with Ahmad, who changed career from electrical engineering to software development. This led to him accepting a job in the UK and moving from his home country of Pakistan. He talks about his income has improved from learning programming, how he learned to code and lots more!

Hey, so can you introduce yourself?

Hi, I am Ahmad, originally from Pakistan and have recently moved to Cambridge in the UK. I am a Cloud Software Engineer by profession and an OpenSource technology enthusiast by heart. I am currently working at a large UK based Bioinformatics and Disease research organisation where I play a key role managing the cloud infrastructure and automating the software stacks to make the lives of scientists easy. 

Before my current role, I have had the pleasure of working with Canonical, one of the biggest open source software companies and the makers of the world’s most popular open source linux operating system, Ubuntu. I have helped build cloud platforms based on open source software stacks and have also contributed heavily to the cutting-edge open source software technologies such as OpenStack, Kubernetes and Linux. I have designed cloud infrastructures for Telco organisations across the EU and UK that are shaping the future of communication networks.

Why did you learn to code? 

After completing my masters in Electrical Engineering back in 2018, I started my first job in a telecommunications company where I used to visit people’s houses to troubleshoot and resolve broadband network issues. It was not something I wanted to do for the rest of my life as the job was repetitive, not very rewarding and was not challenging me to evolve as an engineer.  

After trying to kickstart my career in the electrical engineering industry for a while, and thankfully failing at it, I eventually came to realise that this was not a flourishing industry for building a career. I could see that the world was transitioning towards a future where automation and cloud will play a significant role.

I started learning Python, Computer Networking and Linux, which led me to land my first job as a Cloud Engineer back in Pakistan. This provided me with a huge opportunity to learn more and I started delving into open source cloud platforms and software defined networks. I have never looked back since and have been fortunate enough to have worked with tech giants like DELL and Canonical during my journey.  


Twitter-ghost-writer-for-hire


How did you learn coding?

Originally, I started to learn Python and Computer Networking on my own by using free online resources like YouTube and coding websites. This provided me with just enough knowledge to create a good impression during technical interviews and helped me land my first role. However, the real growth happened after I started my career and got to learn from some of the very best and talented engineers in the industry. 

I had taken a keen interest in open source software and was actively trying to contribute to open source projects. This led me to collaborate with veteran software engineers around the globe. Having the guidance of these amazing software engineers during my open source journey really helped me hone my skills and shaped me as the Cloud Software Engineer that I am today.

For anyone trying to learn to code with limited resources and guidance, I really recommend taking advantage of the huge amount of freely available resources over the internet and trying to contribute to some open source projects.

How has your life changed since learning to code?

Since I learned to code, my financial situation has been very stable and the income growth has been exponential. But more than that, it gives me immense satisfaction at the end of the day to think about the impact I am able to make by building state of the art cloud infrastructures and automation solutions that are shaping the future of the world.

The open source solutions I have developed and contributed to are defining the next generation of telco clouds in Europe/UK and are enabling telco providers to adapt technologies like 5G and AI. In my current role as well, I am able to make a positive impact by integrating automation and cloud into breakthrough genetics/disease research programs.

I also enjoy the constant urge and need to keep learning, as the technology stacks keeps evolving and the tools keep changing. This keeps me on my toes and motivated, there are new challenges to solve each day and there is never a boring day or a dull moment.

What does a typical day as a software developer look like for you?

As a software engineer working with cloud platforms, I mostly interact with multiple scripting languages and infrastructure as code tools. Python is the industry favourite and my go-to language for small automation scripts. I use Ansible and Terraform frequently to automate cloud deployments, application deployments, and to maintain a reproducible infrastructure in code format.

I interact with public and private cloud platforms including OpenStack, Kubernetes and Google Cloud Platform on a daily basis to keep improving the solutions to cater the end user needs.  The work I do in a single day is a mix of a lot of different things really, which I enjoy as I don’t get bored working with repetitive tasks or selective tools.

How did you get your first software engineering job?

I actually got my first job as a software engineer with guidance from an old university fellow. I was catching up with him one day and he asked me what I was up to those days. I was struggling to decide on a career path  at the time and was learning the basics of Python and Networking with no real direction really.

He told me that he was working at a company that was operating in the Software Defined Networks (SDN) domain. This was new to me and fascinating, he was kind enough to refer my resume to the HR in that company for an entry level position.

The interview process was quite interesting, it was a mix of cognitive tests, small coding tasks and computer networking knowledge assessment. Although I had no prior work experience in any of these technologies, my recent efforts in learning these subjects helped a lot in acing the interviews and landed me the role.

Later, I discovered that I had really hit a Jackpot in terms of the right career choice as this was one of the only companies in Pakistan that was working with cutting edge SDN and Cloud technologies. I got the chance to work on complex projects early on that really challenged me to grow  and honed my software skills quickly.

What’s it like working at Canonical? 

Working at Canonical has been an amazing experience for me. Canonical is one of the leading open source software companies and has a completely remote engineering fleet. This in itself is so fascinating as they have been able to hire engineers across the globe and cohesively work together to develop and come up with some of the most widely used technologies running in critical tech stacks all over the world.

The fully remote work culture was not something that I could get tired of as the systems and tools were very well-developed and well-suited to encourage collaboration and communication. I was communicating with my team members and across engineering teams on a daily basis.

The best words to describe the work culture would be ‘an organised chaos’, we used to call it a bee-hive culture where every bee is individually and cohesively working towards building something of greater significance.

The transparency in processes was also something I really appreciated. I was given the opportunity to gain knowledge of an end-to-end project delivery and got to explore each and every phase of an engineering project from proposals to design  to delivery.

What are your career goals for the future?

My goals for the future are to become a subject matter expert in multi-cloud and to transition into a more senior role where I can share my past knowledge and experiences to help develop solutions that tackle more complex problems of the tech industry.

I want technology to be more accessible and I have a passion to work more towards open source development. I want to be able to make an impact by making more of the software freely available so that innovative people around the globe, and those with less means, are not restricted by the limitations of available resources.

I would like to, ideally, keep working in an environment that believes in giving back to the community and making an impact by contributing to cutting-edge technologies. So far, I have been lucky enough to have worked with such organizations and hope to continue doing so in the coming years.