kununu has a new office in Vienna. As part of NEW WORK SE, we have moved into the “New Work Base” together with the other NEW WORK brands. The “New Work Base” is located in the “Haus am Schottentor”, a famous listed landmark building.
Together with the other NEW WORK brands XING, XING E-Recruiting, Prescreen and Honeypot, we will sustainably establish the future of work in the heart of Vienna. The new office will mainly be used for creative exchange, meetings, and everything that cannot be done in the home office. NEW WORK SE recently launched the company-wide “Mobile Home 50” initiative which means: Employees can work up to 50% of their monthly working time from home or the mobile office.
Our new office is the perfect space to network, communicate and collaborate across teams and brands. The approximately 300 workplaces at New Work Base are divided into different rooms and areas. Employees can choose every day where they want to work - depending on whether they have meetings or whether they want to work focused and quietly.
Working at kununu or one of the other NEW WORK SE brands is creative, inspiring, and always different - this is exactly how the new office is designed.
Do what you love at kununu, part of NEW WORK SE. Check out our job openings.
Photo credit: Rafaela Pröll.
For more than a year, protecting our physical health has been the focus in our work and private life. For good reason, kununu has also been working completely remotely since March 2020. In times when the direct personal exchange is so limited, it is even more important than usual to keep an eye on the mental health of our colleagues.
Simply put, psychological safety at the workspace is the belief that you won’t be punished when you make a mistake or speak up about something. This means that you never have to hesitate to ask for help, seek for feedback, admit an error, suggest new ideas or approaches or voice work-related dissenting news.
The basis for psychological safety at the workplace is mutual trust and an open company culture in which the psychological safety of everyone at the company is considered as important.
Supporting psychological safety at the workplace is the responsibility of everyone working in a company, no matter if you are a team member or if you are leading a team.
Psychological Safety – What you can do as a team lead.
As a team lead you can foster the psychological safety in your team by creating an environment where everybody feels safe and by promoting a healthy failure culture. Lead by example and dare to show yourself as a person that is not prone to making mistakes.
Encourage active listening during meetings, especially during remote team meetings. Ensure clear understanding by repeating what was said. If certain individuals rarely speak in meetings, actively ask them for their opinion. Always keep an eye on your team: Be sensitive to changes in their mood and behavior and act accordingly. During prolonged home office periods the lines between private life and work are blurring. That makes it even more important that you as a team lead establish work boundaries and make sure that your team knows that they can turn off their phones after work. Oh, and don’t forget to switch off your phone also ;-).
Psychological Safety – What you can do as a team member.
As a team member it is your responsibility to support the safe environment set by your team lead and bring it to life. Always communicate in a respectful way and never place blame. Keep an open mindset and ask for feedback and provide constructive feedback to others. Acknowledge your own mistakes. If you doubt the nature or intention of a message, ask for clarification. Share critique openly, but always constructively. Especially during longer phases of remote work it is important that you know your needs in terms of feedback and interpersonal exchange and that you communicate them. Share your voice if you notice factors that make you or others psychologically unsafe. You might have to get out of your comfort zone sometimes. But you and your peers will benefit.
Psychological Safety. What we at kununu do to support it.
At kununu, we acknowledge the importance of psychological safety at the workspace and we guide our team leads accordingly. We keep raising awareness for the topic on a company level and we invite our employees to participate in the exchange. We have established company-wide guidelines with hands-on tips for team leads and team members. The whole New Work SE is working with the mental health program provided by Fürstenberg Institut. As part of this program all employees and their families can get 100% anonymous support and coaching. We regularly launch health initiatives like our Health Weeks. And, probably most important: We keep on learning. Why? Because we want all kununus to be resilient, empowered, engaged, motivated, creative, innovative, and high-performing colleagues.
As Agile Coaches, we help train kununu teams on the agile methodology and we oversee the development of agile teams to ensure effective outcomes for the whole company. We are responsible for guiding teams through the implementation process and are tasked with encouraging engineers and leadership to embrace the agile methods.
One of the agile values in the Agile Manifesto is “responding to change over following a plan”. Incorporating agility into our culture also helped us to cope with the challenges that the COVID-19 pandemic brought into kununu at the beginning of last year.
Do you know the Black Pearl?
All Engineering teams at kununu are named after famous pirates and explorers. As Agile Coaches who support each of the engineering teams so our team also has a pirate-related name: We are the Black Pearl team (yes, named after the pirate boat in Pirates of the Caribbean). Being fearless pirates, we have some great combat skills. We are always ready to question everything and to push everyone to give their best, to improve and grow along the way. We celebrate our conquers and we never forget to have fun with each other, keeping the team spirit and good vibes high!
Although pirates act spontaneously, they also value strategic plans and so do we. We are flexible, creative and spontaneous in our daily work, but we always have a strategy in mind, backed up by data, studies or documentation. Whenever we try something new, we always keep track of our steps to make sure we document our path, just like a pirate map that allows us to go back and retrieve the treasure that we buried some time ago.
Further characteristics that every good pirate should have are excellent navigation skills. They always find their way and they (almost) never get seasick. As Agile Coaches that resonates with us. When working with development and product owners, we make sure that we navigate the right waters during our journey.
So, how exactly do we work?
There are currently four Agile Coaches at kununu and we are working very closely together.
Each of us assists two to three development teams, accompanying the development through the sprints, offering support during the Scrum events (aka ceremonies), and proving necessary inputs to help achieve sprint goals while maximizing the work, time and productivity of the teams.
We also help the teams to make sure that they have the necessary data to plan the road ahead (aka next sprints) and to create analyses of progress and improvements.
We follow kununu’s objectives and support more teams aside from engineers to keep and improve their ways of working. We suggest new approaches and improvements for current processes. We also organise and facilitate other events like the feedback festival, kununu hackweeks, retros for all departments, etc. Currently, all 100% remotely, of course.
How did we deal with the change to remote work?
When the pandemic hit, the biggest challenge - not only for us but for every company that had to switch to remote work within a very short time - was communication.
When working remotely, we deal with written communication most of the time. This means that you don’t experience the other person’s body language, tone of voice, all the non-verbal expressions you need to fully and correctly interpret what is meant. Of course, this can lead to communication issues and misunderstandings. To deal with this challenge we established a social contract. This contract includes certain basic rules for communicating with each other on work-related topics. For example: defining the tools that are used to communicate, respect each other's schedule and working time, turn-on your camera every time you connect to someone and in meetings. These basic rules helped us a lot to avoid misunderstandings.
In a remote setup, we need to pay attention to people’s motivation and psychological well-being. Colleagues might feel lost and unsupported working alone from home without direct contact with their teammates. To avoid this, we developed meeting strategies. For example, we increased the number of 1-on-1 meetings we have with each team member. We also check in on their current mood, challenges and concerns.
Besides regular work-related meetings and 1-on-1s, we also established casual coffee breaks. These are sessions with the teams for chatting, to mingle or playing fun games.
Scrum events online edition
At kununu, the engineering teams work with Scrum and the regular Scrum events are cornerstones of each sprint. With the pandemic we had to find a way to organize the Scrum events online.
We now use Google Meet and Zoon and we strive to contribute the same spirit as we did before. If you have ever worked with an Agile Coach before, you probably know about our love for post-its. We use them a lot to visualize things in a flexible way as you can reposition each post-it easily. With no walls or boards and no physical social contact, we discovered new apps for retrospectives and other dynamics where we can simulate a wall of post-its. Examples of apps we like to work with are Miro, Metro Retro, Jamboard, beyond others.
Even the dynamics of ice-breakers or warm-ups at the beginning of a Scrum event have to be more creative in a remote setup. To open an online Scrum event, we ask people to tell us what they see when looking out the window of their home office, to share a story of an object they have on their home desks, or we choose another random topic that helps us to get going.
We do everything we can to keep kununu connected and engaged with each other, to promote communication, and make these times as uncomplicated and pleasant as possible.
As Agile Coaches, we are always looking into how we can support engineering and non-engineering teams in the best possible way to make sure they can work in a focused manner and with a positive attitude to deliver high-quality products for our users and our customers.
At kununu, we all work together to follow our mission of empowering people to choose the right place to work and creating a better workplace for all.
We are the Black Pearl Team, we are Agile Coaches at kununu!
People expect to be able to use their applications anytime they want to. To accomplish this, engineering teams need to keep resiliency in mind while building their applications. Resilience is the ability of a system to manage and graciously recover from failures. Resiliency patterns aim to ensure the applications are available whenever the users need them.
You need to face a lot of challenges when developing and designing cloud applications. Throughout this article, we are going to walk you through some resiliency patterns you may want to consider when building a cloud-based application, to keep it up and running.
Resilience can be estimated in terms of a system's availability at any given time. System availability is determined by the availability of all of its components. These components can be linked in serial or parallel connections.
In a serial connection, if one of the components fails the entire system fails. For instance, if a system consists of two components operating in series, a failure on either component leads to a system failure.
In a parallel connection, if you have two parallel components and one of them fails, the system keeps running without failure (or at least it should). For example, if a system comprises two components operating in parallel, a failure of a component leads to the other component taking over the operations of the failed component.
A serial system is operational only if all its components are available. Hence, the availability of a serial system is a product of the availability of its components. For example, in a system with components X and Y, you multiply the availability of component X by the availability of the component Y. The following equation represents the availability of the system: A = Ax A.
Based on the above equation we concluded that the combined availability of two components in series is always lower than the availability of the individual components. One example: Component X has an availability of 99% or 3.65 days /year downtime. Component Y has an availability of 99.99% or a downtime of 52 minutes per year. If we combine the two components they have an availability of 98.99% and 3.69 days of downtime per year.
Even though a very high availability component Y was used, the low availability of component X pulls down the overall availability of the system. As the saying goes, a chain is no stronger than its weakest link. In this case, the chain is weaker than its weakest link.
Now, assume that you have a system consisting of two components in parallel. This system is operational if either component is available. So, the combined availability is the result of the multiplication of the unavailabilities subtracted from 1. The following equation represents the combined availability of the system: A = 1 - (1 - Ax).
That means that the combined availability of two components in parallel is always much higher than the availability of its individual components. One example: Component X has an availability of 99% or a downtime of 3.65 days per year. If you use two X components operating in parallel you will reach an availability of 99.99% or a downtime of 31 seconds per year.
This example makes it clear that even though a very low availability Component X was used, the overall availability of the system is much higher. In such a manner, availability in parallel provides a very powerful mechanism for making a more reliable and resilient system.
With the previous pattern, we learned that the duplication of the system's components maximizes the system's total availability. Within the cloud, this means deploying it over several availability zones (multi-AZ) and, in some situations, across multi-regions.
Availability zones (AZs) are unique physical locations within regions from which public cloud computing resources are hosted. Each zone is made up of one or more data centers equipped with independent power, cooling, and networking. Each region is a separate geographic area. The physical separation of AZs within a region protects applications and data from data center failures.
If a system is built in a Multi-AZ architecture, it takes advantage of having zone-redundant services replicating the applications and data across AZs to protect from single-points-of-failure.
For example, if your system has a Multi-AZ database instance, there is a primary database instance that synchronously replicates the data to a standby instance in a different AZ. In case of an infrastructure failure, there will be an automatic failover to the standby instance, so that you can resume database operations as soon as the failover is complete. Since the endpoint for your database instance remains the same after a failover, your application can resume database operation without the need for manual intervention.
Therefore, Multi-AZ deployment increases the availability of a system and its tolerance to faults.
As we have seen, if a component being called upon fails in your application, you can have a copy of that component ready to go. You can achieve that goal with stateless services.
A stateless app or service does not hold any data or state, so any copy of that service can serve the same function as the original. A stateless model ensures that any request or interaction with the service can be managed independently of the previous requests. This model facilitates auto scalability and recoverability, as new instances of the services can be dynamically created as the need arises or be restarted without losing data that's required in order to handle any running processes or requests.
The widely used REST (REpresentational State Transfer) paradigm is a stateless model, and actually this is one of the key considerations whether anything is RESTful or not. Roy Fielding's original dissertation details the REST definition and says:
"Each request from client to server must contain all of the information necessary to understand the request, and cannot take advantage of any stored context on the server. Session state is therefore kept entirely on the client." Roy Fielding, Senior Principal Scientist at Adobe, author of REST architectural style.
While you might argue that using stateless services is not a resilience strategy per se, it is still an important and valid technique to improve the resilience of a system.
Although REST APIs are popular and useful in designing applications, REST APIs tend to be built with synchronous communications, where a response is required. A request from an end-user client can trigger a complex communication journey within your services architecture that can effectively introduce coupling between the services at runtime.
Asynchronous messaging is the most common decoupling technique. Take, for example, the need to send orders to Component X and Component Y generated on different external systems.
From a high-availability perspective, the loosely-coupled asynchronous approach enables Component X and Component Y to be unavailable as a result of a planned or unplanned outage, without affecting the external systems. The external systems can send the order creation request messages to a message queue.
On the other hand, if the communication is synchronous, Component X and Component Y must be available for the external system to create the request. The availability requirements of Component X and Component Y in this architecture must be the greatest of all the availability requirements of all tightly connected systems combined.
Under a higher load, your services will need to scale out to process the requests. You then have to consider the scale-out latency, as it takes a few moments from when an auto-scaling party triggers the creation of additional instances until they are ready for action. It takes time to initiate new container tasks too.
In a synchronous communication approach, if the scaling event happens late, you may be unable to handle all incoming requests with the available resources. Such requests can be lost or answered with HTTP status code 5xx.
In contrast, in an asynchronous communication approach, you can use message queues that buffer messages during a scaling event to help avoid this. This is the more robust architecture, even in use cases where the end-user client is waiting for an immediate response. When your infrastructure takes time to scale out, and you cannot process all requests in a timely manner, the requests will persist.
Prioritize traffic with queues
Although it may be easy to see the benefits of a queue asynchronously processing messages, the drawbacks of using a queue are subtle. With a queue-based system, during intervals of high traffic, messages can arrive faster than your services can process them. While in a case when processing stops but messages keep coming in, the message debt will grow into a huge backlog, pushing up the processing time.
To put it another way, a queue-based system has two operating modes or bimodal behaviour. The latency of the system is low when there's no backlog in the queue, and the system is in steady mode. However, if a failure or a higher load causes the rate of arrival to surpass the processing limit, it easily flips into a more sinister mode of operation. The end-to-end latency in this mode increases exponentially, and it can take a lot of time to work through the backlog to get back into the steady mode.
Below are a few design techniques that can help you prevent long queue backlogs and recovery times:
- In asynchronous systems, security is essential at every layer. In an asynchronous system, each part of the system needs to protect itself against overload, and prevent one workload from consuming an excessive share of resources. So, we protect them by implementing throttling and admission control.
- Using multiple queues helps to control traffic. Often asynchronous systems are multitenant, performing work on behalf of a wide number of different customers. In certain aspects, there's an incompatibility between a single queue and multitenancy. By the time that the work is queued up in a shared queue, isolating a customer workload from another is difficult.
- Turn to LIFO behavior instead of FIFO when faced with a backlog. For most real-time systems it is preferable to have fresh data processed immediately, when a backlog happens. Any data accumulated during an outage or spike can then be processed when there is capacity available.
In certain cases, it is too late to prioritize traffic after a backlog has built up in a queue. However, if processing the message is quite costly or time-consuming, being able to transfer messages into a separate queue can still be worthwhile. For example, during a spike, expensive messages can be transferred to a low priority queue. We can use the same approach to messages that meet certain age criteria, transferring them into a separate queue. The system works on low priority queue messages as soon as the resources are available.
There are many strategies to make asynchronous systems resilient to workload changes, such as shuffle-sharding, dropping old messages (message time-to-live), heartbeating long-running messages, and so on. We are not going to cover all of them here, but you can take a look at the next section for further learning resources.
How resilient is your application?
If you don't know the answer to the previous question and don't know where to start, I suggest you take a look at our Chaos Engineering article.
That's all for today
Today we discussed five of the most popular resiliency patterns out there. You probably want to consider them when building your resilient cloud-based application.
Hi, I'm Aline, backend engineer at kununu in Porto. Wanna know more about my work at kununu? Here' you can find my job profile on kununu.com
Are you interested in working at kununu? Check out our open positions
For the first time since the company was founded in 2007, kununu is now led not by one single person, but by a team of three: Rohan Garg (Managing Director), Yenia Zaba (Director Global Communications & Brand) and Hélder Martins (Vice President Engineering). All of them are already very familiar with the brand and with the teams at kununu as they have been promoted within the company. We have interviewed the three of them.
What is new about the kununu leadership team?
Yenia: “It is now a new chapter in the history of kununu. Rohan, Hélder and myself are super excited to take on this challenge and bring kununu to the next level.”
Why is the new kununu Senior Leadership Team consisting of three people?
Rohan: “As we are three, no one has to do the heavy lifting alone. We have so many possibilities to exchange and brainstorm ideas, discuss pros and cons and make decisions together. And it also means that we divide the responsibility. And most importantly: We can share success and failures.”
What means success for you?
Rohan: “To me personally, success means that we are able to help our users and our customers. When there is a new user out there who is looking for a new job, who is making a very important work-life decision, kununu is there like a good friend, helping and guiding this user so that he or she can make the best decision for his or herself. For us as a leadership team, success means defining a good long-term vision for our company, making sure that we stay user- and customer-centric and allowing our teams to take over and execute.”
Why do you work at kununu?
Hélder: “I work at kununu because I love the company’s mission of helping people find their dream job by providing workplace insights that really matter.”
What makes kununu a special company?
Hélder: “There are many things that make kununu a special place, but the number one thing that makes me get up every morning with a huge smile on my face is our team. It’s just a great mix of talent, work ethics, diversity that creates a work environment that feels informal, but at the same time functions at a fast pace.”
What is leadership for you?
Yenia: “Leadership is for me to guide, inspire, motivate and at the end of the day empower my team to do the best job they can, to make the best decisions they can to move the business forward. And it’s about having each other’s back and providing a safe space for people to grow and develop and learn, both from achievements and from failures.”
What is your biggest challenge at the moment?
Hélder: “Our biggest challenge at the moment as a leadership team is to steer kununu through the pandemic, especially with all the uncertainty that comes with it. When the pandemic started, we decided that our number one priority would be to protect kununu’s most valuable assets, which are our employees. So not only we tried to support and make the transition to a fully remote setup as smooth as possible, but we also provided additional support. Two examples are the psychological support and the extra parenting days. We couldn’t be happier with the outcome and with the response from our team. They did an incredible job and we still managed to deliver a lot of value to our customers and we still managed to grow our business in 2020. All of this makes us look at 2021 with high hopes and expectations and with lots of confidence that we will continue to grow our business. And our team.”
Do you want to work with Yenia, Rohan and Hélder? Check out the open jobs at kununu - maybe your dream job is waiting for you.
At kununu, we have a big kick-off event every January. Usually, our parent company New Work SE organizes a joint festival-like event in one of the locations of the companies that belong to the New Work SE universe. People from many different countries and with different backgrounds come together to work, learn, get company updates, network and have a lot of fun. The New Work SE kick-off 2020 was organized in Valencia and was a big highlight for us.
These kick-off events are very important for us. It’s the first time that we all get together in a new year. We use the chance to talk about our company’s strategy, about important projects and challenges - and to mingle and connect with our colleagues.
Of course, this year had to be organized in a totally different way due to the COVID-19 pandemic. And this year’s kick-off basically set the standard for successful company-wide online events at kununu. It was 100% remote and everybody had to dial in from their home office. Despite the fact that we were not in the same room, it was a great event with a lot of input and discussions. And no, also the fun parts were also not missing.
The kununu senior leadership team, consisting of Yenia, Hélder and Rohan, shared their biggest achievements, failures and learnings of 2020. We discussed the outlook into 2021 for kununu as well as our upcoming lighthouse projects and we had a Q&A round with Petra, CEO of New Work SE. We did a session on our kununu values and worked out plans on how we can live up to them in times of remote working. Between these sessions we practiced Yoga and Tai Chi together. And in the evening we had some fun sessions on various topics and we competed against each other in a super-fast pub quiz.
2021, we are ready for you!
And as much as we hope that we can switch back to an in-person kick-off beginning of 2022, we will probably never forget this special kick-off during the COVID-19 pandemic.
The pandemic as a chance: COVID-19 made me take my next career step - From mobile development to web development
For many people COVID-19 had a big influence on their career. Obviously, people working in areas like the travel or the hospitality industry were especially affected as many had and still have to worry whether their jobs will still be there in a few month's time. Quite a number of my friends and acquaintances who are not working in these especially affected industries also started to rethink their career planning. Some opted to get more stability and predictability. Some changed the career path completely. I took the second option: The pandemic also made me rethink how and what I want to work.
I was looking for a change and I took the chance and started working as a QA Engineer at kununu. I’ve been working as a QA Engineer for the last five years. But in a totally different development environment: mobile. Moving to a pure role for web development was a tough decision to embrace since I was already very comfortable with my role as QAE in the mobile development world. Regardless of the uncertainty that the Corona crisis brought for the future in every market, IT included, I decided to go down one step to step up two in my career. Today, after six months with kununu, I do not regret anything at all!
I left behind my last position where I felt comfortable and dug myself into a completely new complex project and into the variety of technologies, tools and infrastructure at kununu.com. It was sometimes hard but it was totally worth it. And now, I am familiar with both worlds: in native apps as well as in web apps.
My main learning: Never stop learning. Never stop putting yourself in new surroundings. It might not be easy in the beginning, but it will help you to grow and to adapt to any circumstances.
Frontier between mobile testing and web app testing
From a professional perspective, I detected some fundamental differences and lines that I could draw from mobile testing vs web app testing.
Native apps vs web apps
Clearly, mobile apps are meant to be consumed only by mobile devices, either android or iOS, so you have to download them first, and in some cases pay for them before using them. In terms of development, it involves being developed in totally different environments and languages to integrate the hardware of mobile devices perfectly in terms of features and performance.
Differences in testing
Giving the fact we are already talking about different platforms, there are many differences when we are testing a mobile application and web app, below are some examples
Connection & Connectivity
This is the first main difference that I felt, web apps are meant to be only used with connection, same applies to the majority of mobile applications, however many of them are developed to be also used offline and if not there should be always logic implemented to warn user that does not have internet connection (instead of the browser that always show the ugly no connection screen).
But there are many mobile applications that work offline, either with cached content, or to access some features offline, such as for instance, a boarding pass for our flight. Others can work fully offline because they do not communicate with any API service.
Memory & Storage
We are in 2020, mobile devices are equipped with high-end specs, that is a fact. But there are many people with low-end devices, this can also impact web apps when a user has many tabs opened in his browser, but also put restraints on mobile apps performance, leading to the mitic app crashes that are frequent in mobile devices. So in web app development this is not commonly a huge issue, as long as the website is rendered correctly we are good to go and memory leaks are not so frequent as in mobile apps. And if the website is slow we can always blame the browser :-D.
This is not a word in web app development dictionary, laptops or desktops are always connected to power and websites commonly do not have any impact on battery life, on the other hand mobile apps can have a huge impact on battery life, so that is an aspect we should consider also in mobile testing.
Platform and device independence
In both worlds we have to test the applications against different types of configurations (browsers/devices). Web apps usually only stick with a couple of browsers, which make it easier to test and most of the time the issues and differences spotted are only visual rendering issues. When it comes to mobile is totally different, a feature can work perfectly in one device with some specific android/ios version but do not work at all in the previous OS version, so is always necessary to cover plenty of OS versions as well as devices (different ROM versions from different manufacturers).
Many people think that testing a mobile app and web testing is basically the same, we click on something and we expect something.
First of all, web applications do not have, tap, swipe, pull, shake, pinch or even voice commands, right? Operations in web apps can be much more basic with just mouse clicks or buttons combinations in forms which makes the testing easier.
Resuming apps from background or coming back from sleep mode in mobile devices can also have a huge impact on use, web apps do not have any impact when they are resumed, unless for cookies.
Also, in web applications we do not need to go through the install/uninstall or updates process, which makes it more simple in terms of version control testing, mobile apps on the other hand can have huge impact on updates, apps can easily start crashing after updates.
The biggest enemy of mobile development sometimes when it comes to landscape vs portrait. In web apps as long as the layout is responsive, we might not have issues with screen compatibility against different devices. In mobile apps one screen can be visually ok in one device but can completely break in smaller devices and after changing to landscape mode, or even crash the app.
Different Tools for Mobile vs. Web App Testing
The amount of tools we can use for a large web app project such as kununu.com is incredible, since tools for logs monitoring, API testing, analytics, infrastructure, CRM, databases, cloud services, etc. I definitely felt that my knowledge stack grew exponentially since I joined kununu. Mobile apps tools can most of the cases just rely on simple tools for logs and performance monitoring depending of course the size and complexity of the app also involving tools for analytics and push notifications.
Honestly, mobile automation frameworks still have a lot to grow in comparin with web app frameworks, there’s much more variety of good web app automation tools than mobile, especially in terms of stability and velocity, is incredible how fast automated tests can run on browsers than in mobile apps, in this aspect unfortunately mobile apps are still way behind.
Mobile automation frameworks for UI tests usually just stick with Espresso and XCUItest for native apps, Appium, calabash and Selendroid for hybrid apps.
For web apps the choice is larger, with the most well-known frameworks based on Selenium, such as webdriverio, nightwatch but also Protractor, Robot framework, Cypress and plenty more also used for visual testing such as Galen, etc.
Even though we might think that testing is the same for any development environment, just clicking on A or B, when you go deeper, there are a lot of differences, obviously the mindset of a QA must be the same for any environment, but it involves adapting as any other role, fortunately kununu gave everything I could ask for making this adaption easy and smoothly. Although there’s still a lot to learn nowadays!
Hi, I’m Daniel and I joined kununu 6 months ago. I’m a QA Engineer at kununu in Porto and in my role’s responsibility is to assure that users always have the best experience on our website. If you want to know more about me and kununu visit my job profile on kununu.com.
Full-time remote work is a different game. We end up losing on-site particularities: the human proximity, the refreshing breaks with snacks while discussing the prior day’s game, and the quick discussions over a whiteboard. This has an impact on the social side of each employee, mostly because of the simplest thing all humans need: Human interaction.
Keeping the strong link between teams should be definitely one of the priorities a company’s management team has on its radar - with or without a global pandemic. Neither on the personal or professional level, companies shouldn’t expect things to go naturally well and that teams will work on the bond on their own. The management has an essential role here, especially when faced with a physical distance between teams.
We have 3 Hackweeks per year, in which our teams go beyond their day-to-day business and explore new projects, ideas or technologies. 13 different projects were initiated this Hackweek#2 2020.
Hackweeks at kununu are internal hackathons that last an entire working week. We use these hackathons for learning, connecting with each other and sharing our ideas and thoughts. We take the opportunity to have some workshops and try out new technologies. Some of the ideas are pursued even after the Hackweek and become part of our product.
These are a few project examples of Hackweek#2 2020:
Mitchell, Backend Developer at kununu in Porto, worked on a gamification idea for kununu’s company values. As part of kununu's Culture Club he wants to actively shape the culture of kununu. With his project he wants to foster communication and collaboration between locations and colleagues.
Daniel, QA Engineer at kununu in Porto, worked on visual regression testing with webdriver.io. With his project he wants to avoid visual rendering issues in production. This should make sure that users have always the best UI & UX experience.
Stefan, Senior Backend Developer at kununu in Vienna, analyzed log data to expose microservice interconnections. This should help every developer maintain an overview in a growing microservice environment and understand who & what consumes their services endpoints.
Hélder joined kununu more than 2 years ago as Vice President of Technology. Since then he has shaped kununu not only on the engineering side, but also on the strategic level. In this interview he shares insights about his career, big challenges and how he tackles them. Hélder explains also why he values diversity in teams and how he responded to the crisis with a positive mindset.
Portrait of Hélder
Q: Hélder, you have been kununu’s VP Technology for two years and leading engineering in Porto and Vienna. Can you summarize your career for us? How did you get to where you are now?
I’ve started my career as an independent software developer while I was studying at the University. At some point (around 1998) the government decided to task my University to develop the first generation of e-government solutions and I was lucky enough to be hired for that project. It was a game changer for me as I quickly fell in love with developing software at scale and being part of a team of highly skilled people with different backgrounds.
Then, during my senior year, I started a company with 2 other partners. While my initial focus was purely on software development, as the company grew I was naturally drawn to coordination, planning and leadership tasks. The move towards a management career wasn’t a conscious or planned decision but rather something that I started to do because there was a need for it and I was enjoying it.
Since then I’ve been lucky enough to have had leadership roles in three other companies, and work on diverse projects and industries like banking, healthcare, sports betting and ,more recently, HR tech.
Q: If you could go back in time, what would you do differently? What piece of advice would you give your younger self?
I would explain to my younger self how important it is to balance work and personal life. I think I was a workaholic during a big part of my 20s but I managed to change that. And I am more productive now than when I was working crazy hours and I think I am also a better father and husband but my opinion might be biased...
Q: What are you most proud of?
At the top of my mind, I can think about two things that make me proud: The first one is that I am able to look back and see the positive impact that the work I did had on people’s lives. Knowing that people got better healthcare, better financial solutions, had more fun betting on sports events and are able to choose their next job in a more informed way because of the work I did makes me very proud.
The second thing was to see a company I was managing at the time winning a national award as the Best Place to Work For in 2017.
Q: I noticed on your Social Media profile that you choose this quote to describe yourself “I believe failing-fast is the only way to fail.” What was a screw-up you wanted to share?
Regarding the “failing fast” quote, in my personal view that is more related to ego than to screw-up. Failing fast means putting our egos aside when assessing the success or failure of a project and deciding based on what's best for our users and business. Sometimes our ego can get in the way of taking the hard decision to pivot in a different direction or even kill a project just because it’s our pet project.
This is probably not my biggest screw-up but is one that I remember often: While rolling out a new version of a software at a hospital, we inadvertently broke the communications between several systems, which caused a disruption in some of the hospital services, one of them being the emergency room. We were able to fix it within minutes and fortunately no harm was done but it seemed like it took hours because I was feeling really bad for the impact it was having on patients and doctors.
kununu in Porto and current tech-challenges
Q: What is your current job about? What is your typical working day like?
kununu’s mission is to provide job seekers with authentic workplace insights that can help them find their dream employer and help employers with getting better applicants and building their employer brand with our Employer Branding Profiles.
kununu is a 100% digital company so all of our products run on top of a technology stack that is developed internally by our awesome Engineering team. My job is to coordinate and support this team in the best way possible so that we keep on delivering new and improved features to our users with high quality and high availability. I also have the pleasure to coordinate our Community Support team that takes care of all the back office and customer support tasks.
I am also a big fan of agile principles and continuous improvement so I also invest time in finding new ways of optimizing the way we work at kununu.
Q: You’ve been with kununu for 2,5 years. What challenges did you face? And on the contrary, what accomplishments did you celebrate?
I am driven by challenges and one of the things that attracted me to kununu was the challenge of rebuilding kununu’s entire tech stack. As always, we approached this challenge with a user centric perspective and decided to put our users first. This means that on top of the technical complexity of migrating from a monolithic architecture to a microservices architecture, we gave ourselves the additional challenge of continuing to release new features and brand new products while doing it, which means dealing with bi-directional data synching of millions of data points.
In terms of accomplishments, I am quite happy with how things are progressing. In order to overcome this challenge we couldn’t just simply approach it as an Engineering problem, the whole company needed to get behind it. In the last two years, we introduced new ways of working in the company, adopted OKRs, forced ourselves to prioritise what really adds value for our users. It paved the way for us to release three completely new products (Salary, Culture, engage) and allowed for being almost half way through our technical migration.
Q: Where would you like to see kununu heading in terms of technology?
I see kununu making use of the best practices and technologies to build the best products on the market that deliver great value to our users and customers. My personal opinion is that the satisfaction and pride of an engineer (in our case software) is to see something that they built being used by other people.
Q: kununu’s services are not yet available in Portugal. Can you explain why there is an office in Porto?
During the last few years Porto has been trending as an important tech hub in Europe. This is mainly due to the fact that Porto is a great talent pool when it comes to software engineering.
New Work SE, our mother company, and kununu wanted to grow their Engineering teams and decided to tap into Porto’s talent pool and build a shared office here. This has proven to be a success, the number of people in the Porto office has been steadily growing since then and we’re even about to open a new office space that we will soon move into.
Q: Speaking of the team. Can you explain the team setup in the Porto office? What are the strengths of the teams in Porto?
Currently there are five feature teams and one devops team working in our Porto office, including the Agile Coach and Product Owner functions. All of our teams, independent of where they are located, bring something different to the table and I believe this diversity is also a strength. Regarding the Porto teams specifically, I would highlight the ability to quickly adapt to new scenarios as one of their strengths.
Q: Everybody wants to grow. Can you tell us what the growth opportunities are for engineers?
When it comes to growth opportunities, we try to create a personal development plan for each of our employees and support them in the best way that we can, with formal training, coaching, mentoring or on the job training, through that journey. Also, before we hire from outside, we always look at our internal talent pool first and try to hire internally.
COVID-19 and collaboration at kununu
Q: The Covid-19 pandemic is shaking the world. How have you experienced the crisis yourself? Also, people are seeking stability. How did you guide and support your teams in the last months?
Our first reaction to the pandemic was to do everything within our reach to ensure everyone was safe, so we decided to send everyone home and close the Porto office a few days ahead of the lockdown. Since remote work was already something common at kununu, we managed to adapt to the new reality fairly quickly and I’m very happy with how productive we continued to be during lockdown.
During August we started to slowly get back to the offices, but everyone is still allowed to work fully remote. If the pandemic allows for it, from November onwards we are planning to be on a 50/50 split between home and office work.
After the lockdown, and to fight the fatigue of working from home for such a long period of time without physically meeting with your colleagues, we organise regular team picnics, always in small groups and in compliance with all the safety guidelines.
Q: Being a company that lives its culture through connections between colleagues and community, what do you think can be implications of this remote setup for the corporate culture and how can we overcome it?
Moving to a fully remote setup, especially during a pandemic, is definitely a challenge for a company with a proximity culture like ours. Dealing with it starts with having a positive mindset and not letting ourselves get depressed. When we went into lockdown, we committed to not letting the pandemic be an excuse for not doing things as well as we normally do, and I think that mindset helps us a lot to overcome the challenges of a remote setup with a positive attitude. Teams are finding new and innovative ways of collaborating in a remote setup (new tools, virtual group meals, new ways of running meetings, etc.) and once they find something that works well, they share it with everyone else, which also ends up contributing to communication and collaboration.
Q: Speaking of collaboration: What are the challenges of cross-country collaboration? How do you manage cross-functional communication?
I personally consider that diversity makes us stronger, so I don’t see it as a challenge but rather an opportunity for improvement. What I observe is that when you task a group of people with different backgrounds and cultures to solve a problem, you usually end up with more creative solutions than when the group is less diverse.
At the same time we acknowledge that the more diverse and geographically scattered that group is, the more difficult and noisy the process can be and that’s why we’ve introduced Golden Meeting Rules and OKRs into our ways of working. While the Golden Meeting Rules provide guidelines on how to make meetings more collaborative and productive, OKRs are a good framework for documenting the different goals each team has agreed upon and make them transparent across different functions.