WORK FROM HOME

Reading Time: 5 minutes

OMG, CORONA or better COVID-19 or even better a HOME-OFFICE virus has become a topic of discussions all over the world for 3 months. Here are a few insights from me. 😊

Okay, we know as developers, we like a workplace to get in the tunnel. It’s up to everyone. 😉

About my person: I am a 38 years young web developer and also mainly a commuter. My daily journey takes about 75 minutes each way from door to door or to the customer. And this about 4-5 times a week by train before the pandemic. Okay, I have trained myself very well to hack into the keyboard from almost anywhere. Especially preferred from a lounger by the hotel pool 😎 Also on the train or on the plane, it works very well (mocking data is a bi..ch, but it works fine for me). However, the catch is that it eats up a lot of your energy during long trips, and I noticed this especially during the pandemic – that I have now more of it. 💪 😇

But then the VIRUS has come.



I was really surprised how fast they reacted in Switzerland from one point on. It was rather easy measures from the BAG (Federal Office of Public Health) at the beginning in February until they were intensified on the 16th. On this day, when the BAG met, it took less than an hour until we were no longer allowed to stay in our client’s office. The trains were very empty that day anyway. Some freelancer friends of mine have stayed at home for 2 weeks to protect themselves. Let the virus game begin. 😱

Questions arose:
How do we work now? What do the meetings look like?

The interesting thing was and is that some companies had to switch from NO-HomeWork philosophy to a 100% HomeWork culture very quickly. It must now simply work like this. Right?

Since we at N47 already work very well with ZOOM and Slack across 2 time zones, it wasn’t a particular challenge for me personally. In my private life, I am also a few hundred kilometres away from my family and often make video calls with them and my godchild. ❤️

But what about our clients? Can they switch as fast as we can?

But half as bad as I thought! Together we had everything under control very quickly 🤓 What was particularly rapid was the change in our meeting culture with the customers. In general, our meetings have become shorter and more effective as each participant is even more prepared for them. Working from home on the laptop or PC was also faster than onsite. There was no more chatting with colleagues during long lunch breaks or fetching coffee together. We are much deeper in the developer tunnel when coding and the tech calls between us are much more effective and focused than many meeting days used to be.

But now my self-assessment: I think I have also become much more productive and efficient during this time. More focus and even the time gap between bed and office – you know. 😋

Question: I am not the only one, am I? 😱
Who has such an assessment from himself, too?

I am not the only one 🤪 and sorry the graph is in German. 🥺
But either way here some facts from it. You can see that around 40% (the two green pies) have become much more or little more productive. Of course, there are households where it was the other way around. About 4% of the people mentioned that “productivity” had fallen sharply. I can well imagine this here if the childcare has to be clarified first and the kids should not necessarily be with their grandparents because of the virus. 😕

But I also have a little godchild who will surely see his uncle again soon. 😍

One more thing to mention:
Such a time is always very painful and it is very tragic for every single person who lost his life in this pandemic. Nevertheless, I also see in my actual environment that some people see this time as an opportunity and are not frightened to create something new. Some of them have spent the days with new business ideas or with personal self-experience in nature. There are always opportunities to see things differently and to emerge strengthened from fate. I am very proud of our project team. Especially of all the things we developed together in the time from February until the day of publication at the end of July.

But still, everything has a small flaw, that working together is missing – it makes us humans simply who we are. A community!

Keep healthy and happy. 😌

Making Swift networking code more readable

Reading Time: 3 minutes

With Swift 5 a new type got introduced:

@frozen public enum Result<Success, Failure> where Failure : Error {

    /// A success, storing a `Success` value.
    case success(Success)

