Interning at Hasura 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!
I did a course on "Introduction To Modern Application Development" 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 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 morehere
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's1
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.
Then finally I got my first task:
See here what I made.
I had my exams but I did manage to learn about reactjs through codeacademy very slowly.
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.
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!
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.
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.
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!
As part of this group task, we were expected to deploy a custom service in Hasura that integrates with the Watson Conversation API 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 daily as a part of the internship.
Our team decided to build a music bot!
This final task had three subtasks!!
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 )
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:
The task then reviewed by the mentor. He loved it! And pass it to publish to Hasura Hub.
Hasura also posted it on Twitter
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.
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.
❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
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. ↩