🎉 Check out my new AI project: Heuristi.ca 🎉

From Visual Effects to Web Development: My Journey into Programming

Getting into programming is one of the best choices I have made. Many other good things happened in my life as a consequence of that decision. When I decided to switch my career to programming, I was able to:

  • have more free time for myself
  • work in an intellectually stimulating field
  • become an “owner” at the companies that I work at
  • work remotely

However, this is a turbulent time to work in technology. The bursting asset bubble due to the increasing interest rates has negative implications for tech companies. A lot of these businesses operated under the assumption that they would yield high profits in the future. However, a high-interest environment implies that you could get great returns by investing your cash right now instead of waiting for an unclear future. This affected the valuations inside the tech sector, causing tens of thousands of employees to lose their jobs over the decreasing market share. There isn’t a day when we don’t hear about massive tech layoffs.

Another potential threat to programming is the rise of AI. Large Language Models such as ChatGPT can seemingly generate working code snippets on simple prompts. This leaves the programmers in a precarious position. What if AI advances at such a rapid pace that we are not needed anymore?

I am a self-taught programmer. I started my working life in 2008 and got into programming in 2015. For many people, 2008 was the beginning of the asset bubble that is only bursting now. I was lucky enough to start my career through this period of boom. It is a good time to reflect on how I started and ended up here.

University Years

I studied Metallurgy and Materials engineering. It doesn’t have any obvious connection to programming. We only had a single programming course in the entire program duration, and I failed it twice. Nothing about that experience made me want to learn more about programming. Thinking about that time makes me angry. I don’t understand how these people could do such a poor job at teaching a subject that is so useful and interesting.

Teaching is one of those jobs where you can have a negative impact. If you suck at teaching, you are not only doing a bad job, but you are also imparting damage to society. It doesn’t mean teachers are necessarily the ones to blame here. It is the entire system that is a bit broken, unfortunately.

From Engineering to Design

I hated my education at the university. Nothing about that program seemed appealing to me. During my studies, I started to reflect on what I would like to do with my life and decided I would do better in a design-related field. I was talented in visual arts, so I decided to learn Photoshop to digitize my drawings.

I loved Photoshop. As a tool, it made me feel so empowered as a creative. I started to learn other software tools like Coral Painter, Illustrator, etc. I got into photography and graphic design. I started to take courses that would help me grow as a designer. I put my mind to switching careers to become a graphic designer.

