Mad Devs internship program automation

Mad Devs has an Internship program for different programming languages. The communication with interns takes place in Telegram messenger. 5 programming languages = 5 different channels and each has to be managed. Also, each chat contains from 5 to 20 interns to help and watch after. With time and the growth of a number of interns, it turned to be a nightmare to manage. Based on this problem we decided to write a chatbot that would manage interns and help them to progress faster at the same time-saving time of our mentors. This is how we came up with Mad Internship Bot.

Below is the list of the skills which the bot has:

  1. Onboarding new members with a predefined, customized message
  2. Warning about upcoming standup deadline in case intern did not write standup yet
  3. Members join and leave standup teams on their own (no time from managers needed)
  4. Can adjust to different time zones
  5. Detects standups by watching messages with bot tag and defined keywords
  6. Supports English and Russian languages

Automate Onboarding/Welcoming Process

Before launching the bot, each intern had to be onboarded meaning mentors had to explain the rules, introduce themselves, warn about deadlines, etc. Now bot greets and onboards newcomers automatically, thus saving a lot of time and efforts of mentors in each chat

Onboarding/Welcoming Process.

Remote standups monitoring

Interns write daily standups in the format: “What did I do yesterday? What will I do today? What blockers I have?” This is to speed up the process of learning and give feedback. Yet interns sometimes are late with standups, or they do not write them at all, which is a problem for mentors since standups are an essential part of internship which helps interns to grow and mentors to monitor the progress.

Without bot the process of monitoring it was really time consuming and painful. Now bot monitors if standup is not submitted on time or there were many missed standups. If there are, bot just kicks the intern from chat thus the internship program is over for him/her. Interns cannot negotiate it with the bot, so, this motivates not to miss daily standups

Remote Standups Monitoring.

Bot also reminds those who forgot to submit standups about the upcoming deadline.

Remote Standups Monitoring.

Standup check

The bot can analyze standup quality. If an intern doubts whether the text is OK or not OK one can just write the text to the bot and get advice on how to improve the standup and if it would be accepted or some keywords missing. This saves time and text for the internship chat.

Standup Check.

Standup quality assurance

In the beginning, interns do not understand why they write standups and what benefits it gives them. That is why standups like “yesterday worked on the project, today will continue working, no issues” happens all over. Bot analyses standups and gives recommendations on how to improve them so that they are of more benefits to interns.

The bot can advise including more links to resources, tag mentors to seek their help, write more words if standup is small, ask questions. With this feature standups quality has improved and interns started to write more meaningful messages that help them to grow.

Standup Quality Assurance.

Pull Requests checks

Interns send Pull Requests and often PRs need a lot of small improvements with basic formatting and description, tags, size, etc.

Standup Quality Assurance.

If some improvements are needed, bot writes about it under PR so that interns can check against the list, correct formatting, PR size, description, assign mentors as reviewers, etc and then send better PR which would require less time to check.

Standup Quality Assurance.

Time zones consideration

Sometimes interns are in the different Time Zone which impacts the way the bot treats their standups. For this, we developed the functionality to control the TZ , so that bots would know if intern submitted standup today or the other day, or if an intern submitted standup on time or was late.

Adminer for database

It is always good to have Adminer for a database to view data without the need to go to the server, enter container, and use database CLI to view info. Without the need to write our own UI we just enabled Adminer for our DB and it really helps to view or change data fast.

Adminer for Database.

So, what’s next?

Bot continues to grow and develop to help both interns and mentors save time and submit better standups. The major objectives are: to automate repetitively advice, help improve standups quality, and even write better code.

The bot is an opensource project, so, anyone can make a contribution for any internship program to be it IT internship or design or anything else where standups is an essential part of the program and communication is in Telegram messenger

To-do list for the nearest future:

  1. Teach bot to accept work logs of interns;
  2. Add functionality for mentors to give interns tasks to complete and then remind them about those tasks;
  3. Conduct better standup analysis to give more meaningful advice;
  4. For those who missed deadlines add tasks to complete and check if they did the task to eliminate missing points;
  5. Add leaderboards based on a point system which would help mentors and HR to analyze intern performance and promote competition;

Star project on Github adds more issues with feature requests or bugs, share bot info with others. Maybe someone needs that bot for tracking interns to save time that otherwise could be used on saving animals or charity.

Custom Software and Mobile App Development.

Running Postgres as a build requirement in TeamCity build

We use different Continuous Integration tools in our projects. One of them is TeamCity software. A pipeline for TeamCity can be configured easily and...

What to choose to implement audio/video calls solution using WebRTC?

Mad Devs have been working with WebRTC since 2013. We have implemented several projects with video or audio calls enabled. That’s why I want to share...

Functional programming principles in JavaScript

There’s nothing new about Functional Programming. Functional Programming has been around for much longer than OOP as it dates back to the 60s.