It’s all about teamwork, creativity and cultural change

Reading Time: 6 minutes

People of different religions and cultures live side-by-side in almost every part of the world, and most of us have overlapping identities which unite us in very different groups.
We can love what we are, without hating what- and who we are not. We can thrive in our own tradition, even as we learn from others, and come to respect their teachings

Kofi Annan

Over the past few years, the field and management sector of major companies have a big problem of how to arrange the days of their employees, something that will give a bit of strong light and positivity, which will avoid monotony and on the other hand give a great impetus to their creativity and vision, much greater motivation and strong spirit in overcoming further obstacles and challenges. The problem is even greater if companies are stationed in several locations in different countries, so that communication is interconnected constantly through technical apps, almost virtual, simply a voice, perhaps a shy picture or video call and of course mostly text and chat conversations.

47 North Labs locations: Switzerland, Germany and Macedonia.

It is very often the case that the company hierarchy is a list of members of different cultures, nationalities, so that it becomes even more difficult task of organizing team buildings. But on the other hand, it is one of the reasons why that makes them special.

The differences are part of us, the differences are making us so special, and of course differences we know well and we have become accustomed to it.

Differences – make us special and unique.

Team building, joint team events or hacking term in the IT industry are part of every company agenda, happens every year and they often happen few times per year.

It’s a chemistry thing, it’s the time where you can share your points of view, your thoughts, your personality, your creativity, your vision, it’s the time when you are not representing just yourself, but also your culture, your contry.

But, the idea of creating an event, that will bring together – Team Building and Hackathon event?  Yes, we did it and we arranged and created. Almost one week, gathering the team together. The Family!

24 hours of work, pure juice of 100% creativity, dedication and hard work.  Commitment always brings success, and YES some of the team after the deadline and voting for the best team and best project made, they had a shootout with the Champs Titles and Presents. Absence Hub – Resource Guru and Absence.io connector TEAM did it, they collected the votes and drove all the way through like Real Madrid in Champions League.

Yes, it was worth it! Title goes to the winners!

The event was a success, the employees loved it. And all of them are sharing the same opinion, maybe sometime and somewhere everything is not 100% perfect, but even the misses are part of that. People create, sometimes in the process of creating always is something missing, but in the end, the finish line and the title – that’s all what matters!

Final conclusion – 100% success and that’s what all IT companies need, at least once, but it’s good to be twice or even more per year.  It’s chemistry, it is fun, it is releasing the creativity inside all of the members of the company that doesn’t have a chance before to describe themselves with their own words.
It’s a fact that programmers find Hackathons the perfect venue to unleash their ideas, it’s often that this kind of events produce ingenious products or ideas, or even they show the real potential, creativity, talents of employees. It’s an easy challenge, but the benefits of it can be great for the organization, company or network. And together with team building events, it’s double more fun and joy for the team.

The last moments after the end of the event, the euphoria of the faces of all colleagues, but also a bit of grief over why it was all too short, everyone wants more time together. But that’s the idea and motivation for the next event. Where, how, when, what’s next? Give your thoughts and ideas, let’s take a look and decide it together. Мaybe somewhere on the sea, fishing, hiking, or mountain and skiing? Or on some great concert with DJs or maybe Stones or U2?

Afterwards, travelling back to home town, sitting in the aeroplane and thinking about the past few days, wow it happened all so fast and the days flew like a fast cigarette break…

The A-team surrounded with lots of positive energy and good memories. And the question is what next,where to go next, what should we arrange next?

I think, whatever, just bring it on baby!

Hackdayz #18: SMS Forwarding Android App

Reading Time: 5 minutes

Team members

Youssef Idelhoussain, Senior Front-end Engineer
Shehab Eltobgy, Test Manager

Abstract

This is the real deal.. Prepare your battery, connect to a good network to get thousands of SMS. Whoever you are, maybe you come from a faraway land, maybe you don’t understand my language, maybe you are from a country that I never heard the name of…
One thing is for sure, you will get the SMS. So, whoever you are, wherever you are, our app has special skills which will make this world easier for you, starting with getting an SMS 📲🤩

Having such nice days during our Hackdayz did not prevent us from thinking into adding more practical benefit to our company by improving the current app. And after we had our lunch, we had the power to start working, nevertheless, my vegetarian lunch did not taste good at all.
Our aim was by the end of Hackdayz that the app should be released in PlayStore and the code should be made as open source for further improvements!

Side Notes

The app should have:

  • Rules: number and where it should be posted
  • Environment: Slack, Email, and others…
  • Some new settings: such as the ability for the user to set a password… (we were so optimistic)

Agenda

  • What is the problem you want to solve?
  • Who experiences that problem?
  • How do you want to solve that problem?
  • Why is this a better solution?

Having such a funny combination of a team with a front-end developer and test manager trying to develop an android app included so much fun these days, as we were literally underdogs. But, just to get our spirit up, we went to the gym, and then to the sauna where I could not even see my hands, and finally to the swimming pool.

