College Student Starting point Development Internships

Sayantan Banerjee
7 min readApr 23, 2024

--

PROLOGUE

“Hey bro, you have heard about chicken and egg paradox in Job experience, right!”

“I am seeing a sense of what you are up to, but you state in detail!”

“It’s like for getting a job, you need work experience! But for experience, you need a job!”

“But it’s our starting years, am sure their must be small un-organized companies/ freelancing opportunities where they hire based on projects you have built so far! And once you work in those, you would learn while working there, and also have experience to show up in the resume.”

“Oh really is it? Let me look out for such opportunities!”

My career journey began back in Autumn 2019, and let me tell you, it’s been a wild ride! When I started college in mid-2018, I had no clue what I wanted to do with my life. But, as my first year commenced, I started exploring various fields such as Web Development, Android Development, Machine Learning, IoT, and the list goes on. TBH, it felt like a kid in a candy store. Every field seemed fascinating, and I just couldn’t wait to try my hands on everything.

But, here’s the thing: Android Development caught my eye like nothing else! It was like the more I learned about it, the more I craved to know. Hence, during the summer break after my first year, I decided to step up my game and hone my passion for Android Development. I spent hours on YouTube, Udemy, and Udacity, exploring various courses. I created a dozen small projects, trying my best to implement all that I had learned.

And boy, was it worth it! Looking back, that summer vacation set the groundwork for my career. It wasn’t just about learning the technical skills; it was about realizing the significance of perseverance and hard work.

Fast forward to today, a few years down the line, and I am grateful for that summer vacation that ignited my passion. Every day, I continue to learn and grow, and I wouldn’t ask for anything else.

THE SEARCH

After dabbling in Android Development for a few months, around mid August 2019, I decided it was time to put my skills to the test and work on some real-world projects. So, I took to LinkedIn and other third-party websites like Internshala and AngelList to search for internship opportunities.

I created a basic resume — my first-ever— where I detailed all the projects I had completed so far, and uploaded it to the website. Internshala was my go-to website because filtering jobs based on exact requirements was a breeze. Plus, some organizations were willing to hire college students or someone with no major work experience!

I filtered through the available opportunities based on my interests and started applying to multiple organizations at the same time. While many of them didn’t even bother to respond, some came back with hiring closed. But to my delight, a few organizations sent me a sample project to work on, and selection was based on how efficiently I delivered the deliverables.

IMPRESSION MATTERS

So, I got my hands on my first-ever assignment, and here’s how it went down. The project was super simple — a single-page Android application that allowed the user to open the camera directly from the app, click a photo, and display the photo on the screen. Plus, there was a counter variable that needed to update every time a user clicked a photo. And, get this — the counter value needed to persist, meaning that even after the user closes the app, the counter value should be there the next time they open it!

Now, the deadline was only over the weekend, so I had to buckle down and put all my focus into this project. It was pretty manageable, to be honest. The main challenge was to click the photo and persist it without losing any quality. But, thanks to multiple open-sourced tutorials available on the internet, I finally figured it out.

But here’s what matters most — you can know all the technical aspects of a project, but it’s the details that make it stand out. For instance, I received one approach-the photo display- that was super unoptimized and leading to some data loss, and I knew I couldn’t deliver something like that. So, I spent a whole extra day figuring out how to fix the issue and ensure that the app’s performance was optimal — no lagging or anything.

All in all, it was a great learning experience. I realized that these projects aren’t as intimidating as they seem if you have a decent knowledge of the technology. But, getting the details just right can be the real challenge. And hey, at the end of the day, it’s all about impressing your clients with what you deliver — that’s what matters most!

THE CALL

So after few days, me and my friends were walking leisurely in our college campus post dinner, when randomly I got a call from the manager himself! He told me he liked it very much, also loved how I handled the edge cases, and he would like to offer me the internship position!

Ofcourse my brain went numb with happiness! First ever :)

But yeah shortly after that, I adjusted myself and we had a brief conversations about the work that I need to deliver, and he only asked me how much time I need! Although I cannot go into details, my work revolved around capturing pictures using camera, and sending it to remote server! A bulk transfer of images that needs to happen in background to be precise. I estimated I would need a couple of weeks for the work, but he stated that I can take 3 weeks and even extend another week if i needed to! And he also discussed a fixed stipend, which made that small 19 year kid so happy :p

THE JOURNEY

So, I completely lost track of everything except my internship work the very next day. I was ready to sacrifice college studies, food, and even late-night gaming sessions to learn and grow as a developer. The initial work was pretty smooth since I had already completed the pre-requisite project that involved capturing photos using the camera. So, I quickly jumped into the second part, which was uploading the images to a remote server.

That’s when I learned about Google Firebase, and I knew it would be the perfect cloud server solution as it has a helpful amount of integration with Android. I talked to my manager about the pricing costs associated with the server, and they did not have any issues with it. Google and YouTube quickly became my go-to sources for learning how to upload images into Firebase since it was pretty straightforward.

However, one of the major challenges I faced was how to handle uploading multiple photos into the server. After doing some research, I decided to use foreground services. Services tend to work even after you move your application to the background pile on your phone, and the foreground service is a customized notification bar that shows how many photos are already uploaded and how many are remaining. It took some effort to learn how to implement this feature, but eventually, I got the hang of it.

The major hurdle was figuring out how to handle if uploading stopped in between how to handle the rest of the data. For this, I decided to incorporate a Transactional Outbox design pattern. Basically, for each picture captured, I stored it first in the phone’s storage, and its metadata entry was stored in the local database (which was SQLite since it was the best option for my needs). When the user decided to upload the data to the database, the system first traversed the SQLite database, looked for records that were not uploaded, then read those images from phone storage, and an asynchronous transaction took place, which uploaded the image to Firebase storage. After successful uploading, the local SQLite database record was updated to processed. At the end of the day, a cleanup happened, where, when the record in the database was already uploaded and processed, it was deleted from the local phone storage, and on successful deletion, the record was also deleted from the database.

So, there you have it — a brief overview of my internship work. It was at times challenging, but even then, I learned a ton.

CONCLUSION

Throughout the duration of my internship, my manager and I had progressive discussions over the phone every few days. It was amazing to exchange ideas and learn from him. However, one time, he asked me to document the app’s screens and functionality, which I realized was important for easy understanding.

After three and a half weeks of hard work, I finally completed the whole app and submitted the APK to my manager. I also shared the codebase with him over a private channel so he could access the project. My hard work paid off when he finally paid me in full and gave me the internship completion certificate.

One month was a short time frame, but I completed my work like a pro, and I am proud of all that I achieved. I learned a lot during this period and cannot wait to apply all that knowledge in future projects!

EPILOGUE

More than an actual project, it was more like a Proof of Concept (PoC)! And even worse, I never had the interaction with the manager ever again so that I could ask him did it make it to the client! 😆 But all in all, first ever real world experience, and I cherished it more than anyone else ever could

“Maa, tomar jonno eii cup ta kinlam! Baba tomar jonno eii ghori ta kinlam. First salary theke eii nao gift tomader jonno!”

Every first thing are special, isn’t it!

Thanking you for reading my story, hopefully I would be back soon and continue writing more personal experiences, technical stuff, and continue my writing way!

--

--

Sayantan Banerjee

Android Developer | Open Source Enthusiast | Binge watcher | Reader