My Software Engineering Internship at Terraso

Picture of Jodie Zhu looking at the camera and smiling.

My first encounter with Tech Matters occurred about a year ago when I was walking to class and listening to a podcast about a Tinder-inspired app for young political activists— an episode from the Tech Matters Podcast. It’s always refreshing to see the domino effect of technological advancements in industries that haven’t historically been urgent in incorporating software in their practices, Tech Matters being one of the first dominos in the nonprofit sector. This was one of my biggest appeals of applying for this engineering intern role.

From the first Spec Review meeting, I was already immersed into the dynamic and collaborative dialogue between the engineers, product managers, and UX designers. Before this experience, I was always under the impression that engineers had very little say in the design behind a feature; they were simply in charge of implementing it. Since Terraso builds software for non-technical users, I was amazed by the amount of precision and attention to detail contributed by the entire team in ensuring a seamless experience for simply one minor feature. 

One of the standout aspects of my internship on the Terraso team was the incredibly supportive learning environments. From day one, I was mentored by Paul, Terraso’s Engineering Director/ Apple wizard, who taught me that, although I’ve been using a Macbook for over 8 years, I didn’t really know much about Macbooks. One of the first things he taught me was being efficient with terminal, Github, and Macbook commands, which saved a lot of time in getting work done. The second thing he taught me was to never stop a hockey puck with your foot (from personal experience, he mentioned this on our first 1:1). Throughout the summer, I was able to observe Paul’s attention to detail in maintaining and building features in Terraso’s platform. In the open source world, where projects are driven by community contributions, updating dependencies, naming conventions, comments and documentation are not just good practices; they are vital to sustainability and security of projects. Over the course of the summer, I was able to learn and apply these best practices through my own development process. Through 1:1’s and pair programming sessions with Paul, I further advanced my learnings in relational databases, operating systems, Linux commands, and reducing clutter on my local machine (HUGE game changer). 

Additionally, I was fortunate to work with David and Garo, Software Engineers on the LandPKS platform of Terraso. Through our collaborative journey, I had the privilege of engaging in weekly pair programming sessions with them, where I was introduced to Django, the backend framework behind 1000L and LandPKS. My pair programming sessions with David centralized around React Native and GraphQL mutations, both of which I was unfamiliar with. On the other hand, Garo and I were able to work on Django models and translate user stories into tangible code. An essential skill I learned from both of these engineers is the importance of approaching difficult problems with multiple solutions. Both Garo and David pushed me to explore trade-offs and evaluate pros and cons of each approach. This is especially valuable in tackling complex problems with creativity and delivering high-quality solutions for user-friendly features. 

Last but not least, I collaborated with Jose, the Senior Software Engineer on the 1000L platform. I played a small part in the story map feature on 1000L as I worked with media uploads and adding new user story maps to the Tools homepage. Despite my plethora of React (Terraso’s web framework) questions, Jose was always welcoming in offering detailed explanations and clarifications. He taught me the importance of code readability and consolidating repetitive code, especially in open source projects. When I’m working on a ticket, it’s easy to forget that other developers will eventually look back at something you wrote and have to understand what it does. Jose eases that process by emphasizing the importance of modular programming (a software design technique that separates the functionality of a program to independent modules) and instilled that in frontend tasks that I did. 

My internship experience was not limited to only the engineers; I had the opportunity to interact with the entire Terraso team— Lillian, Hana, Courtney, Derek, Steve, and Amaya— and witness the dynamic realm of delivering elegant solutions tailored for users who are not as steeped in technical skills. I am incredibly grateful for my time at Tech Matters and I cannot wait to apply what I have learned to my forthcoming journeys!

Author

My Software Engineering Internship at Terraso
Scroll to top