Working on the project 👨‍💻 at Hackdayz18 in St. Gallen

Although, we were so ambitious that we set our plan to create an app with an infinite number of environments, and with so flexible rules (such as amateur dreams). After some time as Thomas A. Edison stated “I have not failed. I’ve just found 10,000 ways that won’t work.”, we realized that we are not gonna create the app as it actually was planned 🤯. Nevertheless, the days were cool enough to make us laugh while we were failing for several times.

Youssef was really ambitious that he told me “I will never go to bed mad. I’m gonna stay up and fight!”. After 10 minutes, each of us went to his room to sleep 😴. Due to the effort, I spent during 3 hours in the gym, sauna, and swimming, I wanted to sleep because by looking at my hand I couldn’t recognize how many fingers I did have.

The next day, we started working again. I wanted to start now with my real work, since when kings start the party 🎉, my first task was to find a beautiful design. I decided to choose a simple design due to the time pressure. Besides improvisation is too good to leave to chance.

Gitlab Repository

And using the mentioned GitLab we were able to create the app.

https://gitlab.com/47northlabs/public/sms-to-slack

Results

We were somehow not so much satisfied with the results, actually shocked 😱😱😱!!!

  • The app has been developed with the ability to add up to 5 environments. Unlike what we have expected to reach infinite number of environments.. such youth dreams 😅
  • The app could not set the email as one of the environment due to inability to find a library via which the app can send the message to the email while it is in the background…. experience is simply the name we gave our mistakes 😄

Conclusion and implication

The app has been created successfully and applied to one of our android devices using +41 76 75x xxxx.

Screenshot of our Slack and Slackbot channel

Future features and challenges would be…

1. Adding email as a new environment. Let us see how this gonna be manageable 🤔.
2. Adding password for the app. We are still so optimistic 😁.
3. Adding the ability to add more (unlimited environments) with the recycle bin 🧹 to remove them when needed.

By the end of the day, I just was totally shocked f the difference between what has been planned and what actually has been achieved. But, it was just a funny and exhausting experience.

Hackdayz #18: Absence Hub

Reading Time: 5 minutes

The best way is the easiest!

You want to plan the next projects, but do not know which of your employees are available? Who is on vacation 🏖? Who is ill 🤒? Who is where?

Or you are planning your next vacation and you are swiping about the best hotel offers and places. But then a mail from your boss: Your request is rejected 👎. The reason is that there is even a more important project and your talent is needed there!

These were our problems

We use for that two tools currently: Absence.io for planning your vacations and other absences and ResourceGuru for scheduling the resources for each project and customer.

Both tools are the best for its use case. But why so complicated? Why so many tools? Questions, questions and more questions,…

  • Can we make the absence requests easier for both sides?
  • Can we create the entries in one tool for the others at the same time?
  • In short – Can we optimize the process?

Our answer: YES, we can!

stay focused, be yourself and just do it

Boris Karov (Senior Software Engineer)

Our winning team

But how could we win?

First, we should have a look at our current approval process.

It’s complicated, isn’t it 🤦‍♂️? You have to log in, then your boss – in our case Fatih – has to log in in both tools and has to manage the requests. We had a discussion about the tools, which we might use, and finally came up with the answer: Absence.io sends us every morning the absences of each team member via SLACK. 😍

A new idea was born

How can we use this Slack bot engine? Or can we create a new one?

We decided to create a new Slack bot for all out-of-office requests, to connect both tools and to make the approval process easier and faster.

After we achieved this milestone, we started with the project. For research and development, we shared the following tasks among each other:

  • Boris mainly took care of ResourceGuru
  • Stefan mainly took care of Absence.io and CI/CD pipeline
  • and I of the Slack bot communication and node service

but there MUST exist an API for that!

Stefan Maurer (Co-Founder & VP Engineering)

Let the game begin

We developed the first lines of code and sent the first API calls via Slack. Also, we figured out how to create slash-commands in the Slack bot UI and how to connect the commands to the service endpoints.

A slash-command for sending an absence request

Then we created more useful and prettier messages to make the approvement decisions comfortable.

The bot message to the approver

Both back-end guys had some troubles to learn how to write a nodeJS service (e.g. promises, …). And I had also issues in understanding the Slack SDK, but we mastered the brainfucks and achieved a lot in two short days:

  • CI/CD with Gitlab Pipelines
  • SlackBot deployment on Heroku
  • User Slack command
  • Absence is created in Absence.io
  • Approver can accept / reject in Slack

And we won 😉

The happy winning team

Further steps

We still needed some other features for going live, too:

  • Let Dev choose who the approver is
  • Create TimeOff in ResourceGuru
  • Add caching via mongoDB to keep users IDs
  • Add handling to manage different user API keys
  • Add i18n date formats 2018/12/14, 14.12.2018,…
  • Support more formats like:
/remote 14.12.2018 morning
/illness 14.12.2018 afternoon to 15.12.2018 morning

