I have been working as a software development engineer intern with INDMoney, a personal finance application with a focus on financial inclusion for the last 2.5 months. It is a very enriching experience to be a part of something that solves real-world problems. The initial experience was quite overwhelming. Never had I ever worked on such large codebases neither had I ever worked on something which was being used by people on such a scale. The first few weeks were spent on understanding the codebase, the technologies used, and the overall architecture.
Initially, I was handed over a dummy project to basically get a hold of the tech stack my team would be using. Concurrently, I had Knowledge Transfer (KT) sessions with my team lead to get me familiar with the algorithms, their implementations, and the various problem statements the team aims to solve in the future. I was also given a basic tutorial of the tools and frameworks my team uses to efficiently create solutions.
Once I had gotten a hold of things, it was time to get my hands dirty with the live project. The learning curve was immensely steep and I was given the responsibility of testing some of the backend algorithms and basically ensuring that the algorithms were running in a way that provided us with consistent and optimal results. I used property-based testing for the same wherein we used fast-check. This introduced me to healthy coding habits and got practical exposure to real-world software development. I also was introduced to various debugging techniques utilized in the industry and got my hands dirty on Jenkins where I learned about CD pipelines. Followed by which I was asked to scope out a system wherein I had to map out the various architectural designs and provide a basic effort estimation for the same. I was then handed over a major chunk of development tasks for the same. This task introduced me to various security improvements that are added to an API before deploying it on a production environment in order to make the system completely air-tight. I also get to do a lot of code reviews for my peers in my team. Moreover, all this experience has led me to observe the advantages of implementing agile techniques in software development to build software quickly and efficiently.
I am grateful to Bennett University for providing me with such an opportunity and not to forget my team @ INDMoney.