My Transition From Mechanical to Software Engineering
Tags: startup, webdev
Published: 2019-12-31 02:55:27

## Introduction

This post is dedicated to **PostCo**, a company that believes in me and offer me a full-time position as a software developer. In this blog post, I will briefly share my experiences on three different phases starting from the pre-interview preparation, the actual interview and finally on the working experience after I accepted the offer.

### Pre-interview Preparation

Before I move on, allow me to briefly introduce myself. My name is Marcus, a fresh graduate mechanical engineering student from the University of Malaya. My career interest has shifted towards software engineering since my third year of mechanical study. From then on, I started teaching myself how to code through many of the online resources. Other than taking online courses, I had also gone through a 3 months internship as a software developer intern at a local startup. After the internship, I am convinced that software engineering is what I want to do as a career. Immediately after my graduation, I started firing out my resume applying for junior developer positions at many different companies while studying the book - Cracking the Coding Interview.

### Actual Interview

I do not have high hope of receiving any replies from any of the companies simply for the reason that I am not a computer science student. However, the result turned out to be pretty good. Six out of the many companies I had applied to, offered me the opportunities to interview and I attended 4 of them. PostCo is the third interview that I went to and I am very happy to share my interview experience with PostCo here.

The interview was divided into 2 rounds, the first round was the CEO round and followed by the technical interview. During the CEO round, I was asked questions like how would I use technology to help solve PostCo's business problems. I did okay for the first round, not very good but not that bad. 

After the CEO round, two developers from PostCo walked into the meeting room preparing for the technical interview. I was excited and nervous at the same time because that was my first interview with developers. In my previous two interviews, those sessions were conducted by HR with some paper and online coding tests. Just as they were walking in the room, in my mind, I started imagining that they would ask me to code on the whiteboard solving some difficult algorithms and data structures problems. Turned out I was wrong again, they were more interested in the reasons why I decided to switch from mechanical to software engineering. Our conversation went pretty well, I managed to explain myself and at the same time learn more about the tech stack PostCo is using and also the day to day job as a software developer there. After that, I had a pair programming session with one of the developers solving the common coding interview question - converting snake_case to camelCase. And that's all for the technical interview. At the end of the session, I was told that the result will be out in two weeks' time.

### Accepting the offer

While waiting for the reply from PostCo, I did not think that I hold a chance to receive an offer from them for two main reasons. The first reason is that PostCo is a startup, and usually, a startup will want to hire someone who can hit the ground running. The second reason is that the main tech stack at PostCo is `Ruby on Rails` which is something that I have never done before. I was expecting a `No` from them and started looking out for other opportunities.

However, I was very glad that my expectation was wrong again this time. I received a call from one of the developers just one week after my interview and he told me that PostCo is offering me a two months software associate program with the opportunity to turn full-time depending on my performance. With PostCo's offer, I have a total of 3 `Yes` out of the 4 interviews that I had attended. After careful consideration, I have decided to go with PostCo because I like the mission, colleagues, and environment at PostCo.

This month is my fourth month working as a software developer at PostCo, which means that I passed my "probation" and I am now a full-timer. To keep this short and sweet, I will not go into details on my day to day job but just listing down what new tech stacks I have learned so far and also what I like the most working at PostCo.

1. New Tech Stack:
   * Ruby on Rails
   * React
2. What I like the most working at PostCo:
   * My opinions are heard even though I am a fresh graduate.
   * I was given the trust to develop new features for the product.
   * Help and guides are always there whenever I needed them.
   * Colleagues who are eager to learn.

### Last But Not Least

It was a very hard decision for me when I decided to switch from mechanical to software engineering. Until now, I am not sure if it was a good decision but I have no regret at all. I followed my heart, and now I am enjoying my job working as a software developer. To be honest, it was not an easy journey, I have so many new things to learn every day at work and sometimes I felt like I know nothing. I think they call it `imposter syndrome`. But, there is no free lunch in this world, you have to work hard for what you want to achieve. I know that my journey ahead will be filled by a lot of new challenges and new things to learn but yeah, let's bring it on! If I were to give one piece of advice to anyone out there thinking of switching into software development, I will say:
> Never stop learning and have more confidence in yourself. No one knows you better than yourself.

Thanks **PostCo** again for this amazing opportunity!