<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Principal-Agent-Problems on Andrew Quinn&#39;s TILs</title>
    <link>https://til.andrew-quinn.me/tags/principal-agent-problems/</link>
    <description>Recent content in Principal-Agent-Problems on Andrew Quinn&#39;s TILs</description>
    <image>
      <title>Andrew Quinn&#39;s TILs</title>
      <url>https://til.andrew-quinn.me/papermod-cover.png</url>
      <link>https://til.andrew-quinn.me/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 25 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://til.andrew-quinn.me/tags/principal-agent-problems/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The long death of programming languages</title>
      <link>https://til.andrew-quinn.me/posts/the-long-death-of-programming-languages/</link>
      <pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/the-long-death-of-programming-languages/</guid>
      <description>&lt;p&gt;I wrote my first Clojure program in anger a few months ago.
Only, it&amp;rsquo;s not accurate to
say that I wrote it; AI did most of the writing, and I directed it on what my
design goals were and why.
Architecturally, you could call it was a stateless
&lt;a href=&#34;https://learn.microsoft.com/en-us/azure/architecture/patterns/anti-corruption-layer&#34;&gt;anti-corruption layer&lt;/a&gt;,
yapping between some REST endpoints and some ancient proprietary serialization.&lt;/p&gt;
&lt;p&gt;I had never written a Clojure program of nontrivial size before. Indeed I had
barely touched any Lisp at all
since working through &lt;a href=&#34;https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html&#34;&gt;SICP&lt;/a&gt;
during a high school summer vacation, over a decade ago.
That didn&amp;rsquo;t matter. Much more important was emphasizing certain invariants from
the start, like the aforementioned statelessness, which made it very easy to
unit and integration test, which was the true challenge.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>&#34;Courage to quit&#34; matters more for seniors, less for juniors</title>
      <link>https://til.andrew-quinn.me/posts/courage-to-quit-matters-more-for-seniors-less-for-juniors/</link>
      <pubDate>Sat, 29 Nov 2025 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/courage-to-quit-matters-more-for-seniors-less-for-juniors/</guid>
      <description>&lt;p&gt;As a teenager first getting into computers in the late 2000s I spent a lot of
time reading old
revered tomes like
&lt;a href=&#34;https://www.catb.org/~esr/writings/taoup/html/&#34;&gt;ESR&amp;rsquo;s &lt;em&gt;The Art of Unix Programming&lt;/em&gt;&lt;/a&gt;
and
&lt;a href=&#34;https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/index.html&#34;&gt;SICP&lt;/a&gt;
.
If present-day me were to isekai back in time and lose all of the technical
knowledge I had but retain my current instincts, however, I would have left
all of this on the table and just built a terrible new automation tool for
&lt;a href=&#34;https://www.kingdomofloathing.com/login.php?loginid=09ca9334301941af8f94438812a5e6f0&#34;&gt;the surprisingly scriptable MMORPG I was into&lt;/a&gt;
in PHP 5, with as much disregard for clean code and security practices
that I could muster[^1].
Then I would have put that tool online, continued to add new features to the
ball of mud, and kept it running for 5-10 years before my first post-college
interview. And then the vibe that would come across is less &amp;ldquo;He&amp;rsquo;s an egghead,
and we like that, but we really need someone who actually does things&amp;rdquo; and
more &amp;ldquo;He&amp;rsquo;s a meathead, but inside of that meathead is an egghead waiting to
be revealed. We need this kind of junior dev yesterday.&amp;rdquo;
I would have done this even though
&lt;a href=&#34;https://github.com/kolmafia/kolmafia&#34;&gt;an objectively far superior tool&lt;/a&gt;
had already existed for quite some time,
making this project &amp;ldquo;feel like&amp;rdquo; dead weight in the wide world of software!
But why?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Consider the cronslave</title>
      <link>https://til.andrew-quinn.me/posts/consider-the-cronslave/</link>
      <pubDate>Fri, 30 May 2025 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/consider-the-cronslave/</guid>
      <description>&lt;p&gt;As a nerdy, working-class kid who grew up in the 1990s, knowing what time it
actually was was a luxury I rarely had access to before I was 12 or so and my
parents finally got an Internet connection with its attendant link to the
Network Time Protocol. If you had told me I could have not just a watch but an
entire &lt;em&gt;machine&lt;/em&gt; that&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Never lost the time,&lt;/li&gt;
&lt;li&gt;Did what I wanted, how I wanted it, and&lt;/li&gt;
&lt;li&gt;Could be programmed to do what I want, how I want it &lt;em&gt;on a schedule&lt;/em&gt;,&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I would have had to substantially revise my Christmas wishlist.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Vibe coding and complementary goods</title>
      <link>https://til.andrew-quinn.me/posts/vibe-coding-and-complementary-goods/</link>
      <pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/vibe-coding-and-complementary-goods/</guid>
      <description>&lt;p&gt;Peanut butter and jelly are
