My Self-Taught Tech Career

12 years ago I first came to Canada on a Work Permit doing a minimum wage QA job. I had my Journalism degree from a good Russian school, 1 year of management consulting experience and 7 years of recruitment experience in Moscow, 3 years of which I was running my own recruitment company.

Why and how I left Russia is a subject for a different story. For this one the important part is that my earlier experience was almost completely irrelevant to my new circumstances.

Unfortunately, while on a work permit, one cannot change jobs easily. So while my permanent residency papers were processing, I had some time to think on an action plan what to do next in Canada. Fast-forward – it took 4 years instead of 2 expected – thanks to Harper’s Conservative Government putting administrative breaks wherever possible. So the time for me to prepare and do something with my career was plenty.

Choosing New Field

7 years of recruitment experience taught me well to approach subject of motivation. Now, it’s a little different when you need to analyze yourself and not the other person in the room. Still, I knew that the following was important for me:

  • Project I’m working on. Must be something challenging and interesting. Challenge is a key part – contrast that to a boring bureaucratic structure where I have a hard time surviving.
  • Creativity – I should be able to create something, think of something new and implement my ideas.
  • Leadership – I didn’t know all the details at the time, but I score high on D and I vectors of the DISC test (I did this test later). I knew about Influence vector though from other tests and previous experience. So while I didn’t put Leadership high on my wish-list – as changing careers requires start from low positions – it was actually important to get there at some point.

Initially I considered medical field for my career change, particularly dentistry, but often I don’t feel well when seeing blood, tissues and such. So I had to park my thoughts of career in medicine.

Idea of moving into tech came through my 2 blogging projects. Coming from 7 years in recruitment, I wanted to preserve all that experience and launched a recruitment blog in Russian talking about my experience.

Soon I realized that things in Recruitment industry change quickly and audience wants something more relevant than my dated experience. This is where I started a larger project – (does not belong to me now) on WordPress. Idea was to have a news-roll web-site (think – CBC) but for HR industry.

My new website worked out and as the number of visitors grew I needed new features there. That forced me to look more into inner parts of WordPress. Also I was doing the hosting on my own VPS, so had to pick up some linux scripting and such. And so my exposure to tech began.

Everything I was doing at the time seemed to me like a very low-level venture into tech. Still I liked what I was doing and thought I could do it on a larger scale some day.

edX and Coursera

This was the time when edX and Coursera just started. And I was running an HR-news website. So I was among the first people to know and report about new EdTech projects.

By co-incidence I needed new knowledge about how to run my website and also considering that I could do something in Tech. So I enrolled into 2 introductory programming courses on edX:

  1. MITx’s introduction to computer science on edX –
  2. HarvardX’s CS50x on edX –

To this day I think those are 2 best introductory CS classes and I would recommend taking them in this order for anyone looking at CS field. MIT’s course comes first as it uses Python which is easier to grasp.

After completing both courses, I was pretty excited about my progress in CS. Next I took Berkeley’s CS169x course on SaaS using Ruby on Rails. I’m not sure if this course is still offered. Without major rework I think it would be a little dated today. In any case it was an absolutely terrific course for its time with a lot of useful concepts mainly focusing on MVC, coding strategies for web, version control, migrations and such.

First Developer Job

With my just obtained Canadian Permanent Residency, I started to look for a first developer job. Manual QA experience actually helped as I had something relevant to put on my CV, plus I listed my HR news project and all my courses from edX from which I got certificates. By the way, all edX certificates came for free at the time – probably it would cost few hundred dollars now. Finally, I listed technologies I knew somewhat – HTML, CSS, JS, PHP, GIT, RoR, LAMP stack.

I was trying to land a junior developer job. Anywhere in Canada was fine for me – I was perfectly fine with leaving Montreal, especially since my French was not very fluent.

Not all junior jobs were listed as “junior” so I tried to gauge level of experience from descriptions and applied whenever I felt level of seniority was appropriate. That decreased the rate of response, but increased the overall chance of landing a job.

Other thing I did right at the time – I was using indeed extensively, while indeed was not so well known in Canada at the time. Thanks to indeed I didn’t have to spend time browsing too many job websites – as jobs from different sources were aggregated there. Again I knew about indeed because I had my HR-website and they were making a splash at the time.

I don’t remember exact ratio – but let’s say I sent around 30 resumes. Out of this I got only 2 interviews and luckily one materialized into a Front-End Developer offer at CrowdCare (currently – Wysdom) in Richmond Hill.

