Blog Archive
We’re often asked by our smart and passionate community of creators how one lands a summer internship at ROBLOX. While there’s no formal application process, there are things you can do to get a leg up on the competition — whether you’re trying to get your foot in the engineering door at ROBLOX or any other tech innovator. Nathan Dean, known around here as Merely, has done two summer internships with us and he’s coming back in 2015. In this article, he shares how he got an internship offer from ROBLOX, as well as tips for up-and-coming tech professionals who want to land a great gig.
Hi, this is Nathan Dean, known as Merely on the ROBLOX website. This is a three-part blog post I have written to give you a glimpse into what it’s like to work at ROBLOX. I have worked as an intern at ROBLOX in the summers of 2013 and 2014, and am returning in 2015.
Part 1: my internship
Intro to ROBLOX
I’ve been playing ROBLOX since spring 2009. I started off playing games like sean’s Build, Fight, and Live series, as well as stickmasterluke’s Underground War. On my first account, Cenort, I made a “Build, Fight, and Live as a Ninja” spin-off game, in which you use building tools and basic weapons to create your own base and roleplay with other users. I had a small but steady fanbase who consistently played the game. When it reached 1,000 visits, I remember adding a badge to celebrate, updated the game, and went to bed. When I came back from school the next day, my game was on the front page with more than 10,000 total visits, and my ROBUX had climbed from less than 1,000 to over 10,000. Although I had previously created games with Gamemaker, none of them reached this level of popularity and I was amazed at how many people were on their computers at home, playing my game.
After making that first game, I tinkered around with other aspects of ROBLOX, like participating in war groups and fighting in raids against other clans, and used the money I had earned from my game to invest in Limited items, which fascinated me. I was extremely interested in supply and demand, and the factors that influenced the virtual economy, such as the ticket inflation that occurred during Halloween and the huge influx of ROBUX that happened after Christmas.
One day I was working on a game in Studio, and decided that I wanted to add a fire escape. I opened up the Toolbox and, among the search results, I noticed that the name for one of the models had escaped its HTML tag into the document. This is a sign of improper HTML encoding, and can easily be exploited through XSS. I showed this to my brother, who had been researching web security vulnerabilities, and we crafted a model that demonstrated how the vulnerability could be exploited. We reported it to the ROBLOX Web team and they patched it. Over the next few months we continued to assist the Web team by reporting bugs, and built up a reputation. During this period I also began building Chrome extensions to add new features to the ROBLOX website, such as the outfits feature and my group enhancer plugin. These extensions started to gain traction, with thousands of players installing and using them.
The Interview
Following one exploit report, Toby (TobotRobot) informed me that ROBLOX was looking for interns for the next summer, and suggested that I send in my resume. I was really surprised — even though I had some experience building websites, I wasn’t sure I was good enough to work at ROBLOX. I talked with my dad and he convinced me to apply, so I sent in my resume, which listed my experiences with game development on Gamemaker and ROBLOX, web development using PHP, and my work with Chrome extensions. Along with my resume I sent a cover letter explaining why I wanted to work at ROBLOX and a super brief description of my skill set. After that I had several interviews on Skype.
In the days leading up to the interview I spent time researching common questions or problems that are posed in programming interviews, which helped prepare me and gave me a confidence boost. The first one was a personal interview, where they told me the basics of the internship and talked about what it was like to work on the Web team. The second interview was a technical interview, in which I was asked about programming and computer science concepts. After that, I had two relatively short talks with senior ROBLOX staff about the internship, and finally received an internship offer. I was thrilled and, after thinking it over, accepted the offer.
California
Flying out of Illinois to San Francisco was a huge leap for me. The only airplane I had ever ridden before was a tiny private airplane in Chicago, and that was at a special event for kids. Going through security was terrifying, but traveling across the country was neat from a bird’s-eye view. I remember looking down through the window and thinking that the countryside looked like a model train display. We landed at San Francisco and went on a short tour of the city before our work started.
Internship (Summer 2013)
To get to work on Monday, we had to take a combination of the metro, bus, and CalTrain, which stretched our commute into more than an hour. Fortunately, a few days after starting work, an amazing employee who lived in the same area generously let us carpool with him, saving us a ton of money and time and headaches. We arrived a few minutes early at the ROBLOX HQ to be safe. When we headed up to the third floor, we met a few of the staff and then entered a conference room where the Web team was planning out tasks for the next week. The ROBLOX staff were very friendly and introduced themselves to us. I distinctly remember Antoni (Tone) saying hello and asking about one of Seranok’s ROBLOX creations.
The first day or two consisted primarily of on-boarding, which is when the staff helps you set up your computer and install programs, fill out paperwork, and get started with the codebase. Learning all these new tools and procedures and working on a large team for the first time was definitely a challenge. I was constantly asking questions to my mentor, Rosemary (Raeglyn), and she always put on a smile and helped me out.
The summer went by in a blur, but I remember a few highlights. I had the opportunity to attend the Chicago BLOXcon and meet dozens of ROBLOX fans, which was amazing and inspiring. I had an interview in which I talked a little about my ROBLOX experience, and when the interviewer asked the audience how many people had played Trade Hangout, I was shocked at the number of hands that shot up. It reminded me about how, for every little player icon on ROBLOX, there is a person somewhere sitting at their computer, playing my game.
For the first few weeks of the internship I focused on fixing bugs to get acquainted with the codebase and source control, but in the background I was drafting up a design document for the outfits feature that I wanted to make. I got permission from my supervisor, Isaiah (ostrichSized), to go for it, so I started work. I’m very proud that I made the entire feature — the frontend HTML and CSS, as well as the database and the backend classes and controllers. I had tons of help from Rosemary and Matt Dusek, and I was super excited when we finally shipped the feature right after my internship ended. I learned so much about web scalability and making a feature that can work for millions of users. As I’m writing this, more than 17 million unique outfits have been created on ROBLOX.
I was extremely impressed by the professional way in which ROBLOX treated interns. We were treated as full engineers and given responsibility just like all the other members of the team. I also can’t praise the engineers enough. Everyone I’ve met at ROBLOX is friendly and willing to help with problems, and they’re also some of the smartest people I have had the privilege of meeting. They are intelligent, amicable, communicative, and motivated individuals. One of the things ROBLOX looks for among all its employees is the ability to work hard without supervision, and this ties into one of the company’s core principles.
Internship (Summer 2014)
ROBLOX hired Seranok and I again the next summer as interns. This time around, Seranok spent most of his time on the second floor working on web features that would be integrated into Studio. I basically followed the same pattern I did for the first summer: bug fixes, followed by implementing a feature into the website that I had already demonstrated as a Chrome extension. (If you haven’t picked it up yet, Chrome extensions are a great way to hack together a prototype to see if something would be useful as a part of a website. Anyone can do it!) This time around I teamed up with Vlad (VladTheFirst) to work on 3D thumbnails. He was extremely knowledgeable and helped me improve my coding practices.
Since we found a place to live in San Mateo for the summer through Airbnb, Seranok and I were able to stay late some nights and participate in video game nights and board game sessions and spend more time with the other ROBLOX staff, which was the highlight of my summer. You form friendships quickly with your coworkers, and it’s great to get to know them a little bit better outside of work hours. Deepak (Sorcus) made us feel welcome by hosting a special video game night in honor of the interns, and towards the end of the summer ROBLOX paid for us all to go-kart race. Isaiah decided the track was too lame and took a detour. Matt Dusek kept on lapping everyone. It was a great end to the summer.
Part 2: advice for future interns
Dozens of users have contacted me about how to get an internship at ROBLOX. Keep in mind that interns, with one notable exception, have all been college students majoring in computer science or a related field. If you’re too young to intern right now, you can still get a head start by preparing. Here is my best advice.
- Study hard in school, especially in math and computer science classes. Don’t just learn the material well enough for tests and exams, make sure you understand it and can apply it.
- Program often outside of class. It’s extremely hard to succeed if you only do the minimum in computer science. The best way to learn to program is to envision a project and then use programming to make it happen.
- Build a portfolio of your works. When employers look at your resume they generally want to see the cool projects you’ve worked on, not just a list of languages you know.
- Create connections with ROBLOX staff. In past years it was difficult to get in touch with the engineers, but ROBLOX has become more social and now you can easily interact with them.
- If you have an idea for improvements to the website or game client, shoot them a message or tweet.
- Reporting exploits is a great way to do this because you’re saving ROBLOX time and money.
- File bugs on the ROBLOX bug tracker with detailed reproduction steps to make it easy for staff to figure out what the problem is. If it’s a Javascript bug, you get bonus points for proposing a fix.
- Contribute to ROBLOX Core Scripts with small bug fixes or changes. This shows that you can use source control and are willing to help the company out.
- Keep an eye on the corporate site and the job postings listed there. Although most of these positions are for experienced engineers with at least four years of training, it may give you an idea of what ROBLOX is looking for in potential candidates.
Also, become familiar with the teams at ROBLOX and figure out which one interests you. Focus your efforts there.
- Web team: Manages the ROBLOX website and web APIs that are used by the game client. Primarily works with C# for the website code and Javascript/CSS/HTML for the frontend. Research Angular and the ASP.Net MVC framework for bonus points.
- Games team: Writes the Core Scripts and occasionally creates games to harness ROBLOX features. Primarily works with Lua.
- Client team: Creates the game engine. Anything to do with physics and rendering is probably done by the Client team. Primarily works with C++.
- Studio team: Develops the studio application for editing ROBLOX games. Primarily works with C++.
- There are other teams, such as the Mobile, Advertising, and Art teams, but I don’t know enough about their workflows to help you out.
Part 3: questions and answers
Q: What are some of the perks of interning at ROBLOX?
A: Getting a sneak peek at upcoming features, going to movies with your coworkers, free lunch three days a week, having a kitchen full of snacks, visiting San Francisco, forming connections with high-profile tech industry people, being able to have an impact on the ROBLOX product, adding new features, the satisfaction of fixing old bugs.
Q: What is the worst thing about interning at ROBLOX?
A: The worst part of interning at ROBLOX is having to go back to college and say goodbye to all of the amazing people you’ve become friends with.
Q: What is a typical day like at ROBLOX?
A: Arrive in the morning for work, check your email, attend a brief stand-up meeting where you gather in front of a screen and each member of the team gives a super brief summary of what they’re going to work on that day. After stand-up you head back to your desk and resume working on fixing a pesky bug or continuing work on a feature. At lunchtime, you head out with some coworkers to one of the nearby restaurants for a bite. After lunch you head back to your desk and resume work on your project. You might attend a meeting to write a spec for a new feature, and a coworker might ask you to review their code for a piece of code they’re writing. Once you’ve finished your bug fix you check it in and test it on a test environment to make sure that it doesn’t break anything else on the website.
Q: Is there room for me to innovate at ROBLOX?
A: Definitely! Several times at ROBLOX I came up with ideas for improvements or features and got permission from my supervisor to add them to the website. ROBLOX definitely encourages innovation; they want staff to develop their own ideas, and not just during hack week.
Q: What does ROBLOX expect from interns?
A: From what I gathered, there are three basic things that ROBLOX wants in an intern: a base level of knowledge for the position, the ability to learn things on the fly and expand your skillset, and motivation to work hard and play hard. Don’t expect to join ROBLOX and add a huge feature to the website in your first few months. Working at ROBLOX is challenging, but it’s also an immensely rewarding experience. The summer flew by in a flash because I was having fun.
Q: What was the code base like?
A: I haven’t seen much of the client/Studio source code, but the website code was extremely readable. Typically programming books/courses tell you to comment almost every line of code, but at ROBLOX the focus is on making the code readable by itself. Variables and functions are named clearly and accurately, and comments are typically used only when something needs explanation. Since everything checked into the source code has to be code reviewed by another programmer, good coding practices are maintained and the website stays clean.
Q: What are some things you gained from an internship at ROBLOX?
A: Experience working as a part of a team, good coding practices, communicating effectively, working on projects for a product owner, and insight into the workings of one of the most exciting companies in Silicon Valley.
Q: If you could only give one piece of advice to someone who wanted to intern at ROBLOX, what would it be?
A: Learn source control before interning at ROBLOX. It’s going to save you so many headaches if you understand branching and merging and dealing with code conflicts before you get your foot in the door. I picked it up eventually, but it’s a pain to figure out.