&lt;a href=&#34;https://en.wikipedia.org/wiki/Complementary_good&#34;&gt;complementary goods&lt;/a&gt;,
as are cars and gasoline,
newer cars and electricity,
electricity and basically everything else.&lt;/p&gt;
&lt;p&gt;We don&amp;rsquo;t normally think of, say,
Docker and Kubernetes as
complementary goods in software engineering,
because you can get both for the low price
of free. Or can you? You still have to
invest &lt;em&gt;time&lt;/em&gt; in learning both, and
as the famous saying goes&amp;hellip;&lt;/p&gt;
&lt;p&gt;Say it takes X hours to learn Docker
adequately. If Docker suddenly becomes
easier to learn, such that it now takes
only X / 2 hours, it&amp;rsquo;s reasonable to assume
Kubernetes will become more popular in tandem,
because one of its complements now costs
less and is hence supplied in greater
quantities anyway. You don&amp;rsquo;t
want a peanut butter only sandwich, do you?&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Enforce GPL compliance by offering bounties?</title>
      <link>https://til.andrew-quinn.me/posts/enforce-gpl-compliance-by-offering-bounties/</link>
      <pubDate>Sat, 21 Sep 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/enforce-gpl-compliance-by-offering-bounties/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Epistemic status:&lt;/strong&gt; Very unclear, also I Am Not A Lawyer This Is Not Legal
Advice Get Off My Lawn&lt;/p&gt;
&lt;p&gt;(N.B.: I&amp;quot;m using &amp;ldquo;GPL&amp;rdquo; with broad strokes here, to point at &amp;ldquo;open source
licenses it&amp;rsquo;s straightforward to run afoul of&amp;rdquo;.)&lt;/p&gt;
&lt;p&gt;Policing is always hard in a world of limited resources. Especially when one
is targeting sophisticated, well-monied criminal organizations, it can take an
awful lot of time and effort merely to &lt;em&gt;credibly reveal&lt;/em&gt; that wrongdoing has
taken place. Would it surprise you if I said the average criminal software
organization is probably, on the margin, more sophisticated than the average
criminal organization? If so, you should probably expect that the former&amp;rsquo;s
crimes are brought to life even less often than the latter&amp;rsquo;s.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>OpenBSD, the computer appliance maker&#39;s secret weapon</title>
      <link>https://til.andrew-quinn.me/posts/openbsd-the-computer-appliance-maker-s-secret-weapon/</link>
      <pubDate>Wed, 05 Jun 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/openbsd-the-computer-appliance-maker-s-secret-weapon/</guid>
      <description>&lt;p&gt;Between our ESP32 prokaryotic organisms and our 24/7 Internet-enabled
megafauna servers, there exists a vast and loosely-defined ecosystem of things
the
B2B world likes to call &lt;strong&gt;computer appliances&lt;/strong&gt;. Picture a bespoke Pi 4 packaged
up neatly with some Python scripts, a little fancy plastic embossing, and maybe
a well-guarded &lt;code&gt;id_ed25519.pub&lt;/code&gt; in case you end up in hot water during the
(long - very long, stable cash flow for generations long) maintenance contract,
and you&amp;rsquo;re in the ballpark.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Disable your browser history to write better internal docs</title>
      <link>https://til.andrew-quinn.me/posts/disable-your-browser-history-to-write-better-internal-docs/</link>
      <pubDate>Tue, 14 May 2024 00:00:00 +0000</pubDate>
      
      <guid>https://til.andrew-quinn.me/posts/disable-your-browser-history-to-write-better-internal-docs/</guid>
      <description>&lt;p&gt;Most of us work in companies with something approximating a shared
online
internal wiki, be it
&lt;a href=&#34;https://www.atlassian.com/software/confluence&#34;&gt;Confluence&lt;/a&gt;
or
&lt;a href=&#34;https://www.mediawiki.org/wiki/MediaWiki&#34;&gt;MediaWiki&lt;/a&gt;
or even
&lt;a href=&#34;https://docs.readthedocs.io/en/stable/&#34;&gt;a searchable, static website custom built for the task&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A common problem with these sites is &lt;em&gt;making what you write discoverable&lt;/em&gt; to
other people on the site. &lt;em&gt;Your&lt;/em&gt; chosen title might tell you, a person fully in
the weeds of whatever you were just doing, exactly enough to know this is the
article you were looking for. Another human being, who might be searching for help
on how to do this for the first time? Not so much.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
