For years I’ve been adamant about getting a job in the gaming industry for many reasons that can take up a whole essay on it’s own about why I find it so fascinating and important in media today. As a student, I became very acquainted with the recruitment process of being met with blank stares and non-responses when applying for internships at gaming companies or inquiring about them. Many for some reason are totally opposed to the idea, but others have intern systems even if they say they don’t.
From my high school senior year onward, I was on the hunt for an internship in games. As I approached my senior year of college, I felt my rope was getting really short because an internship would have been incredibly vital to my career decision in games. I wasn’t sure if I wanted to be a designer, programmer, IT technician or something else entirely. I wanted to use the internship opportunity to experience it first hand and base my decision off that. When all my efforts failed, I decided to go all-in on programming. It was a risk, believe it or not, for a Computer Science major like me because I still wasn’t decidedly convinced I wanted to be in this field.
After Ubisoft reached out to me, I finally got to experience some professional hands on programming with languages I truly enjoy and learn about the industry first hand. I’m not only sold on programming now, but more than ever before, games as a career too.
Prepare for a long blog. There’s over 8 months of experiences summed up.
After making over 80 applications for various internships or even full time roles, not counting non-gaming companies such as Ipreo, I came really close to ~6 companies. Three of which only contacted me at the same time Ubisoft did. What I found incredible was that Ubisoft reached out to me, not the other way around. I spent years applying and watching applications fall into “Under Review” status, only to never be updated to this day, at all these companies. Ubisoft wasn’t the first to reach out to me on their own time, but they were the only ones serious about an internship and seemingly bothered to even look at my resume. Naturally, I was immediately invested by that alone despite the fact that I had other really good offers in the works from both EA and Disney at the time.
The events that led up to the offer was all in November/December 2013 where I finally made the decision that I needed to stop working the 3-4 part time jobs during my school semester, on top of all the clubs I was managing. I was only doing them to beef up my resume. What I really needed was actual experience and knowledge to get past the interviews. After resigning from some positions, I essentially drowned myself in C++ books. I kind of disregarded all my schooling at the time because I was really tired of all the irrelevant classes I was taking. I only suffered minor damages to my grades, but the damage was mostly to just my own sanity as my housemates can probably attest from that semester. I plowed through about 3-4 C++ books after I failed a Sony Santa Monica interview test, I had felt so powerless to even understand half the questions they presented yet alone program them. I really felt that besides my education not being too relevant to the field, I was blatantly focusing on making my own portfolio games/apps that I wasn’t getting the actual coding knowledge I needed to get picked up by a company. That Santa Monica test put me into over drive because I just had enough of these applications not even getting responses, and then getting one of the blue to only fail it.
So when Ubisoft interviewed me, just as I finished my 4rth C++ book in a single month, I was extremely confident in my interviews. And the questions I didn’t know how to respond to, I immediately tried to follow up with my own questions to understand why I may have been wrong. Without asking about the reason, I’m fairly confident that’s what got me hired in the end (or at the very least contributed) because in a 1 hour conversation, I felt I had learned more than I had an entire year. I walked away from that interview with a wealth of knowledge I wish I had known even existed before I started my Sophomore year in college. And it was really interesting knowledge too, such as little programming quirks, scoping, and all kinds of interesting performance questions. I love those kinds of things in programming and hardware. I immediately felt empowered to learn more, and I hadn’t even gotten an offer yet. But when I did, I pretty much jumped on it.
Moving to Canada was…. interesting. Besides New York, New Jersey, Pennsylvania, and maybe Nevada, I hadn’t really been around much. I never left the country before either. It was quite daunting. But considering how something like San Francisco was a longer flight than a car ride from New York to Montreal, I felt it actually was closer to home than any other opportunity I could have gotten. I knew nothing about French, the area, taxes, passports, or anything about Canadian culture. Getting a passport and visa in a month was frantic admittedly. I will say I wasn’t a fan of that process at all. And to my dismay, the Canadian government had closed student visa applications the day I got my bloody passport so it was total chaos trying to get a hold of someone trying to help. I bounced off the walls to get it done. But once I was in Canada, I put it all behind me.
Montreal was amazing to say the very least. I have never been to a city that’s not ridiculously crowded to the point where you want to immediately leave. I have never been in an area where if you’re foreign, you’re not welcomed or accommodated as nicely as Montreal does. I have never been in any other place with as charming qualities. Naturally, not everything is perfect right? But I was so blown away by how nice everyone I met was. Everyone I bumped into or had the pleasure of talking to was really friendly. It didn’t matter that I didn’t speak French; when I apologized for not immediately understanding someone, they would switch to English and continue the conversation as normal without skipping a beat or making a face at me. I myself needed to take notes, being a New Yorker who commonly did find people speaking, say, Spanish and for some absurd reason taking an illegitimate offense from it for no reason. Montreal supposedly has some of that too with the whole Anglo vs Franco stuff, but I did not experience a lick of it. I’m quite floored by the area and its people.
Oh, and Montreal food is outstanding. Let me tell you in short, the area of the Mile End that Ubisoft populates is basically alive ~because~ of Ubisoft. They have something like 2,000+ employees there who all pretty much go out to lunch at the same time every day all year round, and many live in the area close by. Ubisoft is known so much for it, that they get all kinds of government support and tax breaks. But anyway, the point is, the cafes and local businesses are all pretty much there in light of Ubisoft’s business. And most of the lunches I’ve had were spectacular to the point where eating the same lunches in a bi-weekly cycle did not bother me in the slightest. The French naturally know how to cook. Montreal poutine for the win. All that needs to be said. I’m going back home to subpar food that I’m not going to want to willing eat now…..
Anyways, the Montreal area is super nice and I need to get around more to experience places like it. That was my first and foremost lesson about my trip to Canada. Ubisoft itself, when I finally got around to my first day there, itself was beyond my imagination. Perhaps anyone who works there for so many years might be like “oh yeah kinda” but for me, as an amateur and someone who has dreamt of something like this for so long, the other developer teams I’ve read about and seen are nothing like Ubisoft Montreal (MTL for short). It is like the pinnacle of game development in one single location. Love or hate Ubisoft, the MTL Peck is a beacon of game development. All these HUGE games like Assassins Creed, Far Cry, and Splinter Cell somewhere along the line of development originates, passes through, or ends in Peck. Or for the most part anyway, not always true. Ubisoft is massive across the globe mind you; they have something like 50 development/testing studios all over the place. But Peck is the single largest and most brand involved studio I believe. They handle some or the bulk of a lot of development. Just to be there in person was crazy!
Five floors of this massive warehouse like building PACKED with developers. So much, they also own another office two streets down that is kind of lumped together with Peck as well with even more developers. It is mind blowing the sheer size of Ubisoft I’ve never appreciated before. For someone like me, this was like walking into a building filled to the brim with celebrities and boy bands that some young teen girl was obsessed with. Even if I didn’t know their faces, I knew their hands had passed over some of the craziest code and art in the industry.
When they gave me the tour, I was of course all pins and needles. But never so much in my life when they brought me through the Assassins Creed Unity team area, which itself is huge and I had never seen that big of a common workspace. The devs all stopped what they were doing and started to applaud/whistle to the group of us new hires that were passing through. I don’t know if they do that for every new group of hires (they never did it on my project) but I’ve never felt so bashful and put on the spot even though it was like 5 of us walking through. I felt I should have been clapping for them, who was I to deserve their attention that day?
Assassins Creed is one of gaming’s largest, most popular, most profitable franchises ever. The sheer growth of the number of gamers who latched onto this franchise in such a short amount of time is incredible. And the franchise is incredible itself too by merit alone. It showcases what makes video games so amazing and brilliant – vast interactive and freely traversed worlds from not only our imagination, but history tried and true, come to life right before us in extraordinary detail. Even if you have gripes with AC, the direction the franchise may be taking, or the recent fallout about all the representation at the last E3, there is some credit to be had here that cannot be ignored. These guys are rock stars. They are beyond just being talented; they are extraordinary in their art. And here most of them were clapping at the group that I was standing in. I simply didn’t expect it. That’s just ONE floor of 5 that we got to see, and we had only just started.
The tour ended after we checked out some cool projects and filed out all kinds of NDAs. The industry, not just Ubisoft, sadly is a very secretive one. It’s all confidential and it’s a shame honestly. There are justifiable reasons for it, but I find that if these companies would allow their developers to be a little more open about what they do or did on projects, it would increase productivity AND interest in the industry as a whole. This naturally leads to more profit I believe. Once a year discussion of behind-the-scenes development at GDC is simply not enough in my opinion. But that’s another post. So I can’t talk about a lot of what I did or what I was working on is the gist of this.
I met my team briefly and began work almost immediately. I met my manager and my manager’s manager, but sadly, for the first week or two they were pretty much tied up upon my arrival for a while. So I spent most of my introduction setting up my workstation, becoming acquainted with the code base and reading up on guidelines/polices. When I eventually got some one on one time with my manager, a lot more became clear and why I was hired and what I was meant to do. I had an idea of what my next 8 months would be like…… and I was beyond over whelmed. Apparently, I had a bit of the imposter syndrome that a good friend from Microsoft told me about. I felt super insecure my first two months about my capabilities. I couldn’t shake the feeling I was so under prepared despite my recent efforts to jump up on C++. I was shaken to the core by this huge code base that was sprawled out before me. Daunting much? You don’t even know the extremity when I say huge~. And I really had no idea where to begin.
I would stay 2-3 hours over my regular working hours to just soak up all the documentation I could. I tried so hard to wrap my head around so much. I probably didn’t need to do that much so fast and could have compartmentalized. Sadly, my manager was sort of tied up a lot at that point so I was constantly asking questions to my coworkers on my team about anything I could without becoming annoying, or at least I hope I wasn’t! But first let me break some things down.
The Project & Team
So again, I can’t talk about the project in details. Stop asking and don’t ask about it. But I will say this, and I mean it sincerely from the bottom of my heart. No sucking up or boot licking here, I’m not looking to win hearts. Straight out – just like my experience with Montreal as an unexplored city – the project had some of the most incredibly nice, welcoming, friendliest, funny people I have EVER met. Seriously. Of all: ages, cultures (mostly French, some Australian, American, and more), and yes – even females (is this still a shocker? I hate I have to point this out), the team when I left was simply well diverse and a really enthusiastic. I don’t know how else to describe it. There was so little to not like. And that’s what kind of drove me through my first 2 months, were the people. If they could do it, I could too. I wanted to get to know all these awesome people and even at the end of my 8 months, I didn’t get to meet every single person. It was really welcoming the fact I could stop by anyone’s desk and ask what they were working on, where they came from like what they did previously, what they thought about the project, ect. This~ is the kind of work environment that you want to be in. This~ is what makes the whole journey worth it. This~ is what you want in your ideal career. I’m afraid I’ve been spoiled by such a open and unique team for my first industry job that I won’t like anything else!
And I mean that doubly for my team. My team had even nicer people that I got to know really well. Some were at Ubisoft for over 10 years prior or something like that, some were brand new, some came from other game companies, and someone even left for another game company while I was there. Everyone, I felt, had their own “niche” to them that you could go ask them a question about a specific system or topic. For example, anything about databases, we had a go-to guy. That kind of thing. And even though he was learning as he went too, it was free learning for everyone. When you can just walk up to anyone and sit down next to them, chat it up casually or strictly about business, you get so much done and so much out of it.
That was particularly cool – the atmosphere was surprisingly casual. When it came down to business, the whole team got things done and done well. But outside of crunch, almost everyone pretty much had a really cool “try this, try that, experiment here and there” attitude. It was the kind of attitude about work that you would expect from indies or students. Not Ubisoft or EA or some other big suit company. And when you watch documentaries about indies, you see a lot of goofing off and stuff that make you go “they get stuff done?! They make money off that too?!” Ubisoft has very similar. In the middle of a working day: kazoo’s can go blaring, people are shooting nerf guns, jokes are being made and stories are shared. We have end of sprint beer parties, Ubisoft has all kinds of education programs and industry talks, there is a board game group, and all kinds of awesome. It felt just as interactive as Marist’s clubs and activities. It was more than welcoming and engaging and comforting. It felt like HOME.
The Work Highlights
Again, can’t say a whole lot in specifics. I have written a few scant blogs about what I’ve learned, but I have so much more that I just haven’t gotten around to writing. I was a network programmer, not a gameplay one. I did tool/UI/system planning, designing, prototyping, and implementation. Of course, testing. Lots of testing.
I wrote tools in C# that would support the team, much like I did at Ipreo. That was very interesting for me. It has its quirks, but I find .NET very intuitive for making interactive GUIs and powerful tools that allow for quick iterations. C++ was used for the game and I can’t say much else about that. I learned lots of compiler stuff, interesting performance and coding practices, and overall how to work as a programmer professionally.
The work I did at Ubisoft was pretty life changing about how I program. For instance, my school never taught me anything about IDEs. Nothing, not even how to use a debugger or read a stack trace. Within the first few days, this was immediately expected of me. Of course I had a vague idea and I had used Visual Studio to debug some .NET stuff for school and Ipreo, but I had never used such features so extensively. By the end of the first month I was like “where was Visual Studio my entire life?” I’d basically been programming in Notepad++ for the past 3-4 years. I look back and I think of how much time/blood/sweat/tears I could have saved if I had knowledge like this. I think that learning how to debug code like I did at Ubi and the general programming guidelines I learned have impacted me the most overall in regards to programming. (Debugging like that, by the way, really does change your life…)
It is one thing to write your own little applet and submit it to your little Git repo, but believe me it is a COMPLETELY other situation to write and submit to a HUGE code branch, test it to hell and back, and submit an entire build change. I broke the build twice, and an additional 3rd time was not my fault but it still felt like it. While they weren’t huge deals to fix, I certainly felt pressure and it gives you perspective. There isn’t anything quite like it until you have it happen first hand, and you have to quickly fix an issue, praying that build goes green. It makes you retroactively want to go back and look at all your code, make sure it’s documented to hell and back, test everything in the future extensively, make sure things compile right, all to an extra “depth” you wouldn’t previously have without the experience of it. I can’t explain it any better than that.
So after the first two months, I felt that imposter syndrome melt away. Once I submitted my first change list, I felt empowered. I got a ton done after that in such short amounts of time. When my manager reviewed my code, I would always notice really stupid mistakes. He would correct me and I would feel a little stupid, but he always made it constructive and it wasn’t like I was the village idiot for missing includes or const. I learned a lot during those code reviews in more ways than just simply knowledge about C++. I learned being productive doesn’t mean just writing tons and tons of code. It’s about accurate, concise, and iterative code that really matters. I had an idea of this, of course, already before starting but with the build and having someone who has done this for years sit down and look at your code, criticizing it left and right, is a world of difference. I kind of wish I kept better documentation of the corrections made, and is a mistake I plan to not reproduce in the future. His feedback really helped.
Ubisoft has some incredible technology and their games are decidedly at the forefront for a lot. They’re on top of new hardware and tech in general. So it was a pleasure to have taken part in such adventures in tech, exploring roads untraveled if you will. There is a lot that goes into games that consumers don’t realize. More than even I realized as someone who adamantly followed game development. For example, TA and QA is way way way more involved in stuff than I had previously thought. It was interesting to do my own work and then connect with TA about getting it all checked out. At one point, I worked a lot with QA and designers as well on some stuff. That’s another highlight if it wasn’t emphasized already, the teams all talk to each other and it’s all well inter connected. I think that ties more back into how awesome the people are in general, because great personalities enable this kind of connected workspace to occur. You don’t fear asking another team to do something, you want to and you know they expect you to.
The Work Criticisms
So what didn’t I like about work? There were a few minor things – mainly managerial stuff but nothing ridiculous or scandalous. I feel like sharing because it can’t be all rainbows and ponies can it? I don’t want to make it seem like I was exaggerating how great my stay at Ubisoft was. It was REALLY awesome and management overall was really great too mind you. But I’ll be honest about the experience. Organization and handling of assigned tasks, the way documentation was done, and the sheer amount of time put into documenting things that would just get changed entirely weeks later was a little bit exhaustive and detractive from just getting things done. One would argue that documentation before code gets the kinks out of the way first, but believe me it doesn’t always. You really begin to see the kinks once you have the code in front of you even in a rough prototype. Writing about it and making theoretical diagrams do not.
At one point, another coworker and I were working on the same thing without knowing. I had been working on it for months~. And between other crunches and stuff, it got delayed, and when it came around to reviewing it and discovering the conflict… it felt like 90% of my work for that task got thrown out the window. Not in favor of his work, but both of ours. It was like our designs were okay a few months ago, reviewed, and marked approved but now, on second thought, they were decidedly too constraining. I wouldn’t call it wasted time or effort. I, of course, learned plenty during that time I spent working and I used a lot of that on later iterations or other work. I think they did too about the system and how they want it to be in final form. I’ve come to the conclusion that this would be the first of many situations in my career that would be like this. This is natural to programming and design. I definitely didn’t take it personally. There will be situations where you become attached to work, and sometimes you need to let it go within reason. That’s not to say you should not enforce that your work is good and should be used, but sudden design changes will come around when you least expect and you need to adapt and evolve. Sometimes it is for the best, sometimes you get tunnel vision on a project and miss cleaner & intuitive alternate paths.
More importantly, I know now that if I even get a slight hint some kind of drastic design decision may happen , when it comes to programming code and overall architecture design, I need to be more proactive in knocking on doors to make it happen correctly. As opposed to assuming they’re okay with it even if it was said once. Make it be said twice or three times for clarity. I guess just more proactive-ness in general I could work on myself.
One other issue was that while I did try to get feedback for a lot of my code, it felt like as an intern, I would get lost in the shuffle. I was trying to get feedback for a tool I made and it seemed like past the initial design proposition where everyone approved, I had to take all liberties as to how the GUI and implementation would work for the specific details as I was only told the overall expectation. In the end, I got the criticism and the direction I needed but it kind of felt last minute as my internship was ending. There were times where I would hear one thing, do it, but then someone else would say another thing and it would be conflicting or even surprising to hear sometimes.
The last issue I had with the work was that the main feedback I got was to be more meticulous about my code. Which is great and totally true! This is going back to the code reviews before, it was spot on feedback. I just wish I had more feedback overall. Sadly, I didn’t get much more than that on my overall work other than “I did a really good job.” Which concerned me when I eventually left because I feel like I could have gotten more details out of the impact of my work. I would hear things said like “this is really important, you should come back after school and see how your stuff helps with the game.” I have an idea of how interesting and useful my tools could be, but I never got the hands on from anyone that would’ve shown me first hand about the tool. I also felt that due to the lack of direct feedback outside of just code reviews, I didn’t get to do everything I could have done. I either had tasks that weren’t described enough assigned to me, or I was stuck with “just finish X tool” which I had to wait for.
This too happened at Ipreo, but that was only several months where as this was 8. Also, no one really asked for my feedback. Ipreo did have a cool end-of-internship Q&A where it felt like they were interesting in improving the whole system for both full time employees and interns. I walked out of Ubisoft with 0 questions asked about my stay. However, that’s not to say I didn’t give feedback on stuff in general! I made sure I voiced myself as loud as possible on a lot of things, and often tried to incite conversation about relevant stuff to the trade. Actually, I was told I was sometimes the only one giving feedback on specific stuff. Which, I suppose, is great feedback for… my feedback in hindsight right? So it was weird no one asked me on the way out how it went and how they could improve, but here it is anyway!
Overall, these three or four “issues” are relatively minor in the scheme of things. Management did get lots of stuff done, especially really crazy and time constraint work. They did it well.
So Ubisoft had lots of interesting after work activities. At the end of sprints we’d have small get-togethers over beer, there was all kinds of events like water rafting (I didn’t go to that though as much as I wanted to), a huge company barbecue in the middle of summer that was kind of like a post E3 event, they rented out a Six Flags park for a morning just for us, and the GameSociety. To my surprise, there is a ‘club’ much like the one I was running at my college that got together to play games after work/school. In this case though, it was primarily board games. I was never big into board games before, I just could never find the time and the people to play with. But I decided to try it out because I had just been going home and being a book worm when I felt I needed to meet people and do stuff I don’t normally do.
I got to meet people from all different kinds of projects at Ubisoft and played tons of really awesome board games I never knew existed. I’m hooked. Hell, there is a banner on this site on the right that has my recent players. I’ve begun stockpiling a small collection of board games which is becoming more and more expensive for me. I feel like I spend more time wanting to play board games than the actual video games! It was really great and everyone was extremely exceptional. Special thanks to Stephane for being really kind to me and introducing me to some great stuff; checkout his blog here. Please revoke my kickstarter privileges; I can’t stop spending money on these damn board games now.
Also, we did a GameJam incase you missed my blog about it. GameJam was really awesome!
My time at Ubisoft has changed how I view the games industry and my opinions on games as they’re announced. Even with a slight behind the scenes peek, suddenly I look at tons of new announcements and games press in an entirely different light. Both bad and good, mostly the latter. As I said when I started, this may be for another post, but there is real talent behind these games that goes highly unrecognized by consumers. Kojima, Sakurai, recently Druckmann, and other big industry name people are staple names and they get a lot of credit, rightfully so. But behind them are dozens if not hundreds of individuals that make up these games and they all add their own spice to the mix, for better or worse. With even the small taste of the experience I got at Ubisoft over 8 months, the impact of all those developers pops now more than ever. I’ve always been about the details in games for example, not just visually but technically, and I can’t help but observe that more than ever. It’s really awesome how much effort goes into these games. I cannot get over the just how ridiculously huge their workforce is at Ubisoft MTL, and how really nice everyone is too.
I would love to return to Ubisoft in some form, but my options are open. I’m completely confident, though, this is what I want to continue doing in some form. I want to continue programming games or for games. I think some of the best code out there can be found in games, with all their hardware limitations but huge aspiring goals to create interactive worlds. It’s really interesting, too, how everyone knows everyone in the industry and that holds especially true for programmers. Really cool knowledge gets thrown around and it’s like “hey, have you seen this cool struct packing trick that only works on Xbox” or something. It’s a fun and interesting field that touches so much technology that’s always evolving. I’m completely invested and dying for more.
When I walked out of Ubisoft MTL, I stepped out pretty bummed that it was over. For the next couple of months, I’m going to be pretty bothered I’m not waking up to go into work with these extraordinary people doing the programming I really love. But, I know they’re still there working day in and day out on some awesome stuff. I eagerly await and cheer on for their finished result.
Tldr : Montreal, amazing. Ubisoft work, amazing. Ubisoft people, even more amazing. Programming, decidedly amazing too. Games, games, games, can’t have enough.
If you have questions about Ubisoft or my work, feel free to ask but keep in mind I probably can’t answer half the questions you want to ask and I won’t. ^_^