Linqpad – the virtual scratchpad you never knew you wanted (until now)

Many engineers keep a paper scratchpad on their desk to doodle ideas and concepts that can eventually be turned into a working piece of technology. But there is also a benefit in keeping a virtual scratchpad as well – and linqpad is just the right tool for the job.  It’s all about the Dump()  The […]

Understanding index fragmentation in SQL Server

Recently, developers at Mews started approaching us with observations like these:  Why don’t we rebuild indexes more often when their fragmentation is so high?  We were trying to optimize a query and couldn’t do much. But we think rebuilding the indexes would really help as it would fix the fragmentation.  This is a very interesting […]

Increasing payment terminal performance with optimism

Back in 2019, we introduced Mews Terminals. Right from the start, this proved to be a popular addition to the Mews product offering. Between 2020 and 2021, the number of terminal devices deployed to hotels around the globe increased by 718%. And the volume of processed payments increased by 4085%. With such an increase in […]

Do you understand your own code?

At Mews, we’re all about writing code that’s easy to read, understand and consequently maintain. So, while we could probably write our open source libraries faster than we do, we take a little extra time to invest in our future. In this blog post I’ll share with you a couple of things that help us […]

C# Static Constructor Performance Mystery

We like functional programming a lot at Mews, and one of the most basic and mundane, yet extremely powerful concepts is Maybe monad. Maybe is called Option in FuncSharp, which is the functional programming embodiment of our choice for C#. Option and its Map method, which is basically a projection of an option’s value (if […]

C# code style by EditorConfig in .NET 5 SDK and beyond

In this article, I’ll help you understand how to ensure modern C# code style with .NET 5 SDK and EditorConfig. It will save you hours of reading documentation and GitHub issues. Basically, it’s an article I would have liked to read when I first started building our .editorconfig for .NET 5 in Mews. What is […]

Types First

Have you ever come across a piece of code wrapped in seemingly random validation conditions?

How has Mews made me a better developer (even before I joined)

“Well, this is interesting!” I silently uttered to myself as I was digging deeper into a topic that now, after the experience, I think anybody who’s serious about software development should learn. Yet, if it wasn’t for my interview at Mews, which incentivized me and inspired me to learn the topic, I probably wouldn’t learn […]

How we selected infrastructure as code tool that is the best fit for us

Why define infrastructure through code? There is a lot of chatter lately about infrastructure as code in the Cloud engineers/DevOps community, but one should not get hyped up about the latest technology/framework/library and invest time and resources into it right away. That could easily turn into a huge waste of time when you realize after […]

Declarative Infrastructure as Code with Pulumi

Infrastructure as code (IaC) has been a big project for us recently, and we clearly saw the benefits it would bring. These benefits include applying our existing review process to our infrastructure (not just to the application code); using languages, tools, and build chains that we already know; and allowing for scenarios that are difficult […]

Beaches, Beers, Archaeology, and Changing Careers at 30

If you’re living in Prague and you know an American, they most likely came over to teach English. However, not many of them stick with it for too long, and that’s the story for Tim. Surprisingly, after his short-lived English teaching career, Tim’s passion for archaeology got him interested in programming and computers in general. […]

Standa: fan of Bob Dylan, algorithmic randomness, and Calvin Coolidge

The 30th US president, Calvin Coolidge, was known to be a man of few words. Luckily, that wasn’t the case with Standa during our interview. We covered everything from the hard life of a PhD student and changing musical taste to a recently developed passion for road bikes. Standa gave us some tips about where […]

Are we migrating to microservices and should you?

“Should we migrate from monolith to microservices?” That’s the inevitable question most scaling companies ask these days, including Mews. Looking at the state of the art, one might rephrase Dan Ariely’s quote about Big Data to microservices. Microservices are like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks […]

Pair programming in the Payments team

A few months ago, we had a discussion about problems that members of the Payments team face. We identified knowledge sharing as the main problem: the Payments team takes care of payments, obviously, but that means communication with payment service providers, card tokenization, payment automation… And it’s not just a complex domain, but also an […]

Tech­Uncovered: Backend

TechUncovered: Backend happening at the beginning of December 2020 was the 4th event of our TechUncovered series. ‌‌‌ With this series we aim to bring insights from engineering leaders of tech companies that already passed the initial startup phase. The previous events covered following topics:‌ Scaling tech teams with Mews, STRV, Productboard, SCS Software & […]

Composition over inheritance: road to algebraic data types

How many times have you worked with inheritance hierarchy, which was almost impossible to change? Which made you feel like you are not the one in control, but just plugging bits and pieces into this big colossus? If you make living out of programming for some while, chances are you have experienced this more than […]

Learning is good: no matter if it’s management, piano or F#

I was really looking forward to interviewing Pepa one day. I had observed him for months, almost like David Attenborough observes emperor penguins mating in Antarctica. And, indeed, he is a unique species. Talking to him, you wouldn’t think that he was born after the Czech hockey team won the gold medal at the Nagano […]

FSharpPlus: Advanced FP concepts in F#

Many developers who discover F# as their first functional language are amazed by features such as algebraic data types or immutability by default. However, this is not the end of what FP has to offer, but mere beginning. In the talk I gave at F# Online Meetup, I presented more advanced concepts of functional programming […]

Amsterdam: the city of… .NET talks

The fear I hate flying. Even though it’s said to be the safest method of transportation, my fear of heights, fear of speed, and claustrophobia don’t really make it feel that way. And if something goes wrong, you’re doomed. Sooner or later, everybody found out about me and flying. Some were a bit surprised, especially […]

Functional programming in C#

On February 17 2020 I gave a talk at .NET / dotnet Amsterdam meetup. In this talk I slowly incorporated the main benefits of functional programming into C # with a much easier learning curve to functional concepts opposed to starting in purely functional languages as an OOP programmer. Check my slides, and read more […]

Automated zero-downtime migrations

Mews is used by hotels all over the world in various time zones leaving us with no room for maintenance downtime. This fact and our aim for continuous deployment left us no other choice than zero downtime deployments, as having even short outages is obviously not an option. However, these non-breaking migrations are executed manually […]

Meet the MewsDevs – Jarda

Over the years working closely with our development team I’ve realized that I am surrounded by people with such random and extraordinary natures that it would be a shame if we didn’t tell the world about them. You are reading the first piece of what we envision as a series of Meet the MewsDevs interviews. […]

Direct printing in a cloud application

Having a cloud solution is really cool, you can access the system anywhere and from any device – notebook, mobile or tablet. There are other advantages, like working remotely without boring settings and using a VPN to access your company network. Everything seems to be going great until you need to access local devices from […]

Continuous delivery of release notes

In Mews, on our journey towards continuous product delivery, we faced an unanticipated, but really important issue for our customers; promptly informing them about updates and new features of the system, also known as “release notes”. Solving this became a precondition for us going full steam ahead  with continuous delivery. With a few deployments a […]

Zero downtime deployments with EntityFramework

Mews is used by hotels all over the world in various time zones leaving us with no room for maintenance downtime. This fact, and our aim for continuous deployment left us no other choice than zero downtime deployments, as having even short outages is obviously not an option. Our application uses Entity Framework with code […]