This project was my first professional experience building full-featured software applications. I had joined Josh Software, Pune in January 2018. After a month of training, I joined the small team of 5 devs working on the product Quickinsure, an online insurance agrregator service for consumers and insurance brokers.
The tech stack was Ruby on Rails as the main backend which was coupled with an admin interface. The app also produced REST APIs which were consumed by two front-end apps: a consumer facing website, and an Android app. MongoDB along with Mongoid was used for the database. ElasticSearch for efficient searches, Redis for caching, Sidekiq for background jobs etc.
Being the first big project that I worked on, I learned a ton working on end-to-end features. To summarize my initial learnings, I had written a blog about it, which got published in freeCodeCamp. I also gave a 5-minute nervous talk about it at Deccan RubyConf 2018.
These were some of my responsibilities:
- Designed, developed and tested new features in the system (back-end and front-end)
- Wrote REST APIs being used by a web-app and an Android app.
- Built interactive user interfaces using Slim/CoffeeScript.
- Resolved production issues, refactored the code-base.
- Discussed business requirements with stakeholders and translated them into technical requirements.
- Integrated a large number of third party APIs in the system, with regular communication with the API vendors.
A few business outcomes:
- Improved business revenues by integrating 4+ insurance providers
- Reduced the time spent on managing the real-time issues faced by customers by building a system that made it easier to do so.
- Made it easier for the product managers' to take important decisions by building analytics dashboards across various data points.
- Improved reliability of business-critical code by writing robust automated test-cases.
I worked on this project for about 1 year and 2 months in a high-paced startup environment, by the end of which I learned a significant portion of its large codebase. I learned a lot about Ruby, and the framework Rails. Understood its powers and its drawbacks and when it makes sense to use it.
I learned how to build robust APIs consumed by multiple clients, and to consume a large number 3rd party APIs in a sensibe way. Also got to know about ElasticSearch, and how to use it for efficient queries on huge sets of data. I learnt how writing test cases can save us from critical failures.