This summer, I had the great privilege of joining the development team of Nomad for eight weeks. Nomad is a social media app started by two Williams graduates, Dysron Marshall ’20 and Kelvin Tejeda ’20. The goal of Nomad is to connect users with communities and events in their area. Users have the ability to create new groups to create a community or advertise an upcoming event or join an existing group to create connections with nearby people.
Before starting my main project for the summer, I had to complete a few tasks to familiarize myself with the different aspects of full-stack development, including setting up my development environment and fixing some bugs in the app’s code. My primary task was giving users the option to choose a category when creating a new group, such as “dining” or “entertainment.” Categorization would greatly improve user experience, as users would be able to find groups of their interest more easily by filtering by category. Implementing this new feature required working on all levels of the app’s code. First, I edited the group models in the backend code (the inner workings of the app, written in Python) to create a category attribute. Then, I added the functionality to store these categories in the app database using SQL commands. Finally, I made a new slide in the frontend code (what users actually see, written in Typescript) to allow users to choose a category when creating a group.
My computer science skills greatly benefited from this real-world experience. I had the chance to improve my existing knowledge of Python and gain practice with SQL and Typescript, both of which were new to me, but this coding practice was just an additional benefit to my main takeaway from the summer: learning software development from start to finish. My supervisors Dysron and Kelvin emphasized the importance of forming good habits when working with a development team. These habits included planning out the project with a design doc before starting to write code, making sure my code was clear and readable for anyone who might look at it, and communicating effectively with team members about the project. I hope to build on these habits as I take more computer science courses at Williams and write code in professional settings.
I owe many people a debt of gratitude for this incredibly edifying and enjoyable experience. I want to thank Dysron and Kelvin for trusting me with their code and for devoting so much time and care into ensuring I learned a great deal about software development and had a successful internship experience. I also want to thank Mr. and Mrs. Case for this amazing experience working for a startup app and learning about app development and my own academic and career interests. Finally, thank you to Dawn Dellea and the ’68 Center for Career Exploration for facilitating the internship process.