My First Internship
Tags: experience, webdev, career, internship
Published: 2018-09-11 06:30:55

---
title: My First Internship
published: true
description: I did this internship 6 months ago and it was a wonderful experience.Hasura helped me to become a web app developer and follow the best practices.
tags: #experience #webdev #career #internship
cover_image: https://thepracticaldev.s3.amazonaws.com/i/xxh5iykk8m5lftsupja0.png
---

Interning at [Hasura](https://hasura.io/) brought me to a brand new exposure to the world which I did not know about. I get to know about the work ethics, teamwork, communication, app development and a lot more!

##How I got that?
I did a course on "[Introduction To Modern Application Development](https://www.imad.tech/)" which included an internship from Hasura for those candidates who score among top 5%. The course was one of a kind and till now never seen a course including all sort of concepts and technologies bundled in one pack! It was through this course that I really got to know concepts like API,reverse proxy, bash!

##The internship
The internship was of 2 months duration during which we have to build web/mobile applications on a given problem statement and deploy it using amazing Hasura's Kubernetes cluster. And yes, forgot to mention, we need to do this in teams.Read more[here](https://blog.hasura.io/the-hasura-product-development-fellowship-a314fa63e5f9)

##Little bit about Hasura
At first glance, Hasura is a PaaS with BaaS components. It’s built with CoreOS, Docker & Kubernetes so it can run anywhere. In simple terms, the deployment with Hasura is a matter of two or three commands. That's it!
If you are a frontend dev and don't wanna hassle of creating server files and configs then Hasura is your friend.
Even for backend it provides  built-in data and auth API's[^1]

##Work Alottment
I wanted to work on nodejs but could not get since the fellow interns have taken that already. It was then I decided to take on the challenge to learn reactjs.

##Task 1 in the inbox!
Then finally I got my first task:

*Create a twitter account to use as reference and use [Material-UI](http://www.material-ui.com) to create a new ReactJS app with only the following pages:*
*1. [Main timeline](https://twitter.com)*
*2. [Search results](https://twitter.com/search?q=aadhaar)*

See [here](https://thepracticaldev.s3.amazonaws.com/i/yxaei6ul9l16cj2z8e33.png) what I made.

##Difficulties in Task 1: Dec 4-Dec 25
I had my exams but I did manage to learn about reactjs through codeacademy very slowly. 

##Learning Phase for Task1: Dec 25-Jan 15
After exams got over I seriously got into Reactjs and completed the codeacademy course and made few small apps like todo and name search bar to get comfortable. 
Then I delved into building the twitter account pages. It was not so easy still for me because I need to use a UI library. This library then was very new and there were no helpful materials and I took to reading documentation which proved really helpful. Apart from that material-ui docs are easy to follow, the reason it was tough for me then because of jss, grids and quite new ways of using css with react.

Apart from all of these hardships, I managed to implement material-ui in my twitter pages. The feeling of completion was amazing!
![](https://media.giphy.com/media/rDYtceHSUdFu/giphy.gif)

But I missed the deadline to submit the task. Not only I there was many interns having the same issue since we all had different exam schedules and were lagging, therefore. So, the deadlines were extended on taking this into account!
![](https://media.giphy.com/media/1vZ5cQyySXTGwcn14O/giphy.gif)


##Task 2
Now comes some other task :).I got to *deploy the task 1 on Hasura cluster*. Again, the learning phase started and the docs of Hasura and the support of slack helped me to go through that. 

##The days after completing the tasks!
I was really happy to have my task completed and waiting eagerly for peer reviewing in which an intern working on some technology will be reviewed by the student not working on the same one. I got react-native to review.
![](https://media.giphy.com/media/DUtSpDzxZZwPu/giphy.gif)
Apart from these a lot of things were happening in the slack. I did not get much time to engage in but then I was free so I started looking for smaller queries and try helping others with the implementation. Even if I could not solve I surely try to go through and follow the conversation and learn about the jargons and concepts since everything was new at that time!

##Final Team Task: Team 16
*As part of this group task, we were expected to deploy a custom service in Hasura that integrates with the __[Watson Conversation API](http://https://www.ibm.com/watson/developercloud/conversation/api/v1/curl.html?curl)__ and implement the use-cases/features as described in the doc*.

For this task, we were grouped into a team of four and had to work collaboratively to achieve the above task! We had one mentor too from Hasura for guidance and we need to update [logs](https://docs.google.com/document/d/1hevcPc8nwaq05EEeIeGX4uMtLKuHyL0x_xQ34x9ZBiw/edit?usp=sharing) daily as a part of the internship.
![](https://media.giphy.com/media/ZqhhS5MJiZFpS/giphy.gif)
Our team decided to build a **music bot**!
This final task had three subtasks!!

###**Final SubTask 1**: Preparing Plan Of Action Doc
This doc was going to enlist our plan of work for the coming weeks including the details of the usage of our Watson api, references, wireframes and all metadata stuff. I prepared some wireframes too.
We submitted the plan of action doc before the deadline! And our mentor reviewed and provided valuable suggestions.
From now we were divided into two sub-teams:
1.Mobile App team ( ReactNative + Nodejs )
2.Web App team ( Reactjs + Python-Flask )


###**Final Subtask 2**: Building a skeletal integration with API
_I have to build a chatbot UI and integrate it with the backend_
So from here, I have clearly understood that the logic part was with the backend guy and I need to get really creative.
Apart from that, it was not only aesthetics as I thought. After some time the code started getting complex since that was my first time building any big project like this one with several files and modules. Managing React states started getting cumbersome.
I have to constantly map the components and state flow on a paper to understand the code but it was fun! (I did not know about redux then!)

There were a lot of wow moments when my code worked and when I fixed my own created bugs:P

The components I built:
1)Play/Pause
2)Charts Display
3)Overall Container
4)Video Display
5)Download Component

The task then reviewed by the mentor. He loved it! And pass it to publish to Hasura Hub.
![](https://media.giphy.com/media/9Jcw5pUQlgQLe5NonJ/giphy.gif)
Hasura also posted it on [Twitter](https://twitter.com/aren_rahman/status/983385692850929665)

###**Final Subtask 3**: Extending the functionality
For this one, we added the downloading feature and I fixed some bugs and broken UI stuff and added changing background effect!
Finally, we completed before deadlines this time too with documentation.
I managed the documentation part and Hasura deployments and just loved doing it. After a while whenever any intern faced any sort of problem with deployment I was able to handle that very confidently.

After completing my task I was free and started helping other teams with their frontend work. I collaborated with two teams more and helped them to finish their task on time.

###Overall Wrap up!!
I always used to think how the projects were built and how just all industrial stuff happens! It was through this internship I get to know all and actually pushed myself to go to the extreme. People at Hasura were... I say, cool and extremely talented devs and I just got to learn a lot from them.
I learnt technical writing, app development and how the various parts of it are integrated, collaboration, git, posting and answering queries on StackOverflow and in the forums.                                            
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
![](https://media.giphy.com/media/3og0IzuKE39gzSYEw0/giphy.gif)



[^1]: Now the things at Hasura has changed a lot! I will be posting an update on migrations from the former version on which I worked.