Luca Pellicoro Software Engineer
Some people do get paid to “play games” all day, which is actually quite difficult. Imagine playing the same level over and over, then trying to describe in detail to someone what problems you might encounter. What I do is write systems that automatically play games all day. Imagine an army of tireless robots that run through a level and report issues as they encounter them. I also run specific kinds of tests to determine how a game would behave with a large number of simultaneous players. For example, let’s take a game where you can walk around a forest with all your friends. The point of these tests is to see what happens when a lot of friends go into the forest all at once to fight monsters. I almost want to break the game in some fashion.
Have you always been interested in video games and computers?
As a kid, I definitely played my fare share of video games on the console and whatever I could get my hands on for PC. But in adolescence, that phase faded away as other interests sprung up. I was reintroduced to computers in college though. Although I initially opted to study psychology, after taking an introductory computer course, I realized I knew quite a bit already. I switched my major and was more or less hooked after the first programming class. There we learned about the notion of “objects,” which programmers use to describe things in the world. Objects have properties (and can even hold other objects), and actions can be performed on these properties. So for example, a car (object) with doors (properties, but also objects) can move (action). It’s a way to build complex systems by breaking them down into smaller parts with known, testable behavior. I walked out of that specific lesson and the world looked different.
Are you constantly breaking things down into constituent parts?
Well, I wasn’t always an engineer. I’ve worked in a few kitchens and, after enjoying an amazing meal at a restaurant, I have an idea of how much effort was put into it, from the farmer to the delivery crew to the prep cook to the chef to the wait staff to the dishwasher and so on. With any software, like the one we’re using now, there’s a whole lot of years put into them: your operating system, your browser, the operation system of the web server hosting the content, and all the networking pipes in between. But I also think about issues related to usability, not just in software, but a refrigerator door hung the wrong way, for example, or a street sign not placed in the optimal location for pedestrians. I tend to approach the world like a series of small understandable parts tied together in a large complex systems.
Tell me about some of the technical aspects of your job.
My team is really into a programming language called Python. The reason we love it is because it doesn’t get in the way of solving problems like lower level languages can. By lower level, I mean closer to the machine, how a computer is built. It’s a bit like not caring or knowing how a car engine works, but still being a good driver. Python allows us to be good drivers regardless of which car we’re driving. We call that abstraction. One of the best parts about software engineering is the ability to make your own tools and modify what exists. Imagine owning a hammer and not being satisfied with it. An engineer has the skills to fix it by going below the current abstraction level. But once it’s built, you don’t have to think about it anymore. It just works.
*The views and opinions expressed in this interview do not necessarily represent or reflect those of the Walt Disney Company.