Team

Lessons Learned from our Associate Developer

September 13, 2023
Lessons Learned from our Associate Developer

As the school year begins again, one of our Asso­ciate Devel­op­ers leaves after his time with us for the sum­mer Soft­ware Asso­ciate pro­gram. Rohit Kartha worked on a short-term project with us and learned a lot about real-world devel­op­ment, and the soft­ware con­sul­tan­cy busi­ness mod­el. In this post, Rohit is going to share the lessons he learned dur­ing his time with us. We hope that this can help you, if you’re inter­est­ed in work­ing with us, under­stand what devel­op­ers both do here, and what valu­able lessons they can learn from just a short time on the job.

The Project — Grady’s Gar­den #

photo of Rohit Rohit Kartha, Asso­ciate Developer

Grady’s Gar­den is a food and nutri­tion com­pa­ny that focus­es on pro­mot­ing a healthy lifestyle and nutri­tious food choic­es. The project at Michi­gan Soft­ware Labs revolved around cre­at­ing a web-based appli­ca­tion that edu­cat­ed chil­dren about veg­eta­bles in a fun and cre­ative way. The main ele­ments of the appli­ca­tion includ­ed a veg­etable iden­ti­fi­ca­tion quiz, a video play­er designed to show­case an ani­mat­ed video about gar­dens and veg­eta­bles, and fun, edu­ca­tion­al tid­bits to make the appli­ca­tion more enjoyable.

Lessons Learned #

Being new to using Vue3, the frame­work our web-app would be built in, devel­op­ment seemed daunt­ing at first but over time there was much that I learned and picked up on.

Atom­ic Design and Vue

The first large con­cept I learned was how to split up code into reusable chunks” or com­po­nents, which is part of the Atom­ic Design par­a­digm. Next, was under­stand­ing how com­po­nents worked with each oth­er. By grasp­ing Vue props” and Vue emits”, I even­tu­al­ly learned how so-called par­ent” and child” com­po­nents com­mu­ni­cate with each oth­er. Through­out this process, con­nect­ing the pages we made required me to learn about the Vue-Router and tools like nest­ed and dynam­ic routes. Last­ly, was the stor­age of infor­ma­tion between all our pages and com­po­nents with Pinia. I learned how to set up a Pinia store and sit­u­a­tions where Pinia state man­age­ment could be use­ful. Sev­er­al oth­er fun­da­men­tal top­ics came up along the way such as com­put­ed prop­er­ties, slots, com­pos­ables and vue transitions. 

Learn­ing about Vue and adding a lot to my pre­vi­ous knowl­edge of Type­Script and CSS real­ly expand­ed my skills as a devel­op­er and opened up sev­er­al poten­tial avenues for future devel­op­ment and creation.

Ana­lyt­ics

To observe if our web appli­ca­tion had a sig­nif­i­cant effect on a child’s will­ing­ness to try or abil­i­ty to iden­ti­fy veg­eta­bles, we incor­po­rat­ed Google Tag Man­ag­er, Google Ana­lyt­ics, and Google Look­er Stu­dio. The main goal was to com­pare children’s results in our pre-quiz” sec­tion to our post-quiz” sec­tion and take note of any trends between the two. The Google Tag allowed for the track­ing of events or cer­tain impor­tant user actions. Even­tu­al­ly for every answer a child clicked, data on their choice would be sent and stored on Google Analytics. 

Through the process of work­ing on this task, I was able to learn a great deal about these three tools. More specif­i­cal­ly, I was able to under­stand how to set up an under­ly­ing ana­lyt­ics tool and con­trol what user data is stored.

Pri­va­cy

While think­ing about how ana­lyt­ics would be set up, one top­ic that was brought up was how to store the infor­ma­tion of users, par­tic­u­lar­ly that of chil­dren, in a way that meets pri­va­cy reg­u­la­tion stan­dards. This was insight­ful to hear and allowed me to bet­ter under­stand the con­sid­er­a­tions a team must take before releas­ing a pub­lic application.

Agile

Through­out the sum­mer, I was able to bet­ter famil­iar­ize myself with the Agile method­ol­o­gy and gain a bet­ter under­stand­ing of how soft­ware is devel­oped in the indus­try. These skills will help in the future as many com­pa­nies uti­lize Jira Scrum Boards or a sim­i­lar sys­tem for their development.

Con­clu­sion #

photo of David David Craw­ford, Soft­ware Developer

Rohit did an amaz­ing job work­ing on this project. One behav­ioral les­son that we hope to instill in every­one, and saw Rohit devel­op well over time, is know­ing what the right ques­tions are to ask ear­ly and often. When you don’t have a lot of expe­ri­ence, it can be hard to ask the right ques­tions ear­ly in a project. Through­out the sum­mer, Rohit devel­oped a great under­stand­ing of foun­da­tion­al ques­tions to ask ear­ly for the next project he might work on. These are ques­tions that are com­mon to any project, such as what the ana­lyt­ics needs are or how respon­sive the design needs to be, so that we can make proac­tive deci­sions instead of reactive.

If you like what you read here and want a place to learn and grow in the same ways as Rohit, check out our careers page to find an open­ing that’s right for you.

David Crawford
David Crawford
Software Developer

Looking for more like this?

Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.

Three principles for creating user-friendly products
Business Design

Three principles for creating user-friendly products

January 25, 2023

Grayson discusses three guiding principles he utilizes when designing user experiences for products.

Read more
MichiganLabs’ approach to product strategy: Driving software success
Process Team

MichiganLabs’ approach to product strategy: Driving software success

February 12, 2024

Read more
When to “shape up” versus be more “agile”
Business Process

When to “shape up” versus be more “agile”

May 30, 2024

Should you develop your new software using the Agile or Shape Up method? Here’s how to decide.

Read more
View more articles