You are now a developer, eh?

I know that many people try to break into tech. And when you’re not there yet getting the first developer job seems like the final goal of the process. And it is in a way. Especially since landing a junior position in tech becomes harder over time. Many organizations either don’t want to teach junior or don’t know how to do it efficiently. So getting that first job is a huge step.

But once on a job, personality traits start to influence next career moves. As I mentioned above, for me it is important to play a big part in a project and be in a leadership position. All this also needs to include large degree of creativity.

So as few initial months passed and I became comfortable in my new role, question started to grow where I move from here.

Interestingly enough my experience running VPS for my HR-news website appeared more relevant than I thought. It was a great stepping stone for running more serious production loads. With some additional training and research I was able to pick some parts of the DevOps specialty. In parallel, I was taking online courses on Machine Learning and Big Data.

With all this learning I gained a lot of expertise in 2 pretty hot subjects of the day – DevOps and Machine Learning. I also started leading the team, which is what I wanted. Still I was unsure how good my tech skills were. As a self-taught developer I was not very confident. Imposter syndrome is pretty big in the tech industry after all.

Master of Computer Science

This is where I started to think about formal education to solidify my new status. Complication for me was that I already had Bachelor-level education, but it wasn’t in STEM. Also it was from a school in Russia which made logistics of submitting my transcripts for admissions complicated. Unlike in North America, Russian schools do not send transcripts. And Universities in North America can’t understand why it is a problem to send transcripts – which creates huge amount of bureaucracy out of nothing to overcome. Because of all that, enrolling in a school was taking much more effort for me than it should have, but I still committed to it.

I had no intention of taking a break from work, so I was focusing on online options and there were not too many at the time. I found MCS option at UIUC and got rejected. I thought that may be Master’s is too good for my non-STEM educational background, so I found BCS (2nd Bachelor’s in CS) at OSU and got admitted there. But at that time UIUC partnered with Coursera and opened a larger joint MCS program. So I re-applied to UUIC for this new Master’s program, and got in!

Took me 3 years to complete my Master’s degree. There were a lot of ups and downs during the program. At times I felt really happy I’m doing it. At other times I was thinking that I’m wasting time and money. However, recently my take is if I commit to something, I better complete it. I believe that successfully dealing with the last mile problem is healthy.

Specialize and Stay Up-to-date or Become Irrelevant

You don’t have to start your own company as I did to stay successful in tech. Starting a company is something I needed because of specific traits of my personality and motivation. I wish things would be easier for me, but my personality says otherwise.

But regardless of specifics of a tech career – be it Software Architect, People Manager, Entrepreneur or something else – it is very important to maintain your posture at the edge of current technology.

While hiring people in my teams in tech and specifically in DevOps I noticed an interesting trend, where people get stuck in old technologies and become irrelevant for the job market. In some sense this is even worse than for junior developer trying to land their first tech job – as here you are dealing with senior engineers who are literally stuck in the past.

Here is an abstract example. Have you heard of people saying that kubernetes is an overkill and they are good with their old VM setup and lots of lines of custom scripting? That’s exactly the type of people I’m talking about.

Now, I’m not saying that kubernetes is always better than highly customized and proven VM setup. It’s perfectly possible that somebody worked on a project for say 5 years and created a good VM-based system. However, if we are building something new we don’t want to spend next 5 years on things that can be now solved much faster and much more efficiently with newer technology.

This is actually a hard problem in tech careers, because at times personal goals here may conflict with corporate goals. An organization may be fine sticking to the old tech, but this makes people working in that organization non-hireable. Under such circumstance smarter people tend to leave as there is no growth for them. And that in turn may tip the scale for the organization itself to migrate to newer tech. Dealing with constant engineer turnover may be extremely expensive after all.

This problem might need more thought and a dedicated blog post, but from personal career prospective the answer is clear – it is important to always learn new things and stay at the edge of latest technology. This wins the competition in the job market.

Uncharted Territory

I took this time to reflect on my venture in tech field and things that I accomplished. It creates a good feeling to sum up my journey. Maybe it would also be helpful for some of you reading this who is possibly out there on one of the career stages where I’ve been. Or maybe you’re much farther than me in the journey and can offer some advice.

My current career stage is an attempt to build a working business in tech. A business which provides value and does not need me to operate it. This stage fits my personality well. I just wish it would be a little easier – but maybe something easier is in my next stage 🙂


Leave a comment

Your email address will not be published. Required fields are marked *