My Programming Career so far

Pedro Kauati
6 min readNov 6, 2020

College (2009–2012)

I’ve never had any programming experience before going to college, except for trying to update some html code in a blog post once. I enrolled in the Comp Sci course in Belem(Brazil), where I was introduced to several foundational topics of the area, as well as a few programming languages.

Most of my assignments were coded in Java, but we also had introductory classes to Prolog, C, C# and MatLab. I also learned the basics of OOP, Databases, Multithreading and Nerwork.

During college, I was also selected to work on a (non-paid) internship in the college’s “Junior Software Company”, focused on giving work experience to students. Our focus was to develop enterprise systems, which gave me my first taste on working on a software development environment. I was introduced to technologies such as JPA, JSF and application servers such as Apache Tomcat.

In the last year of college, I decided to create a startup with a few fellow students, focused on mobile development. I’ve taken a course on iOS development with Objective-C, and we decided to create a mobile app with the backend accessible through a Java server using a SQL database.

Specialization: Game Development (2013–2014)

After my graduation, I’ve decided to take a “specialization course” (which is how they’re called in Brazil) on Game Development in Porto Alegre(Brazil), while still working on our startup. During the day I’d work on our iOS frontend and the Java backend; and at night I’d go to college to take the classes.

During this course, I was introduced to the Microsoft XNA environment for game development, and started to develop more in C#. I’ve learned the basics of game programming, game design and level design. I was also introduced to the Unity game engine, where I developed many demos and small games. I joined several game jams to get the experience of creating a game start-to-finish. You can check out some of these games in my Gamejolt page.

As for my startup, we spent months developing our main project, as well as some side projects to start making revenue. We also spent a lot of time looking for investors. In 2014, me and my partners decided to close our startup, due to having difficulties in obtaining seed capital and consolidating our own personal schedules with the work in the company.

By the end of 2014, I decided to enroll at Vancouver Film School, and take their Game Design program. Moving to Canada was a challenge, and I wouldn’t be able to achieve it without the support of my family.

Game Design Program (2015–2016)

In August of 2015, I started the Game Design program. At the time I wasn’t sure if I wanted to focus on Game Programming or just Game Design, so I believed that taking this course would help me with that. I took several classes that consolidated the knowledge that I first developed back in Brazil.

The second half of the course was focused on developing a full fledged game to be presented to a group of industry professionals in Vancouver. Me and my teammates developed a 2D game called “Lionidas: King of Beasts”, which can be downloaded in the VFS Arcade website. At this point, I was feeling very comfortable working with Unity and C#, and I worked on several key areas of the game, such as the 2D level editor, save system, camera control, combo system and analytics. On test builds, we would record the positions where the played stayed during the game, and we created a script to compile all of that data and plot it into the unity scene, so our Level Designer could have a heatmap of the areas most and least visited by players.

At the end of the program we presented our game in an event called Pitch and Play, where we had many positive reactions, and we managed to have 20 minutes of playable content from a 5 month project, which me and the rest of my team were very proud of.

Kemojo (2016–2017)

After graduating at VFS, I applied to a mobile game company called Kemojo. I stayed there for 7 months, and during that time I worked on a game called “Drone Wars”, a first-person military shooter. The game was written in C# using Unity.

I worked on polishing several areas of the game, such as menus, camera system, in-game UI, new weapons and units, but most of it was building on top of an existing codebase. One of the systems that I developed from scratch was a simple pool manager to recycle units and reduce garbage collection.

Thinkingbox (2017–2018)

In 2017 I started working on a media company called Thinkingbox, where I stayed for around a year. Most of the devs in the studio were web developers, but I was hired as an Interactive Developer, which meant that I would be involved on projects focused mostly on user interaction.

Since the projects were fairly short, I had the chance to get my feet wet on a good variety of platforms, including web, game development, embedded systems and augmented reality. In these projects, I had a pretty good degree of freedom to develop my own architecture, with the downside of having to handle pretty short deadlines.

For game development, I had a major part developing a game to help children with cystic fibrosis engage more in the breathing exercises that were part of their treatment, which unfortunately ended up being cancelled. The game was a mobile application connected to an arduino controller, which was connected to a tube where the user would breath in. The game was the interface where patients would be able to track their sessions’ progress, and earn achievements based on how frequent they were exercising. I developed most of the game logic and UI, but the system that I most fondly recall was the achievement system. Designers could define all achievement data on a spreadsheet, which would then be imported to the game with minimal effort.

Smoking Gun Interactive (2018–Current)

After Thinkingbox, I decided to go to a company solely focused on games, so I chose Smoking Gun Interactive, a small studio in Vancouver that has made many projects in partnership with Microsoft.

The project I currently work is the world famous “Microsoft Solitaire Collection”. This was my first chance to work with an in-house game engine, made in C++, with some tools written in C#. I started with very basic C++ knowledge, but today I believe that I have gathered very important experience, and a lot of that is thanks to the very competent development team of this company.

Also, I can’t avoid stating that it’s weird to know that your name is written in the credits of a game that’s installed on most computers of the world. It’s definitely not a bad feeling, hehe.

Reflection

The goal of this article was to help me do a self-reflection on what I’ve done in past, so I can plan the future. I definitely appreciate the fact that I was able to code in so many platform. At the same time, I wonder how things would be if I was more focused in one or two areas, for more than 5 years. But that’s not to say that I regret the way that things worked out, far from it. To be honest, there are still some areas that I want to dig in deeper, such as Computer Graphics and Game Engine Development, but I don’t know if I’ll be doing that professionally or on a side project, at least not yet.

There are also some areas that I wish to mature and solidify my knowledge base, such as Systems Design, Network and Multithreading. In these fields, I feel that my experience is less than I wanted it to be at this point.

Also, in terms of work-life balance, I believe that my level of tolerance for overtime and tight deadlines has been decreasing. By the time I graduated at VFS, I would even feel sort of proud when working long hours. I believed that people who weren’t willing to do that weren’t passionate enough for the industry. Nowadays I think very, VERY different. It’s great to love what you do and be excited to do more of it, but this is not something that we should impose on people, and expect that everyone will have to give 120%. People should have the right to work a healthy amount of hours and dedicate the rest of their time, well, to the rest of their lives!

Having said all of that, I believe that my challenge for the future will be in balancing a career path that can be fulfilling and meaningful, with an equally fulfilling and meaningful life outside of work. There wasn’t a course for that back in college.

--

--