My Internship Journey at Dragonfruit AI
Tags: javascript, react, career, ai
Published: 2022-12-15 04:30:40

### tldr;

So, it all started with a cold apply to a job post, when I just knew that Dragonfruit does interesting things with videos. I got a reply from [Amol Kulkarni](https://in.linkedin.com/in/amol-kulkarni-intel) (one of the co-founders of Dragonfruit) that let’s schedule interviews for an internship. Two technical interviews later, I got a call that I was selected. Three months in, I learned about:

- creating APIs in Python (Flask),
- E2E testing using cypress,
- database migrations using alembic,
- data models using sqlalchemy,
- pixi.js graphics

From knowing nothing about these technologies to deploying code that is being used by many fortune 500 companies, it has been a mind-blowing journey.

### What is Dragonfruit AI?

[Dragonfruit](https://dragonfruit.ai/) offers the world's most advanced enterprise AI analytics for digital investigations, occupancy management, real-time alerts, and beyond. It stands at the intersection of video, cloud, and AI, and it aims to be the go-to solution to store videos while providing powerful insights through analytics.

### Why I chose to intern at Dragonfruit AI?

When I was a little kid, I was told that all the cool things are made in the valley (Silicon Valley) so I always dreamt of working with one. I learned about Dragonfruit and its work culture through some of the previous fellow interns’ blogs and couldn’t wait to give my 100% in my technical interviews. I was so excited that people from established institutes around the globe (Harvard, Stanford, USC, IITs, VIT) were working there and I’ve gotten a chance to work there as well.

![USC hype](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bs9pac3sf3lodj0oesrs.png)

### Interview Rounds

So here we go into the technical rounds:

#### Tech Round - 1

The first round was an overall technical knowledge round taken by [Vishal Goel](https://in.linkedin.com/in/vshlgl) (Software Architect at Dragonfruit) about my projects, mainly my GSoC project and projects in Golang (mostly where I had used concurrency model of Go). It was a conversation and code walkthrough where I was asked some questions based on them.

#### Tech Round - 2

The second round was a coding challenge round taken by [Naveen Yannamani](https://in.linkedin.com/in/naveen-yannamani) (Founding Engineer at Dragonfruit) where I was asked to code a mini version of jQuery using JavaScript based on the requirements of the question. It was quite challenging and also a fun challenge where I got to brainstorm a lot. I was able to complete the challenge within the time period and it felt so good that after the interview I was jumping and dancing like a drunk person.

Both interviewers were amazing and had an amazing sense of aura. I never felt like I was stressed or something. It was quite fun actually. After all the interviews, I got a call - I was selected!

### “The Dragonfruit Way”

I would say I loved the way the internship was structured to maximize learning and inculcate organizational best practices. I was assigned a mentor, [Shubham Mandal](https://in.linkedin.com/in/shubham-mandal-74a20093) (Member of the Technical Staff at Dragonfruit) who helped and guided me throughout my internship. He took out time from his busy schedule whenever I needed any help. It is also the same case with other “dragons”, they are there for you whenever you need any help. I fell in love with this super cooperative environment.

Other than my technical meetings, we had a weekly all-hands meeting where both technical and non-technical aspects were discussed (on what is going on, what are the future plans, infrastructure changes, updates, and business development) and also a five-minute-me where an employee got a chance to share about himself/herself. We also had a weekly intern sync with Amol sir who gave us so many insights on how startups take decisions, how it all started and how it shaped itself to what it is now, advice to 20-year-olds, and many more.

### What did I do in these three months?

#### E2E Testing using Cypress

Firstly, I started out with e2e testing of frontend (React.js), I fixed around 20 tests and made them more generic. I wrote cleanup scripts so that any dangling server-side data can be removed before/afterward a test is run. I reduced the duration of the tests and made them faster by 36.06%.

#### Search filter dependency model

I had zero experience in python but Shubham sir helped me a lot to set up the backend environment in my local and guided me through this. This was a feature that checked if the search filter is used in some place, and if so - notified the user with a modal.

#### Customer Showstopper Issues

#### Region Graphics

This was one of the most challenging tasks. I needed to work with graphics (pixi.js) in which I had no previous experience. I improved the map region graphics to include interpoints functionality and then introduced drag functionality for regions and spatial filters.

![Map region graphics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/znl5cr8pic54vapjq8et.png)

#### Insights settings

I converted the insight settings page to a modal with subgroups.

![Insight settings modal](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/podr5yxx1jkdm13ean8e.png)

#### Views Folder structure

This feature implementation looked a bit overwhelming to me at first. Previously, I had never changed the database model directly and was just working with APIs. But this needed database migrations, API implementation, and frontend adaptation. I was shit scared, I didn’t want to break anything in production and also their trust. So, I took some time studying Naveen sir’s implementation of Insight groups and made a generic parent-child relationship model which can be extended easily. Both Naveen sir and Shubham sir helped me a lot to achieve this progress.

![View Groups](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/88iokseiat4vcb8lptth.png)

![Folder based structure](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/297pktq538b4s3l6jsft.png)

### To End,

I had an exhilarating three months with Dragonfruit. I never thought these types of organizations exist that push and help out lads to give their best. I learned a lot about React.js, best state management workflow practices, and how to scale out stuff so that it is easier in the long run. It was an amazing experience and I would definitely cherish it lifelong.

> A tip: If you want to apply for an internship and take your chances with Dragonfruit AI, you may contact amol@dragonfruit.ai.