My Internship experience at Asanify

Javin Bachani
4 min readSep 1, 2020

This summer, I had the opportunity to intern at Asanify. I had applied to their posting through Internshala, an online job portal after which I had to complete a coding assignment and clear a technical interview round to be selected.

Needless to say, I was ecstatic on being offered a position with the profile & stipend to my liking. Developing software from scratch for production in a startup is an amazing & wonderful learning experience.

About Asanify

Asanify is a B2B HR Tech startup that helps businesses automate their gamified HR & Payroll services through their online portal as well as chatbots hosted on platforms like Microsoft Teams & Slack.

Asanify logo

A typical day as an Asanify intern

Due to the worldwide Pandemic, all our meeting and communication was directly over Google Meet & Slack. We had daily standup meetings at 10am where each person described what task they are taking up next and a final catchup at 7pm to review work accomplished during the day. I would spend most of the day either coding/fixing bugs or researching & testing implementation techniques. I worked directly alongside the founder/CEO who acted as the de facto mentor whom I could message and hold a meeting with anytime to discuss & solve any roadblocks. At the end of the day, I would push the code to my branch’s remote repository.

Projects worked on:

AWS Document Search bot

My first task involved testing & debugging an automated document search bot in AWS that would index any document uploaded to an S3 repository and query it back to the user when any keyword from that document was triggered. It was a really insightful experience as I got to test out AWS services and was able to isolate any problem or bugs by making Postman API calls to each service to check its functioning.

Chatbot image

MS Teams HR Bot

My second and defining project was to create a multi-variate virtuoso HR chatbot that could be hosted on Microsoft Teams (and later other platforms) using Python & Microsoft Bot framework. The bot was tasked with automating onboarding, facilitating leave applications, creating quizzes, polls and more. I was given full responsibility for research, coding, validation & testing the bot and enjoyed iterating on it with constructive feedback from my team. This project was really fun and had a few learning curves to overcome. Despite having experience developing chatbots in the past, creating a full production ready chatbot with fallback mechanisms & implementable on a web app (Flask) was a whole different ballgame. The bot’s core functionalities were: -

Forms/Applications

The bot’s flow was creating using Waterfall Dialogs which would prompt the user with a cascade of buttons using hero cards and adaptive cards for displaying various types of forms like leave applications.

Polling feature

The idea was creating a feature to similar to Polly, a popular polling chatbot. The initial stage required splitting user input string to create and output variable number of poll options and store user responses accordingly.

Creating a bar chart for the poll

This bit was tricky to implement. In the start, all leads turned up dead ends. Frustrated, I used the trusty ole’ chrome developer’s console to check how others were implementing the same feature which to my surprise turned out to be a simple hack i.e. query an image embedded in an adaptive card corresponding to poll % For e.g. If option A has 40% of the votes, embed the URL http://...img_40.com or …img_60.com for outputting poll bar with 60% votes and so on. This feature by far gave me the most satisfaction on completion.

Pop-ups/Alerts

This part required a lot of debugging as the official repository itself threw out bugs during runtime. This required me to review all the imported library functions which turned out to contain multiple Type Error’s post which the feature was successfully effectuated.

Multi-channel deployment

The final frontier was deploying the same codebase for Slack. This implementation had two huge issues namely; the adaptor for slack was coded for aiohttp vs flask which was our requirement, the second issue was slack’s POST & GET required different end responses to be coded. Azure bot services turned out to be a messiah for this problem, effectively automating channel deployment onto Teams, Slack, Facebook & even WhatsApp using their free tier middleware service.

Takeaways

Working at a startup definitely has its rewards. Your code is pushed to production and you get to interact directly with the founder without any of the infamous office politics or micromanagement. I felt really happy my projects and work could actively & positively impact the company.

--

--