Crio Launch QMoney: module-wise experience

Naman Gupta
5 min readFeb 29, 2020

Crio Launch (crio.do/launch) is a 10-week program where the student has to complete 3 projects (or Micro-Experiences as they call it) that try to provide work-like experience for the participants.

QMoney is the second micro-experience in the program(Check the experience for 1st ME: link). QMoney is an app for monitoring and analyzing stocks for Portfolio Managers are make trade recommendations to their clients. The core concepts covered in this Micro-Experience are Programming in Java, JSON, Design Patterns and Concurrency.

In this Micro-Experience, we work as a Backend Developer in the QMoney team. We have to develop the backend while another team works on the frontend that we have to integrate later in the ME.

Module 1: Read user portfolio file

Here we start with an introduction to the basics of the concepts that will be used quite regularly throughout the ME, i.e. Reading JSON and Deserialization of data. Here, we have to read JSON data from a file and then deserialize it to get the data values.

My Experience :

A hidden difficulty that builds its ways into the workspace and your mind to destroy it is Checkstyle. Here, it seems like a small Cockroach that is practically harmless but not for long. Other than this the module is pretty small.

Module 2: Get stock quotes from a third-party provider

In this module, we have to start building the actual backend for our software where we try to hit a third-party API to get stock data. In the module first, we have to set up the provider and make a sample API request through cURL commands. Then we have to request our java file. Lastly, we get a taste of refactoring the code, that we’ll have to do rigorously in a further module.

My Experience :

‘Don’t make things more complicated than they are’, that’s it.

Module 3: Implement logic to perform calculations

This module is one of the smallest modules (but trickiest one, if not tackled in the right way) of the Micro-Experience. All we have to implement is a formula to calculate the Annualized returns of the stocks in the portfolio, that’s it.

My Experience :

You can try to implement the formula yourself but to get through this module it would be better to just go through the forum when you face an error that you didn’t expect.

Module 4: Create a portfolio management library

Here we start to make our code more manageable and robust. In this module, we begin by moving most of the code to an Implementation of an Interface. Then we collect the Implementations into a Factory to make it easier for external users to create objects of the desired type. Once all this is done, we implement a sample case scenario in our main application code to test our code.

My Experience :

The references given in this module are the best resources to learn everything you need to know to complete this module. The references in this module also tell you the actual significance of this module. The module was a cakewalk once I read through the references.

Module 5: Publish the library

The Frontend, that was being developed from the beginning while we were working on the backend, is ready now and we have to integrate it to the backend. We have to pull the frontend repository into our workspace. Then, we publish our backend to a Maven repository. Once this is done, we run the Spring Boot application that we created and the UI that we pulled. Then we open the dashboard in the browser and check if the code was working the way it was intended.

My Experience :

The module is simple just Google “how to publish your code to Maven Repository” and the rest is just running the commands specified in the tasks.

Module 6: Add another service provider

This is where you realize how much code management takes place behind the scenes of any Software Product. Here we have to make the code robust enough to be able to accommodate for the future multiple Stock quotes providers, which shows how important future planning is. Here, we have to refactor the code further and move the code for already available Stock quotes provider and move it to a lower layer and add another provider on the same level to test our functioning.

My Experience :

This module made me dive deeper into JSON Parsing using Jackson, which was not quite fun but wasn’t boring either. Also, I would like to say what almost everyone is saying on the Slack workspace since they have begun QMoney and that is “Debugger is your best friend.”

Module 7: Handle user issues

In this module, we start working on Exception Handling and how a developer works when the users are faced with a new exception that wasn’t handled the way it should have been. Here, first of all, we have to identify the Exception by reproducing the error and adding debugging statements. Next, we add suitable exception handling.

My Experience :

This module hit me quite hard. My carelessness punched me hard in the face when I had to reset this module twice. It made me realize that it is really important to follow the sequence of tasks and not move ahead until you are completely sure that you have completed the task.

Module 8: Enhance performance of the app

The module extracts the actual power of Java: “Multi-Threading.” In this module, we have to Multi-thread the stock quotes requests in order to reduce the execution time and in turn increases the efficiency. Firstly, we calculate the time that it takes for the process to execute without multi-threading. Then, we have to modify the code to add multi-threading and compare it with the earlier times.

My Experience :

The module’s guides were descriptive enough but being unfamiliar with most details about Multi-threading in Java, I needed additional guidance. This is where the forum helped. A special note for this module, you might run into a test failure that is not there in the Tests in your repository. Try to look for it in the forum and probably, you’ll be through soon enough.

QMoney was much more fun than before as it was up the alley I had been going. The kind of Software Development in this ME is what makes it more fun.

Crio Code Blitz was a program that went simultaneously to QMoney.

Link to Code Blitz experience : link

--

--

Naman Gupta
Naman Gupta

Written by Naman Gupta

SDE-2 at Navi Technologies, Web Developer and Self-Driving Cars Enthusiast

No responses yet