The First 4-Months of My Software Engineering Internship Experience
Embracing the Work from Home Internship Life at Zone24x7
Although I was actually required to only complete the frontend of an assessment that was handed over to me the first few days that I joined the company, I was pretty adamant about completing the backend part of the project as well because I really wanted to portray myself as a full-stack developer.
While working on the frontend of the project, I learnt a great amount of React-TypeScript and also how to make use of Redux & Redux-persist. While working on the backend with NestJS, I always took the harder path to implement things because I wanted to learn the ins and outs of backend development. While doing so, I came across several issues that NestJS didn’t directly address anywhere on the internet. I was able to work with my mentor on those issues and figure out how to solve them.
Transfering findings to Open Source contributions
Since NestJS was open-source, I found an issue that hadn’t been addressed to properly by the NestJS team and contributed to the NestJS docs to help-out anyone else who may come across the same issue. This was one of the issues that I had tackled with my mentor.
In case you haven’t contributed to Open Source before, you should try doing so in your free time. It’s a whole different awesome feeling that you get when you’re able to contribute to the community.
Transfering learnings to projects beyond 9–5
Having worked with Redux & Redux-persist in the assignment project, I managed to transfer those learnings into creating a fully-fledged social media app which used React-Native over the course of one week. I extended my learnings here by learning how to control user sessions using React Native Navigations and by implementing many more functional requirements. Having had only created a ‘Todo’ app with React Native before this, it was a big step forward for me.
Finally, I also worked on the DevOps part of the assessment project with Docker & AWS and further extended my area of knowledge.
Making an entrance with the first taste of R&D
Zone boasts quite a number of patents and is known for the pretty amazing Research & Development projects that they carry out.
My taste of this was through a sub-project that I got one day with around 24 hours time to execute. Since I got the task at the end of days work, I glanced through a few related use-cases for about 10 mins and left my laptop after getting the feeling that it wouldn’t take longer than a couple of hours to implement. This R&D task involved the use of a socket connection.
Around midnight, I started doing extended research related to the required technical expertise and in about 1.30–2 hours I started going all out trial & error implementing the task. By 3 in the morning, I managed to get it done! This was also a great learning experience because I had never used a socket connection previously.
The next morning, both Frontend & Backend Tech Leads of the project seemed to be really satisfied and grateful for what I had managed to pull off. This led to a pretty satisfying entrance to one of the major projects that were being carried out at Zone. It was also quite the satisfaction when this was shared around to everyone at Zone to be used as a support-tool for testing purposes of the main project once it was further developed into a third-party dashboard.
The Low Friction Biometric Authentication solution
The project that I got to work on over the following weeks was based on a low friction biometric authentication solution. Having worked on the frontend of a pretty large scale Face-Recognition project named, Speculo as my second-year group-project for several months before joining Zone, I had a decent amount of experience and exposure on what was expected from a frontend developer of a similar project.
I also got my initial experience of working with QR codes in this project which I was able to utilize in the next project that I got to work on.
Unit Testing Mayhem
Combating Issues through Newfound Experiences
One of the main things that I had found difficulty in was debugging and identifying issues with results related to HTTP-requests. I would always try to console.log() and debug issues, but that wasn’t very helpful when trying to find root-issues in request handling. This is when my mentor taught me how to work with the network tab in Dev-Tools of the browser to debug these type of issues. Ever since then, the network tab has been the next-best-place-to-be when debugging, after the console for me.
Progressive Web Apps and Firebase
The next project that I got the opportunity to work on was a spin-off project based on the low friction biometric authentication solution that I had been working on previously. Here, I got a really good exposure in developing Progressive Web Apps (PWAs). Although I had a brief idea on the concept of PWAs, I actually didn’t really know all the awesome features that it could bring to the table. In my opinion, it’s a shame that most of us developers don’t build PWAs. What’s even more shameful is the fact that most of the developers that I know (including myself previously) have no idea of the benefits that PWAs can offer to the user.
In this project, I also got a fair share of experience with Firebase services such as Firebase Cloud Messaging, Firebase Functions & Firestore.
Cheat Days 🤥
I also expanded my skills in the areas of Blockchain, serverless and building fast static sites using GatsbyJS whenever I had the time to do so.
The Learning Never Stops
I’ve been learning a lot of Golang & a certain amount of advanced NodeJS over the last few days and it has been an interesting area to get myself into, especially because I’ve been wanting to learn how Go’s concurrency works for quite a while now.
I think you should see a clear pattern of how the experience of an intern at Zone24x7 lays out. Zone24x7 has a really great environment for anyone who likes to learn new cutting edge technologies and use them in projects. The support given by the senior Engineers is quite remarkable as well. When I was told about this from a few previous interns, I was really excited to work here because I myself loved learning and applying new skills.
The Scientia24x7 sessions that are held regularly cover a vast area of technical domains & expertise. I even attended a C++ session, which was technically off my required set of languages, but I just wanted to get an idea of how things worked there as well.
The projects that Zone had done in the areas of VR an AR got me quite excited before joining and I’m yet to get to experience them. Furthermore, the Big Data and IoT projects were also some areas that I found interest in.
A Final Reflection
Looking back at my first 4-months at Zone as an intern, I think I’ve done a pretty decent job so far and kept true to the learning culture of the company. It’s quite remarkable how I’ve been able to grow as a Software Engineering undergrad over the last few months even in the middle of a pandemic.
As much as I crave to get to meet, connect and work with even more skilled Associates, the work-from-home culture has compromised the possibilities to do so. Even though we’ve been working from home, I’m happy to state that I’ve gotten to know several employees from various departments at Zone by helping out in various projects and by attending Zone’s Toastmasters Meetings that were held online.
That’s all folks!
I’m looking forward to keeping this space updated with even more interesting projects, technical experiences and expertise over the rest of my internship year.