My Engineering Internship Experience at Pocket Gems

Pocket Gems
Pocket Gems Tech Blog
5 min readNov 13, 2020

by former PG Intern, Alejandro Rodriguez

One frantic morning in Texas, over 1,500 miles away from San Francisco, I was frantically trying on different pants to find the right mixture of professional and casual. Once I was finally satisfied with my choice, I joined my first meeting only to realize that no one could even see my pants over a webcam anyway. That was how I started the first day of my remote internship at Pocket Gems.

Onboarding

Imagine you’re already drowning in documentation and confusion, miserably isolated in your struggle as the newbie, then someone sends you a bug ticket. I feared that was exactly how my onboarding would go. Fortunately, that couldn’t be further from what actually happened.

My onboarding experience with my team on “War Dragons” started off very welcoming. I joined my first morning meeting and everyone warmly introduced themselves. They went from a void of names and faces on my screen to real people I could connect with. I was still nervous as I completed my first few bug tickets because I felt they would determine how the entire internship would go. I immediately had to deal with systems that neither I nor my mentor was very familiar with. I was glad, however, that it gave me the opportunity to learn from the familiar faces of our morning meetings. With their help and advanced knowledge, I got my first taste of what it meant to work on a real software development team.

I still remember typing out that first Slack message to one of my teammates on “War Dragons” for help. I was worried that I was asking an obvious question or that I would be wasting someone’s time. I probably typed out and deleted a short novel’s worth of text before ending up with a two-sentence summary of the topic and finally hitting send. I was prepared to linger in the dread that came with waiting for a response, but my teammate answered almost immediately. They cleared up my confusion and pointed me in the direction of what sorts of things I should look into. To my relief, they also welcomed me to reach out again if I needed anything else. That was one of the most important moments of my internship because it was when I stopped feeling like an outsider looking in and started feeling like I was just a member of the team.

The Feature

During my internship, my main focus was on implementing a more detailed restrictions system for building placement in “War Dragons.” The feature was primarily focused on giving designers a way to restrict player building placement by “regions.” The end result being that designers could allow players to build more of the game’s strongest towers without breaking the game’s balance. Since I was the engineer who would create and implement the feature, I was able to provide a ton of input on how the feature should behave. I even pulled a couple of our systems together into the feature so that the older systems would run faster and be easier to debug.

My biggest takeaway from the course of development was something that I’d never been taught in college: There is no such thing as a perfect design. The original technical design I proposed for the feature was the biggest example of that. It was very large, robust, and probably could have been expanded to include every building placement restriction feature under the sun. As my mentor pointed out to me, however, it would have been hard to build, even harder to debug, and almost impossible to fully test. Through feedback from my mentor and the team, I realized that I was designing the feature as though it existed all by itself. I had proposed a design that would have been an A+ answer to a hypothetical exam question, making it the equivalent of buying an IBM supercomputer just for typing up emails. It simply wasn’t practical for our needs. So, I built my second design, which is the current version in “War Dragons,” to fit our goals much better. It was simpler and allowed for a more straightforward testing methodology. Since we saved so much time on the implementation and testing, we were able to also improve the UI to help make the player’s experience with the feature even better.

Planning

Since this feature ended up being fairly large and would be used several times per play session for many players, it was important for its release to be completely smooth. After touching base with our QA lead so I could fully understand their goals and needs for testing, I realized how imperative communication between disciplines is. As soon as the feature was partially implemented, we started testing to catch any issues that may have come up later when they would be more difficult to fix.

Since we started testing so early and my internship was remote, there wasn’t really a set routine for keeping the whole team in the loop throughout development. To make things more transparent, I shared every major update or change in a Slack channel with the QA Lead, the lead PM, the designer, and my mentor. By unifying our communications, the QA lead knew what needed to be tested or retested, the PM kept up with the feature’s direction, and the designer could chime in with what they needed clarified. With every person having full clarity during the feature’s implementation and testing, we were able to catch any potential problems before they even had a chance to impact development.

Retrospective

By the end of my internship at Pocket Gems, it felt like either one year or 10 years had gone by. I couldn’t fathom that I had met so many people, worked on so much, and gained such knowledge only in 10 short weeks. When I first began, my only experience was with small teams in my college classes. The internship gave me a chance to learn on my feet. Now, I understand the importance of communication not just with other engineers, but with all other disciplines as well. I recognize that accepting feedback and considering where other’s perspectives come from are important for my growth. In retrospect, there are a few things I would have done differently in my internship, but even that shows how much I’ve changed for the better thanks to Pocket Gems.

--

--