Technology Stack

stay the way you are and get better and better every single day for the rest of your life

Stephan Ullenboom (Senior Frontend Engineer)

Conclusion

There were two very funny and productive Hackdayz. We had some challenges with API keys, because of both tools assigned there keys to a specific user and not to a project. Also, it required many, many, many API calls to find the users and resources etc. However, we made it 🙌.

We got to know each other better and went the extra mile together to win the trophy.

...and now, we have a new challenge: defend our trophy 🏆 at the next hackdayz 😁.

Hackdayz #18: Mr. Moody

Reading Time: 6 minutes

The Team

Shady Eltobgy (Senior Software Engineer)
Jeremy Haas (Co-Founder & VP Engineering)
Timo Köhler (IT Consultant)

Why we create our own Mr. Moody

Mr. Moody was implemented 👨‍💻, while attending our first offsite event Hackdayz18 at the Oberwaid in St. Gallen. Check out the video if you missed it! The idea was born in a short brainstorming session. Primarly we wanted to implement a Slackbot, because we already are Slack users for years now 💬. We really like to “slack” and love/use several bots already. Of course we also have to deal with new technologies, that might be used for future projects. Besides that, the idea of customizing our own application according to fit our needs is a plus ➕.

Discussing, coding, writing, thinking…. Snapshot of #Hackdayz18

Mr. Moody is based on the niko-niko calendar which is a simple practice to track the team mood, conventional used on a board with stickers  or written on paper. It allows every team member to track his mood at the end of a work day.  The Japanese word “niko” means “smile”; following a common pattern of word doubling in Japanese, “niko-niko” has a meaning closer to “smiley”. This calendar is an information radiator and can be seen as an opportunity to be used on a regular basis (e.g. in retrospectives or dailies) for reflection, adaption and improvements.

Used as a slackbot, Mr. Moody will remind you via direct message to tell your mood and ask you if you would like to add a comment on that. The personal mood calendar and also the accumulated team  mood is shown on a dashboard so the team can use it itself e.g. in dailies or retrospectives or team leads & managers can see how it is goig in the team(s) and see if there is action required.

Mr. Moody is a great complement to other metrics and will help the team identify impediments.

Sometimes we are happy….
…sometimes we are sad!

Technologies we used 🛠

Ngrok – https://ngrok.com/

A very cool, lightweight tool that creates a secure tunnel on your local machine along with a public URL you can use for browsing your local site. When ngrok is running, it listens on the same port that you’re local web server is running on and proxies external requests to your local machine.

Heroku – https://www.heroku.com

Heroku is a cloud platform as a service. That means you do not have to worry about infrastructure. You just focus on your application!

Botkit – https://botkit.ai/

Building Blocks for Building Bots. One of the good advantages to select botkit, is the ability to start a conversation using bot.startConversation() with a specific user using their user ID or channel ID. Very easy to use!

How does it work? 🤔

Botkit is designed to ease the process of designing and running useful, creative bots that live inside messaging platforms. Bots are applications that can send and receive messages, and in many cases, appear alongside their human counterparts as users.

A best effort is made to generate a slackbot where a cronjob ⏱ should be run everyday at 03:00 pm. This job will do the following:

  1. We get from slack the list of all users.
  2. Iterate through the list of users. Afterwards, each user should get the massage, asking about his mood, which is like a variety between different options (e.g. very good, good, normal, bad)
  3. An interaction is done with each user, by asking each user if he/she wants to add a comment.
  4. At the end of each week, another cronjob is run to send all data, and feedback to a certain user or group of users.

An example of how Mr. Moody is interacting

Wanna try it out? 💻

Yes! The code is open source and everything else (technical setup process) is described in the README.MD

https://gitlab.com/47northlabs/public/mr-moody

Mr. Moody Logo

Some other issues and questions ⚠️

The implementation of Mr. Moody is not totally completed. Some points need to be covered in the future. Some of them are as follows:

  • Storing the given rating from each user in a database, where later at the end of each week, a weekly report is generated.
  • When asking slack for giving us a list of all users, where we iterate through each user to interact, the given list is not only for uses, but also for slackbots, and old users. This causes a problem when we try interact with each user, and results in exceptions. A filtering criteria should be done to filter only the current users from unused users, deleted users, or slackbots.
  • ِA cronjob for generating a report and sending it on the admin, is not done in the moment. However, we need to see how the report should be generated, what type of diagrams should the report contain, etc.
  • How do we handle Vacations/Holidays and avoid spamming employees while they are sipping Pina Colada at the beach?
  • How do we handle external Slack users which maybe should not get a Mr. Moody message?

Hackdayz #18 – Video

Reading Time: < 1 minute

Our first Hackdayz was a blast! Mid of December 2018 we organized our first Hackdayz. A two day offsite teaming and workshop event for all our employees. The goal: Get something (project) done in 48 hours! We will blog about the details later on… but for now, here are some impressions of us from the Oberwaid in St. Gallen.