<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Will Sewell</title>
    <link href="http://willsewell.com/atom.xml" rel="self" />
    <link href="http://willsewell.com" />
    <id>http://willsewell.com/atom.xml</id>
    <author>
        <name>Will Sewell</name>
        <email>me@willsewell.com</email>
    </author>
    <updated>2024-08-27T00:00:00Z</updated>
    <entry>
    <title>How Monzo run migrations across 2,800 microservices</title>
    <link href="https://monzo.com/blog/how-we-run-migrations-across-2800-microservices" />
    <id>https://monzo.com/blog/how-we-run-migrations-across-2800-microservices</id>
    <published>2024-08-27T00:00:00Z</published>
    <updated>2024-08-27T00:00:00Z</updated>
    <summary type="html"><![CDATA[One of the challenges with a microservices architecture is that it's hard to keep libraries up to date across all services. In this post I describe how Monzo's approach of centrally driven migrations helps us achieve consistent upgrades to libraries while minimising coordination overhead across the engineering organisation.]]></summary>
</entry>
<entry>
    <title>Argo Rollouts at scale: Bringing Automated Rollbacks to 2,100+ services at Monzo</title>
    <link href="https://monzo.com/blog/2022/11/02/argo-rollouts-at-scale" />
    <id>https://monzo.com/blog/2022/11/02/argo-rollouts-at-scale</id>
    <published>2022-11-07T00:00:00Z</published>
    <updated>2022-11-07T00:00:00Z</updated>
    <summary type="html"><![CDATA[How my team at Monzo used Argo Rollouts to bring automated rollbacks to all 2,100+ services. The post digs into how we integrated Argo Rollouts into our existing tooling and described the migration process. Finally, we wrap up with lessons learnt.]]></summary>
</entry>
<entry>
    <title>How Monzo deploy to production over 100 times a day</title>
    <link href="https://monzo.com/blog/2022/05/16/how-we-deploy-to-production-over-100-times-a-day" />
    <id>https://monzo.com/blog/2022/05/16/how-we-deploy-to-production-over-100-times-a-day</id>
    <published>2022-05-16T00:00:00Z</published>
    <updated>2022-05-16T00:00:00Z</updated>
    <summary type="html"><![CDATA[How Monzo have optimised their engineering culture, tooling, and architecture to make the path from idea to production as frictionless as possible, all without sacrificing safety.]]></summary>
</entry>
<entry>
    <title>What are your company's anti-values?</title>
    <link href="http://willsewell.com/posts/2022-02-15-what-are-your-companys-anti-values.html" />
    <id>http://willsewell.com/posts/2022-02-15-what-are-your-companys-anti-values.html</id>
    <published>2022-02-15T00:00:00Z</published>
    <updated>2022-02-15T00:00:00Z</updated>
    <summary type="html"><![CDATA[Musing on what makes effective company values.]]></summary>
</entry>
<entry>
    <title>Counting connections at scale</title>
    <link href="https://pusher.com/blog/counting-connections-at-scale/" />
    <id>https://pusher.com/blog/counting-connections-at-scale/</id>
    <published>2021-02-21T00:00:00Z</published>
    <updated>2021-02-21T00:00:00Z</updated>
    <summary type="html"><![CDATA[Building connection counting in a scaleable way is tricky. This blog post describes how Pusher solves this problem.]]></summary>
</entry>
<entry>
    <title>How Pusher unified the product dashboards</title>
    <link href="https://pusher.com/blog/how-pusher-unified-the-product-dashboards/" />
    <id>https://pusher.com/blog/how-pusher-unified-the-product-dashboards/</id>
    <published>2020-08-05T00:00:00Z</published>
    <updated>2020-08-05T00:00:00Z</updated>
    <summary type="html"><![CDATA[I don't think any company intends on having two dashboards (!), but that is exactly what we ended up with at Pusher. This post is a reflection on how we ended up in this situation and explain the steps we took to remedy it.]]></summary>
</entry>
<entry>
    <title>Debugging MySQL replication lag by diving into the internals</title>
    <link href="https://web.archive.org/web/20230330103328/https://making.pusher.com/debugging-mysql-replication-lag/" />
    <id>https://web.archive.org/web/20230330103328/https://making.pusher.com/debugging-mysql-replication-lag/</id>
    <published>2020-03-13T00:00:00Z</published>
    <updated>2020-03-13T00:00:00Z</updated>
    <summary type="html"><![CDATA[In this post we investigate high replication lag in a MySQL database. In order to investigate it, it is helpful to dig into the replication internals, and that's what we do in this post. We look at the main processes and files used in the replication process as well as the different binary log formats and their pros and cons.]]></summary>
</entry>
<entry>
    <title>Hot SRE trends in 2019 (brought to you from SREcon EMEA)</title>
    <link href="https://web.archive.org/web/20221231082941/https://making.pusher.com/hot-sre-trends-in-2019/" />
    <id>https://web.archive.org/web/20221231082941/https://making.pusher.com/hot-sre-trends-in-2019/</id>
    <published>2019-10-31T00:00:00Z</published>
    <updated>2019-10-31T00:00:00Z</updated>
    <summary type="html"><![CDATA[A couple of weeks ago I attended SREcon EMEA 2019 in Dublin. I felt like I learned a lot over the (exhausting!) 3 days, 19 talks and 2 workshops I attended, so I wanted to write up my experience.]]></summary>
</entry>
<entry>
    <title>Ephemeral port exhaustion and how to avoid it</title>
    <link href="https://web.archive.org/web/20220823105606/https://making.pusher.com/ephemeral-port-exhaustion-and-how-to-avoid-it/" />
    <id>https://web.archive.org/web/20220823105606/https://making.pusher.com/ephemeral-port-exhaustion-and-how-to-avoid-it/</id>
    <published>2018-05-22T00:00:00Z</published>
    <updated>2018-05-22T00:00:00Z</updated>
    <summary type="html"><![CDATA[Recently, our WebSocket servers stopped accepting all new connections. The culprit: ephemeral port exhaustion. This post explains the problem, and how to avoid it.]]></summary>
</entry>
<entry>
    <title>Alternatives to sum types in Go</title>
    <link href="https://web.archive.org/web/20220519083447/https://making.pusher.com/alternatives-to-sum-types-in-go/" />
    <id>https://web.archive.org/web/20220519083447/https://making.pusher.com/alternatives-to-sum-types-in-go/</id>
    <published>2018-01-25T00:00:00Z</published>
    <updated>2018-01-25T00:00:00Z</updated>
    <summary type="html"><![CDATA[Golang does not support "sum types" natively. This post describes techniques for simulating them.]]></summary>
</entry>

</feed>
