Frontend and backend languages and frameworks

christian speer
giancarlo di paolantonio

In this third blog post of the series about our Tech ecosystem we look at the technologies that we adopted in the frontend and backend space, and explore the reasons behind our choices.

An evolving architecture

massimiliano mazzarolo

Over the past few years, constant changes in software development techniques, frameworks and tools led us to rethink how our architecture might evolve over time to sustain changes and support demand from business.

Our tech ecosystem

corrado casto

In this first blog post of the series about our Tech ecosystem our CTO sets the context for the upcoming contents. We operate in the traveltech domain, and Technology is a key business capability for the company. The complexities of the business and the ever evolving nature of the industry and the Tech landscape itself make it for an environment that values a growth mindset, collaboration and professionalism.

Content Hub: How we made NoSQL relational

paweł suchy is moving many of its services to Amazon Web Services. Let's see what challenges related to the data migration itself may arise during this process, based on the case of the Content Hub application.

Performance Testing Tools: Gatling vs Jmeter

luca gazzola
pratap kambaladinne
cristina noval
matteo orru
alvaro garcia real

When it comes to performance testing, which one should you pick between Jmeter and Gatling? And Why?

Set up a quick GUI in maven project

manuel mandatori

How do you set up a GUI module in maven project? Let's find out in this post!!

A Domain Driven Design dictionary for newbies

fabrizio duroni

In the last months, I started to hear a lot of stuff about Domain Driven Design. What is DDD? What does it try to solve? This is a post for all the newbies (like me) that are searching for a definition of what DDD is, which are its main parts and what is its main goal.

Remote Working - More Than One Year On...

mike lines

Someone was asking me about my thoughts on Remote Working after 2020, and after the quite peculiar year we had both from a personal and professional perspective, I had so many I decided to write them down and share them!

The power of functional interfaces in test

manuel mandatori

How to use functional interfaces to mock behaviours in tests without implementing classes

Unit testing in Kotlin with JUnit 5 and MockK

fabrizio duroni

I recently discovered MockK, a mocking library created for Kotlin. Let's see how it is possible to write modern unit tests with MockK + JUnit 5.

Pair programming tips and tricks

fabrizio giovannetti

Pair programming is a well-known XP technique that is not difficult to implement. But as usual with a new approach, it's easy to start but not so easy to start well. I would like to share with you my experience of pair programming while hoping to give you some useful advice.

How to live in a pure world

angelo sciarra

Make side effects pure

A matter of purity

angelo sciarra

What are pure functions? Why should you even care?

Checked vs unchecked exception (with FP glasses)

angelo sciarra

The dark side of Unchecked Exceptions

Foundations of a Performing Team

raffaella rossini
daniela pavesi

What defines a good team? The "Foundations of a Performing Team" is our shared answer to that question, co-created by our people. A shared map towards excellence.

How to: enable Hermes JavaScript engine in your React Native app

fabrizio duroni
francesco bonfadelli
marco de lucchi

React native 0.60.4 has a new cool feature for Android: a new JavaScript engine called Hermes. Let's see how you can turn it on in your React Native application to get all its benefits.

Why is CSS-in-JS no-nonsense?

lukasz wroblewski

One may agree or disagree with that question but CSS-in-JS is becoming a more popular solution to handle styles for components in code. See how to use it and what is wrong and good in it.

React Native: Native Modules and UIViewController communication on iOS

fabrizio duroni

Leverage the power of NSNotificationCenter to implement communication between React Native Native modules (aka bridges) and your native code on iOS

Comonads for booking correlation

emanuele colombo

How can category theory and typeclasses help us in our daily job? Let's see an example of real world usage for the Applicative and Comonad typeclasses.

Event Storming Experience

rabbani kajamohideen

The biggest challenge on adapting to Domain Driven Design is to change the mindset of people in their design thinking and bring everyone to the same page. Here we are sharing our own experience on how we tackled these challenges with the powerful Event Storming workshop

Themify your (S)CSS Modules

aurelio gamero

Personalise your application with shiny themes combining CSS Modules and Bootstrap SASS

Using Gradle Kotlin DSL with junit 5

juan ara

Gradle 5 has been out for a while now and with that we finally got the ability to write our Gradle scripts in Kotlin. How can I migrate my JUnit-enabled Gradle scripts to Kotlin Gradle DSL?

Measuring KPIs of Continuous Delivery on Jenkins

francesco gualazzi
mauro ferratello

Recording Four Key Metrics and beyond to track our way down to effective software delivery: this is the story of how we enriched our visibility inside pipelines execution steps to improve our CI/CD architecture.

Modular functional programming with Kotlin

emanuele colombo

Functional programming in Kotlin could be very easy on the small, but how we can build a real-world application, splitting the code in some indipendent components and make them easily testable? Let's see a possible approach in order to solve this problem.

React Native: there is a debug for that!

fabrizio duroni
mariano patafio

Learn how to leverage the power of RCTBundleURLProvider to build, run and debug on an iOS device from Xcode

Heimdall: a Cloudflare monitoring tool

massimo vailati

Heimdall, all-seeing and all-hearing.

Ingress-Nginx bug makes a comeback

francesco gualazzi
manuel ranieri

A three years old bug in Kubernetes' Ingress-Nginx makes a comeback in an even more subtle form...

Chasing a Kubernetes connection reset issue

manuel ranieri
paolo vitali
francesco gualazzi

When working with open source the help from the community can come in many ways, from a post on the Kubernetes blog we found a solution to a problem that we were not able to address.

Refactor your data class and you'll sleep like a baby


How to refactor code coupled with a data class?

Distributed authorization in Microservices with Spring

valerio vaudi

How can you centralize your user in a distributed world?


social team

You are one click away from learning more about how we work.

    Refactoring: a real case of a nested if structure transformed into a chain of responsibility

    francesco bonfadelli

    It seemed a normal day of work when one of our managers called a meeting to inform us of a very urgent feature that should be put in production within 2 days.

    First time as speakers. Here's how we prepared

    fabrizio duroni
    alessandro romano

    We got the opportunity for the first time to be on the other side of a talk: we were the speakers. We share how we prepared for our talk about React, React Native and Typescript.

    You can run your Design Sprint in 2 days. For real.

    fabrizio duroni

    We gathered in a wonderful location to design our next feature. We ran our personal Design Sprint with a strong time constraint, here's how it went.

    Eat Your Own Dog Food: distribute a beta version of your iOS app

    giordano tamburrelli
    fabrizio duroni

    Read how we managed to distribute a beta version of our iOS app using an Apple Enterprise Developer Program and GitHub Pages.

    React Native + Typescript, love at first sight. Setup in an existing app.

    fabrizio duroni

    You can run your React Native integration with Typescript in a couple of minutes in an existing app. Just read our example.

    Clean Code: data structures vs objects and the law of Demeter

    fabrizio duroni

    Ever wondered about the differences between data structures and objects? Let's analyze them with the help of the Law of Demeter.

    Android Studio vs Xcode vs AppCode: a brief comparison about coding speed

    fabrizio duroni
    francesco bonfadelli
    tommaso resti

    Being able to write code faster is a non-plus-ultra in every kind of software development. We made a comparison, take a look at our results.

    Clean Code: meaningful names

    fabrizio duroni

    Naming things is one of the most difficult part of our job, still it is one of the more effective way to communicate the intention of a piece of code. Take a look to a real example.