Categories

  • No categories

Automated UI testing with Cypress

It’s been more than a year-and-a-half since we started using Cypress for our automated functional testing, and it has been well worth the investment. Cypress has now become an essential part of our process to automate regression testing, which helps us ship new releases faster, with increased quality. Getting started with Cypress is fun and …

Layered store and struct embedding in Go

One of the most important parts of the Mattermost source code is the one responsible for accessing the Mattermost database: the store. Every single database access is handled by the store, so we needed to find a way to extend its functionality while introducing as little complexity as possible. This is the reason behind the …

Monitoring the Mattermost server with Prometheus and Grafana

Lately we’ve been working on improving different parts of the Mattermost server, including our monitoring and observability capabilities. We’ve been using Prometheus and Grafana to monitor our cluster for a while now, and you can read this great post where my colleague Stylianos explains how we have them working for our multi-cluster environment.  In this …

OpenTracing for Go projects

What is distributed tracing? Large-scale cloud applications are usually built using interconnected services that can be rather hard to troubleshoot. When a service is scaled, simple logging doesn’t cut it anymore and a more in-depth view into system’s flow is required. That’s where distributed tracing comes into play; it allows developers and SREs to get a detailed …

From OpenVPN to Pritunl VPN: The transition

Usually, organizations use an internal network to prevent unauthorized people from connecting to their private network. By using their own network infrastructure and connectivity, they can maintain their desirable level of security for their data. But it would be convenient for users to connect to that private network while they are away from the office …

Getting hands-on with io_uring using Go

In Linux, system calls (syscalls) are at the heart of everything. They are the primary interface through which an application interacts with the kernel. Therefore, it is vital that they are fast. And especially in a post-Spectre/Meltdown world, this is all the more important. A major chunk of the syscalls deal with I/O, because that’s …

Advanced Git with the Free University of Tbilisi

On Monday, March 16, 2020, I had the privilege to (virtually) join Shota Gvinepadze and his students at the Free University of Tbilisi and speak about “Advanced Git @ Mattermost” for a portion of their class time. The following are my speaking notes from the session, slightly modified from the original slides for this format. Keep in mind that the command …

Tips, tricks, and tools for working remotely

In recent weeks, the coronavirus pandemic has forced millions of people around the world to suddenly work from home. For many, remote work had been an occasional experience; for others, it was altogether unfamiliar. Now, working from home is the “new normal” for many of us, at least for the short-term.  If you are new …

Locally working with Sphinx

A short guide to working offline with Read The Docs and Sphinx on a local machine. Introduction Writing quality documentation is a great way to enable a wide audience to benefit from one’s product. I am a technical writer here at Mattermost and I have been working as developer, sysadmin, designer, support engineer and in …

Get the latest updates, releases, and more—delivered to your inbox.

We use cookies for advertising, social media and analytics purposes. Read about how we use cookies here. By continuing to use this site, you consent to our use of cookies.