<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>edgecompute.dev</title><description>Dev blog for Lar Van Der Jagt</description><link>https://edgecompute.dev</link><item><title>Inventing the Future by Owning It: Reflections on the FutureRuby Conference</title><link>https://edgecompute.dev/posts/reflections-on-the-futureruby-conference</link><guid isPermaLink="true">https://edgecompute.dev/posts/reflections-on-the-futureruby-conference</guid><description>I recently attended the FutureRuby conference in Toronto, Ontario CA. It was put on by the incredible people at Unspace &amp; was exactly what I needed at this point in my life.</description><pubDate>Sun, 02 Aug 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I recently attended the FutureRuby conference in Toronto, Ontario CA. It was put on by the incredible people at Unspace &amp;amp; was exactly what I needed at this point in my life.&lt;/p&gt;
&lt;h2&gt;What is FutureRuby?&lt;/h2&gt;
&lt;p&gt;FutureRuby is unlike any other conference I’ve heard of. Though targeted at Ruby programmers there were only a few talks which were purely technical in nature. Unspace did a great job explaining their goals in the
FutureRuby
mission statement:&lt;/p&gt;
&lt;p&gt;FutureRuby isn’t a Ruby conference, but a conference for Rubyists. This is a call to order – a congress of the curious characters that drew us to this community in the first place. We have a singular opportunity to express a long-term vision, a future where Ruby drives creativity and prosperity without being dampened by partisan politics.&lt;/p&gt;
&lt;p&gt;The distinction between being a Ruby conference &amp;amp; a conference for Rubyists is an important one which was echoed in every aspect of the conference. At a Ruby conference the pivot point is the language itself. What Unspace did was shift that pivot point towards us, the Rubyists.&lt;/p&gt;
&lt;p&gt;In his talk Polyglots Unite! &lt;a href=&quot;http://www.foysavas.com/&quot;&gt;Foy Savas&lt;/a&gt; provided an excellent definition of a Rubyist:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rubyist (n): Person who has come to realize, through Ruby, that the computer should serve them and not vice versa.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I wanted illustrate some of the ways Unspace made FutureRuby all about us, the Rubyists. I will discuss some of the standout talks in separate posts.&lt;/p&gt;
&lt;h2&gt;Telling a Story&lt;/h2&gt;
&lt;p&gt;There is a difference between an album &amp;amp; a collection of tracks. An album is a cohesive whole where each song supports the others to create a work which is greater than the sum of it’s parts. It tells a story through it’s structure, themes &amp;amp; sometimes words.&lt;/p&gt;
&lt;p&gt;Unspace created a living canvas for the speakers &amp;amp; attendees to help write FutureRuby’s story. Over the course of the weekend I took great pleasure in watching this story unfold through the talks, events &amp;amp; conversations. I have no idea if the speakers coordinated their talks, or how much guidance Unspace provided regarding themes, but I was often struck by how each talk seemed to relate to the others in some way.&lt;/p&gt;
&lt;p&gt;Themes such as the banality of evil, owning the means of production, personal accountability &amp;amp; introspection were represented. Talks heavy in “wetware” content were spliced with technical presentations &amp;amp; lighter fare, giving us time to consider the implications of previous talks.&lt;/p&gt;
&lt;p&gt;The whole thing was capped by a powerful talk from &lt;a href=&quot;http://jessehirsh.com/&quot;&gt;Jesse Hirsch&lt;/a&gt; which railed against the Californian Ideology. Jesse urged us to trust those close to us, our friends, families &amp;amp; community over the business interests of the elite. Though controversial, I feel that it perfectly wrapped up several of the recurring themes. I left the conference buzzing with the thrill of new horizons.&lt;/p&gt;
&lt;h2&gt;Community is King&lt;/h2&gt;
&lt;p&gt;One of the key points to take away from Jesse’s talk was the importance of community. One of the best things about FutureRuby was the attention put into enabling a community atmosphere.&lt;/p&gt;
&lt;p&gt;My first conference was RubyConf in 2008. Being surrounded by so many smart people was inspiring but I didn’t leave feeling like I was part of their community. Unspace created an environment where you couldn’t help but connect with other attendees.&lt;/p&gt;
&lt;p&gt;They did this by organizing social events each night. These included FAILCamp on an island, a kickoff party in their offices, a &lt;a href=&quot;https://www.flickr.com/photos/leftist/sets/72157621585615638/&quot;&gt;Soviet themed catered gala at the Pravda Vodka bar&lt;/a&gt; &amp;amp; a multi-venue block party. Open bars at each event ensured that even the most socially awkward geeks were lubricated enough to connect with our peers.&lt;/p&gt;
&lt;p&gt;As a result of these efforts I left the conference knowing that I would miss the &lt;strong&gt;people&lt;/strong&gt; most. I finally felt like a part of this community I’ve been lurking around for over two years.&lt;/p&gt;
&lt;h2&gt;All in the Details&lt;/h2&gt;
&lt;p&gt;Throughout all of this Unspace went above &amp;amp; beyond to ensure that the experience was top notch. Extra perks like discounted iPhone training, a workshop where you could grow your own bacteria &amp;amp; transit passes so that you could explore Toronto on your downtime (what downtime?) helped keep us engaged at all times.&lt;/p&gt;
&lt;p&gt;The Soviet propaganda theme was consistently used with great effect. Upon registration we were greeted with a canvas swag bag with a FutureRuby patch, pin, book of matches &amp;amp; T-shirt. There was a full sized promotional poster available which I plan to frame &amp;amp; hang proudly on my wall. Even the badges &amp;amp; backdrops for the slides stuck with the iconic Soviet imagery.&lt;/p&gt;
&lt;p&gt;The catered lunches &amp;amp; dinner at Pravda were delicious. Food &amp;amp; drink was plentiful &amp;amp; every effort was made to accommodate different dietary requirements.&lt;/p&gt;
&lt;p&gt;These details combined with the excellent talks &amp;amp; quality company helped create an experience which was far more than the sum of it’s parts.&lt;/p&gt;
&lt;h2&gt;Wrapping Up &amp;amp; Thanks&lt;/h2&gt;
&lt;p&gt;If this reads like a fluff piece, that’s probably because it is. And a well deserved one. FutureRuby ranks near the top of my Best Ever experiences, among multiple European adventures &amp;amp; seeing my favorite band play through sunrise on a boat in the Caribbean. I will do everything in my power to be at any Unspace events in the future.&lt;/p&gt;
&lt;p&gt;Some thanks are definitely in order as well:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://twitter.com/peteforde&quot;&gt;Pete Forde&lt;/a&gt;, &lt;a href=&quot;http://www.twitter.com/meghatron&quot;&gt;Meghann Millard&lt;/a&gt; &amp;amp; the rest of the Unspace crew &amp;amp; volunteers for putting their heart &amp;amp; soul into making this the best experience for us possible. Dan Grigsby of Mobile Orchard &amp;amp; &lt;a href=&quot;http://www.urbanhonking.com/ideasfordozens/&quot;&gt;Greg Borenstein&lt;/a&gt; for going out of their way to make me feel welcome.  &lt;a href=&quot;http://www.globalnerdy.com/&quot;&gt;Joey deVilla&lt;/a&gt; for his detailed notes on some of the talks which helped refresh my memory for this post. The Shopify team for keeping the bar open at Pravda. And most importantly all of the amazing people I met for the stimulating conversation &amp;amp; inspiration.&lt;/p&gt;
&lt;h2&gt;FutureRuby Elsewhere&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://freelancing-gods.com/2009/07/12/future-ruby-and-californian-conflict.html&quot;&gt;Pat Allan on FutureRuby &amp;amp; Californian Conflict&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.supergenius.ca/2009/07/futureruby-reflections.html&quot;&gt;Jay Tennier on the importance of proximity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.shindigital.com/blogpost/53&quot;&gt;Andrew Burke with more on shared leftist themes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Joey deVilla’s notes
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.globalnerdy.com/2009/07/15/futureruby-talk-fighting-the-imperial-californian-ideology/&quot;&gt;Fighting the Imperial Californian Ideology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.globalnerdy.com/2009/07/16/futureruby-talk-artisanal-retro-futurism-and-team-scale-anarcho-syndicalism/&quot;&gt;Artisanal Retro-Futurism and Team-Scale Anarcho-Syndicalism&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Various wrap up posts
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://hyfen.net/tags/futureruby/&quot;&gt;Andrew Louis’ posts tagged with FutureRuby&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://deadprogrammersociety.blogspot.com/search/label/futureruby&quot;&gt;Ron Evans’ posts tagged with FutureRuby&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.infoq.com/futureruby/&quot;&gt;Video of talks on InfoQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.flickr.com/photos/tags/futureruby/&quot;&gt;Photos tagged with FutureRuby on Flickr&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><author>Lar Van Der Jagt</author></item><item><title>Unpacking the Tech Debt Metaphor</title><link>https://edgecompute.dev/posts/unpacking-the-tech-debt-metaphor</link><guid isPermaLink="true">https://edgecompute.dev/posts/unpacking-the-tech-debt-metaphor</guid><description>Some thoughts on the use and abuse of the Tech Debt metaphor.</description><pubDate>Mon, 18 Mar 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;:::note
This post was originally published as a thread on Twitter. I am exhuming it from the ruins of that site as an archive of some of my thinking on the use of tech debt as a metaphor that can be shared in good conscience. It has been lightly edited to fix typos and spelling but otherwise left as is.
:::&lt;/p&gt;
&lt;p&gt;Gonna do a thread with some thoughts on &quot;technical debt&quot;, why I stopped using this metaphor with my clients and the teams I work with, and what I use instead. I&apos;ve come to believe misuse of the debt metaphor has led to immense hidden costs and harm to software projects.&lt;/p&gt;
&lt;p&gt;First, a bit of history about the origin of the metaphor. In 1992 Ward Cunningham wrote an &apos;experience report&apos; where he describes the idea of technical debt while working on a financial services application: https://c2.com/doc/oopsla92.html&lt;/p&gt;
&lt;p&gt;The relevant line from the report: &quot;Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite.&quot; This matches pretty well with the first cause listed on wikipedia:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./tech-debt-thread-0001.jpg&quot; alt=&quot;Insufficient up-front definition, where requirements are still being defined during development, development starts before any design takes place. This is done to save time but often has to be reworked later.&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, the list goes on for a dozen more items, none of which have much to do with the original definition. This suggests that the metaphor is bearing far too much weight and may not be conveying the message it&apos;s meant to.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;./tech-debt-thread-0002.jpg&quot; alt=&quot;Six things that are called tech debt that don&apos;t fit the metaphor&quot; /&gt;
&lt;img src=&quot;./tech-debt-thread-0003.jpg&quot; alt=&quot;Seven additional things that are called tech debt that don&apos;t fit the metaphor&quot; /&gt;&lt;/p&gt;
&lt;p&gt;To understand how this happened, we can take a closer look at the context and process that lead to the metaphor. In order to communicate some risk, Cunningham needed to bridge a gap in understanding about software engineering practices with a stakeholder.&lt;/p&gt;
&lt;p&gt;To bridge this gap he reached for a metaphor within the domain of the project, a domain in which the stakeholder was presumably already a subject matter expert in. The debt/interest metaphor was meant to illustrate that a course of action would result in a business liability.&lt;/p&gt;
&lt;p&gt;The stakeholder would be in a good position to use that metaphor to ask relatively sophisticated questions about the impact different design decisions might have on that liability. This shared domain context is what gave the metaphor power.&lt;/p&gt;
&lt;p&gt;When the community picked up technical debt as a general purpose metaphor that context was lost. It was used to describe almost any case where compromises were made in the interests of expediency. Liabilities were being acquired incidentally without deliberation or awareness.&lt;/p&gt;
&lt;p&gt;Taking on real debt doesn&apos;t work like this. Terms of repayment are clear. You can calculate the cost of the debt and make business decisions that leverage it to bring you a return. Lenders are (supposed to be) incentivized to ensure your business will be able to repay.&lt;/p&gt;
&lt;p&gt;There is a massive industry dedicated to calculating risk to ensure profits can be made. There is a ton of paperwork, legally binding contracts are signed, and there are standard accounting practices to be followed.&lt;/p&gt;
&lt;p&gt;When these conditions are not met it becomes more like predatory debt. It&apos;s as if you&apos;ve been funding your project with a steady drip of easy money from loan sharks. They show up to collect at unexpected times and charge arbitrary fees if you&apos;re not diligent about payments.&lt;/p&gt;
&lt;p&gt;Every decision that results in this kind of debt is like selling a little bit of your company&apos;s future out to these loan sharks. This kind of debt can be acquired incidentally and there are no caps so it&apos;s easy to pile up.&lt;/p&gt;
&lt;p&gt;Every time an engineer gets pinged at 3am to debug that ancient nightly script that nobody can find time to rewrite is a payment. Every feature that gets killed because the refactor needed to support it is too big is a payment.&lt;/p&gt;
&lt;p&gt;Every time it takes weeks to onboard a new team member you&apos;re making payments on that debt. Every time a developer gets pulled away from feature work to manually patch up some state that got mangled in callback hell you&apos;re making payments.&lt;/p&gt;
&lt;p&gt;None of these payments end up as a line item on any balance sheet. There is very little institutional awareness that they&apos;re being made and it often takes a disaster before anybody realizes the problem. In the worst cases these payments can end up sinking entire companies.&lt;/p&gt;
&lt;p&gt;There are also second order effects that can be difficult to account for, such as impact on morale of constantly struggling against technical debt. Poor morale can impact retention and encourage brain drain of those with the institutional memory needed to manage the debt.&lt;/p&gt;
&lt;p&gt;There have been lots of attempts to improve this situation by qualifying or classifying different types of technical debt. This can improve the impact of the metaphor but comes at the cost of increased overhead of a larger surface area required for shared understanding.&lt;/p&gt;
&lt;p&gt;I took an alternate approach and started to reconsider the debt metaphor itself. I wanted a more intuitive, general purpose metaphor that could apply to the wide variety of situations that get described as technical debt in practice.&lt;/p&gt;
&lt;p&gt;I eventually landed on friction. You don&apos;t need more than a high school understanding of physics to talk in terms of friction. You can easily come up with scenarios based on friction in a wide variety of domains, and they&apos;ll usually be based on far simpler principles than debt.&lt;/p&gt;
&lt;p&gt;The technical debt metaphor encourages speculation about the future. The friction metaphor encourages concrete thinking. You can identify existing sources of friction and begin to measure their impacts. You can invest strategically in removing sources of friction.&lt;/p&gt;
&lt;p&gt;Most of the &quot;extra&quot; causes of technical debt fit the friction metaphor better. You can talk about causes of the issue, it&apos;s impacts and resolutions in terms of the metaphor. You can start to quantify it and make decisions about where to invest to reduce friction.&lt;/p&gt;
&lt;p&gt;If your team has been struggling with technical debt it may help to reframe the problem in terms of friction. If you&apos;d like help applying this idea in your organization, I&apos;m currently accepting new clients. Please get in touch!&lt;/p&gt;
</content:encoded><author>Lar Van Der Jagt</author></item><item><title>Temporal Ruby + OpenTelemetry + Honeycomb</title><link>https://edgecompute.dev/posts/temporal-ruby-opentelemetry</link><guid isPermaLink="true">https://edgecompute.dev/posts/temporal-ruby-opentelemetry</guid><description>A basic example of instrumenting a Temporal Ruby app to send traces to Honeycomb.</description><pubDate>Thu, 03 Jul 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A basic example of instrumenting a Temporal Ruby app to send traces to Honeycomb.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://temporal.io/code-exchange/temporal-ruby-opentelemetry&quot;&gt;Temporal Ruby + OpenTelemetry&lt;/a&gt;&lt;/p&gt;
</content:encoded><author>Lar Van Der Jagt</author></item></channel></rss>