{"@attributes":{"version":"2.0"},"channel":{"title":"Dan Upton","link":"https:\/\/daniel-upton.com\/","description":"Recent content from Dan Upton","generator":"Hugo -- gohugo.io","language":"en-gb","lastBuildDate":"Thu, 05 Jun 2025 00:00:00 +0000","item":[{"title":"Workload Identity Meets Supply Chain Security: Teleport's Sigstore Integration","link":"https:\/\/goteleport.com\/blog\/workload-identity-meets-supply-chain-security\/","pubDate":"Thu, 05 Jun 2025 00:00:00 +0000","guid":"https:\/\/daniel-upton.com\/articles\/workload-identity-meets-supply-chain-security\/","description":"Thwarting supply chain attacks with Teleport Machine and Workload Identity"},{"title":"Introduction to Cassandra for SQL folk","link":"https:\/\/daniel-upton.com\/articles\/introduction-to-cassandra-for-sql-folk\/","pubDate":"Mon, 23 Mar 2020 00:00:00 +0000","guid":"https:\/\/daniel-upton.com\/articles\/introduction-to-cassandra-for-sql-folk\/","description":"\"Where we're going, we don't need foreign keys!\""},{"title":"Consensus in Distributed Systems","link":"https:\/\/daniel-upton.com\/talks\/consensus-in-distributed-systems\/","pubDate":"Tue, 25 Sep 2018 00:00:00 +0000","guid":"https:\/\/daniel-upton.com\/talks\/consensus-in-distributed-systems\/","description":"<p>As part of a series of monthly slots giving team members an opportunity to\npresent about a topic of their interest, I recently gave a talk to the <a href=\"https:\/\/geckoboard.com\">Geckoboard<\/a>\nengineering team about consensus in distributed systems.<\/p>\n<p>We took a brief tour of the challenges presented by the CAP theorem, before\ndiving into the <a href=\"https:\/\/raft.github.io\">Raft<\/a> consensus algorithm.<\/p>\n<p>The video was recorded from a conference call, so the audio isn&rsquo;t great!<\/p>\n<div style=\"position: relative; width: 100%; height: 0; padding-bottom: 56.25%;\">\n<iframe src=\"https:\/\/www.youtube.com\/embed\/zyEQuXQ7ASc\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\"><\/iframe>\n<\/div>\n<h2 id=\"resources\">Resources<\/h2>\n<ul>\n<li><a href=\"https:\/\/speakerdeck.com\/boxofrad\/consensus-in-distributed-systems\">My Slides<\/a><\/li>\n<li><a href=\"https:\/\/raft.github.io\">Raft Website<\/a><\/li>\n<li><a href=\"http:\/\/thesecretlivesofdata.com\/raft\/\">The Secret Lives of Data<\/a><\/li>\n<\/ul>"},{"title":"Building Geckoboard Lite","link":"https:\/\/medium.com\/geckoboard-under-the-hood\/building-geckoboard-lite-e86ca367d0ee","pubDate":"Mon, 02 Jul 2018 00:00:00 +0000","guid":"https:\/\/daniel-upton.com\/articles\/building-geckoboard-lite\/","description":"Running Chrome on the server to support old and low-powered devices"},{"title":"How to build a network stack in Ruby","link":"https:\/\/medium.com\/geckoboard-under-the-hood\/how-to-build-a-network-stack-in-ruby-f73aeb1b661b","pubDate":"Wed, 09 Nov 2016 00:00:00 +0000","guid":"https:\/\/daniel-upton.com\/articles\/how-to-build-a-network-stack-in-ruby\/","description":"Learning about sockets, datagrams, bit-twiddling and more \u2014 all from the comfort of a high-level language"}]}}