What I learnt from Crio Summer Of Doing

Jayesh
6 min readJun 23, 2019

Crio Summer Of Doing is one month of intense job-like experience that will teach you to be independent in all the work you do while at the same time help you immensely with your community building skills. Pro-tip: It’s all about patience, passion and perseverance.

The objective of this mission is to learn by practice and research. Each CSoDian worked to build a scalable, distributed backend system for a dummy food ordering app, QEats.

My Crio journey started officially on May 27th, however, the reading material pertaining to the tools we were going to employ during our “Micro-Experience” was shared a week earlier. “Micro-Experience” is the name the Crio team has given to the entire job-like experience that runs for two weeks.

Pre-Work

The period of one week leading up to the Micro-Experience(ME) is called Pre-Work. Here, you practice all the technologies to be used in the ME through small but challenging modules. I encountered some hurdles getting used to the Linux environment but I pushed myself, referred tutorials and was on my way by the end of the first day. The Pre-Work sets your expectations right for the actual ME and it gives a sense of what is to come and how to manoeuvre future roadblocks.

The Micro Experience

I was pumped about the Micro Experience; working 10 to 7 in a job-like environment on building the backend, a scalable backend for a dummy food ordering app made by the Crio team, who wouldn’t be? What fueled the excitement further was the fact that none of the technologies listed to be employed during this period had ever been tested by me earlier. I honestly had no idea about many of these technologies even existing in the first place.

The experience is brilliantly divided into ten modules, each with varying levels of toughness and grind required. Every module introduces a new user story in the context of a food ordering app; the tech that can be used to solve the problem is also mentioned. Some reading material is provided to jump start the journey but it is not very pointed and would not lead you straight to the answer. It serves as a launch pad only and all exploration further from that point depends on your research skills and the ability to ask the right questions on the Internet. I’ve come to understand this from my earlier experiences with software too.

Research is undeniably one of the most important skill a developer can possess.

I have personally found that reading the documentation for various APIs gives a much better sense of the technology and all its pointed edges than asking for help directly from peers and this is something the Crio.Do team has stressed on enough. Every reading material has references to Wikipedia pages or docs related to the software instead of tutorials and that helps to understand all aspects of a technology before we rush to use it step by step as given in a tutorial online.

Crio Challenges

In between the modules, the team had organized Crio challenges for those folks who were ahead of the schedule. The purpose of these challenges was to dive deeper into concepts already covered in the previous modules, prepare a presentation on the new and hot information and present it to all the CSoDians on a Zoom call. Some of the students submitted their entries for this challenge and Rohan Mallya was allowed the opportunity to present a talk on the different methods of Serialization and Deserialization. He did an awesome job; I learnt a lot from his session and wanted to do something similar too.

After the module on Multi-Threading which was made optional, I found this opportunity. I requested Anirudh from the Crio team to give me a chance to present a talk on multi-threading in Java. I felt that this is a powerful concept and quite a few people were not exposed to this module(owing to the fact that it was optional). I prepared a presentation(which I will link below) and we had an awesome time discussing methods to solve the threading problem in our backend.

The Lows

Implementing a new feature is not always a walk in the park and the modules are designed in such a way to push you way out of your comfort zone in some cases to keeping you in a “stretched” zone in others.

There were modules where I felt I had reached the very limit of my brainpower and of my patience too but living by the “Learn By Doing” spirit and push from the Crio mentors empowered me to complete the modules. The Tech Leads from the Crio team made me and other peers stuck in similar situations realize that these experiences are a part of learning new things and giving up would mean that we would make learning any new skill in the future a no-go zone for ourselves.

Real footage after multiple failed attempts

Support

The entire group of CSoDians had a Slack workspace with channels that catered to the different modules(and also channels that produced gem memes). However, asking direct questions without proper research and independent debugging for hours, is discouraged. This is something which forces the person to look into the their problem deeply, understand the cause, try out few solutions and only when all of this returns null, should they contact support. Similarly, handing out direct answers was also strictly discouraged.

I found the subtle hints given by the tech leads immensely useful in clearing up problems in my modules. There were times when I felt that they should really help me now, I’m dead stuck, no way out but all they gave were very subtle hints and I cannot tell you in words how it feels to discover the fix by yourself and I’m certain it’s this feeling they had in mind while refusing to flat out answer.

Capstone Project

Just when I felt the journey’s done, the Crio team came up with a fresh challenge, this time a group activity. Build any feature addition to the already developed backend for QEats, the food ordering app; an awesome challenge if you ask me.

Our team was instituted rather quickly, just minutes after the announcement. I had Bashar Jaan Khan and Ankur Dubey in my team, two highly skilled developers with a relentless spirit to innovate and experiment.

There were a lot of firsts in this project. I had never collaborated on a technical project before and at least not when both of my teammates were kilometers away from me. We went on calls, shared diagrams of flows and used collaborative tools which until then I had just fancied using.

In the end, we built a chatbot integrated into Google Assistant to act as a front end to our APIs and landed in the top 10 teams out of 35 teams.

Conclusion

Crio Summer Of Doing has given me a more perfect ending to my first year than what I could’ve wished for. Apart from the technical skills that I acquired, I understood the importance of collaboration, relationship building and also the spirit of never giving up. I have made connections to awesome people around the country and have learnt countless things from their experience and continue to do so.

My end cycle performance report

Crio Summer Of Doing has my strongest recommendation if you’re looking for a program where you can learn by doing!

Link to my presentation on multi-threading:https://sway.office.com/XhEODIQS7bNb9bKo?ref=Link

Linkedin: https://www.linkedin.com/in/wjayesh/

--

--

Jayesh

MLOps @ZenML, IIT Bhubaneswar Graduate | Varied interests | Love interacting with people. I crave knowledge 📒📰