Sumner Evans
Software Engineer at Automattic working on Beeper

What Happens After You Push?

In this article we are going to be investigating how the code you write gets to your users. This article is intended for consumption by computer science and software engineering students to provide insights into technologies and processes you might encounter in industry. This will be focused specifically on software delivery in web-based SaaS offerings rather than more traditional software delivery methods such as those seen in embedded systems. Every software project has different process for building, testing, and deploying to users and I’m not going to discuss every possible technology which might be used for each of these steps. Rather, I’m going to be describing what kinds of software might be used. I’ll describe how these systems affect the day-to-day work of software engineers, and I’ll also provide some thoughts on how you might integrate some of these ideas into your own personal projects.

Read more »

FOSDEM 2025

For the third year in a row, I attended FOSDEM, a Free and Open Source Software conference. I enjoyed the previous two years, and Automattic paid for me to attend, so I decided to make the hop across the pond to attend again. FOSDEM is one of the main gatherings of the Matrix community every year (probably second only to the Matrix Conference), and there is also a sizeable Go presence at the conference as well.

Read more »

Waterloo

Today I visited the Waterloo battlefield. I’d visited the town of Waterloo and the Wellington Museum last year when I came to FOSDEM, but I didn’t have time to go to the actual battlefield site. I bought a ticket that was valid for a year for both the museum and battlefield site, so I was able to use the same ticket.

Read more »

London

I once again am making a trip across the pond for FOSDEM. This time, instead of flying to Brussels, I chose to fly to London a few days early and then take the Eurostar to Brussels. The nice thing about this itinerary is that I was able to take a direct flight from Denver to London, Heathrow. The flight was not very full, and I ended up with a whole row to myself!

Read more »

Sublime Music End-of-Maintenance

Today I’m announcing that Sublime Music has reached end-of-maintenance. This announcement is greatly overdue, as I have not been actively maintaining the project for over a year, and have not been actively developing new features for even longer.

Thank You!

I would like to start off by thanking everyone who used Sublime Music, reported bugs, interacted in the Matrix room, and wrote code for the project. This project is the most successful open source project I’ve started, and I am grateful for the community that formed around it.

Read more »

Amsterdam, Netherlands - Work Retreat

This week, Beeper had our second meetup after being acquired by Automattic earlier this year. Unlike the last retreat in Porto which had lots of other Automattic employees in attendance, this was just our team and was focused on work and planning less than team-building.

Automattic is a remote-only company, so work retreats are the only time that we can connect with our co-workers in-person and build stronger personal relationships among the team. The best part is that we get to go to cool locations for these meetups. You can read about all the previous work retreats on this blog.

Read more »

Matrix Cryptographic Key Infrastructure

End-to-end encryption is one of the things which brought me to Matrix, and I’m sure that it’s one of the factors that brought many of you to Matrix as well.

However, Matrix’s user experience with cryptography is often confusing. I mainly blame the other chat networks for their incompetence. Most other chat networks don’t even provide any cryptographically-guaranteed security and privacy. Some networks provide encryption in a way that does not truly leave the user in control of their keys. Only a few networks (Signal) truly leave the user in control, and their UX is arguably worse than Matrix.

Read more »

Message Security in Matrix

In Matrix, message security is provided by Megolm. The goal of message security is twofold. We (a) want messages to be encrypted on the sender’s device and (b) only be able to be decrypted on devices of users who are a part of the conversation. As a corollary, we want to prevent other parties (rogue homeservers, man-in-the-middle attackers, etc.) from decrypting the messages.

Read more »

Matrix Cryptography Prerequisites

Understanding Matrix cryptography requires understanding some basic cryptography primitives. This article intends to explain those prerequisites in simple terms. This article is not a rigorous, mathematical description of the cryptosystems in use. Rather, it is a practical guide to what functionality each of the cryptography primitives provides. I’ve tried to include links to external resources if you are interested in learning more about a specific topic.

Read more »

Differential Fuzzing Libolm and Goolm

Background

When we at Beeper started working on the new Android app, based on mautrix-go, we initially tried using goolm as the crypto implementation instead of libolm. We almost immediately ran into issues for unknown reasons, and rather than fighting with cryptography, we decided to just put in the work to get libolm working in the Android app.

Read more »
« Previous Page 1 of 27 Next Page »