My Internship Experience

Aniket Purkayastha
3 min readNov 15, 2022

One of the finest ways to learn and acquire useful work experience is through internships. It aids in our understanding of how most industries operate in the actual world. We get the benefits of a full-time job via internships. Not only this, but internships also provide us the chance to explore our many interests and choose the one that will benefit us the most in the long term. Undoubtedly, having real-world work experience before beginning full-time employment gives us a huge advantage as we start out on our journey as full-time employees.

Beginning on June 1st, 2022, CAW Studios welcomed me as an SDE Intern. Even though it has only been six months since then, the amount of learning I have done in that time seems to have taken a lifetime. A disciplined and well-organized Bootcamp preceded the start of the internship. Two phases made up the entire boot camp. We received some fundamental instruction in web programming during the first part, which lasted for more than a month. This involved managing source code with Git and GitHub, learning fundamental and advanced JavaScript, designing user interfaces with HTML and CSS, utilizing Node.js and Express.js for the backend, creating REST APIs, and creating CICD Pipelines where we got to practice using GitHub Actions.

The boot camp's second phase was a little more demanding and exciting. All of the interns were split up into teams to give us a flavor of how real-world projects are created. Each team consisted of three people, with a committed mentor who was usually a senior software developer. Our task during the second phase was to create the backend of an online movie ticket booking website that was comparable to the well-known BookMyShow platform. The ability to book tickets, check the availability of seats for a specific show, have a suitable user interface, and the functionality of seeing all the movies playing in a specific city were some of the project’s important aspects. The project also consisted of a user authentication system.

After the initial training and conclusion of the bootcamp, it was time to get into a real-time project. Finally, I was assigned as a software developer in the backend team of a project called VizDom. Our client for this project is Flipspaces. Flipspaces is a Virtual- Reality-Tech-based design and contracting venture that aims at disrupting the way consumers design and execute the interiors of their spaces. VizDom is an internal project of Flipspaces, that will provide an end-to-end platform for Flipspaces to manage and maintain all their ongoing live projects, vendors and customers in an efficient manner. The aim of this project is to automate the whole process from starting a new project till handing it over to the customers as much as possible. The tech stacks of this project include Express Js, TypeScript in backend, React Js in front-end, Couchbase as our database, and Ottoman Js as our database ORM. Apart from these, we are using AWS S3 Bucket, CloudFront, and Fargate to host our website.

As a backend developer, my primary role was to develop and maintain REST APIs. To date, I have successfully created two APIs. First, a bulk upload API, that would take data from an excel sheet and store the information in the database. In this API, I also incorporated an algorithm that would fetch files from a google drive link and upload the file into the AWS S3 bucket and CloudFront from where we get a CloudFront URL, which is stored in the database. I achieved this using google drive APIs. Another algorithm that I created was to cross-validate the addresses entered in the excel sheet against the google maps location provider, in which I used google maps API. The second API that I created from scratch was the API to get vendor details along with various filters. Some of the other tasks that I was assigned were setting up the skeleton codebase for backend development following the MVC codebase structure, along with models, payloads, services, controllers, data store and repositories, core routes and exception handling, a configuration of ESLint, Prettier and pre-commit hooks for which I used husky for the backend workspace, generating schema models in ottoman for the entire database, setting up CORS middleware in the project so that the frontend and the backend applications can exchange resources without any hindrance.

Speaking of my major takeaways, there are several, but one that really stuck with me was to never stop asking questions, no matter how foolish they may seem, because doing so is the greatest way to find a solution.

--

--