
NCR Corporation
Back-end Developer
September 2022 - April 2023
In my fall of 2022 co-op work term placement, I worked with NCR to implement and deploy new micro-services and utilize software tools to integrate services in banking systems.
Developing micro-services
During my employment at NCR, I was tasked to implement new micro-services and new features for existing micro-services in the codebase. To effectively complete these tasks, I learnt spring boot, and I utilized my skills in node.js for development of these services. For containerization, I learnt dockerfile to create docker images of the micro-services and docker-compose to containerize all needed services for an application. I also used kubernetes and GCP for deployment of these services.
It was a great experience working on that codebase, since I practiced following coding standards and delivering clean, complete and bug free code. My coding practices have gotten a lot more consistent than prior to my employment and it is all thanks to the consistent feedback I got on my code reviews.
Kafka Messaging
A good part of my work term went towards learning and integrating some existing micro-services with Apache Kafka messaging. The tasks typically involved initializing a consumer and/or a producer on a service to a Kafka topic and sending/processing messages to and from the Kafka topic. During implementation, I faced multiple challenges learning this technology ranging from configurations, authentication and containerization of services with Kafka brokers.
In the end, I was able to overcome all the challenges and complete my tasks on time and was able to transfer that knowledge to the rest of the team.
My Experience
Working at NCR helped me successfully achieve my learning goals prior to my employment.
NCR was my first experience working in a large team on a bigger codebase. This type of work environment helped me gain valuable development and communication skills. Having senior developers on my team who reviewed my pull requests and assisted me in any blockers I faced, ensured I got the proper feedback which overall improved my work capacity over time and helped me become a better developer by not repeating mistakes I would've otherwise overlooked.
Moreover, working in agile environment, participating in sprint planning and reviews and demonstrating my work to stakeholders at the end of sprint helped me effectively develop the ability to seamlessly communicate technical and non-technical ideas to a wide array of audiances.
It's been a pleasure working at NCR for the fall, I met and collaborated with many smart and talented people to achieve great things. I wouldn't trade this experience with anything else and hope to cross paths with my team again in the future!