Billy Fung

How I got my job

Billy Fung / 2016-09-17


Interviewing for software jobs suck

Like many new grads looking for work, I spent some time applying for jobs, and interviewing. Coming from a non-software engineering undergraduate, I knew I was already a bit behind on some basic skills and education. So I went with a shotgun approach, firing at positions all over the continent. My work experience is very broad, having done work in a pulp and paper research lab, to being a quality engineer for a large telecommunications company. The way I viewed it, my past work experience showed that I am very capable in picking up a new technical skill. Software jobs are a completely different beast.

The typical dance for anybody applying for a software position usually involves the following: * feeling bad about yourself when all junior positions ask for 3 years of experience * look up how to learn algorithms as quickly as possible * try memorizing algorithms * think about taking the unpaid internship for experience * look at coding bootcamps

Okay maybe that’s a bit biased since I didn’t ask anybody else what their process was like. But for me, those were some of the thoughts in my process for applying for jobs. I should preface all this by saying the only software class I took in school was one on Object Oriented Programming, in C++. All my other experience consisted of writing code to do things because I wanted something done. Like scraping websites, or repeatedly refreshing the course website to try to register for a class that was full. So when I figured that most of the job applications would require me to do some technical challenge, I spent some time learning how to pass those. This consisted of reading many blog posts, and writing code in a specific way. I guess it’s quite similar to learning math, you do things a certain way, then figure out there is a trick to it all.

Somewhere along the line of applying for jobs, you will feel bad about yourself if you’re not the best programmer in the world and getting job offers. I applied to 91 jobs, and only heard back from 21 of them. Sure this isn’t big enough of a sample size, and maybe it was my fault for applying to jobs that I thought were cool, and not ones that I were qualified for, but nonetheless the reply rate isn’t that appealing. It’s pretty much like going around asking the pretty girls out, and then just getting stone walled.

All while applying for jobs, I was also still continuously coding, and just doing things I thought were fun. I was lucky to not be in the position where I needed to work to survive, since I had money saved up and didn’t have to do a minimum wage job to survive. But at the same time, you’re left with the constant thought of, “I went to school for 5 years and somehow nobody told me it would be this difficult to find a job”. I was applying to a plethora of jobs, having skills in both mechanical and electrical engineering, but also willing to do software. This sounds like it would be ideal for a generalist type of role in a company that makes software that interfaces with hardware right?

Trying something new

Somewhere along the way I also worked with a friend, starting our own company in an attempt to build a commercial product and bring it to market. This was my first taste of being my own boss, and essentially doing work that I wanted to do. It was a great experience, and it really showed how difficult it is to sell things. We went through the whole process of building a prototype, bringing the prototype out to real people and asking for their opinions, and then revising. In the end, we reached the point that in order to bring it to market, we would need money for the production run. Obviously we all knew this would be the large roadblock, and the thing we never really looked too much into. Finding investors required a lot more business acumen that we had, and even when we found investors, the move forward was much slower. Building prototypes with a 3d printer and molds in my garage worked for a handful of units, but the design process was completely different. To keep things short, we needed much more money than we were willing to put in ourselves.

After that little detour I went back to looking for work. Career work as some like to call it. I continued to write code, and do fun projects like http://tellmeabout.coffee/. Picked up some freelance work doing web scraping and data warehousing. (Sorry if these terms are all just made up by me) I also started thinking maybe I could apply for support related roles, and then transition into a more software engineer role. This lead to me writing a lot more, and trying to show that I could be a technical support worker, hence the various tutorials I had written up in different languages.

Luck of the draw

Well we get to the meat of the story, I got lucky and was contacted by a company that wanted me. Yeah you heard that correctly, I was the one being contacted and not the other way around. It was a pretty strange process, being contacted by another developer, and then interviewing and then ending up as a remote contractor. Somewhere along the lines, I decided I was a software consultant since I wasn’t an employee and I was writing code to solve a specific task. The situation is that the other developer was also near me, and they were looking for another backend developer to work with. Somehow I became that backend developer, and began working in Python on building backend tools for the business.

But really, I was just lucky. I also persisted and waited, but I understand most people aren’t in that position. After having going through all that, I think what is important is to always be looking, for whatever might lead to a possible lead. Doing freelance jobs here and there helps to build your network, but it also builds confidence that you are doing something that people will pay you for.

Somewhere while writing this, I realized I should compile a big story of my life.