First exposure to the codebase; First game of ping pong

I started working with the pymetrics codebase midway through the first week. At the beginning of the week, Fedor, our lead front-end engineer, had asked me and Shanie to suggest a few “small ticket” changes to improve the user experience of our website. He then asked us to implement them. For me—a first-year computer science student with very limited exposure to web development—the structure of the codebase was staggeringly large and complex, even discounting the intricacy of the code inside it. I found myself struggling to even find the location in the filesystem where we were supposed to be making the changes. My first doubles ping-pong match at pymetrics went similarly, as I missed nearly every shot - my ping pong skills had a long way to go. Yet, in both cases, I felt an immediate sense of responsibility and independence. Despite my inexperience, I had already been tasked with improving the website and paired with partners that never criticized my ping pong skills (or lack thereof). I felt self-motivated to improve my skills both at the keyboard and with a paddle to fulfill the confidence and trust my pymetrics teammates had already placed in me.

Debugging; Spinning shots

Error messages are a familiar sight for nearly all developers, and I was (and still am) far from immune to them. During the first few weeks, I encountered error messages with such frequency that I began to dread refreshing whichever page I was working on because of the errors that would likely surface. Many of these errors were due to carelessness on my part, but other times my code would develop bugs for seemingly random reasons. Like a spinning ping-pong ball, these bugs would approach me at odd, unexpected angles. Over the course of a few weeks, and with the help of many games of ping-pong and debugging sessions with the pymetrics dev team, I gradually began to anticipate what I previously found unpredictable. I’m not a master debugger by any means, but I also no longer dread page refreshes, confident in the debugging tools I’ve learned to use from the dev team.  And yes, my ping pong skills adapted to handle a cut shot.

Changes on the live website; Landing the smash

Smashing the ball in ping-pong is always a risk: incredibly effective if done right, but very easy to miss. Because of this risk, successfully landing a smash feels very satisfying. Deploying code to the live pymetrics site was even more risky than smashing. Even though we always tested for bugs beforehand, whenever the code was deployed, the changes I made in a dark-screened text editor would reach tens of thousands of real people. But with high risk comes the potential for high reward. As a developer, it was easy getting buried in the variables and functions I had to write and grow frustrated with the bugs in my code, but everytime I saw changes I implemented on the live site, it was a refreshing reminder of how significantly the code I write can affect other people.

Building my own app; Singles matches (my ping pong skills evolved)

The last 3 weeks of my internship were spent designing and building a content-driven feed for the pymetrics home page. The content feed was the first application I built completely independently this summer, and it was, by far, the most rewarding project for me. As both a creative and a technical process, it solidified everything I’ve learned during the past 10 weeks (the debugging skills especially) into a fairly cohesive understanding of web development (using django and AngularJS). While I was building the content feed, my pymetrics ping pong skills and development culminated in singles matches with the other interns. In both cases, I found myself with more room for creativity and the increased responsibility that accompanies it, but with the self-confidence and patience gained through my other projects and in my own ping pong skills, I felt more than prepared. Though I still have a long way to go both as a developer and a ping-pong player, during my pymetrics internship I’ve at least learned to play a decent rally.