Source Allies had many apprentices during Summer 2021! They gained experience with test-driven development, pair programming, ci/cd, mobile development, and much more. Each apprentice had their own unique experience over the course of the summer, and gave a presentation in August to showcase their growth as developers, consultants, and people. In this post, Cutler and Christian will share their experience working on the AgPoint mobile app.
I spent the first half of my summer working on team Aegis, where our main priority was to upgrade the authentication on AgPoint mobile. AgPoint mobile is an application for mobile devices that enables farmers and technicians to track their equipment. John Deere’s oAuth1 would become deprecated in July, as their latest authentication, oAuth2, had recently been released. Before our team could focus on bringing updates to the React Native codebase, we first had to update the Bitrise (CI/CD) pipeline. Since AgPoint hadn’t seen an update in a while, the pipeline had issues such as outdated credentials that made it unable to build applications for Apple’s App Store Connect and Google’s Play Console. Once we had brought the pipeline into a functional state, we began updating AgPoint’s authentication.
I initially felt overwhelmed by the size of the existing React Native codebase. However, my teammates helped bring me up to speed with the project environment through pair programming and exploring the codebase. We successfully released our authentication updates well before the deadline and spent our remaining time fixing bugs and bringing quality of life changes to AgPoint mobile. The most memorable bug fix we implemented was the app’s behavior when users disconnected from their John Deere organization while sharing their location.
About halfway through the summer, I joined Team Slippers (the longest standing team at Source Allies). The team impressively balances several different projects at a time. One of their pre-existing partners, an industry-leading roofing business, sought the team’s expertise to develop a modern and user-friendly web application for on-site contractors. Our team decided to build a single page web-application using VueJs, Vuetify, and TypeScript. All of which are tools I had no prior experience using. Luckily, I had developed a strong sense of Test-Driven-Development (TDD) while updating AgPoint. My recent exposure to TDD and CI/CD ensured that bootstrapping this project was not intimidating. Since this project is not yet complete, I am preparing the project so that others on Team Slippers will have a seamless experience completing the project as my summer comes to an end.
Overall, I had a fantastic summer at Source Allies. Before this summer started, I had limited experience with practices such as TDD or pair programming. I am grateful to have learned so many new tools, frameworks, and concepts in addition to meeting countless influential people. Thank you to everyone at Source Allies for helping me to learn and grow so much this summer.
I look forward to returning next summer!
Over the course of my apprenticeship with Source Allies, I have gotten to learn many new things through the projects that I got to be involved with. The first project I was put on was AgPoint where my primary task was to upgrade the authentication of the mobile app. During the course of this project I was able to learn a lot about React Native which I was very unfamiliar with when I first started. I also got to learn about authentication overall. Specifically I gained a better understanding of oAuth2; what this is and how this works behind the scenes in an application. During the course of this project I also learned about testing and the different ways to test code. While I have had experience with unit testing, my understanding of testing grew as I wrote end-to-end tests, integration tests, and complex mocks.
Roughly halfway through the summer, I switched to a different project to build a web application for contractors. This project was a very different experience because, unlike AgPoint which had an already existing codebase, this application had to be built from scratch. This was an interesting experience: I was able to see what went into the architecture decisions that were made. In this project we used Vue with Vuetify and Typescript to build the application. These technologies were new to me. It was exciting to learn so much so quickly. Using Test-Driven-Development was fundamental to building this application, and a key thing that I learned during my entire time at Source Allies.
In addition to the projects I worked on, I also got to experience the amazing culture of Source in many ways. Everybody at Source is very friendly and open to talk about things outside of work. As someone who is very quiet a lot of the time this kind of environment made it easier for me to talk with others. During my time here I also was able to participate in many different activities. One of the activities I enjoyed a lot was Allies After Dark where I got to learn about different side projects others are working on at Source Allies. Over the course of this summer I also got to play many games and have a lot of fun.
This has been a wonderful summer where I was able to learn a lot of things. As someone that has a passion for learning new things, this summer was able to provide me many learning opportunities. I was able to learn about many different processes in software development as well as many different technologies. I am very happy to have worked with and learned from many people. This summer has been a very amazing experience that has allowed me to grow.
Christian and Cutler would all like to thank their fellow teammates for supporting, teaching and mentoring them throughout the summer. If you have enjoyed hearing about their experiences and think Source Allies may be a good fit for you, please do not hesitate to apply!