Three Things I Learned From My Internship at NCTTA

CongratsBot mascot

It’s hard to believe almost a whole year has passed since my software engineering internship at NCTTA. Now, as NCTTA’s new internship program coordinator, I’d like to share some reflections about what I learned as an intern last summer.

The project I designed and implemented is called CongratsBot. After an NCTTA tournament is completed and match data is entered, CongratsBot will comb through match data for accomplishments such as “Survivor”, which is given to the sole person to win on a losing team, or “No Mercy” for the player who beats their opponent 11–0.

Examples of accomplishment badges

1. Start Small

When I first started the CongratsBot project, I envisioned a fully automated process from after data entry to sharing the best accomplishment results. However, given the time limitation of 12 weeks and the lack of existing infrastructure, we decided to pare down to the minimum viable product, which includes a human trigger for when match data has been fully entered, and manual selection of the best accomplishments from each tournament to share with the whole division. Though it seemed like a small project at the time, between other priorities that came up and issues with using the .NET Framework on MacOS, I am glad we started small.

2. Be Proactive

As a remote intern, sometimes it can be hard to stay on task and feel connected to your team. To combat these issues, I scheduled a weekly intern meeting for us to get to know each other, provide updates, and help each other debug issues. Other things I found helpful were sending regular updates, asking for feedback, and learning how to ask for help concisely with the relevant context.

If you’ve finished all your assigned tasks, tell your manager what you want to be involved in and propose work that you think needs to be done. Especially in a small company, you can even reach out to people in different departments to learn more about the company from different perspectives.

3. Document Everything

Whether you’re trying to integrate new tools, design a new process, or fix a bug, documentation is key. Though I knew documentation was important from my previous internships, one issue from last summer taught me that this lesson applies to everything I do. After spending hours trying to integrate React with .NET Core and SignalR, I picked it up again the next week and could not remember what I had tried or what any of the issues were. Documenting your debugging process not only helps you, but it can make it easier to ask for help if you need it later.

Final thoughts

Going into this internship, I knew so little about NCTTA behind the scenes. Now that I have seen everyone’s dedication first hand, I wish more players knew how hard the staff works to keep this all volunteer organization running, sacrificing evenings and weekends to make NCTTA the best it can be for all of us.

I’m so grateful for the support I received from my manager Tae Kim, mentors Chris Wang and Utako Kase, and of course NCTTA President Willy Leparulo. Thank you all for your help, I couldn’t have asked for a better team to work with!

4th Year Computer Science Student at UC Berkeley with a passion for table tennis! 🏓