    /// A failure, storing a `Failure` value.
    case failure(Failure)

The Result type is an enum consisting of 2 cases. The success and the failure case. Each of them can hold a generic value. The failure case, however, is limited to Types extending the Error type.

Not a big deal? Sure, but it’s the little things which add up and make a difference in the long run.

Lately, I was migrating from SwiftyJSON to native JSON parsing. Each network call was implemented in the following way:

func fetchSomething(completion: @escaping (SomeReturnValue?, SomeError?) -> Void) {
    NetworkingTool.request { (response) in
        guard response.isValid
            else { completion(nil, .somethingBad); return }
        do {
            let returnValue = try SomeReturnValue(response: response)
            completion(returnValue, nil)
        } catch {
            completion(nil, .scarry)
        }
    }
}

Looks okayish. Good. So let’s use it:

fetchSomething { (result, error) in
    guard error == nil
        else { handleError(error: error); return }
    doSomething(result: result)
}

Ok. But how to implement the doSomething? With an optional? This can’t be right, right? Force unwrap the result? And what about the error case? Force unwrap it? Oh and wait, what about the case where neither a result nor an error is returned? Is this even a thing? Ok, let me look up the implementation…

So a tiny bit of ambiguity paired with different people working on different parts of the network stack for different features can cause a real heterogeneous system. (Which does not imply that this is a bad system!)

If the company you’re working for is in favour of code ownership, you may not encounter this one. But so far no company I worked for was about code ownership. It’s usually your code is my code is our code, comrade. Period. There are simply too many trucks outside.

As long as code ownership isn’t a thing and you do not want to spend time on endless syntax and architectural discussions with little benefit or enforce a (new) best practice on all of your colleagues. Again. It comes really handy to have a built-in Result type which is reasonably unambiguous.

And since we all know that we’re spending more time reading code than writing, this saves us all valuable time.

Hackdayz 2019 fun and creativity

Reading Time: 3 minutes

By providing a simulated training environment, games offer developers the ability to manage and fix future complex problems and apply any theoretical framework directly in an entertaining and collaborative manner. These lines perfectly describe our last Hackdayz in Budapest.

In the beginning, I had no idea why the company would invest so much money to get us from three different countries to a fourth. But in the end, I realized the added value for the company and for us.

Play the game and learning will be fun – exceptionally! Indeed, that was the slogan. Our motto these days was: Develop hard, play harder: Having fun with colleagues increases creativity, efficiency and productivity. Imagine that you are surrounded by more than 30 developers who work in 7 different projects that need to be completed in 48 hours. You can imagine how such a virtual training environment would have a positive effect on your performance in the customer area. This way we can take the time pressure off our shoulders if we have to meet a deadline.

Apart from the future benefit at the customer level, my colleagues have shown a very good result for their projects. B. we now have such a nice app for checking in and out of offices instead of the touch ID, now our colleague Amit also has a trading bot app with which he made a profit of $ 10.57.

Needless to say, we refreshed ourselves from an escape game and an enchanting river tour in Budapest.

The bottom line, no matter what I have in the future, no matter how busy I am, I want to repeat such a nice experiment.

Culture exchange and its effect on productivity

Reading Time: 4 minutes

It all started some years ago, particularly in 2014, while I was in behavioural economics session. I heard a quote from my teacher, that I could not first believe. He said that “Culture eats strategy for the breakfast”. This phrase originated by Peter Drucker. Honestly, I did not care about it, and I thought it was just word of mouth, but after all of these years, I just figured out he was two plus two correct, and I totally agree with him. This is the absolute reality, and any company disconnecting culture from strategy are putting their success at significant risk. So you need to define your strategy and ensure that your culture supports it.

Due to globalization, people from various cultures and countries increasing conduct business with each other. Technology may be a temporary solution to enable people to easily connect with people around the world in a moment’s notice, but there are some cultural facts, which technology may not be able to solve.

Let us take our last travel to Macedonia as an example and check its results on tickets time-saving (expected time – time actually spent in the tickets) during a certain sprint and compare it with the time saving of the last sprint and considering the other variables constant not to have a decision about the real productive effect of culture exchange. For the past two sprints, the time saving was ranging between 1% to 1.5%, but currently, it exceeds 4%. This increase in efficiency reflects the rise of communication among workers in Switzerland, Germany, and Macedonia. Needless to say that there may be other factors affecting this increase in productivity, but as mentioned above, we are considering these factors as constant.

Apart from the productivity issue, I kept asking myself a question of why I was so touched by these Macedonian people and their country? Was it the typical smile that covered up the office, I didn’t know yet? The only way to find out is to start communicating with these people to learn more about their world, because their culture, including the way they behave and interact, is so different from ours.

Apart from the people, I really like Macedonian food, as a matter of fact, I gained 2 KG in this short visit. Now you can imagine how tasty the food was, thanks to our Macedonian colleagues for such fantastic hospitality.

It was really a great pleasure to meet friends from afar. In a nutshell, just to finish off our company has 3 different cultures inside it (Swiss, German and Macedonian), and they are all very different in certain aspects, but what our company is trying to do on a daily basis, it tries to take the best of all three and try to merge them into one culture. This is not about crossing the borders… it’s about extending them around us to create a global mindset.

Experiences of FrontendConnect 2019 conference Warsaw, Poland

Reading Time: 4 minutes

INTRODUCTION

Everybody has an open lifetime book full of blank pages, waiting to be filled. We write the story as we go, so back in November 2019, I have started the chapter ‘Frontend conferences’ by attending the FrontendConnect2019 in Warsaw, Poland, thanks to my company N47.

My motivation to choose this conference was the fact that I will gain new knowledge, and exchange practical ways of using frontend frameworks. Despite this, given the fact that there were great speakers from the IT world, I had no doubt choosing this tech event. Duration of the event was three days, one workshop day and two speaking conference days.

WHICH WORKSHOP DID I ATTEND TO?

As I was experienced with Vue.js, I wanted to upgrade the knowledge with Nuxt as their workshop description was “It may take it to the next level, thanks to its convention over configuration approach.” I got a certificate of attendance and completion of “My first Nuxt.js application” by the Vue.js Core Team member Darek ‘Gusto’ Wędrychowski. Coding under the eye of ‘Gusto’ and having a wonderful panorama view of Warsaw in my horizon, was definitely a day well spent.

WHICH PRESENTATION DID I ATTEND TO?

Rich agenda with scheduled talks, thoughts about which ones to choose, moreover similar questions were going through my mind. I attended the ones that caught my eye and were mostly within my interests.

At the beginning of each day, there was a high valued speaker opening the day with their talks. The first day I had to meet and listen to the very appreciated, Douglas Crockford with his JSON Saga.

The second day, there was Minko Gechev, a Google engineer working on the Angular framework with the talk ‘The Future of Front-End Frameworks’.

Some other topics that I attended to were about the state management in a world of hooks, some optimizations of the modern JavaScript applications and loading them instantly, as well as Angular and Vue.js 3.0 topics.

WHAT CAUGHT MY MIND?

Two of my favourite talks were ‘The JSON Saga’ – Douglas Crockford and ‘Vue 3.0 for Library Authors’ – Damian Dulisz.

The JSON Saga

Douglas was retelling the story about how he discovered JSON (JavaScript Object Notation). He explained how he did not invent, but found it in the early 2000s, named it and described its usefulness. JSON is a format for storing data and establishing communication between the servers. He explained how some companies complained and did not want to accept JSON because they were used to XML, and could not consider anything else, at that moment. He mentioned that some of the people denied its usage because of it not being a standard. So, what he did next was buying JSON.org, a website which after a few years spread among the users. After a while, JSON got the support of all languages. He announced that there will be no more changes to JSON because for him there is no feature more important than the stability of JSON.

Vue 3.0 for Library Authors

Getting more in details about this topic and Vue 3.0-alpha version will be covered in my next blog.

THE CULTURE AND ENVIRONMENT IN THE CONFERENCE

Frontend Connect was happening in the theatre of the Palace of Culture and Science in Warsaw, Poland where the history and modern world meet at the same time. It is one of the symbolic icons of Warsaw and the place of the city`s rebirth. There were people from all over the world, and the atmosphere was really friendly. Everybody was discussing the topics and shared their work ethics.

CONCLUSION

Visiting conferences is a really good way to meet new friendly people that you have a lot in common with, as well as having an opportunity to reach out to the speaker if you enjoyed the talk, and discuss what you found interesting. We should always strive for more experiences like this and face new challenges within modern technologies. With that being said, we need to nurture our idea to reach our full potential, in order to make a bigger impact in the IT world.

New to programming? 5 things you should pay more attention to

Reading Time: 5 minutes

You decided to start learning programming. You have started to learn programming concepts, you have decided which language you want to learn, and everything looks great.

Except it isn’t.

It’s frustrating; it’s boring; it’s painful. I am not here to make your life easy, but I hope that I will make it a little easier. Here are the 5 things that I believe will help you to become a better programmer.

Find the right source to learn from

I had a professor who said:

“It’s better to spend more time researching where to learn from, than actually learning from one source.”

And this is gold.

Let’s say that you have found a great book or a great video course that everyone is loving. You think that you will love it too, every word that you read/hear in the book/course you will understand, and after you finish it, you will become a master of the things you will learn (at least, I thought like that).

And maybe you will, but probably you won’t. Most (or let’s say, some) of the things you won’t understand, and it’s natural. You will try to read/watch again and again, but it’s not getting any clearer.

My advice is, try to find a great book/course, and start learning from, but use it more as a reference than learning source.

I am not suggesting to only go through the content. Try to understand the concept, but also research it (on Google). Look for more resources, more explanation, more examples. When you will understand the concept, save the source that helped you the most (bookmark the page), and search for examples that you can solve.

This way, it is easier to learn, because you are combining the explanations of different sources, and you are sticking with the most simple explanation that is working for you. Also, research is more interesting than reading\listening the same thing all over again.

Understand the base (minimum) necessary logic rather than implementation

This is important for a few reasons:

  • First, if you understand the logic, it will be easier to learn the implementation
  • Second, the implementation may change, but the base necessary logic won’t

At the very beginning, it will be difficult to differentiate between logic and implementation, and maybe you should try to learn and remember everything, but later try to understand and study just the minimum necessary required things.

I still google some basic things. But because I know what I have to do, I exactly know what to search for (only the implementation/syntax).

With this approach, you will spend your time wisely, and you will be able to learn more important things.

To learn your first programming language is very hard, but that’s because you have to learn programming concepts (the logic). After you learn that, you can learn any language (the implementation) you want, in a matter of weeks.

Code, code, code…

Learning programming is like learning how to drive, except it’s safer (at least, physically). You can read, you can learn, but when you sit down and start to drive, you’ll realize that you haven’t learned anything.

That’s why you should focus on coding. When you study something, try to learn the minimum, so you can start to code, and then code as you learn. There is a great answer on Quora, that mentions 3 rules that you should follow when coding.

  • Write at least one line of code per day
  • First, write code, then refactor
  • No distractions when coding

Here, you can check the answer, that has reasoning for these rules. Maybe you can forget the second rule, but the other 2 are very important.

Attitude

I had to mention attitude. It is a hard path, especially at the beginning, so the right attitude is required. Hard work, believing in yourself, learning to say YES to everything is needed. More precisely, you say NO only when you are 100% sure that it isn’t possible to do. In any other case, you say YES, and you investigate, you try different approaches, you ask for help if it is necessary, you do everything you can. A time will come when you will need to learn to say NO, but first, you have to learn to say YES.

Rest

Of course, don’t forget to rest. You have to rest from the hard work you have done. Most of the stupid things I have done were when I was too tired. When you are tired, you don’t think rationally. You just want to finish your task, no matter. That’s when the biggest mistakes come. You won’t learn anything, you won’t do anything well, you are just wasting your time and nerves.

WeAreDevelopers 2019 Berlin – The Good and the Bad parts

Reading Time: 7 minutes

You can find my expectations here. And here are my actual impressions:

Arrival

The conference took place on the 6th and 7th of June at the CityCube in Berlin. The CityCube is an exhibition site which is located roughly 10km from Berlin centre. My hotel was in Berlin-Charlottenburg, which is a nice area located just 2 stations from the exhibition site.

I arrived late on the 5th of June. Having not really planned my attendance I wanted to check the usual suspects (eg the web page) for more information. But wait. There is an app for that right? And there was. After downloading the app from the Appstore, I quickly set up an account and was ready to take a look. Overall the app was solid (with some bugs or undesired features; later more on that). I found the activity stream pretty useful. The activity stream is like a chatroom where attendees can exchange thoughts. After reading a little bit, I was able to gather most of the important info and got a little bit hyped by the people in the room. There was also an agenda section in the app which I could browse either by date and time or speakers. Each talk or workshop had a brief description. Each talk could also be added to a favourites section which was nice. In that way, I gathered rather quick my favourites and after going through them again by time and eliminating the less interesting ones I was ready for the first day.

Pro-Tip 1: A calendar or timeline section in the app where one could view one’s favourites would be nice. In that way, intersecting talks could be easily spotted.

Day 1

I arrived a little bit early at the venue because in the chatroom there were also some concerns about long queues. The weather was really nice, so I was not really worried to wait a little bit. But the fear of waiting for hours was not justified. There was enough stuff to take care of the attendees. I waited maybe 10 minutes. So all good.

Once I arrived at the main stage I also realized that there was more than enough space to accommodate everyone. With my schedule it went from here like this (Some of the talks I attended):

Welcome by WeAreDevelopers

The usual greetings and organizational stuff. It didn’t take so long so it was okayish. But already here I realized that the sound was really bad. Sitting somewhat in the middle you would get an echo. And that was without any other talks being held in parallel.

Pro-Tip 2: Please test the venues sound properties beforehand and adjust accordingly.

Where Machine Intelligence Ends and Human Creativity Begins – Garry Kasparov

As a starter, this talk was really good. Garry Kasparov is really a charismatic person. The main claim of Garry Kasparov is that eventually a huge amount of (non-creative) work will be replaced by AI. And there is nothing that we can do about it. His conclusion was that it doesn’t have to be a bad thing. We will have more time to do more important stuff.

Business vs Agile – Crimes against development teams continuously committed by management – Gerta Sheganaku

This one I chose based on the title. I was hoping for some entertaining session, actually against management (Sorry I’m a dev). The thing which I’ve got from the talk is that agile works best with top devs in an organization. For this group productivity and “happiness” increases. With diminishing skill set of the devs involved the gains of agile decreases and are even counterproductive in case of devs with decreasing skill set (I do not know how the skill set of devs was measured here and the productivity output either; it’s a company offering, so they have probably some empirical data on this). The fun story was that one consulted company consulted by this company fired almost all stuff based to rehire again for agile.

Lunch

Lunch was an epic disaster. Honestly, I thought lunch was included in the ticket price. It was not. There were around 5 food trucks with different types of food. So this was ok. The problem was that the capacity was way too low. You had to wait like 1 hour in full shining sun to get your food. After waiting for about 15 mins. I decided to go somewhere else to get some food. Doing so I discovered that the part of the CityCube the conference was held in was about 15 min away from the nearest restaurants. Ok, that’s another minus. (PS There was a massive rant about this in the app. Even some invited companies jumped in to deliver some food and free water. Shame, shame, shame…)

Pro-Tip 3: You know how many people will attend. Throughput of the trucks should also be known. Calculate with the worst case.

The Quake Postmortem: The End of the Original Id – John Romero

Yes, this John Romero. The talk was about people, growth, success and the price paid. Romero pictured a small company which was overwhelmed by its “astonishing” success. In the beginning, there is a passion but with success there comes the appetite for larger games and one have to scale. In the end, it’s not about fun anymore. Delivering is what counts. This reflects on the team.

Flutter – Google’s latest innovation for mobile, web, and desktop apps

It was nice. But we have SwiftUI now. Thank you.

Pro-Tip 4: When designing the app, please think about people on a mobile data plan. Scale down pictures posted in the chat (I had like 400MB data usage by the end of the day). 

Day 2

Once in my hotel room I quickly set up my schedule for the last day (Here some of it):

Thoughts on the Future of Programmable Money – Andreas M. Antonopoulos

This talk was epic. Andreas drew a coherent picture of what is wrong with the mindset of closed ecosystems. Starting with castle walls and getting to modern times firewalls was a nice analogy to draw. Eventually we “outgrew” castle walls/castles. Will we be able to break out of closed systems? Andreas has no doubt about it.

25 Years of PHP – Rasmus Lerdorf

I’m not a PHP dev but I wanted to hear the inventor of PHP talk about this un-opinionated language. So Mr Lerdorf is a nice, near to the ground guy. He explained very well that PHP was developed out of necessity. The desire to have a “simple layer” over CGI/C to write programs faster and more readable.

2nd day the lunch situation didn’t really change. There were water and free beer though.

Conclusion

I’m pretty undecided if I would visit this conference again. The speakers were really great but the organisation was seriously lacking.

N47 Meetup #19 in Macedonia

Reading Time: < 1 minute

In the beginning of July we organised our first N47 Meetup in Macedonia. We spent 3 full days together eating, drinking and exploring (especially Lake Ohrid 🏊‍♂️☀️) this lovely country! Besides that, we also had to celebrate our newly built office in the city center of Skopje 🎉🥳 with a nice office warming party!

Too much talent effect: Coordination vs Cooperation and the curious case of Miami Heat

Reading Time: 5 minutes

As a worker of an IT company, I took a moment of thinking and asked myself, why no company, no matter what budget it has, hires only senior employees or in our field only senior developers. This is a question, which I kept asking myself for days and days. But, a couple of weeks ago, I may have found an answer in one book Friends & Foe, when to cooperate, when to compete and how to succeed in both which was written by Adam Galinsky and Maurice Schweitzer. They found that too much talent in the company creates a reverse correlation with the efficiency of the team. But, to understand this explanation we need to see an example outside of our working field.

As a big Real Madrid fan, I took a moment of thinking after a disaster season of Real Madrid, I compared the results of 3 different teams of Real Madrid. When the team was an all-star team, they have not achieved trophies in comparison with the value of players the team has e.g. Zidane, Figo, Owen, and Ronaldo.

While the team was a one-star team led by C. Ronaldo, they achieved more trophies. And now without stars, the team achieved a disastrous season.

In 2014, a research was made by 5 researchers, one of them is Adam Galinsky, about association for psychological science with a title too much talent effect. Studying the effect of a number of talented players and team performance and results. 37% of the sample size indicated that the team will perform better when the talented players are more. But, by looking at the results of the team, there is a difference. By looking at the teams result in the World Cup 2014, it was found that there is a positive direct relationship between team results and talents in the team until a certain point. Once this point is reached there is a negative direct relationship between talents and team results. This study was not just on football teams, it is extended to basketball teams, e.g. Miami Heat, they got in 2011 Chris Bosh and Lebron James, and they have already Dwyane Wade, to make a Dream team.

But they lost the final in the same year. In the next year, Wade and Bosh got injured and they won the cup in that year and Lebron James became the superstar inside the team and the study stated that the main reason of this win was the decrease of the talents in the team and this talent isolation was the main reason of the win.

With this study we can conclude that by having no or low talents, the team will lose and by increasing the talents too much, the team will also lose. As by increasing talents, coordination decreases and competition increases. And now let us apply the same case to the companies. You may ask me why by increasing talents, the employees have more cooperation, the answer is included in the book Friends and Foe. The book is based on scarce resources e.g. if you have a chance in working to improve your position, that means that there is no opportunity for other teammates to improve their positions. So by increasing talents, competition increases and coordination decreases. Teammates become opponents.

I hear some people telling me that MSN in Barcelona succeeded in 2015 and in NBA we see all team stars e.g. Warriors in 2018-2017 that include Klay Thompson, Durant and Green. So what we can understand that there are some other reasons that affect team performance. And may cause too much talent not there in all cases. But these reasons, the study did not care about because it is hard to be measured via numbers. So we still have a mystery in how it is gonna affect the performance of the companies.

So, in order to avoid this mystery, our company N47 started not only to hire qualified workers but also to apply internal development and education for them, by sending them to different conferences to different countries. e.g. this year 2019 our colleagues are going to 13 different countries to attend different conferences. This internal development will increase the efficiency of the team along with increasing the cooperation among them via spoiling what the employee has learned in the conference to his colleagues.

In a nutshell: It is not just the personal characteristics which define he can cooperate or compete with his colleagues, it is also his company strategy.

Why you should join our company and why NOT

Reading Time: 5 minutes

It is sooner or later in life to think about a profession 💼 and about the company in which you want to practice it. Either you’re out of education, you’ve just finished your studies 🎓 or you’re already working, but you need a new challenge.

In our industry -IT services 💾 – where software/web developers play the biggest role, there are, according to several studies, the key features for developers to enter a company.

Based on Stackoverflow’s Developer Survey in 2016, we picked the most important expectations of the developers for their company and made them a guide. We have divided these into 5 levels.

1st Basic requirements

  • Salary 💶: Every developer knows his value in the market, so we value him and give him what he deserves.
  • Respect: Dealing with each other in the company, as well as with customers on site are the nuts and bolts for us and are treated with the highest priority. Unfortunately, there are still companies in the 21st century where bullying plays a big role.
  • Competencies: Our employees are encouraged to expand their know-how, which plays the most important role in IT. We live in the technology age, in which permanently new programming languages, frameworks, etc. come on the market. There is no time to lay on the lazy skin.
  • Social bonding: We are a team and that goes beyond all locations. It is very important to pursue common goals. In this case, you will not be treated alone, but in the team and no matter which location you are involved with.
  • Support: Every employee is considered as a family member, so that operational issues are discussed and addressed in retrospectives, in addition, private matters also find an open ear. You can just click on the management to get support for private affairs.

2nd Lunar effect 🌚

  • Operating System: We do not tell anyone what OS to work with. Everyone should be able to decide for themselves with which they feel comfortable.
  • Computer specification 💻: It is very important to have fast computers as a developer. One should use his time effectively and not straining with slow devices his nerves.
  • Software 📀: Additional software, e.g. IntelliJ, WebStorm, etc. needed is of course provided by the company.
  • Noise Level 📢: Many employees complain about excessive noise levels. To spare our employees, our premises are in fairly quiet locations.
  • Workplace: Of course, ergonomic chairs, monitors, keyboards, etc. are provided.

3rd Main motivators

  • “Tough Nuts”: With us, you have to face up to new challenges, so that work does not become routine and thus boring.
  • Further education: In order to keep up to date his know-how, we offer each teammate the possibility to attend trainings, conferences, workshops and the like. Through our blog, you can see in which different countries and conferences we have been.
  • Recognition: You want to be praised for your work and you get that praise from us.
  • Interesting projects: We work for different clients and projects so that a lot of variety is required. Boredom, routine are foreign words for our working world.
  • Confidence: Confidence in employees and leaders is a lost character trait. Most companies are only concerned with competition among employees. This has no chance in our company. We trust each other and treat everything confidentially what concerns our employees.

4th Creators

  • Relax spots: Either take a break in front of the Playstation 🎮, Nintendo or use the couch for a nap 💤.
  • Foosball table : In our office, there is a foosball table for professionals. Of course, beginners are allowed to play as well.
  • Fitness: A small room with fitness equipment, even a treadmill is available for everyone. It is also allowed to enter the office 7/24 🕖.
  • Food: Tasty coffee ☕, soft drinks 🥤, sweets 🍫, water 🚰 and fruits 🍇🍌🍉 are always free for the team. Enjoy it.

5th Unconventional

  • Team events 🥳: At least twice a year, all employees of the 3 locations 🇩🇪🇲🇰🇨🇭 come together. We work 👨🏻‍💻👩🏻‍💻, dine 🥘 and have fun 🎉 together. The upcoming event is in Macedonia 🇲🇰 in July, the previous one was in Switzerland 🇨🇭, let’s see where the next one will be. In addition, events take place at the 3 locations, for the specific staff onsite. Of course, the ticket 🛩, accommodation costs 🏩 and meals are paid 💰 by the company.
  • Lunch 🍴: Every 14 days we choose one restaurant to have lunch together. Of course, this is also paid 🤑 by the company.

After writing so many positive points ➕ about our company it’s time to list the negative points ➖…

I really tried to find some, but I did not find anything!

Impressions from UIKonf Berlin 2019

Reading Time: 5 minutes

With little doubts in the beginning, big uncertainty and the questions in my head “Is this the right conference?”, “Should I’ve chosen another conference?”… But it happened and I’m satisfied at the end of the day with my choice. Some of my colleagues were surprised of my choice (Berlin), but yes, I can definetly say “It was not a mistake”.

So how was it?

Day 1: Social events

I’ve chosen to be with the walking tour group. There were possibilities to be in different groups like Bicycle group, Boat trip group… But this was my choice. We were split into two groups by 12 people and a local tour guide. We visited different spots, like the Memorial to the Murdered Jews of Europe, the popular Checkpoint Charlie, the Berlin French Cathedral, the Brandenburg Gate, etc…

The day finished in a big restaurant where we received our conference badges and promo materials of the conference. It was a very relaxed atmosphere and new chance to meet and introduce yourself to new developers. Some of the participants were professionally oriented and immediately started to talk about iOS topics. Some were on their way to the bar ordering german beers and the popular “wursts”. There also was a small group that played some kind of table tennis game. I’ve attended in all of these social activities.

Day 2: Opening day of the UIKonf 2019

After the opening words and the short introduction, the conference officially started. The first day consisted of 9 presentations. The strongest impression of the day was the presentation of Ellie Shin about Mock Generator for Swift and how they at Uber solved the problem of mocking. They optimized the app to build the mocks in around 10 seconds instead of the previous time needed; it was more than 1 hour.

One of the best presentations of the day was from the lovely Julietta Yaunches. She talked about consistency principles in programming, how to keep the coding style consistent and not make big changes every day, how to decide when to introduce something new in your code, etc.

It were good presentations from Kristina Fox about Internationalization of the iOS applications, and the opening presentation from Kaya Tomas about Accessibility and Inclusion in the apps. A topic I wasn’t aware before this conference.

I also have to mention the presentation of Glenna Buford about how to organize the network stack of your iOS application.

The day finished with a social event named Ambassador’s dinner. The local participants of the conference had the task to show the other participants (foreigners, including me) the typical restaurants and bars in Berlin. I was in a group that visited Hofbrau Munich Restaurant in Berlin. We had some good discussions with colleagues from all over the World. Throughout the evening we enojyed some tasty good german beer and pork meat.

Day 3: 2nd day of UIKonf 2019

The second day had 9 new presentations and 9 new speakers.

The best of the day in my opinion was the presentation of Kate Castellano. She talked about applications with backend driven UI.

Among the better presentations was of Neha Kulkarni about Advanced Colors in Swift.

I will also mention Erica Sadun. She talked about Swift Strings. In her presentation she showed best practices about using strings in Swift, interpolation of strings, etc.

Also there was a choice to visit 2 workshops on MyTaxi boat stage near the conference hall. I visited this stage and it was about the management process, recruiting and organizing the teams in MyTaxi company. The 2nd presentation was about Tips and Tricks they are using for testing their apps.

The day finished with a big party in a local restaurant near the river Spree. It was another good party. A lot of talks with colleagues, a lot of drinks, good atmosphere. All finished at 1:00 am.

Recap

I can freely say it was a good conference, perfectly organized… I didn’t regret in any moment that I’ve chosen this one in a bunch of other conferences. First of all, I’ve learned a lot of new things, I’ve heard about topics I wasn’t aware before, I saw how it would be to talk infront of 500 people.

Maybe in these events the most important thing is the social component. New faces, positive people, talks, sharing experiences, enlarge your professional contact list.

All 18 speakers

I’m not sure what was the intention of the organizers to have only women speakers. 18 speakers – 18 women. It was not explained, but we cannot complain because the speakers dealt with the challenge perfectly.

Worth the money, worth spending my time at UIKonf in Berlin. I have a feeling I will visit it for sure again in the future.

N47 at the Career Days 2019

Reading Time: 4 minutes

Success is no accident. It is hard work, perseverance, learning, studying, sacrifice and most of all, love of what you are doing or learning to do.

Edson Arantes do Nascimento (Pele)

Deeply honoured by the pleasant and heartfelt invitation of our esteemed colleagues from the South East European University in Tetovo, we are pleased to take part in their Career Day in 2019.

But the biggest honour is the point and the moment when you are representing your company at the auditorium and the audience, especially more weight adds in this when you are doing that in front of the students, the future and potential candidates for employment and key factor of making the progress in this segment of our working process.

At the entrance to the University pleasant surprise. Although the day was looked like autumn time, clouds, rain, much less like it was in autumn in late October, but it’s April.

Watch Out Running GIF - Find & Share on GIPHY

But again it was not a problem for the huge number of visitors to the event. The huge parking space in front of the central university building, packed to gather all the guests and participants of the event, it was completely full to the max.

The hall where the event was held, crowded, visitors, presenters, students and guests, photographers, cameras and even tv crews.

Wonderful atmosphere, pleasant and positive experiences, wonderful discussions, presentations to the guests and interested students.

The greatest pleasure is, of course, the moment and honour when you represent your company in front of the outside world and you are familiar with the scope of activities you are dealing with, work and spend your time, but also the idea, the plan and the strategy how it is developed and where it is targeted to act the company in the coming period and in the following years.

Even greater satisfaction is the interest of young students who want and seek practice, their knowledge and the first steps in the software development, programming and digitization segments.

“The purpose of organization of this Fair is to show that the University is very interested to hear the voice and demands of companies. We are very pleased that our academic product is very important for companies and this is evidenced by the massive participation of companies in this Fair. The Career Centre data show that in terms of unemployment of 22% in the state level, over 60% our newly graduated students are employed” – said the Rector of the University in his speech at the opening of the Day.

The Fair was attended by over 80 well-known companies from the country and generally belong to the private sector, but the public sector was present as well, where many educational institutions and non-governmental organizations participated.

Lots of positive talks, good conversations with students, a lot of them wants to be part of our team, internship or later to be employed and regular part of the crew.

The rain outside, but warm sun inside, pleasant, good atmosphere, warm talks and positive attitude.

It’s really nice to be part of this Day, we all hope that the number of this kind of visits till the end of this year and next year will x10 and also the number of students we meet x100.

Our goal and representation of our company here is done and we are fully satisfied!

N47 Playground: Be up-to-date with the latest technologies and don’t waste resources

Reading Time: 4 minutes

Our company is established from techies 👨🏼‍💻 for techies 👩🏼‍💻 and therefore we love ♥️ technology. This passion brings us always forward 🏃🏿‍♂️to learn the latest technologies and keeps us hungry for solving also our own issues with some cool 😎 and fun-making technologies 🤩.

To be an attractive technology focussed employer

A simple agency lifestyle with working on preselected technologies from clients for a long period can (and will) be boring 😕 for every technology enthusiast. 🧝‍♂️ To keep everybody on a high level of motivation 💪🏻, we think a company has to develop his own spirit and in our case, these are solutions with the latest frameworks, technologies, languages, gadgets,…

How not to waste time and money?

But in agency life is hard to reserve some resources 💰 just for a playground 🎮 or disposable products. Therefore you will need a setup, where you transform the need for discovering 🔍 new areas and costs 💰 into an intelligent investigation 🤑. By this frame, we decided, that every outcome of our playground should result as a standalone solution either for our company or as a resealable product. By doing this, our new unit LABS 🧪 and researchers 👩🏼‍🔬👨🏻‍🔬 are born.

How our unit LABS are working?

First steps into the new area!

In LABS 🧪 we get in the first touch with latest technologies and for sure we will face with all the issues ☄️, problems 👮🏻‍♂️, bugs 🐞, challenges 👨🏼‍🎤 and we learn a lot about the bad sides of new technologies. If we overcome all this problems and troubles 🧗🏿‍♂️, we move this new technology from our #playground to #weStandFor, which means that we are that good in that new technology and faced and solved all issues, that can occur. Now we are ready and stand for the latest technologies! 🏆🥇
Thus, the outcome of an e.g. 3 months focus in LABS is a great knowledge about a brand new technology and a gorgeous new product or solution. I think we can be proud of both! 👏🏻👏🏻

The movement of technology from #playground to #weStandFor. Every stack has his own topic leader, so don’t miss changes and updates.

To manage this pipeline from playground 🎮 to the output ✅ we set up a backlog with great projects. Everybody in our company is free to add some projects to our backlog and come up with ideas 💡. In this accelerator program, we decide the sustainability and the potential of this suggested project 📊 and evaluate the sexiness of the technologies 🙀. If we all agree with this internal pitch we plan and start having work and fun! 🥳

What does this mean for our partners and clients?

With our LABS unit, we can offer you an overview and solutions by using the latest technologies 👩🏼‍💻, which can give you more security 🔐, to be an early adaptor 🥇 on your specific market or even save money 💵!

What does this mean for our techies and applicants?

At N47 you have great development possibilities 📈 and learn always new technologies. You are not stuck into a technology for years 🤷🏼‍♂️, that you miss new things. In our LABS unit and also with our Hackdayz you have the opportunity to develop awesome products and contribute a great environment for yourself and your teammates. Join us today in Zurich 🇨🇭, Konstanz 🇩🇪 or Skopje 🇲🇰.

N47 a young company with great potential for developers

Reading Time: 3 minutes

Yes, this is exactly what you think from reading the title, in the next few paragraphs I am going to talk a lot about N47, not because I am an employee there and I have to, but because I am in love with the company I chose.

It all started when I decided that working in a big company doesn’t give me the joy that I want out of my professional life. If you spend 8 hours/day at work, it makes sense to find somewhere where you’ll feel like home, where you can develop & improve yourself professionally and personally ;).

I remember the day that I came to N47 for an interview and the first thing I heard in that interview was,

We are here to help you be the best & achieve your goals.

Fatih Korkmaz

I was like REALLY, that day I knew that this is the one for me. N47 as a company doesn’t search for geniuses, we search for team players because even if you don’t have the best players in the world, you can be the best as a team, and these guys are living proof of that:

What defines a team player?

DEMONSTRATES RELIABILITY

You can count on him/her to get the job done and deliver good performance.

COMMUNICATES CONSTRUCTIVELY

A team player speaks up and expresses his/her thoughts and ideas clearly, directly, honestly, and with respect for others and for the work of the team.

LISTENS ACTIVELY

Good listeners are essential for teams to function effectively.

SHARES OPENLY AND WILLINGLY

Team players are willing to share information, knowledge, and experience. They take the initiative to keep other team members informed.

EXHIBITS FLEXIBILITY

Good team players roll with the punches; they adapt to ever-changing situations.

Googliness

Now that we know what a team player is, let’s have a look at the company, I always call N47 Mini Google, because we have the Googliness.

Googliness means being focused, and striking a balance between short-term and long-term objectives. Being proactive. Google’s Code of Conduct says “if something is broken, fix it.” But being proactive also means anticipating moves ahead of time so to take action preemptively.

We can all agree that nobody can work for 8 hours straight, everyone needs a pause, for this, we have a lot to offer from space with PlayStation, Nintendo, foosball table, snacks, drinks, small gym…

More we are also open 24/7, you can come here on weekends study, chill on the terrace, grill…

Now that we talked about what defines a team player? how does N47 look like? And what we are searching for? What are you waiting for?

Contact us as fast as possible and get yourself a place in our train to achieve greatness.

Entrepreneurship: in touch with Saygin Yalcin.

Reading Time: 2 minutes

Who is Saygin Yalcin?

Saygin Yalcin was born in simple conditions in Bremen 🇩🇪 and after his studies, he moved to Dubai 🇦🇪 with a single backpack 🎒 but with a goal a vision to become a successful entrepreneur. 🤔 And he reached his goal! 💪🏻With sellanycar.com and a big deal (souq.com) he opened the door to become a successful entrepreneur. 🤵🏼 Now he is awarded as the smartest and most influential man in UAE and still going on with his success. Even in social media, he became a brand and influencer.

What do we get out of the conference?

In 2019 we established a new unit in our company called LABS. 🧪 Because as a digital agency 💻 we ♥️ technology and we want to use our Labs as a playground 🤼‍♂️ for upcoming technologies and a platform for developing new products. We are not looking just for business solutions also for mainstream solutions. With the talk of Saygin, we want to check-out his thoughts, this though roadmap 🛣 and how he reached the top and motivate our employees to bring also to our company the next big thing.

What are our expectations?

Our expectation is to have also the view outside the daily B2B. To motivate our teammates to go for the next thing and to show that as a digital agency we are ready to change the world. To make simple manual processes automized and to have a bigger vision than just implementing tickets. Technologies are a tool to create awesome solutions and we want to create awesome solutions for businesses but also for people.

Travel Details:

When: 📅 Sa. 11. May 2019 19:00 – 23:00 MESZ
Where: 🏢 Hugenottenhalle, 63263 Neu-Isenburg
Travel: Drive to Frankfurt by car 🚗 – not a big deal
Price: 99 EUR 💵 per ticket

Want to meet there? Just contact us.

My expectations from UIKonf Berlin 2019

Reading Time: 3 minutes

After more than 6 years this will be my first conference. This time as a guest. I remember well the moments of my presentation in Baku, Azerbaijan in 2013. Stressful experience, a lot of sweat, with my suit that was one number larger than it should be. That was 2013 and the topics were economics and management. Now I’m an experienced iOS developer and going to Berlin for a conference that should give me new ideas for personal development, but also to give me directions how to think for the future challenges.

Conference generalities

The venue of the UIKonf is RADIALSYSTEM V in Berlin.

From 26-29 May 2019 in Berlin, some serious iOS developers will come from big companies that will present their experiences in the iOS World.

The motto of the conference is simple:

“UIKonf is an independent conference for serious iOS developers”

Speakers

For this conference, the organizers decided to have only female speakers. All will come from big companies and with big experiences. We have female iOS developers who work or worked for Uber, Slack, LinkedIn…

Part of the speakers

Costs

The travel expenses are the cheapest for this conference viewing from my perspective. Fortunately, we Macedonians have direct flight connection to Berlin. The cost is around 150€.

The ticket to attend the conference costs 539€.

They are also offering free tickets to members of underrepresented groups in tech (this includes disabled people and generally people who are unable to attend without financial assistance).

The accommodation is something that is not completed from my side. The hotels near the conference building costs around 100€ per day.

Schedule

This conference has an excellent organization.

The first day 26 May is the day for social meetings, time for visiting places in Berlin, acknowledge the other attendants and will finish with a kick-off party where the people will take their badges.

Next two days 27 and 28 May are the days when the speakers will expose their presentations. 30 minutes per presentation with question and answers part of the end of each presentation.

29 May is the last day. This is unofficial part of the conference and the people can meet with the sponsors, dissect code problems in lab sessions with experienced experts, signup for a workshop or just hang out and code with new friends.

Expectations

I have big expectations. The names of the speakers, their experience, the companies they worked for are guarantees for something big and something good.

I’m going by myself and expect to meet new people, make new friendships, share experiences.

Berlin as a city is something new for me. I had heard very good things of Berlin. Good parties, restaurants, parks, two different sides of the city. I have friends that live/lived there.

With the correct size of my suit this time – it should be a good experience in my life.

Project story: Automate AEM deployments for a Swiss bank

Reading Time: 5 minutes

A large bank in St. Gallen, Switzerland had the need to improve the AEM deployment process for its various staging environments. It was one of my first projects for N47 and was settled to run for 6 months starting in October 2018. The following blog gives a short project overview.

Getting started

Starting to work for a new customer is always exciting to me because every company and team has a unique mindset and culture. Usually, it takes a few days or weeks to get to know the new teammates. But this time it was completely different, as I already worked with each of the three team members and their supervisor together in one before my previous company. It was nice to meet old colleagues and we had a very good start.

Deployment process before automation.
Source: www.dreamstime.com

Technology Stack

The technology stack was already defined and the servers ordered. But it took a while until the infrastructure was ready and for the time being, I worked on my local machine.

Jenkins was set as the central tool for build orchestration, deployments, and various DevOps tasks. All the pipeline source code is stored in GitLab and the main business application we’re dealing with is Adobe Experience Manager (AEM).

A relatively large amount of work was needed for the initial setup like enabling connectivity to the relevant systems, basic shared library, and getting to know the internal processes. Read more about Jenkins behind a corporate proxy as an example for this setup: https://www.north-47.com/knowledge-base/update-jenkins-plugins-behind-a-corporate-proxy/

Implemented Pipelines

The bank has two different AEM projects: one for the corporate website and another for their intranet. They require a slightly different deployment pipeline and both have three environments: development, staging, and production.

Besides the deployment pipelines, there are pipelines for copying content from the production to the development environment and restoring a complete production environment into the staging environment in order to have an exact copy and a good baseline for approvals.

Many auxiliary jobs like start/stop AEM + Dispatcher, checking the health of instances, fetch last backup time, and execute Groovy scripts are used in the deployment pipelines as well in an independent executable job.

An example of a Jenkins Pipeline
Source: https://jenkins.io
An example of a Gitlab Pipeline
Source: https://docs.gitlab.com/ee/ci/pipelines.html

Advantages of automation

The automation of the various processes brought faster deployments. But more important transparency and centralized logs about what exactly happened and higher quality as repetitive tasks are always executed.

One example is the backup check, which needed coordination and forced to long waiting times. Now an API is used and the automation pipeline has instant feedback about the last backup time and shows a note if a backup is missing. Before, such a step might have been skipped in order to save some time.

With each built pipeline, some more little and reusable helpers were introduced which made it then again easier and faster to create the next pipelines. Think of a construction kit.

Deployment process with automation.
Source: www.wikimedia.org

Project finished ➞ client is very happy

After several months of close collaboration, more and more pipelines have been implemented and are used to support the crucial deployment processes countless times.

I enjoyed building-up the AEM automation and believe it’s a very good aid for higher quality and further extensions.

After a warm welcome and six months of working together, it was time to say good-bye as the project had a fixed time span. The client’s team was very kind and gave me even some great presents to remember the exciting time in St. Gallen.

Present from client: Swiss beer, chocolate, bratwurst and biber

Beyond the evolution of agility

Reading Time: 9 minutes

Hey you! In the following article, I try to dare a hypothetical outlook on future constellations of people in the context of entrepreneurial and individual interests.

Currently, especially in the IT sector, the concept of agility and associated methods and artefacts should be widely known, recognized and used. But the question arises for me, after the “naturally even better” solution from the point of view of all participants. Because do we not strive for a world in which we should at least not carry any organizationally open questions with us? Obviously, I do it. In short, you could also speak of a supposed cost reduction and efficiency increase in the entrepreneurial sense. Stop, that was maybe too fast.🤔
Before we venture into the world of free pluralism, it is worth describing the title of the blog to better understand the approach of the coming end of the mentioned agility.

Evolution describes in a biological sense the phylogenetic evolution from lower to higher forms of the living. No matter what exactly the living thing means for us today. However, you can use this progressive development of certain contexts insofar as they represent the nature of our social behaviour or cooperation.
If we now move into the realm of the world of work, here too we can see an evolution in the interaction between the employee and the entrepreneur. Historically, and also in terms of civilization, one can point out the following timeline: of a hunter making his spear in the sense of the struggle for survival for himself and his clan and passing on this skill to the next generation (as a transfer of knowledge or covert order to continue this); about the very first entrepreneurial forms in an ambivalent employment relationship, to actual profit-making production and proven profit-seeking.

Taking into account the number of people and the needs such as food, some can detect a strong delineation of the opportune sides over time. Looking at our modern development, we came from a partly dictatorial working world to a moderately structured hierarchy, into a flimsy open working culture of cooperation. The move, from the largely totalitarian work systems to a self-determining working method, was logical and not surprisingly the first to be found in areas that were difficult to understand and predictable and still are.
The IT 🙄 and development departments were among the first to use well-known industrial artefacts like Kanban in their favour. Over the past few years, this has become a discipline of its own, which in turn has created a responsibility or even a hierarchy. Someone could say, considering the commonly used agile model that necessarily, with control and control mechanisms (Scrum Master, Plannings, Charts, etc.), the claim of self-determination was forced back into a corset.
Everything now has flown over, you can perhaps consider a “return” of things. Somehow, the conflict between the nature of life and the artificial world seems to lead back to the origin. But humanity has and will resist it again and again in this age of the earth.

I do not want to talk about facts, but at least in the area of IT, a closed transition to this form of “things” is almost inevitable. Similarly, there is almost a certain social compulsion to join this. This change can be seen simply in the number of companies that already use agile methods in subareas or their organization. And there are more and more.

But the question of whether it is the absolutely definitive way is only discussed obscure. To publicly confront oneself with a potentially critical attitude is now considered unfashionable and unattractive. It is now a domain of the younger culture to want to deliver themselves to a self-reflective surface. Sometimes one tries to get rid of the already mentioned corset again. Interdisciplinary is the keyword here. But is not that also an escape forward or even back to the past? There has always been a claim to position employees self-sufficiently in the right place in the company. Incidentally, here is a small digression to the “Peter Principle” quite amusing. But I want to concentrate more on the group dynamic aspect.

The dilemma.
As with any innovation, its manifestation and burgeoning acceptance, so to speak creates a generational conflict. If the current protagonists of this culture are, almost without exception, supporters and optimizers of this agile system, there will be a radical discourse for a new kind of corporate structure in the future as well. When? Soon! Relative to our desire to make our participation in the entrepreneurial activity completely uniform and decisive. Because that’s where single individuals try to take the majority to lived self-determination. Then at least e.g. almost every meeting would have a really measurable result. 🤭

Does that automatically include a forced change? I think you have to use the needs and their changing meaning for humans. After all, it was all about survival at first, but in the future, it’s all about not drowning in the mush of the growing mass of potential workers. Prince Lev Nikolayevich Myshkin could certainly be used as a paradigm for a playful and beneficial naivety and, so to speak, a relaxed attitude to life, but so much smart serenity is generally unlikely to be expected. And you and I are full of aspiring ambitions!

Accordingly, the need for a seamless lifestyle that unites both the private and the business. This now applies tangible and more manageable for us. In order to achieve this, thinking and acting must be equated strategically and tactically with an entrepreneur. The modulation of these two life parallels requires a revolutionary act. The employee of today already carries the seed in itself. Not only the claim to shape his working environment according to his needs becomes clearer, no, also the desire for the determinability of his own work, at every convenient time. Hierarchies of today will disappear (the so-called flat hierarchies seem to serve me rather as bread and circuses instrument).
The top and the bottom will remain at a logical level. It is about the personal benefit and the equal distribution of personal claim (profit) in its existing phase of life. Certainly, the fight of transition to such a new system will not be easy, because man is often a little narcissist and the envy in the way preventing. The “New” need reliable friends!

It will again lead to the formation of a new social order, which, however, does not, as it once did, take its impetus from individuals, but represents participation in a global cultural process. Of course, this is more than worrying, but you probably will not even notice, because you’ve always been involved in a change process: Evolution.

So far, all of it has been pretty daring theory and you can also give up irony or cynicism 🤫 here if you have a sense of humour. However, it would be totally overstated to see a reissue of a “labour power” or a dissolution of any democratic aspect. It will simply be the next evolutionary step. There are branches that will eventually cease to exist. But in best case, a new one could emerge before this end.

How could this be in the distant future?
Any demand-driven venture will be reduced to a few but stable organizations. There will only be more or fewer entrepreneurs. Ensuring production and service will be the driving force for all. Each participant joins according to his abilities but is paid in equal parts. There will be no more reward in its monetary form. The remuneration is rather the assurance and availability of other services. Here, not the weakest link determines the beat, as it is e.g. for some scrum teams today, but the sole urgency and benefit to the common good. It automatically uses the right and necessary resources. The self-determined freedom seems to be more than tempting, but now everyone can suffer an entrepreneurial defeat. The motives to succeed are a true basic need. No safety-net but many new opportunities and potentials to enrich his life through his contribution to the community.

In the end, I want to sprinkle a lot of positive energy over the whole thing.
After all, so-called agility has actually given us more courage and freedom in thinking. It is the key to opening the door that will lead us into a new era. The question of whether this article will now have a direct benefit, I would deny. It is also unlikely that a current entrepreneur will engage in radical new concepts in the short term. The dangers for the company and also the social responsibility are simply too big. Also, I can imagine a momentary separation of powers and equal distribution of the consideration, very difficult. Too many dependencies, even in a small artificial trial environment, determine our actions. 🙋‍♂️ But …

It is important for me to offer both the employee and the entrepreneur a world full of new perspectives and exciting opportunities. It may be that I have dealt with this topic too superficially, but I would be happy to receive more opinions and ideas from you. Only those who do not completely ignore the suggestive future will most likely remain successful. In this sense…

stay agile!

Our conference roadmap 2019

Reading Time: 2 minutes

As we have already mentioned on our culture page we have planned a budget 💰 this year for all of our employees for further education purposes. Therefore everybody can go to a conference, workshop or the like. On our blog you will find posts from our employees about the individual events, what the expectations are, what the reality on the event is, maybe some surrounding information why it is worth to visit a conference at a specific city, maybe what is not recommendable and at the end what was the key learning.

So let’s conquer Europe … 9 metropolises, 12 different events:

The opening event started this week – Jeremy and Shady are in Bucharest 🇷🇴 to visit the Voxxed Days. Maybe you have already read the corresponding blog post and their expectations about the trip or you have already seen some pics on twitter. If not – you can find the post here. We are curious about their updates during/after their visit, especially about their culinary impressions 🥙 about Romania 😉.

To see all other scheduled events you can have a look at our conference plan 📆:

Date Event City / Country Who joins
March, 20-22 VOXXED DAYS Bucharest, Romania Jeremy, Shady
April, 3-5 FRONTCON Riga, Latvia Stephan
April, 5-6 JPoint 2019 Moscow, Russia Miodrag, Boris
May, 5 SAYGIN YALCIN Frankfurt, Germany Fatih
May, 16-17 SPRING I/O Barcelona, Spain Antonie, Amit
May, 26-29 UIKonf Berlin, Germany Dimitar
June, 1-2 JSConf EU Berlin, Germany Marijan
June, 6-7 WAD World Congress Berlin, Germany Lukasz
June, 24-26 DEVOXX POLAND Krakow, Poland Stefan
Sept, 2-4 adaptTo() Berlin, Germany Amit
Nov, 1-2 DEVOXX UKRAINE Kiev, Ukraine Jeremy, Shady
Dec, 5-6dotJSParis, FranceYoussef

Now you know where to meet us and maybe you got some ideas if you are also looking for an interesting event this year. If you have questions to an event, want to meet us somewhere or you have some insights for a specific conference or city please use the comment box below or get in touch with us directly – we are looking forward to your feedback – or to meet you at a conference ✌️!

FrontCon 2019 in Riga, Latvia

Reading Time: 3 minutes

Only a few weeks left until I go to my first tech conference this year. Travelling means for me learning something new. And I like learning. Especially the immersion in a foreign culture and the contact to people of other countries makes me happy.

It’s always time to grow beyond yourself. 🤓

BUT why visit Riga just for a conference? Riga is a beautiful city on the Baltic Sea and the capital of Latvia. Latvia is a small country with the neighbours: Russia, Lithuania, Estonia and the sea. AND it’s a childhood dream of me to get to know this city. 😍

The dream was created by an old computer game named “The Patrician”. It’s a historical trading simulation computer game and my brothers and I loved it. We lost a lot of hours to play it instead of finding a way to hack it. 😅
For this dream, I will take some extra private days to visit Riga and the Country as well. 😇

Preparation

The most important preparation such as flight, hotel, workshop and conference are completed.

Furthermore, I also plan to visit some of the famous Latvian palaces and the Medieval Castle of Riga. I also need some tips for the evenings: restaurants and sightseeings from you. Feel free to share them in the comments. 😊

Some facts about the conference

There are four workshops available on the first day:

  • Serverless apps development for frontend developers
  • Vue state management with vuex
  • From Zero to App: A React Workshop
  • Advanced React Workshop

I chose the workshop with VueJS of course 😏 and I’m really happy to see that I can visit most of the talks in the following days. There are some interesting speeches like “Building resilient frontend architecture”, “AAA 3D graphics” and secure talks and server-less frontend development. Click here for the full list of tracks.

My expectations

Above all, I’m open to events to learn new things. Therefore, I have no great expectations in advance. So I’m looking forward to the

  • VueJS & Reacts parts
  • Visit the speakers from Wix, N26 and SumUp

I’m particularly curious about the open spaces between the speeches. I will be glad to have some great talks with the guys. 🤩

For my private trips:

That’s all for now

to be continued…

Who we are? A recap of our joint venture

Reading Time: 5 minutes

On our website, you can find a lot of information about what we are doing, what our expertise is and how we can help to solve your problems. But we also want to let you look behind the scenes: Therefore, on our culture site, you can have a look what we are currently doing in behind, what we want to achieve and how we want to care about ourselves, our employees, too. And when we play with open cards anyway, maybe it’s interesting to you how it all began and how we came until here. Our vision is to be a company in a glasshouse. 🏢

So, here we go – this is our story

It started when we were still students 👨🏻‍🎓 at the University of Constance Germany. We started to work on tiny little projects 🤓, doing things like a website for a barbershop or a little online shop. The first projects were just some hundred bucks worth – but we were proud of it 😎! With our first income, we started to open our first “office” – ok, it was more like a garage 🚗 or basement. But we started to get entrepreneurs, got some new projects, something bigger and it worked quite well, so we were able to hire our first employee in 2015 and moved into a “real office”, the starting shot for us to grow. Since it was clear to us that we want to have our own place, keep our free work, inspired by the working groups of the university – and give other talents a place to grow with us and also shape the company.

In 2016, we were grown to 6 employees, at this stage, we saw that we could need some support, some manpower but also seeing how difficult it was to find developers, so we started to get our first experience with offshore companies🌏. And, as we took the entrepreneurship in, we thought ok, why not establishing our own company in another country: So, therefore we opened an office in Skopje Macedonia 🇲🇰 with just one employee at first. You can read more about it in our blog post: IT nearshore in Skopje: Turning Fail Story to Success Story.

In 2017 we made it grow up to 12 people 💪🏻, thanks to the University and Fachhochschule in Constance, where we found some very talented developers helping us to grow. But by becoming a bigger team we also had to deal with different challenges: How to deal with the growing administrative work, financial stuff, management and things like that? How to reach the next level into professionalization and therefore make some decisions: How should we go on with our company in Skopje? Close it or invest in it? How should we handle our opportunities in Switzerland?

Lots of topics, one after another. To focus on our core business, we externalized our finances 💰 and some of the administrational stuff 🗄. Our point here – let’s make professionals take care of that and we focus on what we are professionals in. We also created an internal position for project & business development 📈.

As the topic of nearshore/offshore gets more and more important, we decided to go on more professionally and started to hire a Store Manager in Skopje. We followed up on this on a separate blog post IT nearshore in Skopje: Turning Fail Story to Success Story. but without telling too much, our manager did a great job so far and built up a team of professionals very very quickly.

In September 2018 we also founded our office in Switzerland 🇨🇭. Our goal here was to work for clients in Switzerland, have seniors near the clients, architects or lead developers who can take over the responsibility for conception and realization of projects and also organize and delegate work to Germany 🇩🇪 or Skopje 🇲🇰.

In the 2nd half of 2018 with the fusion to N47 AG, we got two very experienced guys on board and made a big step to expand our expert know-how and follow our ambitious goals – growing in manpower but also in culture, together as a seamless team, as an IT agency.

How we will do this in 2️⃣0️⃣1️⃣9️⃣, what our goals are and how we want to achieve this will be shown and documented on our culture site. Stay tuned…

To be always up to date you can follow us on twitter, instagram or linkedin… see you there!

My journey at N47 – From my bachelor thesis to building up and being part of a start-up

Reading Time: 4 minutes

How everything began…

Everything had started when I was looking for a company where I could write my bachelor thesis. Although you have plenty of choice of companies, especially in Stuttgart and the surrounding area, but it also had to fit with the topic. Like so many choices in life, I also wanted to make that decision with my friends. As a result, N47’s offer was to write about the topic: Evaluating open-source and commercial e-commerce solutions.

That was also the beginning of my journey in the N47 world.

Hiatus of one year…

After graduation 🎓, I took a break and travelled 🚗 with my family 👨‍👩‍👧‍👧 around the world 🌍 I think anybody can put himself in my position. After years of school and university, a hiatus is an obligation especially when you are already married and have children.
It was also the opportunity to spend time with my two little girls 💞.

My Comeback…

During this time N47 had developed further and already pulled some small orders ashore. This was also the opportunity for me to join the N47 world again.

Initially, I did an internship, where I did some content management tasks. After the internship, I worked as a freelancer for N47 and served as a test manager. After a few months, everything became more serious, so I took a permanent position and spent a long time doing my test manager activity.

N47 became more and more successful and it was time to get new employees on board. Now my role changed to Team Leader, where I took responsibility for the newbies. Furthermore, I was also on the road as an HR manager 👨🏻‍💻 and I was doing all the tasks that had to be done in this regard. Including recruiting new people: writing job advertisements, publishing on various platforms, as well as at universities around, conducting interviews with candidates and looking after all the processes that were in connection with employees.

I took Yum! Brands CEO Greg Creed’s following sentence to heart: Take the job no one else wants to do, so I mastered all the challenges that a start-up entailed. The world in a start-up is not like in a large concern, where you can expect organization and structure. You have to build up everything from scratch and thus not to be good to do tasks which no one else is ready to do.

What I enjoy(ed) the most…

Most interesting in my journey were the business trips to Skopje 🛫🇲🇰 and workshops we managed with the management board in various countries 🌏. We literally locked ourselves up for a few days and worked daily for over 1⃣6⃣ hours. The goal has always been to become more successful. In other words:

  • How does N47 become more attractive to developers?
  • What do we have to change or make additional, so that employees will be happier to be part of the N47 family?
  • How does N47 become a big competitor in the IT services sector?

Looking back now, I realize how proud we can be of what we’ve all reached together. We are now represented in 3⃣ countries (Germany 🇩🇪, Switzerland 🇨🇭, Macedonia 🇲🇰). We are a team with more than 2⃣5⃣ members and serve several major clients in Switzerland🇨🇭.

The show must go on…

The challenge is not yet finished. We continue to fight 🥊 since our goal is to become an attractive employer and get cool/interesting/challenging projects in the IT sector 👨‍💻 in near future.

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.

N47 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 an 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 a 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 country.

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 the 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 some time 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 that 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 these kinds 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 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 an 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 a 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.

Do we love coding?

Reading Time: 6 minutes

a non-scientific try to investigate the passion between man and coding

Since you have managed to get to this blog, the mystical behavior of the internet is not completely foreign to you.
Things in your life such as your mobile phone, your washing machine, your TV, your car, your game console and much more are animated by magic of the same secret interaction and offer you comfort, information, benefit and joy.

🤖  Coding?  In order to make it all work, it requires instances that control the entire process of your inputs and their outputs to the (mostly) expected result. We exclude all imaginable forms of existence of the implementation of these seemingly complex processes and refer to the ordinary person known to us. To be precise, I would like to limit it to an ambitious and highly motivated employee, a software engineer, in our company.

  Love?  I’ll make it short … what we do is what we obviously can or should be good at. To put it even deliberately: That’s our job!
Isn’t it true that we only really succeed if we identify with it or feel emotionally connected? Yes, maybe I am exaggerating with this daring statement. So as not to go too deep into moral and ethical realms, we find that here we speak of an obviously great passion and affection.

so …

For outsiders, it really seems to have the appearance that we are here after cookie-cutter approach incorporate cryptic things in our machines, which then as a matter of course, e.g. can display a webpage on your device.
It seems unimaginable that the effort of making even a big, beautiful picture appear on the screen is really an enormously complicated matter. Also the click on a button and the following action is no big deal. And you are right! And not.

It is comparable to a cozy sports evening in front of the TV. We see all these athletes who make a lot of money with it, for example to chase a ball accurate, in a breakneck speed, on the tennis court and amuse us about balls that land in the net. Everything looks so easy and simple. In reality, if you try it yourself, you will first realize what a tremendous achievement is behind it and that it is not as all easy as it seemed to be. It is very very very much a lot of training, diligence, overcoming, will and experience behind it. Just like it is to generate code.

But there is also another aspect to consider. The artistic. Of course!

To generate code is actually somehow text-book or guidelines and standards to be followed (better yet). Nor should the geometric triangle be reinvented.
But as with an orchestral conductor, the art is now to bring together individual components that are obviously needed to get the desired result. Here, the nuances, interpretations, deviations and also new ideas set the tone.

The creative, innovative and courageous part makes it all. Even for problems that have not yet been solved satisfactorily or for this one special case, there is no solution … suddenly the creativity is in focus.
Of course, it requires the understanding and mastery of the tools necessary for this. The analytical and logical thinking. The art of composition leads to a comparable Mr.Spock & Cpt. Kirk relationship!

Now, looking at this, there seems to be more compelling reasons to ask “Do we love to generate code?” to agree in the affirmative. Or does it rather seem to be a community of convenience and thus a love-hate shape? It’s not just about typing, commonly as actual “coding”. People begin to rationally separate means and purpose.

You may know that too?
On the weekend you eat a really nice, maybe opulent, meal at a well-laid table; preferably with family and friends. (dishwashing not considered)

On the one hand, there is cooking and on the other, eating as an event. Both have emotionality.
The cooking is possibly comparable to coding. You prepare something. Different ingredients are put together or separately in the right condition and at the very end … it comes to the table, where even the consumers are waiting eagerly for it. The actual eating process is then, as well as I would almost say, meditative state to describe.

Anyway, …. finally, it is that this whole event has been divided into different phases aka love affairs. The chef and guest comparable to software engineer and internet user or service provider and customer.

We like to 
be your chef!

We gain more from our actions than just intrinsic satisfaction. Everything, except to bring you into rapture, is alien to us! We want that … we need that! That is our mission and passion.

Coding as a term of necessity.
The mechanical move of the fingers over the keyboard. The process routines such as e.g. to saving and committing the code. Do we love that (okay, some may have an obsession to it) or is it much more than only this?

If we imagine that we do that without achieving a result, then … yes, what then? I think that would be very unsatisfactory! But we don’t want to get into this condition!
We are more than that! We see ourselves as enablers. As a big hitter. As those who make your life a little bit easier, better, more enjoyable and more beneficial..

… we love it!

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. Primarily 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 board with stickers or written on paper. It allows every team member to track his mood at the end of a workday.  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 slack bot, 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 going 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.

The best effort is made to generate a slackbot where a cronjob ⏱ should be run every day 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 message, asking about his mood, which is like a variation between different options (e.g. very good, good, normal, bad)
  3. 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 slack bots, and old users. This causes a problem when we try to interact with each user, and results in exceptions. Filtering criteria should be done to filter only the current users from unused users, deleted users, or slack bots.
  • ِA cronjob for generating a report and sending it on the admin is not done at 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?

IT Nearshore in Skopje: Turning Fail Story to Success Story

Reading Time: 6 minutes

After a successful start into the business in 2014, we wanted to offer our clients a wider portfolio. As you might know in IT businesses „change & development“ is a main topic and if you stuck in development, you will die. 💀

Beginning of 2015, we discussed about the establishment of an own nearshore company. Therefore we had a lot of questions, where we found also the answers and finally decided to establish a nearshore development company in Skopje. 🇲🇰 Here is the journey of establishing our nearshore and turning a Fail Story to a Success Story. 🙌

What are the benefits of an own nearshore company

  • We have the full control of developing our own experts 🎛️
  • We can feel what support the developer needs, instead of just body lease a resource 🤗
  • Our team gets international and the know how exchange grows 🌍
  • We can externalize specific expertises and create a well running work force, like testing units, front-end / back-end development units or mobile development units
  • We can offer our clients lower rates than Swiss experts 💰

After a detailed market analysis our thoughts of establishing an own nearshore company where affirmed! ✅

But why in Skopje?


Skopje is a start-up city on the rise 📈. It is the capital of Macedonia 🇲🇰 and the main point of the Macedonian start-up ecosystem. In the last few years the membership has grown surprisingly fast and younger people are becoming more familiar with start-ups and are willing in innovations and inventions. 🏢
There where also more reasons like:

  • 80% of the young population speaks English fluently 🏴󠁧󠁢󠁥󠁮󠁧󠁿
  • Skopje has a great infrastructure and is well connected to the rest of the European cities, especially Zurich 🌍
  • Direct access to students and a lot of IT universities 🎓
  • Financial advantages like lower salaries, living expenses and transportation costs, also low taxes 💰
  • And Skopje already welcomes start-ups with communities 🏢

Kickoff…

So we flew to Skopje ✈️ to establish our business there. It was the first time, visiting Macedonia 🇲🇰 but everything felt so homelike and tiny 🏠. After a very good preparation with the lawyers before we could finish all our tasks within few days. As we were back, we had established our nearshore company Digital Natives DOOEL ✅, found an accountant ✅, rented an office ✅, bought some office furniture ✅ and employed our first developer there ✅.

It was surprisingly fast and we couldn’t even believe it, how easy and fast it was! We felt like Flash!

… ok and we got a wheel clamp 🙈🙉🙊, because the parking situation in Skopje is horrible. But also this situation was fixed very quickly! 🙂

But we had a bigger issue


For two years the productivity of our nearshore was not satisfying 😔. We were concentrated to our business in Germany 🇩🇪 and Switzerland🇨🇭. So it was hard to us to develop our business there in Macedonia 🇲🇰. Even, to have a company with just one developer afraid new developers to join, maybe we where too small? 🚶

In 2018 we did a big change, we stand in front of the questions „Was this the dream of an own nearshore? Is this the end of the nearshore journey?“ No, we faced with the problems and focussed on the growth in Skopje 🇲🇰. Now it was the time to turn the Fail Story to a Success Story!!!

Roll up your sleeves…

Our first task was to find a store manager 👨🏻‍💼, who is responsible for finding well educated and motivated developers 👨🏼‍💻. Also he had to convince the developers of our vision and strategy. His main skill was to have a great IT network and the ability to convince the candidate with our story. We had to live the same dream 💭 and work hard for it 💦. Within few months we integrated the full Skopje team 🇲🇰 into our projects and the environment of our client. We changed our office to a bigger place and in autumn 2018 we reached our goal:

Now we have a team of high class experts in the field of back-end, front-end and mobile development. We are up and running successfully 🙌. The know how and physical exchanges have grown. In our Hackdayz 2018 event we where all together and it was great to see how everybody knows each other, even if some guys hadn’t seen each other physically before. 👨‍👩‍👧‍👦

Team at team lunch and our team is still growing… we will need bigger restaurants 🙂

Our cultural change program is well accepted from everybody and we can feel even now the positive effect of our program. Our goal was to establish a seamless team with Swiss🇨🇭, German 🇩🇪 and Macedonian 🇲🇰 developers, who speak the same language ❤️ and work on the same project with the same level and vision in different locations. 🌍

With this success, we can offer our clients a well working model package of Swiss🇨🇭, German 🇩🇪 and Macedonian 🇲🇰 developers for fair and low rates. The client is happy and we are happy. 😃

We have seen that is important to have loyal team mates 👨‍👩‍👧‍👦, who speak the same language 👨🏼‍💻, feel the same spirit and have the same vision ❤️! And we achieved that by integrating everybody in the same environment and having an open ear 👂 to the needs of anybody.

The success of a great team!

Vegetable growing in the office 🌱🍅

Reading Time: 4 minutes

We have a pretty nice office in Zurich. I’ve just missed from day 1 on some plants. Many different are suitable for the office, but I opted for something that also brings a return.

5th of December 2018

After the installation of the Click and Grow Smart Garden 3 in our office, we had mainly a little bit more of illumination 💡😂

There are plenty of different pre-seeded pods available. You could as well seed something by your own. But I’ve decided to start with the following plants because I assumed that they will be a good snack.


3rd of January 2019

After four weeks the plants sprouted and grew steadily bigger. At least the sweet pepper and tomato. Not sure what’s wrong with the wild strawberry 🤔🍓


19th of January 2019

Another 2-3 weeks and the tomato was already in bloom. But afaik we have no bees at Citizen Space in Zurich and I wondered if pollination even works.

Some researches later, I found out that today’s tomatoes do not need cross-pollination but could still need some support:

As tomatoes were moved from their native areas, their traditional pollinators, did not move with them. The trait of self-fertility became an advantage, and domestic cultivars of tomato have been selected to maximize this trait.

This is not the same as self-pollination, despite the common claim that tomatoes do so. That tomatoes pollinate themselves poorly without outside aid is clearly shown in greenhouse situations, where pollination must be aided by artificial wind, vibration of the plants, or more often today, by cultured bumblebees. The anther of a tomato flower is shaped like a hollow tube, with the pollenproduced within the structure, rather than on the surface, as in most species. The pollen moves through pores in the anther, but very little pollen is shed without some kind of externally-induced motion. The ideal vibratory frequencies to release pollen grains are provided by an insect, such as a bumblebee, or the original wild halictid pollinator, capable of engaging in a behavior known as buzz pollination, which honey bees cannot perform. In an outdoors setting, wind or animals usually provide sufficient motion to produce commercially viable crops

https://en.wikipedia.org/wiki/Tomato

I decided to pat a little on the plant and hope for the best ¯\_(ツ)_/¯


29th of January 2019

My expert pollination of the plants seemed to work. There are at least four little green tomatoes 🙂

to be continued…

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.