I was voluntarily entering design courses at my university without getting any course credits. My work started to make an impression on my professors. One of them invited me to do an internship at this design agency. Another one hired me to work at his startup after I graduated. We were building interactive installations for museums using a game engine. At this point, I knew how to use 3d animation tools like 3ds Max so that I could create assets for our projects. I couldn’t make it in graphic design (I got rejected from a Master's program), but that experience led me to Visual Effects.

I am so glad I didn’t insist on becoming a graphic designer but modified my original plan as I learned more skills and gathered more information. I remember being so upset that my post-grad application wasn’t expected even when I had great references, a decent portfolio, and, most importantly, ambition. In hindsight, it is one of the best rejections I have received.

Rejections are great. They are meant to keep those that are not meant for each other separate.

Pathway to Hollywood

After getting rejected from my higher education in graphic design plans, I decided to pursue a career in these 3d tools I used. I had a lot of fascination with these kinds of creative software, and coming from an engineering/technical background, I was able to figure my way around these complex tools.

There were seemingly three educational pathways for building a career out of these tools. I could become a 3d animator, a game designer, or a visual effects artist. Visual Effects (VFX) seemed the closest to my skill set, so I have decided on that one. I have applied to an 8-month VFX program in Toronto and got accepted.

I worked my ass off during that course. We had a computer lab with a shabby couch in the middle, and I would sleep over in the lab every other day, working from the morning till the night. I think they had to throw away the couch after I graduated 😅

After graduation, I started working at a small design agency in Toronto doing effects for a home renovation show. The work wasn’t interesting, but my job was great. I had a 3-month internship at a steel-manufacturing plant at my university, and I hated every second of it. It was very physical, demanding, and potentially dangerous. I was now working at an old Toronto building with high ceilings and exposed brick walls decorated with numerous Emmy awards.

About 8 months after, I finally got accepted to a bigger studio that worked on Hollywood movies. That was the best thing I could hope for working in this field. I was going to be a VFX artist in one of the Resident Evil movies. I immediately accepted it.

Behind the Scenes

There were red flags about VFX even from the beginning. Our teachers at the college were working professionals who were frequently pulling overtime in their companies and weren’t exactly free of complaining. Things became more pronounced when I started to work in the industry. There were a lot of veterans that were overworked, stressed out, and dissatisfied. The overtime was a frequent thing, as well as the constant churn of talent. Almost everyone I knew was working on short contracts. There was a constant sense of urgency, chaos, and instability. This might appeal to some people, but it didn’t jive much with me.

The work was not as creative as I expected. VFX is a complex industry with several highly specialized and technical departments working in tandem to execute a director's vision and few individuals who have a complete understanding of what goes into it. It felt like I was a cog in a machine. Another problem was the size of the industry. Toronto had a few VFX companies, meaning I could only move around so much before exhausting all my options. People lived as nomads moving from city to city chasing shiny, new projects. As a VFX artist, you could go to London, New Zealand, the US, Canada, and a few other locations for work. But I didn’t see myself moving; I wanted predictability and stability. It was clear this wasn’t for me.

I don’t want to bash VFX too hard. I worked with the most colorful characters there and developed fairly tight relationships. The work was stressful but not too consequential. Nothing was a matter of life or death, so you just needed to keep that perspective. We were also getting paid fairly well for pushing pixels around. You could very well love it if you operate well under pressure and uncertainty.

Computers to the Rescue

Visual Effects is an incredibly complex field that doesn’t only leverage human labor but a lot of cutting-edge technology as well. We were using various different kinds of software like Houdini, Maya, Nuke, Mari, etc., to create all kinds of effects and assets like 3D models, character animations, or particle simulations. We had tons of custom tools, scripts (small programs), and the infrastructure to manage the data flow between different departments. There were 100s of computers inside the building that worked 24/7 to render the images we were creating. However, it was clear to me that the real leverage was derived not from the individual artists or the number of computers in our render farm but from the custom-developed software that orchestrated this entire operation.

From the very first day, I was fascinated with our department lead. He was a very talented and smart guy with a background in computer graphics. He not only led the artistic work in our lighting department but was also working on pipeline tools, shaders, and scripts. There were few other people like him in the company who seemed to have a handle on this computational infrastructure side of things. They all had a programming-related background. I was drawn to their way of working, problem-solving, and thinking. If I am being honest, I didn’t want to learn programming at first. I just wanted to become more like them.

Enter Python

Animation software that we were using in VFX generally had a programming interface (API) that allowed people to run commands to automate the actions they would otherwise take manually. For example, instead of clicking 15 different buttons to create a basic particle simulation, you could develop a script that would do it for you. Many custom scripts were developed in the studio and made available to artists so they could just execute them with a click of a button. This made artists more productive as compared to using off-the-shelf software.

You needed to use a programming language called Python to interact with these programming interfaces. This was great because Python is one of the most popular programming languages out there, so there isn’t any shortage of resources to learn it. More importantly, learning Python was helping me develop a skillset that wasn’t only relevant to VFX but many other industries. I started watching an open MIT course that teaches computer science using Python. I have also started to read the documentation for these APIs. After a while, I could adjust the existing scripts to fit my use cases, and later on, I could create entirely new ones. The code I wrote helped create visual effects for shows and movies like Mama, Silent Hill 2, The Strain, Pompeii, and Vikings.

In time, I started to develop desktop applications and libraries that everyone in the studio would use. I enjoyed programming a lot, and I wanted to do more of it. However, I never felt like a real programmer because I worked at an obscure corner of the industry where software development wasn’t the primary goal. That’s when I decided to change careers to become a full-time software developer in a more mainstream field: web development.

Right place at the right time

I gleefully immersed myself in the mainstream coding culture as I became more fascinated with programming. I was going to meetups and conferences, frequenting programmer-related websites, and following industry news. I didn’t only like programming; I liked a lot of other things that are about it. It was clear that this was a vibrant and promising field.

I was so lucky to be living in Toronto at the time. Cities have these cultural and economic tendencies towards certain industries. Toronto was good for movie productions, but it also had a bustling tech and startup scene. There are cities where there isn’t a single programming meetup listed online. I could have been in one of those places. Luckily, I was in Toronto.

Location, location, location

I was trying to get better at programming in Python while learning HTML, CSS, and JavaScript to switch to web development. I would be studying in the evenings and even during my lunch breaks. I remember being incredibly frustrated at the time. Web development was irrelevant to what I was doing daily, and I didn’t know anyone who knew JavaScript to answer my programming questions. Back then, there weren’t many high-quality online resources for learning it, either. Getting into web development without any guidance was a bit overwhelming. It took me more than a year to get feel confident enough to apply for entry-level jobs in the field.

Changing Careers: Again

The tech scene in Toronto was so vibrant that I got invited to a job interview by just attending a programming meetup. I didn’t pass that interview, but things were happening!

I ended up finding my first job through a connection I made at a Front-end developer conference. I passed him my work at some point to get his feedback, and he suggested I apply at his company. I did and got accepted! 🎉 I left my VFX job on a Friday, and I was already at the beginning of my programming career the next Monday. I have never looked back ever since.

Here are some things that have been awesome since I switched my career to programming:

Free Time

Working in Visual Effects required us to work overtime, pretty much all the time. It didn’t matter what kind of output you produced, either. You just needed to be in the studio during those designated hours.

Switching to programming was a breath of fresh air. People didn’t obsess over what time you came in or when you left. They only cared about the work that you deliver. I have been working in programming for almost 8 years, which probably has saved me thousands of hours till now. When you work shorter hours, you get more than those hours back since you also need to spend less time decompressing and clearing your mind.

I am pretty sure there are software companies that don’t operate this way. However, this kind of approach is inherent to the nature of this domain. Programming and computation give you leverage. It is never about how many lines of code you produce; but what problems you solve. You could write a single line of optimization that would save millions of dollars for a business.

Let’s be honest here, though. I probably spend most of that saved time back on programming 🙈. But that is my choice, and I do it with joy.

Intellectual Stimulation

Here is a great litmus test for your job. It is not challenging for your brain if you can perform it while listening to a podcast. This doesn’t mean that job sucks, though. It just doesn’t leverage your intellectual capacity. This is rarely the case with programming. You constantly need to analyze, investigate, and problem-solve. It is challenging but also thrilling. Not only that, but the field is constantly evolving and ripe with innovation and progress. Everything about it pushes me to learn more and become a more knowledgeable and skillful version of myself.

Ownership

My name was displayed in the credits for multiple movies and TV shows. It signifies your ownership over the product and acknowledges your hard work. I think I prefer my stock grants more. Nothing says “you are valued” like rewarding a piece of the business to your employees to help them build wealth.

Remote Working

One of the things that bothered me the most with Visual Effects was how geographically constrained it is. As a VFX artist, if you wanted to work for big productions, you only have several countries that you can choose to work from. I didn’t want a future where I had to live in a specific country just because my work demanded me to do so. Some regulated professions are even worse when it comes to this, where your profession is largely tied to a single country. This is not the case with programming. You could be living virtually anywhere and work for the best companies out there. This might prove problematic in the future when the job market gets saturated with every eligible candidate worldwide, but so far, it worked wonders for me.

I am thinking of all the positive things that happened in my life due to changing my career to programming. Since then, I have acquired some sort of mini-ownership at the companies that I have worked at, changed countries twice (I ended up moving to Berlin from Toronto and to Zurich from there), and traveled to more than 10 cities last year while working remotely. I wouldn’t have met my wife if it wasn’t for this job 👰🏻‍♀️ I don’t know what the next decade of tech will look like with all the disruptive shifts happening in the markets and world, but I am willing to stick around and find out.

I decided to reflect on my journey since someone asked me how I got into programming. It would make sense to wrap it up with some advice for people who want to build a career in software.

  • I have discussed the advantages of working in this field, but I wouldn’t recommend you choose programming just because of these. Try it out and see if you like it. I think the most important thing is that you do something that you enjoy doing. Otherwise, you can’t get ahead.
  • Having said that, it is important to recognize if your career choice is suitable for the life you want to have. I didn’t want to work in a field operating under constant time and money pressure. I didn’t want to be geographically constrained or suffer from a lack of great job options. Likewise, there might be things about coding that fundamentally clashes with your values as well. Do you actually enjoy working remotely or being in front of a screen all the time?
  • If you want something, you need to work hard at it. I don’t know if there is a way around this. Bonus points if you work smartly, but it is just a compound for working hard, not a substitute.
  • My location made a huge difference in my life. I don’t know if I would have been pulled into programming if I had been living in a different city. There were so many programming-related events happening in the city that it was hard not to take notice. I found my first job through the connections I made during these events.
  • Immersion works when learning a new thing. Dive into podcasts, books, and videos. Go to events and conferences. Talk to a lot of people. Try to see if you like the culture and the vibe. This probably applies to any field you want to work in.

And that’s it! Feel free to reach out to me if you have any questions!

Continue Reading:

Lessons Learned in 2022