A note on following your passion

Published:

A non-technical post to share my experience in making a career shift from banking to software engineering industry. This is just the beginning and I am so excited to what future might hold. After almost two years in previous position, I no longer feel excited about the job and had a strong urge to follow my dream. So, I quit.

Frankly, I was scared. It was my first job and I had nothing line up when I quit. Looking at the decision retrospectively, I glad I did it. There are couple of reasons that led to my decision. I wasn't going anywhere, the job no longer feels appealing and most importantly, I realized I want to do something challenging that I enjoy. It is all about job satisfaction. I also realized whatever I do, I keep on getting back to software/web development, experimenting with techs. I just don't realized that I want to do it full-time.

The plan

A year before I quit, I save up as much as I can as a buffer for my unemployment days. At the same time, I start going back on time from work so I can focus on re-sharpening my skills. I started programming since little (on and off), so it's not exactly like learning from scratch. Couple of things that I was focusing on at that time were:

  1. Basic data structures and algorithm I can't stress this enough. This is the most important part of software engineering. IMO, it what separates a programmer and a software engineer. My focus was on knowing the implementation of the basic sorting/traversal algo, data structures, and knowing its time and space complexity. The idea was to cover whatever I missed by not having a CS degree and to think like an engineer.
  2. Projects Learning to code is easy. Coding a sample project from tutorial is easy. But writing a pet project is entirely at another level. It teaches you how to structure your application, learning good practices, and designs/patterns. If you're using some sort of framework, it helps to understand how to read other people's code and how it fits with your application. Having projects are also good as you have something to show to interviewers.
  3. Communities/Activities I joined couple of events to gauge my skills so I can make a good action plan based on my assessment. I went for hackathons, meet up new people and try to have some sense of where my skills are rated compared to others. There are a lot of knowledgeable people out there. I also start pushing up my codes to Github.
  4. Have a backup plan My backup plan is simply having enough buffer and be frugal. I was also planning to do freelance to keep my pocket filled.

I set a target of 6 months to be at least at a proficient level in at least one language. In that period of time, I managed to publish a couple of small applications to showcase to people.

Lessons

Couple of lessons I learnt while trying to pursue engineering job.

  1. You need an engineering degree.
  2. You need an engineering degree.
  3. Know your data structures/algorithm well Most of interviews that I attended are technical and asked about this.
  4. Have pet projects to talk about.
  5. Communication I tried not to talk in jargon. Think..shut up for few seconds..and talk. It makes me talking more coherently and organized, and I don't look like I'm rushing things.
  6. Luck You can't control this.

Since I don't have (1) and (2), I try to compensate those by (3) and (4), and you must know about these inside out.

I am grateful I received couple of offers from MNCs and startups. At the end I chose to be in a local company here because I am doing a lot of interesting stuff like Hadoop and other Big Data solutions apart from everyday software development. I am pretty sure I won't get this chance at any other place and it's a great place to be in.