Technical

Experienced software engineer, you have a good technical background and you want to move on, these articles are for you.

Julien Danjou

Post Mortem of Incident 2024-09-17

On September 17th, 2024, Mergify service went down from 07:45 UTC to 09:35 UTC. Due to the nature of the incident, we think it would be interesting to share with our users the context of this incident, how we handled it, how we restored the service, and what

Julien Danjou

Optimize Software Deployment: How TeamCity and Mergify Streamline CI/CD Pipelines

CI/CD is more than just a current trend in the software development landscape. It's an essential element of a streamlined development cycle. Two tools often linked with these methodologies are TeamCity and Mergify.

Mathieu Poissard

Using Jenkins to Optimize Your CI/CD Pipeline

Continuous Integration/Continuous Deployment (CI/CD) is a crucial part of modern software development. CI/CD tools enable teams to automate the build, test, and deployment process, which is essential in improving software quality and accelerating the delivery of new features. Among the various CI/CD tools available in the

Julien Danjou

GitHub Pull Request Merge Queue FAQ

In February 2023, GitHub released its pull request merge queue feature in public beta. If you have no clue what a merge queue is, you can read about it here or watch our video below. After the announcement, many questions popped up on social media. We built a list of

Charly Laurent

Level Up Your Docker Security: Uncover Mergify's Battle-Tested Workflow for Container Image Scanning

At Mergify, we use Docker containers to run our production environments. Containers help developers deliver their code faster and ship their features in a snap, and they are now used substantially in most software-centric organizations. We are no exception. We build our images, run them, and ship them to customers

Erwan Simonetti

How to Start Using Python Typing?

Most programming languages are either statically or dynamically typed. With static typing, developers need to define the type of data used, like in the example below in the C language: int example_function(int number, char *string) From the very first look at this function, you know that it takes

Fabien Martinet

Flaky Tests: How to Fix Them?

In the world of software development, tests are easier to write than to maintain. This statement is even more accurate when it comes to flaky tests. You know, those tests that pass 90% of the time, but well, sometimes, they fail without you knowing why 😢. In cases of flakiness, each

Alexandre Gaubert

You Are Doing Jest the Wrong Way

I wrote Jest tests for over three years on a complex web application. Like me,  you are probably doing it the wrong way. Without knowing it. I'm not blaming you. Jest is an excellent test runner for frontend code, coupled with enzyme and react-testing-library for React apps, it

Charly Laurent

Clean Python: Names

What is Clean Code? Clean Code is a book written in 2008 by Robert C. Martin. It compiles a lot of knowledge to help every developer write Clean Code. But what is "clean code" exactly? A code considered "clean" is code that: 1. is easy to

Fabien Martinet

Flaky tests: what are they and how to classify them?

What is a flaky test? This is a big question since automated testing is key to CI/CD. To fully answer this question, you will understand what makes a test flaky and know the different types of flaky tests, helping you to classify them.

Aniket Pal

Is Continuous Integration, Continuous Delivery and Continuous Deployment the same?

Continuous Integration, Continuous Delivery and Continuous Deployment are like vectors pointing to the same direction but having different magnitude. The factor which makes them point in the same direction is the goal to make our software development process faster and more robust. Continuous Integration, Continuous Delivery and Continuous Deployment all

Aniket Pal

Automating security for applications with DevSecOps

Bob, after conversing with Jenny, learned about GitOps and is using it effectively. Previously what took him 8-12 weeks to develop due to operations issues can now be resolved in days. Every other week Bob builds a new version of his application. At some point, Bob's user base