Skip to main content

Floop Intern Spotlight: Caleb McOlin

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.

IMG_20210106_130332 (2).jpg

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.”

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.

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.

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:


Popular posts from this blog

Back-to-School: Consider Your Feedback System, Not Grading System

One question I ask other teachers is “How important is feedback in learning?” Every teacher I talk to agrees that feedback is crucial. It’s how both teacher and student gets better. Research backs the importance of feedback; building off of John Hattie’s work comparing factors on learning, Evidence for Learning’s toolkit ranks feedback as having the highest impact out of their 34 approaches (along with meta-cognition) with a +8 months’ impact on students’ learning progress. I follow the feedback question with “How important are grades in learning?” It might seem like a loaded question. You can imagine how teachers respond: “They’re not.” Why give grades, then? We’ll save that topic for another occasion. For now, I just want to point out that we are frequently asked to consider and describe our grading system by students, parents, colleagues, and administrators. We’re rarely asked about the much bigger and more important component of our work: feedback. With back-to-school qu

A Culture of Iteration: Policies and Practices for a Revision-FocusedClassroom

Success in the real world depends on a person's ability to iterate. to understand the definition of success on a task to seek feedback early and often to use that feedback to revise and refine until successful As teachers, its our job to scaffold this process, with developmentally-appropriate differentiation, until our students can fly solo. As I sit here writing this, my  SO  Dan is at his desk  red-lining  a building diagram for a warehouse in Canada. When he's done, the diagram will go back to his team of engineers where they will respond to Dan's feedback with a better design. They'll repeat this process until both building code and client requirements have been met. To do this work, which requires an iteration cycle that can last over a year or more, Dan has to understand building code and client needs, seek feedback from other engineers and the client, and use that feedback to revise and refine until the design is ready for implementation. ​Dan wasn'

Part 2 - Tools for an Equitable Feedback System: Engaging with Criteria

This series of posts will cover a variety of bite-sized strategies that can be incorporated into a more holistic feedback system. To learn more about the research behind these approaches, we recommend you first read our white paper . Part 1 - Feedback is Emotional For feedback information to be useful, it must communicate:  Where am I going? (What are the goals?) How am I going? (What progress is being made toward the goal?) Where to next? (What activities need to be undertaken to make better progress?) (Hattie & Timperley, 2007).  Supporting students in engaging with the grading criteria helps give context to the feedback to come. In other words, it does the groundwork of helping them determine for themselves, "Where am I going?"