Caleb McOlin (LinkedIn) interned with Floop from June 2021 to Sept 2021, working as a Software Engineer on creating and deploying full stack features. He is a senior studying Application Development at North Seattle College, graduating in May of 2022. Thereafter he will be looking for opportunities in the software industry as either a full stack web or mobile developer. We loved working with Caleb because of his self-direction, reliability, and helpfulness. Learn more about what Caleb accomplished in his internship with Floop.
Top Accomplishments
- Owned, created, tested, reviewed and deployed the Student Engagement Metrics feature for Floop. This brand new feature calculates, tracks, queries, and displays the comment metrics of each student’s submission for the teacher.
- Built and updated cloud functions, triggers, and scripts for the NoSQL FireStore database prioritizing efficiency and productivity.
- Reviewed and assisted in the deployment of the Rich Text Assignment Description feature. Many of the attributes of this feature are the result of Caleb’s meaningful feedback and attention to detail.
Top Strengths
- Self-Direction
- Caleb was tasked with creating and deploying a large new feature for the app. This feature would include both frontend and backend components. Caleb could ask for assistance from other interns and full time developers but was solely in charge of getting the feature working error free. Without any micromanagement, he was able to take the scope of the feature and break it up into manageable issues ensuring he could complete the feature in steady increments. Progress was constant and the feature was finished in the appropriate time frame. After final review the feature was approved by the lead developers and merged into production.
- Helpfulness
- A pull request review was requested for a new feature. Caleb would review the new feature with diligence and determination to be as helpful as possible. Upon the review he would leave extremely detailed feedback on discovered issues, suggested additions, and code tweaks. This extensive review would consist of examples, pictures, and gifs along with descriptions for each suggestion. Because of this work, there would be several new tickets created which would eventually be implemented into the feature before it was merged with the main branch.
- Initiative
- On one occasion a fatal bug was found in a recent push to prod. The team quickly issued a roll-back to keep the service working properly and a note about the issue was sent to the team. Caleb was the first to respond. He took a look at the issue, created an issue ticket in the repo and pushed a pull request fix the same day. While fixing the problem Caleb did some extra testing and found another unknown bug. He documented this one as well and started a fix for it as soon as he could. The fix for both the fatal bug and the newly found one were approved and merged with main. The team could then re-roll the new version back to prod in a very short amount of time.
Summary of Work
Student Engagement Metrics
User Story:
“As a teacher, I want to know how a student has engaged with an assignment so I can encourage engagement, plan interventions, and celebrate student engagement offline.”
Description:
New metrics tracking features regarding the students and teacher comments for each submission. This includes calculating the number of total comments, comments seen and comments replied to by each student for every assignment’s submission. New database collections, functions, scripts and queries were created for the backend while new UI elements were created to display stored metrics data on the frontend.
Workflow:
To ensure this feature got completed on time, Caleb created a general overview of the essential workflow. Several of these steps encompassed many sub-steps and issues. However, the goal with this was to show the scope of the feature’s creation.
Besides just the workflow chart above, Caleb also managed a GitHub Project board which handled the Backlog, To Do, In Progress, In Review and Done issues. This made the current progress clearly visible to all other developers.
Demo:
A short demo video showing off the core features of Student Engagement Metrics: Demo Video.
Biggest Challenges
In Caleb's words: “The biggest challenge for me was probably creating the real-time listener for the submission table. This proved to be difficult because of the way the codebase was originally structured. At first the submission table was a class component that was getting all its data from a Redux store. However, the newly created metrics data wasn’t being stored in Redux; it was queried directly. Because of this disconnect there were efficiency problems and a bloated codebase.
To fix this, the first step was to convert the massive submission class component to a functional component so I could utilize React hooks. This was a very lengthy process in which I had to work with a lot of legacy code in an oversized component. However, once this was done, I was able to add all the needed hooks. The second step was to get the live listener to work properly and efficiently. To do this I had to research the ‘react-query’ framework and find a way to implement it into the newly converted functional component. In the end I got it all to work and now there is a clean and efficient real-time listener subscribed to the submission table.
This was a true learning experience as most of this process was completely new to me. However, I am much more confident in my abilities now that I had to work through all these problems. It excites me to see what new kind of problem I run into next.”
Intern Takeaways
Here is what Caleb learned during his time at Floop:
- Floop was my first internship. It taught me a lot about team communication, whether that is in the team chat channels, private messages, or on the conversation of the pull requests. Having clear and well documented communication can ensure work doesn’t come to a screeching halt when a team member is away from their computer.
- I learned a great deal about NoSQL cloud functions and how to ensure they are created in a clean and efficient way. This goes hand-in-hand with the importance of Promises and making sure they are handled correctly.
- My knowledge of React, React hooks, functional components and third party React frameworks skyrocketed during my time at Floop. I feel much more comfortable reading, navigating and writing code using React.
We loved working with Caleb in the summer of 2021. Best of luck in future endeavors!
Contact Caleb McOlin through LinkedIn: https://www.linkedin.com/in/calebmcolin/.
Comments
Post a Comment