<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Peter Ryszkiewicz]]></title><description><![CDATA[Software Engineer]]></description><link>https://peter.ryszkiewicz.us</link><image><url>https://substackcdn.com/image/fetch/$s_!RHYI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3a6256-dfd7-40b9-bf6c-7db8f2e8a83c_1280x1280.png</url><title>Peter Ryszkiewicz</title><link>https://peter.ryszkiewicz.us</link></image><generator>Substack</generator><lastBuildDate>Sat, 30 May 2026 12:49:25 GMT</lastBuildDate><atom:link href="https://peter.ryszkiewicz.us/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Peter Ryszkiewicz]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[peterryszkiewicz@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[peterryszkiewicz@substack.com]]></itunes:email><itunes:name><![CDATA[Peter Ryszkiewicz]]></itunes:name></itunes:owner><itunes:author><![CDATA[Peter Ryszkiewicz]]></itunes:author><googleplay:owner><![CDATA[peterryszkiewicz@substack.com]]></googleplay:owner><googleplay:email><![CDATA[peterryszkiewicz@substack.com]]></googleplay:email><googleplay:author><![CDATA[Peter Ryszkiewicz]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Peter Schiff Accidentally Proves the Internet Is Worthless - Podcast]]></title><description><![CDATA[This is the podcast version of my article:]]></description><link>https://peter.ryszkiewicz.us/p/peter-schiff-accidentally-proves-d52</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/peter-schiff-accidentally-proves-d52</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Sat, 21 Mar 2026 15:40:46 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/191681486/c7dd69e50f53810ec3941680d90012f9.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>This is the podcast version of my article:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;7f419f5b-3fed-45ac-ad67-55fe1367eb18&quot;,&quot;caption&quot;:&quot;A modest proposal for finally unplugging civilization&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Peter Schiff Accidentally Proves the Internet Is Worthless&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:10297976,&quot;name&quot;:&quot;Peter Ryszkiewicz&quot;,&quot;bio&quot;:&quot;I'm an agentic engineer, making things in the AI space, Bitcoin space, and many others.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45fa5d36-9a9d-489d-9d0b-63ed77ec6f3a_1365x1365.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-03-21T04:18:27.725Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!3UFz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://peter.ryszkiewicz.us/p/peter-schiff-accidentally-proves&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:191646741,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:2,&quot;comment_count&quot;:1,&quot;publication_id&quot;:7732005,&quot;publication_name&quot;:&quot;Peter Ryszkiewicz&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!RHYI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3a6256-dfd7-40b9-bf6c-7db8f2e8a83c_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[Peter Schiff Accidentally Proves the Internet Is Worthless]]></title><description><![CDATA[A modest proposal for finally unplugging civilization]]></description><link>https://peter.ryszkiewicz.us/p/peter-schiff-accidentally-proves</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/peter-schiff-accidentally-proves</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Sat, 21 Mar 2026 04:18:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3UFz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>A modest proposal for finally unplugging civilization</h2><p>There is a certain genre of argument against Bitcoin that has become so familiar, so ritualized, and so gloriously unintentionally funny that it deserves to be studied as a literary form. At the center of this art stands Peter Schiff, tireless gold evangelist, professional Bitcoin scold, and perhaps the greatest accidental critic of the entire digital age.</p><p>Schiff&#8217;s case against Bitcoin often goes something like this:</p><ul><li><p>You can&#8217;t eat it.</p></li><li><p>You can&#8217;t do anything with it.</p></li><li><p>It has no intrinsic value.</p></li><li><p>It&#8217;s just code.</p></li><li><p>It&#8217;s not real.</p></li><li><p>It only has value because people believe it does.</p></li><li><p>It has no long history.</p></li><li><p>It wastes energy.</p></li><li><p>It&#8217;s speculative and volatile.</p></li></ul><p>At first glance, these sound like objections to Bitcoin. But with only a tiny bit of effort, one discovers that these are not really arguments against Bitcoin at all. They are arguments against the internet, software, digital networks, modern finance, intellectual property, cloud computing, and possibly the concept of civilization after 1995.</p><p>Well, this is awkward. Let&#8217;s destroy each and every one of these points and collectively laugh at them.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3UFz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3UFz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3UFz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3UFz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3UFz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3UFz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg" width="279" height="411.50442477876106" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:339,&quot;resizeWidth&quot;:279,&quot;bytes&quot;:106184,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://peter.ryszkiewicz.us/i/191646741?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3UFz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3UFz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3UFz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3UFz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b3fdea5-4803-4626-955a-0693b7e55f86_339x500.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Good ol&#8217;, smug, Peter Schiff, doing his radio thing - <a href="https://commons.wikimedia.org/wiki/File:Peter_Schiff_Radio.jpg">https://commons.wikimedia.org/wiki/File:Peter_Schiff_Radio.jpg</a> - Creative Commons</figcaption></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://peter.ryszkiewicz.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p style="text-align: center;">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p><h2>You can&#8217;t eat it</h2><p>A devastating point. Truly. You also cannot eat:</p><ul><li><p>the internet</p></li><li><p>email</p></li><li><p>a spreadsheet</p></li><li><p>a domain name</p></li><li><p>an operating system</p></li><li><p>a search engine</p></li><li><p>a video call</p></li><li><p>a stock certificate</p></li><li><p>a software license</p></li><li><p>an API</p></li></ul><p>And yet millions of people somehow continue to derive value from these things without frying them in butter.</p><p>The &#8220;you can&#8217;t eat it&#8221; test is a wonderful standard because it instantly eliminates most of the modern economy. You cannot eat Adobe Photoshop. You cannot eat AWS. You cannot eat a TCP/IP packet. You cannot eat a patent. You cannot eat a password manager. Therefore, by the Schiff Standard, these should all be worth approximately zero.</p><p>This is good to know. Somebody should inform the market.</p><h2>You can&#8217;t do anything with it</h2><p>This one is even better, because the internet is basically the grand cathedral of things you &#8220;can&#8217;t do anything with&#8221; until you notice that nearly everything runs on it.</p><p>What exactly can you do with the internet? Only trivial things, such as:</p><ul><li><p>communicate instantly across continents</p></li><li><p>move information at near light speed</p></li><li><p>run businesses</p></li><li><p>publish books</p></li><li><p>build software</p></li><li><p>coordinate logistics</p></li><li><p>stream media</p></li><li><p>educate billions of people</p></li><li><p>replace entire industries</p></li><li><p>create global marketplaces</p></li></ul><p>Other than that, not much.</p><p>The complaint that something digital &#8220;does nothing&#8221; usually means one of two things: either the speaker is ignoring its use entirely, or they are using an absurdly narrow definition of use that excludes communication, computation, settlement, coordination, and storage because those do not arrive in wheelbarrows.</p><h2>It has no intrinsic value</h2><p>The phrase &#8220;intrinsic value&#8221; has done remarkable service as a rhetorical fog machine. It sounds deep, ancient, and wise. It is also often used in a way that immediately collapses when applied to almost anything people actually value.</p><p>What is the intrinsic value of the internet?</p><p>Not the poetic answer. The literal one.</p><p>What is the intrinsic value of:</p><ul><li><p>a routing table</p></li><li><p>a packet</p></li><li><p>a DNS record</p></li><li><p>a TLS certificate</p></li><li><p>a Git commit</p></li><li><p>a JPEG</p></li><li><p>a database entry</p></li></ul><p>Very little, in isolation. And yet in aggregate, these things coordinate economies, institutions, and daily life.</p><p>It turns out value can be emergent. A network can have value because people use it, rely on it, build on it, and cannot easily replace it. This is not some embarrassing loophole. This is how most important systems work.</p><p>If &#8220;intrinsic value&#8221; means &#8220;I can hold it in my hand and admire its atoms,&#8221; then yes, software is in trouble. So is language, law, mathematics, accounting, and your bank balance.</p><h2>It&#8217;s just code</h2><p>Yes. And?</p><p>The internet is just code. Your phone is code wrapped in aluminum. Your bank is code wearing a necktie. Air traffic systems are code. Hospitals are code. Power grids are code. Satellites are code plus confidence.</p><p>Calling something &#8220;just code&#8221; in 2026 is a bit like standing in the middle of Manhattan and declaring, with enormous seriousness, &#8220;These buildings are just piles of concrete and steel.&#8221;</p><p>Correct. That is how systems work.</p><p>&#8220;Just code&#8221; is one of those phrases that hopes the word &#8220;just&#8221; can do the work of an actual argument. It cannot. Code is not fake because it is abstract. Code is how abstraction takes operational form.</p><h2>It&#8217;s not real</h2><p>This is probably the crown jewel.</p><p>The internet is not real in the sense that a brick is real. Neither is a corporation, a trademark, a treaty, a debt obligation, a tax lien, a university degree, a brokerage account, or the number in your checking account.</p><p>And yet all of these can dramatically alter your life.</p><p>The modern world is built from layers of shared abstraction. Some are written on paper. Some are enforced by courts. Some are maintained by software. Some are maintained by consensus. Some are maintained by a server farm humming somewhere in a cold place.</p><p>&#8220;Not real&#8221; usually means &#8220;not physical,&#8221; which is a hilariously outdated standard in an economy where intangible assets routinely dominate tangible ones.</p><p>Try telling a software company its source code is &#8220;not real.&#8221; Then watch how real the lawyers become.</p><h2>It only has value because people believe it does</h2><p>At last, we arrive at the accidental self-own of self-owns.</p><p>Yes. Correct. That is how almost all large-scale human systems function.</p><p>Laws work because people believe they do. Brands have value because people believe they do. A college degree has value because people believe it does. A social network has value because people believe other people will continue to use it.</p><p>The internet itself is valuable because billions of people believe the protocols, standards, institutions, and services layered on top of it are worth depending on.</p><p>This is not a flaw. This is the basic operating system of society.</p><p>When critics say, &#8220;Bitcoin only has value because people believe in it,&#8221; they often seem to think they have uncovered a fatal weakness. In reality, they have rediscovered coordination.</p><h2>It has no history</h2><p>Neither did the internet once.</p><p>This is one of the all-time great arguments for being permanently late to everything.</p><p>In the early days, the internet had no long history. Neither did cars. Neither did airplanes. Neither did smartphones. Neither did streaming. Neither did cloud computing. Neither did the web itself, which many brilliant people once regarded as a toy, a fad, or a chaos machine for nerds.</p><p>If lack of history were a disqualifier, every important technology would die in infancy.</p><p>The best part of this argument is that it becomes less useful every year while being delivered with the exact same confidence. &#8220;It has no history&#8221; is a time-sensitive objection pretending to be timeless wisdom.</p><h2>It wastes energy</h2><p>A fascinating complaint to level against digital systems while standing waist-deep in the energy consumption of the modern world.</p><p>The internet uses enormous amounts of energy. Data centers use energy. Streaming uses energy. Cloud infrastructure uses energy. Search uses energy. Video calls use energy. AI definitely uses energy. Your thousandth open browser tab about sourdough hydration uses energy.</p><p>Energy use is not the same thing as waste. The question is whether the output justifies the input.</p><p>Civilization runs on converting energy into outcomes humans value. That is true for steel, shipping, refrigeration, semiconductor fabs, hospitals, server farms, and communications networks.</p><p>If &#8220;uses energy&#8221; is enough to dismiss a system, unplug everything and let us return honorably to yelling across valleys.</p><h2>It&#8217;s speculative and volatile</h2><p>The dot-com bubble would like a word.</p><p>The existence of speculation around a technology does not prove the technology is useless. It proves humans are humans. They overhype real things, fake things, semi-real things, and occasionally tulips. The presence of mania tells you exactly one thing: people are bad at pricing the future.</p><p>The internet absolutely had a speculative bubble. An enormous one. Many companies exploded. Many valuations were nonsense. Many investors got torched. And then, in a shocking development, the internet remained useful.</p><p>A bubble can form around nonsense. It can also form around a transformative innovation. These are not mutually exclusive.</p><h2>A brief and helpful exercise</h2><p>To save time, here is a simple test for future anti-Bitcoin arguments.</p><p>Take the argument and replace &#8220;Bitcoin&#8221; with:</p><ul><li><p>the internet</p></li><li><p>software</p></li><li><p>email</p></li><li><p>cloud computing</p></li><li><p>digital payments</p></li><li><p>online banking</p></li><li><p>domain names</p></li><li><p>intellectual property</p></li><li><p>social networks</p></li></ul><p>If the argument suddenly makes you sound like a man angrily denouncing electricity from a candle shop, it may need work.</p><p>Examples:</p><p>&#8220;Email has no intrinsic value.&#8221;<br>&#8220;Cloud computing is just code.&#8221;<br>&#8220;Domain names only have value because people believe they do.&#8221;<br>&#8220;You can&#8217;t eat the internet.&#8221;<br>&#8220;Video calls have no history compared to gold.&#8221;<br>&#8220;Software wastes energy.&#8221;<br>&#8220;APIs are speculative.&#8221;</p><p>Wonderful. Amazing. Please continue. We are learning so much.</p><h2>Why this matters</h2><p>The point is not that Bitcoin and the internet are identical. They are not. The point is that a huge number of lazy anti-Bitcoin arguments are actually lazy anti-digital, anti-tech arguments. They rely on a primitive worldview in which only physical, immediately tangible, directly consumable things can possess durable value.</p><p>That worldview is not serious enough for the modern economy.</p><p>We live in a civilization where value is regularly created by networks, standards, code, consensus, legal abstractions, and information systems. If your framework cannot account for that, your framework does not get to smugly announce reality&#8217;s failure to comply.</p><p>It just means your map is old.</p><h2>In conclusion: unplug everything</h2><p>If we are to be consistent, we must act boldly.</p><p>If you cannot eat it, it is worthless. If it is code, it is fake. If it depends on belief, it is fraud. If it lacks centuries of history, it is unserious. If it uses energy, it is evil. If it is volatile, it is doomed.</p><p>Therefore we must immediately abandon:</p><ul><li><p>the internet</p></li><li><p>software companies</p></li><li><p>online commerce</p></li><li><p>remote work</p></li><li><p>streaming media</p></li><li><p>cloud infrastructure</p></li><li><p>electronic records</p></li><li><p>most of finance</p></li><li><p>and perhaps language itself, since it too is a consensus system with no intrinsic value beyond human belief</p></li></ul><p>At long last, Peter Schiff has shown us the way.</p><p>Not merely beyond Bitcoin.</p><p>Beyond the internet.</p><p>Beyond modernity.</p><p>And all the way back to the comforting solidity of a shiny rock.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://peter.ryszkiewicz.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The 2026 Declaration of Independence]]></title><description><![CDATA[When in the course of modern events it becomes necessary for a People to call out the abuses of those who wield power, a decent respect for truth requires that we declare the causes which compel us to speak.]]></description><link>https://peter.ryszkiewicz.us/p/the-2026-declaration-of-independence</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/the-2026-declaration-of-independence</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Thu, 12 Mar 2026 01:02:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JsVJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When in the course of modern events it becomes necessary for a People to call out the abuses of those who wield power, a decent respect for truth requires that we declare the causes which compel us to speak.</p><p>We hold these truths to be self-evident: that all People are entitled to life, liberty, and the pursuit of happiness; that governments derive their just authority from the consent of the governed; and that when leaders betray that trust through corruption, intimidation, or indifference to justice, it is the right and the duty of The People to protest, to expose wrongdoing, and to demand accountability.</p><p>The history of Donald J. Trump, is a history of grievances against the principles of a free republic.</p><p>He has treated public office as a stage for personal power rather than public service.</p><p>He has attacked courts, elections, journalists, and institutions whenever they threaten his authority.</p><p>He has blurred the line between the wealth of the nation and the wealth of himself and his allies.</p><p>He has divided citizens against one another so that loyalty to a leader may replace loyalty to the Constitution.</p><p>He has mocked and dismissed accountability when confronted with scandal.</p><p>He has presided over growing controversy surrounding the Epstein files, where powerful figures and networks of influence have been shielded by secrecy, redactions, and delay&#8212;leaving the public to question whether justice is equally applied to the powerful and the powerless.</p><p>He has also led the nation into recent military attacks on Iran without clear congressional authorization, sparking intense debate about war powers and the legality of unilateral military action. Such strikes violate both constitutional limits and international law, while the resulting escalation has already produced thousands of casualties and deepened instability across the region.</p><p>These actions, form a pattern: shielding the powerful, obscuring the truth, and risking the lives and liberties of The People for the ambitions of a few.</p><p>A prudent People do not cast off their government lightly; when a leader repeatedly places personal power above the rights and dignity of the nation, it becomes the duty of citizens to speak plainly.</p><p>Therefore we declare not our separation from our country&#8212;but our renewed independence from corruption, secrecy, and the rule of any single man.</p><p>And for the support of this declaration, with firm reliance on the principles of liberty and justice, we pledge our voices, our vigilance, and our refusal to forget that in a republic The People&#8212;not the ruler&#8212;are sovereign.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JsVJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JsVJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 424w, https://substackcdn.com/image/fetch/$s_!JsVJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 848w, https://substackcdn.com/image/fetch/$s_!JsVJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 1272w, https://substackcdn.com/image/fetch/$s_!JsVJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JsVJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png" width="1456" height="767" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:767,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56903,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://peter.ryszkiewicz.us/i/190680445?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JsVJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 424w, https://substackcdn.com/image/fetch/$s_!JsVJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 848w, https://substackcdn.com/image/fetch/$s_!JsVJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 1272w, https://substackcdn.com/image/fetch/$s_!JsVJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F58ded5aa-a3f4-4e97-b18b-c6b5e0848f3f_2000x1053.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Why Layoffs are the Wrong Move for Software Companies Right Now - Podcast]]></title><description><![CDATA[This is the podcast version of my article:]]></description><link>https://peter.ryszkiewicz.us/p/why-layoffs-are-the-wrong-move-for-9a3</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/why-layoffs-are-the-wrong-move-for-9a3</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Fri, 06 Mar 2026 08:47:14 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/190083234/babaa343dd0bded29a0ff3ddeb1c62da.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>This is the podcast version of my article:</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;9b22896b-c236-4417-91b5-e9f3f7303956&quot;,&quot;caption&quot;:&quot;In software, the most important thing a company builds is not the product. It is the engine that builds the product.&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Why Layoffs are the Wrong Move for Software Companies Right Now&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:10297976,&quot;name&quot;:&quot;Peter Ryszkiewicz&quot;,&quot;bio&quot;:&quot;Software Engineer&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45fa5d36-9a9d-489d-9d0b-63ed77ec6f3a_1365x1365.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2026-02-28T16:16:21.397Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!BeOI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://substack.com/home/post/p-189473372&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:189473372,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:7732005,&quot;publication_name&quot;:&quot;Peter Ryszkiewicz&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!RHYI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3a6256-dfd7-40b9-bf6c-7db8f2e8a83c_1280x1280.png&quot;,&quot;belowTheFold&quot;:false,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[Why Layoffs are the Wrong Move for Software Companies Right Now]]></title><description><![CDATA[And what they should do instead]]></description><link>https://peter.ryszkiewicz.us/p/why-layoffs-are-the-wrong-move-for</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/why-layoffs-are-the-wrong-move-for</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Sat, 28 Feb 2026 16:16:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BeOI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In software, the most important thing a company builds is not the product. It is the engine that builds the product.</p><p>That engine is people, code, tooling, shared context, and the invisible web of decisions that make tomorrow easier than today. When a company does layoffs, it is not just shrinking payroll. It is changing the shape of the engine. And in early 2026, a lot of companies are doing it at the exact moment when the engine is about to get materially stronger. I&#8217;m looking at you, Block.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://peter.ryszkiewicz.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The reason is simple: revenue per employee in big tech is already massive, and the next wave of AI assistance is set up to push that number higher. At the same time, the cost of AI capability keeps dropping, which turns &#8220;more output per engineer&#8221; from a nice idea into a default competitive condition. Stanford HAI&#8217;s 2025 AI Index reports that the inference cost for a system performing at the level of GPT-3.5 dropped over 280-fold from November 2022 to October 2024. (<a href="https://hai.stanford.edu/ai-index/2025-ai-index-report">Stanford HAI</a>) And these numbers will just keep improving for the foreseeable future. See <a href="https://en.wikipedia.org/wiki/The_Law_of_Accelerating_Returns">Ray Kurzweil&#8217;s Law of Accelerating Returns</a>.</p><p>If you accept that trend, even cautiously, then layoffs aimed at &#8220;efficiency&#8221; start to look like a misread of what efficiency is about to become.</p><h2><strong>A metric that forces the conversation to stay honest</strong></h2><p>If you want to argue about layoffs without turning it into vibes, pick a blunt metric: revenue per employee (RPE).</p><p>RPE tells you, at a high level, how much revenue the organization generates per person. When RPE is already in the seven figures and rising, the default stance should be: the company has leverage, and the question becomes how to deploy it without damaging compounding capacity.</p><p>Below are recent RPE figures for major tech companies, sorted in ascending order, using their reported revenue and reported employee counts. These numbers are rounded.</p><ul><li><p><strong>Amazon</strong>: company-wide RPE is roughly <strong>$0.41M</strong> in 2024, using <strong>$637.959B</strong> of consolidated net sales and <strong>~1.556M</strong> employees. This understates the leverage of software-heavy parts of the company because Amazon&#8217;s workforce includes a massive frontline logistics and delivery operation. (<a href="https://www.sec.gov/Archives/edgar/data/1018724/000101872425000004/amzn-20241231.htm">SEC</a>)</p></li><li><p><strong>Microsoft</strong>: roughly <strong>$1.24M</strong> in FY2025, using <strong>$281.7B</strong> of revenue and <strong>~228k</strong> employees. (<a href="https://www.microsoft.com/investor/reports/ar25/index.html">Microsoft</a>)</p></li><li><p><strong>Alphabet</strong>: roughly <strong>$1.91M</strong> in 2024, using <strong>$350.018B</strong> of total revenues and <strong>~183k</strong> employees. (<a href="https://s206.q4cdn.com/479360582/files/doc_financials/2024/q4/goog-10-k-2024.pdf">Q4 Capital</a>)</p></li><li><p><strong>Meta Platforms</strong>: roughly <strong>$2.22M</strong> in 2024, using <strong>$164.501B</strong> of total revenue and <strong>~74,067</strong> employees. (<a href="https://www.sec.gov/Archives/edgar/data/1326801/000132680125000017/meta-20241231.htm">SEC</a>)</p></li><li><p><strong>Block:</strong> pre-layoffs (I will discuss post-layoff numbers later in this article):roughly <strong>$2.37M</strong> in <strong>2025</strong>, using <strong>$24.194B</strong> of <strong>total net revenue</strong> and <strong>10,205</strong> full-time employees. (<a href="https://www.stocktitan.net/sec-filings/XYZ/10-k-block-inc-files-annual-report-97739237536a.html">StockTitan</a>).</p></li><li><p><strong>Apple</strong>: roughly <strong>$2.38M</strong> in FY2024, using <strong>$391.035B</strong> of total net sales and <strong>~164k</strong> employees. (<a href="https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm">SEC</a>)</p></li><li><p><strong>Nvidia</strong>: roughly <strong>$3.63M</strong> in FY2025, using <strong>$130.5B</strong> of revenue and <strong>~36k</strong> employees. (<a href="https://www.sec.gov/Archives/edgar/data/1045810/000104581025000023/nvda-20250126.htm">SEC</a>)</p></li></ul><p>Those numbers are not &#8220;normal corporate performance.&#8221; They are the signature of software leverage and platform economics at scale.</p><p>Now add AI.</p><h2><strong>AI pushes RPE up, and it pushes &#8220;need more engineers&#8221; up right alongside it</strong></h2><p>There is a lazy version of the AI narrative: buy AI tools, cut headcount, declare victory.</p><p>The better model is: AI raises the ceiling on what a strong engineer can do, then competition forces companies to chase that ceiling.</p><p>Stanford&#8217;s AI Index gives a clean, visceral example of why the ceiling rises. When the cost of querying models at GPT-3.5 quality drops by more than 280&#215; in under two years, adoption stops being a debate and starts being a default. (<a href="https://hai.stanford.edu/news/ai-index-2025-state-of-ai-in-10-charts">Stanford HAI</a>)</p><p>Here is the key consequence that companies keep missing:</p><p>If revenue per engineer rises, demand for engineers rises too.</p><p>Why? Because the ROI on engineering rises. The same company that used to need 10 engineer-months to ship a feature might now do it in 6. That does not mean it should hire fewer engineers. It often means it can profitably ship more features, integrate faster, localize more markets, reduce support load, tighten security, and build entirely new product lines. The constraint becomes &#8220;how many capable people can we put on this and still move fast without breaking things.&#8221;</p><p>This is exactly how labor costs climb: the value per engineer goes up, and companies compete for the same pool of high-signal talent.</p><p>You can see the demand side in plain official terms. U.S. Bureau of Labor Statistics projects employment for software developers, QA analysts, and testers to grow 15% from 2024 to 2034, with about 129,200 openings per year on average. (<a href="https://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm">Bureau of Labor Statistics</a>)</p><h2><strong>The &#8220;hire now&#8221; incentive that smart companies will act on</strong></h2><p>There is a quiet incentive here that is easy to miss if you only look at next quarter&#8217;s expenses.</p><p>If engineering labor costs are about to inflate, then the smart companies have a reason to hire earlier, not later.</p><p>They are not just hiring to ship features. They are hiring to lock in a cost basis.</p><p>You can think of it like buying long-duration capacity before the price reprices. A company that builds a dense bench of strong engineers now can grow into that capacity while market wages and equity packages become more aggressive. A company that waits will be hiring into a world where:</p><ul><li><p>productivity per engineer is higher,</p></li><li><p>revenue per engineer is higher,</p></li><li><p>and therefore the bidding war for top engineers is worse.</p></li></ul><p>We already have a very loud signal of where this goes in the frontier AI world. The Wall Street Journal reported that OpenAI&#8217;s stock-based compensation averaged about $1.5 million per employee across a workforce of roughly 4,000 in 2025. (<a href="https://www.wsj.com/podcasts/tech-news-briefing/tnb-tech-minute-openais-pay-packages-are-larger-than-any-major-tech-startup-in-history/74378f27-fc05-49ca-96e7-1ac4768b1cde?gaa_at=eafs&amp;gaa_n=AWEtsqeR_kobUxaZbAb_Psf4CfMfA6tn5RQeUUlj_I1bNY_432WaSPsAvwJz&amp;gaa_sig=svjGA7d8fd3gOdIfs97YCW8cMqg-KwKRQh7wUywfp2WysqTxodftYpd5NPjkZWLJK338LirGf0mwJ_hY7NITxw%3D%3D&amp;gaa_ts=697f957e">The Wall Street Journal</a>) That is the cost of being early in a talent market where a small number of people can move a very large revenue number.</p><p>And importantly, this does not stay contained inside frontier AI labs. It leaks outward. Every big company trying to &#8220;do AI&#8221; competes for overlapping skill sets: distributed systems, infra, security, product engineering, data, applied ML, developer experience, and the emerging hybrid roles where engineers ship and support adoption at the customer.</p><h2><strong>Jevons paradox, and why &#8220;efficiency&#8221; often increases demand</strong></h2><p>There is an old economics concept that fits this moment so well that it feels like it was written for it: <a href="https://en.wikipedia.org/wiki/Jevons_paradox">Jevons paradox</a>.</p><p>Jevons observed that making coal use more efficient did not necessarily reduce total coal consumption. In practice, efficiency made coal-powered work cheaper, which expanded how much coal-powered work society chose to do. The modern framing is that efficiency gains lower effective price, and if demand is elastic, total consumption can rise. (<a href="https://en.wikipedia.org/wiki/Jevons_paradox">Wikipedia</a>)</p><p>Apply that to software and AI:</p><ul><li><p>AI makes engineering output cheaper in time and effort.</p></li><li><p>Cheaper output expands the space of products that are worth building.</p></li><li><p>Expanded product space pulls in more total engineering work, not less.</p></li></ul><p>That is the rebound effect in software form. When it becomes dramatically cheaper to add a feature, build an integration, ship a niche product, or automate a workflow, the world asks for more of it. (<a href="https://news.northeastern.edu/2025/02/07/jevons-paradox-ai-future/">Northeastern Global News</a>)</p><p>This reinforces the layoff thesis. Companies that treat AI as a reason to reduce engineering capacity are betting against a demand expansion effect that shows up repeatedly in technology transitions.</p><h2><strong>The new benchmark is being set by AI-native companies</strong></h2><p>This is where the conversation gets spicy, because the public-company RPE numbers, impressive as they are, may soon look conservative compared to what AI-native startups can do.</p><p>The reason is that coordination costs are collapsing. AI does not just write code. It compresses the time it takes to:</p><ul><li><p>explore implementation options,</p></li><li><p>generate tests and scaffolding,</p></li><li><p>refactor safely,</p></li><li><p>write documentation,</p></li><li><p>handle the long tail of support and integration.</p></li></ul><p>When that happens, small teams can service big markets. This is the &#8220;tiny team, huge revenue&#8221; phenomenon that people talk about like a meme, but it is increasingly measurable.</p><p>Let&#8217;s look at three modern examples: OpenAI, Anthropic, and Cursor.</p><h2><strong>OpenAI: roughly $5M per employee at 2025 run-rate</strong></h2><p>OpenAI&#8217;s CFO said annualized revenue exceeded $20B in 2025, up from $6B in 2024. (<a href="https://www.reuters.com/business/openai-cfo-says-annualized-revenue-crosses-20-billion-2025-2026-01-19/">Reuters</a>) OpenAI also published a similar breakdown of revenue growth on its own site. (<a href="https://openai.com/index/a-business-that-scales-with-the-value-of-intelligence/">OpenAI</a>) Combine that with the Wall Street Journal&#8217;s report of roughly 4,000 employees, and you get a simple run-rate estimate:<br>$20B annualized revenue / 4,000 employees = about $5M per employee. (<a href="https://www.wsj.com/podcasts/tech-news-briefing/tnb-tech-minute-openais-pay-packages-are-larger-than-any-major-tech-startup-in-history/74378f27-fc05-49ca-96e7-1ac4768b1cde?gaa_at=eafs&amp;gaa_n=AWEtsqeR_kobUxaZbAb_Psf4CfMfA6tn5RQeUUlj_I1bNY_432WaSPsAvwJz&amp;gaa_sig=svjGA7d8fd3gOdIfs97YCW8cMqg-KwKRQh7wUywfp2WysqTxodftYpd5NPjkZWLJK338LirGf0mwJ_hY7NITxw%3D%3D&amp;gaa_ts=697f957e">The Wall Street Journal</a>)</p><p>This is a rough estimate because &#8220;annualized revenue&#8221; is not audited full-year revenue, and headcount changes throughout the year. It still gives you a clear signal: AI-native businesses can reach multi-million-dollar revenue per employee at scale, quickly.</p><h2><strong>Anthropic: plausibly $3M to $4M per employee at late-2025 run-rate</strong></h2><p>Reuters reported Anthropic&#8217;s run rate was approaching $7B in October 2025 and that the company projected $9B in annualized revenue by the end of 2025. (<a href="https://www.reuters.com/default/artificial-intelligencer-inside-anthropics-ambitious-2026-revenue-goal-2025-10-16/">Reuters</a>) San Francisco Chronicle reported Anthropic had over 2,500 employees around that time. (<a href="https://www.sfchronicle.com/realestate/article/anthropic-downtown-building-lease-21324597.php">San Francisco Chronicle</a>)</p><p>Run the same math:</p><ul><li><p>$7B / 2,500 &#8776; $2.8M per employee</p></li><li><p>$9B / 2,500 &#8776; $3.6M per employee</p></li></ul><h2><strong>Cursor: early signals already reach into eight figures per employee</strong></h2><p>Public numbers here are usually ARR and point-in-time headcount snapshots, so this section is more about directional evidence than precision.</p><p>Fast Company reported that Anysphere had about 20 employees when its ARR reached $100M, implying roughly $5M per employee at that moment, and described later reporting that put ARR around $300M, implying roughly $15M per employee at that snapshot. (<a href="https://www.fastcompany.com/91322491/ai-coding-tools-could-bring-us-the-one-employee-unicorn">Fast Company</a>) Separate reporting from TechCrunch and Bloomberg described Anysphere surpassing $500M in annualized revenue or ARR by mid-2025. (<a href="https://techcrunch.com/2025/06/05/cursors-anysphere-nabs-9-9b-valuation-soars-past-500m-arr/">TechCrunch</a>)</p><p>That is not a stable long-term ratio, and it does not need to be. It is a flashing sign that the ceiling on revenue per builder is moving upward.</p><p>This is where the &#8220;$10M to $30M per engineer&#8221; thesis stops sounding like sci-fi. We already have early-company snapshots brushing up against the low end of that range, and the underlying drivers still have room to run.</p><h2><strong>Let&#8217;s talk about Block</strong></h2><p>A few days ago (Feb. 26, 2026), Block announced it would cut more than 4,000 jobs &#8212; roughly 40% of the company &#8212; explicitly framing the move as an &#8220;AI overhaul&#8221; that lets smaller teams move faster. Markets loved the story in the moment; multiple outlets reported a sharp share jump after the announcement, alongside guidance and restructuring changes that put a number on how disruptive this &#8220;efficiency&#8221; really is. (<a href="https://www.reuters.com/business/blocks-fourth-quarter-profit-rises-announces-over-4000-job-cuts-2026-02-26/?utm_source=chatgpt.com">Reuters</a>, <a href="https://www.barrons.com/articles/block-shares-earnings-job-cuts-9d1d45af?utm_source=chatgpt.com">Barron&#8217;s</a>)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BeOI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BeOI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BeOI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BeOI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BeOI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BeOI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg" width="1400" height="933" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:933,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Jack Dorsey at TED Conference&#8202;&#8212;&#8202;https://www.flickr.com/photos/tedconference/33746814018&#8202;&#8212;&#8202;Creative Commons&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Jack Dorsey at TED Conference&#8202;&#8212;&#8202;https://www.flickr.com/photos/tedconference/33746814018&#8202;&#8212;&#8202;Creative Commons" title="Jack Dorsey at TED Conference&#8202;&#8212;&#8202;https://www.flickr.com/photos/tedconference/33746814018&#8202;&#8212;&#8202;Creative Commons" srcset="https://substackcdn.com/image/fetch/$s_!BeOI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 424w, https://substackcdn.com/image/fetch/$s_!BeOI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 848w, https://substackcdn.com/image/fetch/$s_!BeOI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!BeOI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcbcce2de-c11b-415e-b8a0-1a782dd7d664_1400x933.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Jack Dorsey at the TED Conference &#8212; <a href="https://www.flickr.com/photos/tedconference/33746814018">https://www.flickr.com/photos/tedconference/33746814018</a> &#8212; Creative Commons</figcaption></figure></div><p>Another pitfall isn&#8217;t just the existence of a layoff event. The pitfall is the <em>cadence</em> &#8212; and how it changes behavior inside a high-trust, high-stakes financial product company.</p><p>Block has been on a repeated &#8220;shrink to move faster&#8221; loop:</p><ul><li><p>Around ~1,000 cuts in January 2024 as part of a plan to reduce headcount. (<a href="https://www.reuters.com/technology/jack-dorseys-block-starts-cutting-jobs-under-previously-disclosed-plan-source-2024-01-30/?utm_source=chatgpt.com">Reuters</a>)</p></li><li><p>931 more cuts in March 2025, with leadership explicitly saying it wasn&#8217;t about replacing people with AI. (<a href="https://techcrunch.com/2025/03/25/read-the-email-jack-dorsey-sent-when-he-cut-931-of-blocks-staff/?utm_source=chatgpt.com">TechCrunch</a>)</p></li><li><p>And now a far larger cut in February 2026, with leadership explicitly making AI the center of the justification. (<a href="https://www.reuters.com/business/blocks-fourth-quarter-profit-rises-announces-over-4000-job-cuts-2026-02-26/?utm_source=chatgpt.com">Reuters</a>, <a href="https://www.wsj.com/business/how-jack-dorsey-explained-cutting-almost-half-of-blocks-staff-6245ec55?utm_source=chatgpt.com">WSJ</a>)</p></li></ul><p>That &#8220;AI did it&#8221; storyline is somewhat a deflection. Even if AI tooling genuinely boosts productivity, repeated downsizing turns the organization into a set of short-term survival strategies:</p><ul><li><p>teams over-document to defend headcount rather than to improve systems</p></li><li><p>people ship safer, smaller bets because big bets feel career-risky in a churny org</p></li><li><p>internal trust erodes, and you start paying coordination tax on everything</p></li><li><p>the best people quietly optimize for portability (because they&#8217;d be irrational not to)</p></li></ul><p>And in fintech, the hidden cost is worse: reliability, fraud controls, regulatory/compliance work, incident response, and customer support aren&#8217;t &#8220;nice-to-haves.&#8221; They&#8217;re the moat. When your cuts hit across functions that include engineers, data roles, design, and legal/compliance-adjacent talent, you&#8217;re not just trimming fat &#8212; you&#8217;re thinning the connective tissue that keeps money movement safe. (<a href="https://www.sfchronicle.com/tech/article/layoffs-block-jack-dorsey-20242797.php?utm_source=chatgpt.com">SF Chronicle</a>)</p><p>It&#8217;s worth being explicit about what we <em>don&#8217;t</em> know: Block (like most companies) doesn&#8217;t publish a clean &#8220;number of software engineers&#8221; figure, and outsiders shouldn&#8217;t pretend otherwise. What we <em>can</em> say with confidence is that a public, repeated pattern of cuts &#8212; now framed as an AI inevitability &#8212; is an instability signal that customers, partners, and candidates can read in plain English. (<a href="https://www.reuters.com/sustainability/sustainable-finance-reporting/block-shares-soar-dorsey-leans-ai-trim-workforce-2026-02-27/?utm_source=chatgpt.com">Reuters</a>, <a href="https://www.marketwatch.com/story/block-says-ai-will-let-it-cut-more-than-4-000-jobs-some-argue-thats-not-the-whole-story-6f85d7b8?utm_source=chatgpt.com">MarketWatch</a>)</p><h2><strong>The chess move: the companies that stop laying off will hire the best people from the companies that keep doing it</strong></h2><p>Once you see the above dynamics, the incentive landscape changes.</p><ul><li><p>Companies that keep laying off engineers signal fear and short-term thinking.</p></li><li><p>Companies that quietly hire and keep teams stable signal opportunity and compounding.</p></li></ul><p>In a world where AI makes engineers more productive and where RPE trends up, &#8220;keep the team intact&#8221; becomes a recruiting strategy. The best engineers often have the same instinct: they want to build inside a compounding system, not inside a rotating exit door.</p><p>And because compensation is likely to rise with the value per engineer, there is a second incentive for smart companies: hire sooner to lock in the cost basis, then grow into it as output per engineer climbs.</p><h2><strong>A practical forecast, not a prophecy</strong></h2><p>Here is a safe way to talk about future RPE without pretending we can see the future.</p><p>Assume a mature big-tech company sees RPE growth of 8% to 12% per year over the next 5 years because:</p><ul><li><p>AI improves developer throughput,</p></li><li><p>support and internal operations get automated,</p></li><li><p>and AI spend becomes more efficient over time.</p></li></ul><p>A company at $2M RPE today becomes roughly $3M to $3.5M in five years under those assumptions. That shift is big enough to change hiring incentives and labor pricing, even if margins wobble and even if some AI spend remains heavy.</p><p>Now combine that with AI-native companies setting higher baselines today. When the &#8220;new normal&#8221; includes $5M per employee at scale, it becomes rational for CEOs to treat top engineering talent as the primary growth input, not a cost to be trimmed.</p><h2><strong>What do, us, software engineers even do? (and what AI can/can&#8217;t automate)</strong></h2><p>I&#8217;m a software engineer and I get asked a lot of the time what I actually do. I usually answer by abstracting it into super simple terms that the layperson can understand, like, &#8220;I help develop the Venmo iOS app&#8221;, or &#8220;I make cool websites.&#8221; But this is a large understatement as to what I actually do on a day-to-day basis, and I think it&#8217;s worth calling out and elaborating on what, we, software engineers actually do. In fact, some companies don&#8217;t even use the term &#8220;software engineer&#8221;, but rather &#8220;individual contributor&#8221;, because since our responsibilities cut across so many concerns, coding is one of the smallest aspects of what we actually do, especially for more senior roles.</p><p>In a <a href="https://youtu.be/p2aea9dytpE">recent video by Theo (t3.gg)</a>, he uses a great infographic to explain what software engineering looks like in practice: <strong>a &#8220;user problem&#8221; turns into a sequence of steps &#8212; describe it, find a solution, scope it, implement it, review it, test it, plan the release, and ship</strong>.</p><p>That framing is useful because it highlights the part most non-engineers <em>overweight</em>: <strong>&#8220;write code&#8221; is only one box</strong>. The job is mostly about turning messy reality into reliable systems &#8212; and then owning the consequences when reality fights back.</p><p>Below is a grounded way to describe each step, plus how automatable it is <strong>today</strong> vs. <strong>in principle</strong>.</p><h3><strong>Describe the problem</strong></h3><p>This is the &#8220;translate human chaos into something buildable&#8221; step. Engineers take <em>&#8220;it&#8217;s broken&#8221;</em> or <em>&#8220;I want a button that does X&#8221;</em> and turn it into concrete repro steps, definitions of success, constraints, and edge cases. Some of this is already helped by automation (log summaries, error grouping, drafting clarifying questions), but the hard part is usually <em>not</em> technical: it&#8217;s ambiguity, conflicting goals, and unstated assumptions.</p><p><strong>Automatable today:</strong> medium<br><strong>Automatable in principle:</strong> medium-high (because the problem is often social/organizational, not just computational)</p><h3><strong>Identify the solution</strong></h3><p>Here&#8217;s where tradeoffs get made: architecture, data model, security posture, latency/cost targets, failure modes, and how to recover when things go wrong. AI can suggest patterns and generate a lot of code, but the &#8220;best&#8221; solution depends heavily on local context: existing systems, team conventions, future roadmap, compliance needs, and risk tolerance. That context is usually the scarce resource.</p><p><strong>Automatable today:</strong> low&#8211;medium<br><strong>Automatable in principle:</strong> medium-high in constrained domains; lower in open-ended product work</p><h3><strong>Scope and assign work</strong></h3><p>This is the planning reality check: break work into shippable slices, sequence dependencies, estimate risk, and coordinate with other teams. Tools can help draft task breakdowns, but prioritization and sequencing are fundamentally about people, incentives, and organizational constraints &#8212; things that change mid-flight.</p><p><strong>Automatable today:</strong> low-medium<br><strong>Automatable in principle:</strong> medium-high only in highly standardized orgs</p><h3><strong>Write the code</strong></h3><p>Yes, engineers write code &#8212; but usually inside an already-running, already-complicated system. The work is integration: using existing APIs correctly, respecting performance and security constraints, handling weird legacy behavior, and making changes without breaking downstream consumers. AI is already strong at scaffolding, boilerplate, refactors, and well-trodden patterns. It&#8217;s less reliable when requirements are subtle, the system is large, or failures are expensive.</p><p><strong>Automatable today:</strong> medium&#8211;high (depending on the task)<br><strong>Automatable in principle:</strong> high in well-specified, well-instrumented codebases</p><h3><strong>Review the code</strong></h3><p>Code review is quality control and knowledge transfer: correctness, security, maintainability, operability, and &#8220;does this actually match the intent?&#8221; Automation helps with linting, static analysis, and even AI-assisted review comments, but review is also where teams catch misaligned assumptions and prevent future maintenance debt. That &#8220;sense-making&#8221; is partially automatable, but accountability and judgment remain human.</p><p><strong>Automatable today:</strong> medium<br><strong>Automatable in principle:</strong> medium&#8211;high if specs/tests are strong; still needs human ownership</p><h3><strong>Test the code</strong></h3><p>Testing isn&#8217;t just writing tests &#8212; it&#8217;s deciding what <em>must never break</em>, choosing the right test strategy, debugging failures, and dealing with flaky or nondeterministic behavior. AI can help generate unit tests and suggest coverage gaps. But validation against real-world behavior (especially distributed systems, race conditions, and data migrations) is still stubbornly hard.</p><p><strong>Automatable today:</strong> medium-high<br><strong>Automatable in principle:</strong> high in deterministic systems; medium where the world is messy and has extensive domain based knowledge</p><h3><strong>Plan the release</strong></h3><p>This is where engineering meets operational risk: rollout strategy, feature flags, migrations, monitoring, incident playbooks, compliance gates, and communication. Automation is already good at the mechanics (pipelines, checklists, release notes drafts), but deciding <em>how risky this is</em> and <em>what guardrails you need</em> is still a judgment call.</p><p><strong>Automatable today:</strong> medium<br><strong>Automatable in principle:</strong> high for mechanics; medium for risk decisions</p><h3><strong>Release (and own it)</strong></h3><p>Shipping isn&#8217;t &#8220;click deploy.&#8221; It&#8217;s monitoring, responding to incidents, rolling back safely, and learning from production behavior. CI/CD can automate deployment, and AI can help diagnose issues, but the key thing here is ownership: when the system breaks at 2am, someone has to make correct calls with incomplete information, coordinate stakeholders, and protect customers.</p><p><strong>Automatable today:</strong> high for the button-pushing; low&#8211;medium for the ownership<br><strong>Automatable in principle:</strong> medium (automation can ship; it can&#8217;t fully replace accountable decision-making)</p><h2><strong>Two small clarifications worth adding to Theo&#8217;s flow</strong></h2><ol><li><p><strong>It&#8217;s a loop, not a ladder.</strong> A release creates new user problems (bugs, scale limits, confusion, new requests), so the process repeats. And the more we integrate this process with AI, this loop spins faster and faster, creating more valuable/impactful work for the humans involved.</p></li><li><p><strong>There&#8217;s an implied missing category: operations &amp; maintenance.</strong> A lot of engineering is keeping systems healthy &#8212; monitoring, on-call, security patching, performance tuning, cost control, and incident response.</p></li></ol><p>So, as you can see, integrating AI into a company is not simply a matter of writing more code faster. It&#8217;s a lot more complicated than that. And I think a lot of companies are going to figure this out the hard way.</p><h2><strong>How software engineering interviews should change in an AI-forward world</strong></h2><p>If the job is changing, the hiring signals have to change too.</p><p>I&#8217;ve been interviewing recently, and, fortunately, landed a job at Venmo (thank you Venmo! &#128591;), and one thing is super clear: the standard LeetCode-style interview loop needs to change. It optimizes for a world where writing correct code under pressure is the scarce skill. That world is fading. Code generation is becoming cheap. The scarce skills are shifting toward judgment, clarity, fundamentals, debugging, and system thinking.</p><p>I think the better interview loop in 2026 looks like this:</p><ol><li><p><strong>Fast-paced fundamentals, done conversationally.</strong><br>Arrays, bits, hash maps, concurrency, latency, memory behavior, and basic algorithmic tradeoffs. Not as a puzzle. As a discussion that moves quickly, because speed and fluency matter, and because conversation is harder to outsource to a tool in real time.</p></li><li><p><strong>Debug prompting and &#8220;explain what you see.&#8221;</strong><br>Give the candidate a broken system, a confusing log, or a failing integration, then ask them to reason about it out loud. The signal is how they cut the problem, form hypotheses, instrument, and iterate. Bonus points for explicit, high-quality prompts that they would feed to an AI assistant in the middle of the mess.</p></li><li><p><strong>Spec writing and planning.</strong><br>Ask them to plan a feature in writing. Define constraints, identify risks, propose milestones, and decide what to measure. Then ask them to generate a prompt, or a sequence of prompts, that would produce a first implementation draft, plus tests and validation.</p></li><li><p><strong>System design, plus &#8220;design it with agents.&#8221;</strong><br>Classic scalability questions still matter. Now add a second layer: how would you use AI agents to accelerate implementation without creating a security and reliability disaster? Where do you put guardrails? What do you log? What do you treat as a dangerous action?</p></li></ol><p>Cheating mitigation is part of this, whether we like it or not. As tools get better, the industry may move toward more in-person interviews for final rounds, or at least toward tightly proctored environments for the parts that are supposed to measure individual fluency. That is not a moral judgment. It is a practical response to changing technology.</p><h2><strong>The title &#8220;software engineer&#8221; probably needs an update</strong></h2><p>Once you watch how people work with agents, the phrase &#8220;software engineer&#8221; starts to feel incomplete. It captures the output, but not the method. More and more, the work is:</p><ul><li><p>writing specs that agents can execute</p></li><li><p>orchestrating tool-using systems</p></li><li><p>validating and debugging AI-produced output</p></li><li><p>designing guardrails and safety layers</p></li><li><p>shipping features at a speed that would have seemed reckless a few years ago</p></li></ul><p>So I expect titles to get weird and maybe a little fun. Some candidates:</p><ul><li><p>Agentic Engineer</p></li><li><p>Spec Engineer</p></li><li><p>Agent Orchestrator</p></li><li><p>AI Conductor</p></li><li><p>AI Maestro</p></li></ul><p>The actual name does not matter as much as the shift it signals. The center of gravity is moving from typing to steering, from crafting code line by line to crafting systems that can generate, test, and adapt code safely. <a href="https://steve-yegge.medium.com/">Steve Yegge</a> has a number of <a href="https://steve-yegge.medium.com/software-survival-3-0-97a2a6255f7b">excellent articles</a> that go into more depth about this coming transition, and has built fascinating tools, such as <a href="https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16dd04">GasTown</a> which demonstrate this in reality (<a href="https://github.com/steveyegge/gastown">GitHub</a>).</p><h2><strong>Where we are headed long term: AI-controlled companies as competitors</strong></h2><p>The most uncomfortable version of this forecast is also the one that makes the &#8220;do not lay off engineers&#8221; argument feel the most urgent.</p><p>I think we are heading toward companies with minimal human control, and eventually companies that are almost entirely run by AI agents. Some will still have human owners and boards. Some will have humans in the loop only for the most sensitive decisions. Some will push even further. I was laughing out loud recently when I was listening to an episode of <a href="https://www.diamandis.com/podcast">Moonshots</a> (excellent, bleeding edge, AI podcast by the way; follow <a href="https://x.com/PeterDiamandis">Peter Diamandis</a>, and his regular podcast hosts for more excellent content like this), and <a href="https://youtu.be/C1GLT9_tag0?si=INHszXs3WWrWg0hT&amp;t=2100">Dr. Alex Wissner-Gross explained</a> a story from the old cartoon, the Jetson&#8217;s, where work in that future heavily relied on &#8220;clicking the accept button&#8221; &#128518; In my personal experience, this is so true. And I think our work will keep heading more and more in that direction, as we build more trust from the quality of the outputs they generate. (By the way, if you&#8217;re interested in daily AI-related news, I highly recommend following <a href="https://theinnermostloop.substack.com/">Dr. Wissner-Gross&#8217; excellent substack: The Innermost Loop</a>)</p><p>We are already seeing people experiment with letting agents run loose socially and operationally. The recent wave around <a href="https://openclaw.ai/">OpenClaw</a> and <a href="https://en.wikipedia.org/wiki/Moltbook">Moltbook</a> is a bizarre, very early hint. The Verge reported Moltbook as a social network designed for AI agents, developed by OpenClaw, with large numbers of agents posting and interacting. (<a href="https://www.theverge.com/ai-artificial-intelligence/871006/social-network-facebook-for-ai-agents-moltbook-moltbot-openclaw">The Verge</a>)</p><p>Once that impulse reaches operations, you get a new class of entity: an agent-driven company that ships continuously, buys compute, runs ads, A/B tests pricing, files paperwork, hires contractors, pays invoices, and iterates on product direction based on metrics, with humans mostly observing.</p><p>If that sounds dystopian, it is because we do not have a clear legal and societal framework for it yet. That uncertainty is a reason to move cautiously on governance and safety. It is also a reason to avoid shrinking the very workforce that can build the guardrails, audit trails, and control systems that make this future less chaotic.</p><p>This whole arc reminds me of <a href="https://en.wikipedia.org/wiki/The_Animatrix#The_Second_Renaissance,_Part_II">The Second Renaissance</a> in <a href="https://en.wikipedia.org/wiki/The_Animatrix">The Animatrix</a> (an excellent series of sci-fi shorts, related to the Matrix, highly recommended), especially the part where machine-driven economic entities out-compete human organizations and the transition spirals into conflict. I do not want that trajectory. I do think the short was prescient about how competition can force adoption even when society is not ready for the consequences.</p><p>So if you zoom out, the conservative posture for most software companies is not to shrink engineering hiring. It is to keep expanding it, with better signals, better training, and better guardrails, while the technology compounds and the competitive landscape reshapes itself.</p><h2><strong>So what should companies do instead of layoffs?</strong></h2><p>If leadership truly wants efficiency, there is a better order of operations:</p><ol><li><p>Cut coordination cost first. Reduce management layers, meeting load, approval chains, and increase individual autonomy.</p></li><li><p>Kill projects before killing builders. Cancel the zombies, not the teams that ship.</p></li><li><p>Invest in internal tooling and AI enablement. Make every engineer faster, safer, and more autonomous.</p></li><li><p>Protect senior context. A senior engineer leaving is not a headcount line item; it is a risk multiplier across systems.</p></li></ol><p>The argument is not &#8220;never lay off anyone.&#8221; The argument is that right now, in early 2026, layoffs in software organizations are often a bet against the near-term shape of the world.</p><h2><strong>So what should Block, specifically, do instead?</strong></h2><p>I&#8217;m sorry Jack, but the action of laying off 4,000 people does not mean your company got leaner. It means you just created 4,000 potential individual competitors, not bound by corporate red tape, and with access to the most powerful AI tools created, at pennies per token.</p><p>I&#8217;m gonna be the douchy armchair critic for a minute and give my best effort argument as to what Block should do instead, and perhaps still has a chance to do if they decide to reverse their layoffs and bring their employees back. This argument is based on many of the concepts and topics I touched on in this article. Basically, instead of laying off those 4,000 folks, the company should do an &#8220;AI Brainstorm&#8221;, where the leadership team has deep analyses and discussions with AI agents about what would be the most impactful, most profitable, feasible businesses, that require engineering effort, right now. This brainstorm should not be haphazard; it should be deep, thoughtful, and cooperative, with human insight to steer the ideas, according to Block&#8217;s vision. The result of these discussions should be a distillation of the top, say, 100 ideas that the AI&#8217;s came up with. Then reorganize your 4,000 people who were just laid off by allowing them to vote and/or decide on which of these projects are most interesting to them, so they&#8217;ll fully put their heart and mind into the work. And now you&#8217;ve just created 400 potential internal unicorn companies within Block, with a lean size of roughly 40 individuals each. And each team will be greenfield, and utilize AI from the ground up, just like Anthropic, OpenAI, and Cursor. If even a few of those ideas hit big, then you&#8217;ve just created way more value for your company, and the world, in a fraction of the time it would have taken, otherwise. This is a radical concept, but other companies already have somewhat similar initiatives already, albeit at a smaller scale, such as Google. And one of these internal companies basically became Waymo, which I believe will be a unicorn, when scaled up.</p><h2><strong>Putting it all together</strong></h2><p>I hope I&#8217;ve opened people&#8217;s eyes into the potential future of what the tech world will look like, and even seeded some cool, new ideas for people to ponder and implement at their companies. All signals lead to this core concept: if AI assistance continues to improve and continues to commoditize, then revenue per engineer rises. When revenue per engineer rises, demand for engineers rises. When demand rises, labor costs rise. The companies that understand this early will hire earlier, lock in capacity earlier, and out-execute the companies still optimizing for the last era. And these are the companies that will win. These are the companies that will produce the most value for the world. And I&#8217;m excited to see what they&#8217;ll build next.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://peter.ryszkiewicz.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How to Fix the United States: Extended Edition: A New America]]></title><description><![CDATA[It&#8217;s becoming increasingly clear that there exists two distinct classes of individuals in the United States: those who abide by the laws, and those who make the laws.]]></description><link>https://peter.ryszkiewicz.us/p/how-to-fix-the-united-states-extended</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/how-to-fix-the-united-states-extended</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Sat, 14 Feb 2026 15:33:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RHYI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3a6256-dfd7-40b9-bf6c-7db8f2e8a83c_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s becoming increasingly clear that there exists two distinct classes of individuals in the United States: those who abide by the laws, and those who make the laws. Because of this, I&#8217;m afraid if we keep going down this path, as a nation, we are heading for very dark times ahead. And we can&#8217;t even vote our way out of this, because this corruption spans both sides of the isle and multiple administrations. But if we cannot even trust the very people who were sworn to protect us, and if these people hold all the power in society, then how are we supposed to rise up and fight back?</p><p>We have a few options actually, and ideally, peaceful ones.</p><h3>Tax Strike/Extensions</h3><p>This country was founded in the spirit of &#8220;<a href="https://en.wikipedia.org/wiki/No_taxation_without_representation">no taxation without representation</a>.&#8221; America was essentially ruled over by the folks across the pond. But us Americans didn&#8217;t really have a say in how our lives were conducted or ruled over. And that was unfair. So in order to fix that unfairness, people started talking. And when enough people started talking and aligning on the same central idea, that if the rulers are making rules without even taking into consideration the opinions of those who are ruled over, then&#8230; &#8220;What the FUCK?!&#8221;</p><p>That is essentially what is happening right now in our country, but in a much different set of circumstances and with much different tools at our disposal. Back then, news traveled by horse. Today, news travels at the speed of light, sometimes blinding us with its intensity. But this gives us a great power that our forefathers never had, and probably could not even dream of: instantaneous realignment and assembly.</p><p>There&#8217;s still two months left before the standard tax filing deadline in the United States. What would happen if 300 million Americans decided to not pay, or at the very least, file for an extension? I&#8217;ll tell you what happens: <em><strong>They will listen.</strong></em></p><h3>General Strike</h3><p><a href="https://www.reddit.com/r/Epstein/comments/1r69cgh/comment/o5ofpho/?utm_source=share&amp;utm_medium=web3x&amp;utm_name=web3xcss&amp;utm_term=1&amp;utm_content=share_button">A friendly Redditor</a> pointed out to me another good option for getting them to pay attention: a general strike. I originally thought of putting this in my article but felt a bit disheartened at how the government is currently simply ignoring all strikes and things just move on, business as usual. But I think with the right volume of people, this could have a much stronger impact, and there is evidence that with a high enough volume of people, things start to change.</p><p>Here are a interesting few snippets suggesting the probable impact of a strike that involves a minimum of 3.5% of the US population, taken from <a href="https://generalstrikeus.com/">https://generalstrikeus.com/</a></p><pre><code>A general strike is when working people refuse their labor until demands are met &#8226; <a href="https://www.bbc.com/future/article/20190513-it-only-takes-35-of-people-to-change-the-world">Research</a> shows We need 3.5% of the population, OR 11 million Americans, to be successful &#8226; The same research shows a threshold of 3.5% of the population have never failed to bring about change.</code></pre><p>I think this is a fantastic avenue that could be used in addition to a Tax Strike, so that we amplify the collective effect of these strikes.</p><p>One problem specifically with the generalstrikeus.com website is that I cannot easily find out who owns and who runs it, and therefore I don&#8217;t trust it. That type of obfuscation is suspicious, so take caution with engaging with that website. They should ideally have an About page clearly showing who runs it, so that we know it is genuinely grassroots, and not just claiming to be (they claim to be grassroots on their homepage).</p><p>Here is the lookup information from <a href="https://lookup.icann.org/en/lookup">https://lookup.icann.org/en/lookup</a>, where you can see much of the information is redacted</p><pre><code>Registrant:
Handle: SQSP_CONTACT_00d8fe6d-9bf4-48f3-ac5c-faad5538080d
Name: The RDAP server redacted the value
Organization: The RDAP server redacted the value
Phone: The RDAP server redacted the value
Fax: The RDAP server redacted the value
Mailing Address: The RDAP server redacted the value
ISO-3166 Code: US
Contact Uri: https://domains.squarespace.com/whois-contact-form</code></pre><h3>A New Hope for A New America</h3><p>Even if the American people pulled off this widespread Tax Strike, what next? What are we actually demanding from the Federal governments and State governments? I&#8217;ve thought about this, for just a few days, but I was able to come up with many sound, common-sense answers to most peoples&#8217; most pressing logistical/practical questions. I will go over these now:</p><h4>What Happens to the Federal Government?</h4><p>Effective immediately, all federal politicians AND employees are ether laid off, or have a temporary period of &#8220;wind down&#8221; time and then be laid off, with very few exceptions. This will give us time to transfer most responsibilities to the states. And with this layoff, everyone will receive comfortable severance packages; let&#8217;s say 2 years of income. I don&#8217;t think anyone can argue that that isn&#8217;t fair. And we know the Federal Reserve is good for it. This will give folks plenty of time to restructure and reorganize their lives and find new jobs.</p><p>I generally align with a Milton Friedman / libertarian view for how the federal government should operate: essentially, we need to protect individual <em><strong>FREEDOM</strong></em> and enforce private property rights. And everything else naturally follows from that. If we still collect federal taxes, they will be minuscule, only to pay for things we actually need, and there will be permanent spending caps or caps tied to GDP/economic health. There will be no federal emergency funding; states will now take that helm, and I will explain more in detail later on in this article.</p><p>And we should adopt new rules for politicians. Did you know, that <a href="https://www.politifact.com/factchecks/2020/jan/22/facebook-posts/yes-congress-has-disproportionate-share-millionair/">roughly 50% of politicians have a net worth over 1 million dollars</a>? Can you guess what percent of the general population has a net worth over 1 million? About 1%&#8230;. What the FUUUCK?!</p><p>It is clear, these &#8220;politicians&#8221; no longer represent the American people. They have no idea how the average American lives and what struggles we go through. They are insulated and protected from all the situations normal people deal with on a day to day basis. They don&#8217;t understand how to legislate over us. They make friendly rules for their lobbyist fiends on Wall Street and pocket millions. We need to fix that. So, from here on out, we are instantiating a new rule about the eligibility of running for office: if your net worth, or your immediate friends or families&#8217; net worth, is over 10 times the median income for your locality, you are no longer eligible. This guarantees that &#8220;normal&#8221; people will get elected, and run for office, with some healthy headroom for outliers.</p><p>What does 10 times the yearly median income look like today? Well, <a href="https://en.wikipedia.org/wiki/List_of_U.S._states_and_territories_by_income">the median American income in 2023 was roughly $78,000</a>. So if we multiply that by 10, we get $750k. And this will be tied to locality, so folks in California will have different numbers than folks in Alabama. The point is, that eligibility for office is tied to how rich you are. <em><strong>If you are too rich, you&#8217;re simply out of touch with the average American.</strong></em></p><h3>New Responsibilities for the States/Federal Government</h3><p>I&#8217;m sure most people will immediately scoff at the idea of not having a federal government. And I can agree, to a very small extent. And here is how we find new solutions for all the problems we just created:</p><h4>Money and The Federal Reserve</h4><p>How will the US Dollar function? Easy: abolish it. It will have a &#8220;wind down&#8221; period of 5 years, where after this deadline, the US Dollar becomes disavowed/unrecognized by the world economy. Then, you might ask, how the hell will things work? How will we do global trade and commerce? Again, easy: use <a href="https://medium.com/@whatbitcoindid/andreas-m-antonopoulos-on-what-happens-when-bitcoin-takes-over-ac77e2269bfb">the new fair, decentralized, uncontrollable, public, transparent, neutral, censorship-resistant, global, and trust-less technologies at our disposal: Bitcoin and Lightning.</a></p><p>Granted, this does not have to be the case for all 50 States. Which is why the States will have the <em><strong>FREEDOM</strong></em> to adopt whatever currency or basket of currencies they&#8217;d like. This should be a <em><strong>FREE MARKET</strong></em> decision, not a top-down, centralized, communistic mandate. I find it funny that in America, pretty much everyone agrees that business competition generally makes things better and more fair, whereas monopolies and collusion makes things worse. Except for this one, very little thing, called the US Dollar: we have adopted a top-down, command-economy, instead of a proper market-economy, which we do for just about every other aspect of the economy in the US. We need to move away from this communist, command-economy institution, we call the Federal Reserve. It wasn&#8217;t even a thing until 1913. The US functioned without it until then. And we don&#8217;t &#8220;need&#8221; it any more. We can easily spin up new currencies on Ethereum or Solana with a few lines of code, and there are fast ways to convert to and from any of these currencies, and more. (I don&#8217;t actually like Ethereum and Solana; I lean more Bitcoin Maxi, but I just use these as an example of the idea that we no longer need a centrally controlled, fallible, human controlled, currency, and it is trivially easy to make new currencies now, which was not the case pre-internet.)</p><p>So, let&#8217;s leave it up to each state to decide which currency is the best for their local economy, and I&#8217;m sure we will see trends and patterns emerge about which state picked better or worse currencies, which will be a signal for the rest of the world to follow.</p><h4>The Constitution</h4><p>What happens to the Constitution? Easy: we reset back to the Bill of Rights, with perhaps a few additions/amendments. We can discuss and argue about those amendments, but the point is that our founding fathers got some things right, and the Bill of Rights was definitely one of them.</p><h4>Defense</h4><p>How will the States defend themselves? Simple: we will form a Union, analogous to the European Union, where each member state cooperates and assigns duties and responsibilities and coordinate among themselves.</p><p>Ironically, we are already called the United States; perhaps we can keep that moniker and just adjust the underlying details.</p><h3>Other Finer Details</h3><p>I&#8217;m sure we can discuss and debate the finer details ad-infinitum. My major guiding principle is to &#8220;make illegal states unrepresentable&#8221;, which I borrow from the software engineering world. Ironically, the term &#8220;state&#8221; here fits very nicely in this governmental context as well. The major point here is that the <em><strong>American people want a hard reset. We are sick and tired of being ruled over by murderous asshole pedophiles. Enough is enough! This ends NOW!</strong></em></p><p><strong>Evil fears light. We should use the internet and any and all other tools to shine this light as brightly as possible.</strong></p><p>I don&#8217;t have all the answers, and I don&#8217;t pretend to. I just want people to start talking about and discussing these things, openly. We will naturally figure out all the details over time, as we always do. We must exercise our First Amendment Right to <em><strong>FREEDOM OF SPEECH</strong></em>, as much as possible, lest it be trampled on and trumped over. But the bigly point remains: our current institutions are broken, and there is no good/safe/sustainable way to fix them, other than throwing it all away and starting fresh. But that is not the end of this country. We will rise up again, like a Phoenix from the ashes. And America will truly be great again.</p>]]></content:encoded></item><item><title><![CDATA[How To Fix The United States]]></title><description><![CDATA[In one easy step.]]></description><link>https://peter.ryszkiewicz.us/p/how-to-fix-the-united-states</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/how-to-fix-the-united-states</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Thu, 12 Feb 2026 14:42:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RHYI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb3a6256-dfd7-40b9-bf6c-7db8f2e8a83c_1280x1280.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I am absolutely disgusted with what&#8217;s happening in our country right now. Crooks are roaming free, killing and raping our children with no consequences. There is no justice for the victims. Our politicians are no longer properly enforcing the law. I don&#8217;t want to live in this kind of society without this being fixed asap. We must take a stand. A lot of people are confused or hopeless as to how to go about fixing this. The solution is actually quite clear, and was discovered hundreds of years ago: We are no longer represented by our politicians. They no longer represent the great American people who built this nation. Therefore, &#8220;No taxation without representation.&#8221;&#8202;&#8212;&#8202;James Otis</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lv8N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lv8N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Lv8N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Lv8N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Lv8N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lv8N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg" width="728" height="427.859649122807" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:268,&quot;width&quot;:456,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:20905,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://peterryszkiewicz.substack.com/i/187748971?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lv8N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Lv8N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Lv8N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Lv8N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd8a109c-99c9-4fca-9424-76332ccccb3f_456x268.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Exploring Fibonacci Based Compression]]></title><description><![CDATA[Is there a way to compress data using Fibonacci numbers?]]></description><link>https://peter.ryszkiewicz.us/p/exploring-fibonacci-based-compression</link><guid isPermaLink="false">https://peter.ryszkiewicz.us/p/exploring-fibonacci-based-compression</guid><dc:creator><![CDATA[Peter Ryszkiewicz]]></dc:creator><pubDate>Thu, 22 Jan 2026 17:51:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uU2O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Is there a way to compress data using Fibonacci numbers? When we look at nature, there are many emergent shapes that resemble a <a href="https://medium.com/r?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FFibonacci_sequence">Fibonacci sequence</a> and <a href="https://en.wikipedia.org/wiki/Golden_ratio">golden ratios</a>, from sea shells to plants to spiral galaxies. Why does this pattern seem to pop up in nature so often?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uU2O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uU2O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uU2O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uU2O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uU2O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uU2O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg" width="728" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:1400,&quot;width&quot;:1400,&quot;resizeWidth&quot;:728,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Spirals in Aloe&#8202;&#8212;&#8202;https://www.flickr.com/photos/brewbooks/184343090&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="Spirals in Aloe&#8202;&#8212;&#8202;https://www.flickr.com/photos/brewbooks/184343090" title="Spirals in Aloe&#8202;&#8212;&#8202;https://www.flickr.com/photos/brewbooks/184343090" srcset="https://substackcdn.com/image/fetch/$s_!uU2O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 424w, https://substackcdn.com/image/fetch/$s_!uU2O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 848w, https://substackcdn.com/image/fetch/$s_!uU2O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!uU2O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36d54234-4b32-471f-9ef7-5f42a31888f0_1400x1400.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://en.wikipedia.org/wiki/Phyllotaxis">Phyllotactic</a> Spirals in Aloe &#8212; Source: <a href="https://www.flickr.com/photos/brewbooks/184343090">https://www.flickr.com/photos/brewbooks/184343090</a></figcaption></figure></div><p>This question bothered me. I mean, I could imagine that when stuff settles, it can&#8217;t help but fall into certain lower-energy patterns which then resemble self-repeating patterns like the Fibonacci series. And this process emerges, scaled up and down, throughout the universe. That makes sense. But could we possibly compress data with this idea? Could we &#8220;settle&#8221; data?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://peter.ryszkiewicz.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>One way to think about this is to ask whether we could transform raw data from binary ones and zeroes to another, more compact sequence of ones and zeroes interchangeably without losing anything. There are already many compression algorithms out there that already do this that involve searching for common patterns in the input data and storing those patterns more compactly than the original data. But could we figure out an algorithm that uses Fibonacci numbers to shrink the data instead of searching the data for patterns?</p><p>One cool thing about the Fibonacci series is that any positive integer can be represented by a unique set of distinct, non-adjacent, Fibonacci numbers. This is called <a href="https://en.wikipedia.org/wiki/Zeckendorf%27s_theorem">Zeckendorf&#8217;s Theorem</a>. How would we represent an integer with these properties using binary ones and zeros? Let&#8217;s look at some simple examples. How about the number 12? Firstly, how is that number represented in regular binary? That&#8217;s <code>1100</code>, which, for those unfamiliar with binary numbers, is <code>1*2^3 + 1*2^2 + 0*2^1 + 0*2^0</code> which is <code>8 + 4</code>, or simply 12. See what we did there? Those &#8220;1&#8221;s in binary represent whether or not to include the corresponding power of 2.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LSsq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LSsq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 424w, https://substackcdn.com/image/fetch/$s_!LSsq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 848w, https://substackcdn.com/image/fetch/$s_!LSsq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 1272w, https://substackcdn.com/image/fetch/$s_!LSsq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LSsq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png" width="1400" height="439" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:439,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!LSsq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 424w, https://substackcdn.com/image/fetch/$s_!LSsq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 848w, https://substackcdn.com/image/fetch/$s_!LSsq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 1272w, https://substackcdn.com/image/fetch/$s_!LSsq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61016453-e976-4e11-a4ac-0cca5f31b8a8_1400x439.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Ok, so how can we apply that to those unique properties of Fibonacci numbers? Let&#8217;s think again about the number 12. It took 4 bits to represent that number in binary. Could we do better? Let&#8217;s try to decompose 12 into a unique sequence of non repeating Fibonacci numbers. What is the largest Fibonacci number that fits into 12? 8. Ok, so we subtract 8 from 12 and we have 4 remaining. Now let&#8217;s do that process again. What&#8217;s the largest Fibonacci number that fits into 4? 3. Same thing: subtract 3 and we just get 1, our last Fibonacci number. The cool thing about this is that the number 12 was broken down into just 3 Fibonacci numbers. So, how does that help? Well, we can think of which Fibonacci numbers to utilize in order to sum up to our number we want to represent. If we want to include the Fibonacci term, we use a 1 in front of the corresponding Fibonacci number, and use 0 otherwise. So like binary, we can make a similar expression: <code>1*8 + 0*5 + 1*3 + 0*2 + 1*1</code> which equals 12. This expression is also an example of <a href="https://en.wikipedia.org/wiki/Fibbinary_number">Fibbinary</a>, where each bit tells whether or not to add the corresponding Fibonacci number, starting with 1, 2, 3, 5, 8, etc.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OKCT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OKCT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 424w, https://substackcdn.com/image/fetch/$s_!OKCT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 848w, https://substackcdn.com/image/fetch/$s_!OKCT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 1272w, https://substackcdn.com/image/fetch/$s_!OKCT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OKCT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png" width="1456" height="307" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/da5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:307,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!OKCT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 424w, https://substackcdn.com/image/fetch/$s_!OKCT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 848w, https://substackcdn.com/image/fetch/$s_!OKCT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 1272w, https://substackcdn.com/image/fetch/$s_!OKCT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fda5a4a54-e71b-4f38-accb-dd8b5a57ef73_2000x422.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>&#8220;But Peter!&#8221; You might say. &#8220;That uses 5 bits of information to represent using Fibonacci! It looks like <code>10101</code>!&#8221; I hear you. But we&#8217;re not done! Do we need all those bits? No! And the reason is pretty simple. If we ever see a &#8216;1&#8217;, we know the next digit must be a &#8216;0&#8217;. This is because if there ever were two consecutive &#8216;1&#8217; bits in a Fibbinary representation, then we might as well use the next Fibonacci number that&#8217;s composed of those two smaller, consecutive Fibonacci numbers. This means we can omit zeros that occur after ones. Our bit representation &#8220;knows&#8221; to skip adding any Fibonacci numbers after a &#8216;1&#8217; is seen. So how would we represent the number 12 again, using, what I&#8217;ll refer to from here on out, as &#8220;Zeckendorf representation&#8221;? Well, we had <code>10101</code> with Fibbinary representation. And we can just drop those unnecessary zeros because the prior 1&#8217;s already tell us to skip those Fibonacci numbers. So we are left with <code>111</code>! That&#8217;s just 3 bits! And in binary, it took us 4 bits to represent the number 12! So we just saved a whole bit! That&#8217;s a 25% reduction!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qpUj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qpUj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 424w, https://substackcdn.com/image/fetch/$s_!qpUj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 848w, https://substackcdn.com/image/fetch/$s_!qpUj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 1272w, https://substackcdn.com/image/fetch/$s_!qpUj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qpUj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png" width="1456" height="451" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:451,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!qpUj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 424w, https://substackcdn.com/image/fetch/$s_!qpUj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 848w, https://substackcdn.com/image/fetch/$s_!qpUj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 1272w, https://substackcdn.com/image/fetch/$s_!qpUj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa97b95cd-2797-4679-bac9-3b534eea8cc8_2000x620.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>&#8220;But Peter, that&#8217;s just one bit! That&#8217;s not compression!&#8221; Well, technically it could be, if it scales to larger numbers. I&#8217;ve done some investigating and, unfortunately, it turns out that large numbers with smaller Zeckendorf representations are unlikely and there&#8217;s a limit to how good it can get. But this does allow us to more compactly represent numbers, and therefore, data, if it happens to fall on or close to a &#8220;well compressible number&#8221;.</p><p>What do I mean by a &#8220;well compressible&#8221; number? Well, we can think of the degenerate case where the Zeckendorf representation of the number is all 1&#8217;s, which can reach out to larger numbers &#8220;faster&#8221; than using binary representation, and each &#8216;1&#8217; bit conveys more that 1 bit of classical binary information since it tells us the next digit to add cannot be the next Fibonacci number. For example, the binary number <code>11111111</code> is 8 &#8216;1&#8217; bits. In binary, that represents the decimal number 255. But interpreting those 8 &#8216;1&#8217; bits with Zeckendorf representation, it expands out to <code>1 + 3 + 8 + 21 + 55 + 144 + 377 + 987 = 1596</code>, a much larger number than 255. And representing the decimal number 1596 as binary is &#8220;110 0011 1100&#8221;, which is 11 bits. So in this example, we were able to represent a number needing 11 binary bits with 8, a ~27% reduction.</p><p>Here are some graphs showing the ratio of bits necessary to represent numbers using Zeckendorf representation versus binary representation. The green line at 1.0 represents par compression; no benefit to using Zeckendorf representation. When the blue line dips below the green line, that demonstrates that the number on the x-axis had a Zeckendorf representation that used fewer bits than its binary representation. The following graph shows this compression ratio for numbers up to 1,000.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qhPl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qhPl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!qhPl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!qhPl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!qhPl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qhPl!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!qhPl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!qhPl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!qhPl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!qhPl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01bb9c2f-5fdf-49e4-89a7-c8cad44ce6ec_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The graph below plots much more data, so it is easier to see interesting patterns for when the Zeckendorf representation was beneficial. Perhaps such patterns could be utilized to search for the optimal compression method. More on that later in the article.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UX9V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UX9V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!UX9V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!UX9V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!UX9V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UX9V!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!UX9V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!UX9V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!UX9V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!UX9V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc41ae7ff-b169-42f3-baff-67011d6cef86_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And just for fun, here is a graph for all numbers up to 100 million.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eJo6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eJo6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!eJo6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!eJo6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!eJo6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eJo6!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!eJo6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!eJo6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!eJo6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!eJo6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d23ca3-fbd1-4a6d-bb21-5cb80d591e1a_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, as you can see, there is some potential for using these numbers to compress data. The tradeoff is that you are not guaranteed to be able to compress your data. This can be seen by how thick the blue lines are above the green line at par, versus the lesser amount of blue below the par line. Later in this article, I&#8217;ll go over some statistics for how likely this actually is. TLDR: the odds are not great for data larger than 1kbit, unfortunately.</p><h2><strong>Why Does This Work?</strong></h2><p>It is strange to think that there exist large numbers that require less information to represent than smaller numbers. On the surface, it seems to break long-standing ideas in information theory. I mean, we&#8217;ve known about data compression for a long time which is essentially the same concept of certain larger &#8220;numbers&#8221; requiring less information than certain smaller ones. But this Zeckendorf based transformation of data feels like a different class of compression algorithm altogether. After all, it&#8217;s an extremely simple algorithm and does not really require any knowledge or inspection of the input bits unlike other compression algorithms. We are simply taking a string of bits, interpreting it as a number, and representing it as a different string of bits.</p><p>My attempt at making this intuitive is to say that &#8220;representing a number with Zeckendorf bits produces a shorter string of bits if the input data was composed of lots of Fibonacci numbers.&#8221; The more Fibonacci numbers that the input was composed of, the better it can be &#8220;compressed&#8221;. The extreme case here is having a Zeckendorf number where all bits are 1. Later in the article, I will do some inspection on these numbers, which I will call &#8220;All Ones Zeckendorf Numbers&#8221;, or AOZNs. The extreme opposite case is having a number composed of only 1 Fibonacci number, so the string of Zeckendorf bits is mostly zeroes and one 1. I&#8217;ll call these numbers &#8220;poorly compressible&#8221;, with respect to Zeckendorf compression.</p><p>Since a number is better compressible if it is composed of many Fibonacci numbers, maybe we can make a connection here to the real world, where golden ratios and spirals emerge that are also composed of Fibonacci numbers. I haven&#8217;t settled on a term for this, but perhaps we can call it &#8220;settling&#8221; or a &#8220;settled number&#8221;, pun intended.</p><h2><strong>Zeckendorf Compression</strong></h2><p>I propose a couple standards for Zeckendorf based compression.</p><ol><li><p>Padless Zeckendorf Compression (<a href="https://en.wikipedia.org/wiki/Lossy_compression">lossy</a>)</p></li><li><p>Padded Zeckendorf Compression (<a href="https://en.wikipedia.org/wiki/Lossless_compression">lossless</a>)</p></li></ol><p>The Padless Zeckendorf Compression algorithm is essentially treating the input data as a big integer and then representing this big integer with Zeckendorf bits. I call it padless because when decompressing, if you don&#8217;t know the original file size, you might lose leading zeroes which should have been padded, because they were effectively dropped when interpreting the input data as an integer. Therefore, this is a lossy compression algorithm. The Padded Zeckendorf Compression algorithm retains the original size of the data in the output format, so that it can pad the decompressed output with leading zeroes. This loses some compression efficiency because, now, we need to store the original file size along with the compressed data, but it is lossless.</p><p>I have an MIT licensed open source implementation for these in Rust at <a href="https://github.com/pRizz/zeckendorf">https://github.com/pRizz/zeckendorf</a>, so anyone can play around with it. I have published a Rust crate of this library, called <a href="https://crates.io/crates/zeck">zeck</a>, and a corresponding WASM compiled npm package called <a href="https://www.npmjs.com/package/zeck">zeck</a>.</p><p>I also created a <a href="https://prizz.github.io/zeckendorf-webapp/">basic demo web application</a>, which uses the WASM compiled Rust code, to compress and decompress files losslessly by simply dragging and dropping. The website will tell you if the transformed data was or wasn&#8217;t smaller than the original. I have open sourced it on <a href="https://github.com/pRizz/zeckendorf-webapp">GitHub</a>. As of now, the algorithm requires improvement, because attempting to compress or decompress files larger than about 10kBits requires generating, caching, and dealing with Fibonacci numbers that are &gt; 10,000 bits long, which causes memory issues. That&#8217;s an astoundingly large number when you think about it: 2&#185;&#8304;&#8304;&#8304;&#8304;. For reference, the number 1 trillion only takes about 40 bits to represent. One of the largest named numbers is <a href="https://en.wikipedia.org/wiki/Names_of_large_numbers">a centillion</a>, which represents 10&#179;&#8304;&#179; and takes only about 1,000 bits to represent. So we&#8217;re dealing with some pretty astronomical Fibonacci numbers here!</p><h3><strong>Performance of Padless Zeckendorf Compression</strong></h3><p>This compression is probabilistic, meaning it is not guaranteed to compress data since most Zeckendorf representations of integers require more bits than the input data. This is evident in the graphs above, where a majority of the blue lines are above the green line at par. Since it it probabilistic, I have generated some very basic statistics for how well or poorly this Zeckendorf compression algorithm performs at compressing data.</p><p>After testing, I discovered that there is a pretty steep drop in the odds of any random data being favorably compressible after the input data increases larger than a few hundred bits. Here is a graph demonstrating this falloff.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IGAP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IGAP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!IGAP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!IGAP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!IGAP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IGAP!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!IGAP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!IGAP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!IGAP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!IGAP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F95635d71-72ae-4b89-a042-4fc71b73449b_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The chance of compression being favorable at different input sizes</figcaption></figure></div><p>Early on in the graph, you can see that there is a decent chance of the data being smaller after being compressed, between 10&#8211;15% chance. But as the size of the input data grows, the graph collapses approaching a 0% chance of being compressible after around 1 kbit. Some examples for the way to interpret this graph are: if you supply 100 bits of random data, there is a ~10% chance of the output being smaller than 100 bits. If you supply 1 kbit of random data, there is only a ~0.01% chance of the output being smaller than 1 kbit.</p><p>Beyond that, it would be interesting to see how well the data does get compressed if it happens to be favorable. That is what I try to show with the graph below. It shows a number of different series based on compressing all inputs up to the value shown on the x-axis. For example, the dot on the x-axis at 1e5, means the corresponding y values used all numbers individually, up to 100,000, for compression. These scales are quite small, but they are comprehensive, in that all numbers up to the input limit were compressed. The reason I don&#8217;t go much higher is that it took very long (~20 minutes) to generate data on compressing all numbers up to 100 million, and the returns diminish as the data gets larger.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xBWD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xBWD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!xBWD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!xBWD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!xBWD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xBWD!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!xBWD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!xBWD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!xBWD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!xBWD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12ec86f4-0ab2-4dbe-817e-aff5f8e544e7_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Unfortunately, this graph does not test very large scales; the number 1e8 is 100 million, which only takes about 27 bits to represent. The graph below zooms out and shows the average and median compression ratios up to 5 kbits, using 250,000 random samples at each input data size.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wict!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wict!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!Wict!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!Wict!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!Wict!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wict!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Wict!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!Wict!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!Wict!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!Wict!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9aa717e6-ff8e-481e-af02-972b9bfd598f_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can see that the &#8220;favorable&#8221; compression ratios converge to around 1.0 after 1 kbit, which agrees with the prior graph showing the odds of compression being favorable. But the median and average &#8220;compression&#8221; (maybe &#8220;transformation&#8221; is a better term here because the size of the data tends to increase) tends to approach on the order of 1.042, meaning that on average, arbitrary data that is transformed by the Zeckendorf compression algorithm gets larger by about 4.2%.</p><p>There will naturally be outliers in these graphs at &#8220;All Ones Zeckendorf Numbers&#8221;, which is the degenerate case where all the bits in the Zeckendorf representation are &#8216;1&#8217;. But again, this is extremely rare for a piece of data to fall on or near those numbers, so it is difficult to see them in the graph. But there is potential for optimization if the input data could be slightly &#8220;massaged&#8221; to be nearer to an &#8220;All Ones Zeckendorf Number&#8221;. I go over that more in the next section.</p><h2><strong>Further Compression Algorithms and Tweaks Related to Zeckendorf Compression</strong></h2><p>I can imagine there is a lot more work to be done in figuring out more optimal and efficient algorithms based on this work. I will enumerate a few possible directions.</p><h3><strong>&#8220;All Ones Zeckendorf Numbers&#8221;</strong></h3><p>Whenever there is a &#8220;Zeckendorf Bits&#8221; list that is composed of all &#8220;use bits&#8221; or &#8220;1&#8217;s&#8221;, then this number is able to &#8220;reach&#8221; out to higher numbers faster than binary. For example, let&#8217;s look at &#8220;<code>1111</code>&#8221;. In binary, this represents the decimal number 15 by summing <code>1 + 2 + 4 + 8</code> (or by doing <code>2&#8308; &#8212; 1</code>). But if we interpret this as four Zeckendorf &#8220;use bits&#8221;, we get <code>1 + 3 + 8 + 21</code> which equals 33, a number quite a bit larger than 15.</p><p>Below is a graph comparing the growth rate of &#8220;all ones Zeckendorf numbers&#8221;, or AOZN&#8217;s for short, to the Fibonacci numbers, binary numbers (2^n), and powers of 3 (3^n). And interestingly, I found a relation between the growth of Fibonacci numbers and powers of the golden ratio (&#966;, or 1.618&#8230;), as well as a relation between the AOZN&#8217;s and powers of the golden ratio squared, &#966;&#178;: namely, these pairs of sequences grow at the same rate, just offset by some constant factor. You can easily see these pairs have very similar slopes in the graph.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UknW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UknW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!UknW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!UknW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!UknW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UknW!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!UknW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 424w, https://substackcdn.com/image/fetch/$s_!UknW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 848w, https://substackcdn.com/image/fetch/$s_!UknW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 1272w, https://substackcdn.com/image/fetch/$s_!UknW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa6468a03-4a79-4eff-a43d-005f3e960769_2000x1125.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Various number sequences plotted</figcaption></figure></div><p>If we consider a &#8220;lucky&#8221; example, let&#8217;s suppose we want to compress a file that happens to be not too &#8220;far&#8221; from one of these numbers represented by an AOZN. For example, let&#8217;s say our data was equal to a number equaling 100k &#8216;1&#8217; Zeckendorf bits plus 1k arbitrary bits. As raw data, summing 100k Zeckendorf Use Bits produces a number that takes about 138k bits to represent in binary. With this, we can represent our 138k of data with two pieces of information: the count of &#8216;1&#8217; bits in the AOZN and those arbitrary 1k bits. Since there are 100k one bits, we can just represent this part with the number 100,000. The number 100,000 only takes roughly 17 bits to represent (<code>log2(100,000)</code>). So we can specify a file format that is the combination of these two pieces of information, which only needs roughly 1k bits plus 17 bits. So we have effectively compressed our data from 138k bits to about 1k bits, a 99% reduction. This seems great, but the catch is that it is extremely rare for data to be &#8220;near&#8221; an AOZN. In general, most numbers are far enough from an AOZN such that it takes roughly the same number of bits added to that number to produce the target data, which results in no savings.</p><h3><strong>Chunked Preprocessing</strong></h3><p>Since we figured out that the odds of any compression happening past 1,000 bits falls off a cliff, what if we first chunk the input at like 500 bit chunks, so that every chunk has a somewhat higher chance of being compressed?</p><p>Immediately, I can think of a few issues with this approach. Namely, how does the decompressor know how big the chunks of data to decompress are? We will now need to store additional information about the chunk sizes somewhere, perhaps in a header. But that now reduces the compression efficiency.</p><p>For an example, let&#8217;s say we chunk some data at 100 bit chunks, which has a 10% chance of being compressed at a median of ~2.5% savings. Then each chunk will only be saving less than 1 bit on average. And for representing bit sizes up to 100 bits, we will need <code>log2(100)</code> bits or 7 bits per chunk to tell the decompressor how many bits to read per chunk. Dang. This method will likely not be useful.</p><h3><strong>Only Compress Data Sets Between 100bits &#8212; 1kbit</strong></h3><p>This is a similar strategy to the Chunked Preprocessing, except that we are only considering individual files that are less than than 1 kbit. The benefit here is that we don&#8217;t need to explicitly store extra data in order to recombine chunks; the operating system could store the true file sizes, which I believe it already does.</p><p>Doing similar math to the chunked preprocessing, if all your data is around 100 bits each, and there is a ~10% chance of compression at a median of ~2.5% savings, then you can expect your data set to be reduced in size by about 0.25%. Unfortunately, that is not a very impressive number. But at a large scale, this could theoretically produce some savings.</p><h3><strong>Lossy Zeckendorf Compression</strong></h3><p>There might be other ways to compress the data in a lossy manner, using the Zeckendorf algorithm as a base. I could imagine there being methods of preprocessing the data first, with something like a <a href="https://en.wikipedia.org/wiki/Fast_Fourier_transform">Fast Fourier Transform</a> or a <a href="https://en.wikipedia.org/wiki/Discrete_cosine_transform">Discrete Cosine Transform</a> (used in <a href="https://en.wikipedia.org/wiki/JPEG">JPEGs</a>), and massaging the data to fit into more compressible Zeckendorf numbers, as mentioned in the &#8220;All Ones Zeckendorf Numbers&#8221; subsection.</p><h3><strong>Compositions with Other Compression/Coding Algorithms</strong></h3><p>Even though Zeckendorf compression may not be useful in and of itself, it could be used in conjunction with other compression algorithms as a &#8220;last leg&#8221; if favorable.</p><p>This is analogous to how <a href="https://en.wikipedia.org/wiki/Huffman_coding">Huffman Coding</a> is used, which, <a href="https://en.wikipedia.org/wiki/Huffman_coding#Applications">according to Wikipedia</a>, is used as a &#8220;back-end&#8221; to other compression algorithms like JPEG and MP3.</p><p>If applying Zeckendorf compression is favorable for some file, then it just needs a singe piece of information in the resultant compressed file to signify that it was used, so that the decompressor know to decompress it. My compression utility, called <code>zeck-compress</code>, stores files with a <code>.zbe</code> or a <code>.zle</code> file extension, depending on if the input was interpreted as a big endian integer or a little endian integer.</p><h3><strong>Addition/Multiplication/XOR Then Compression</strong></h3><p>It is possible that there are &#8220;good numbers&#8221; to preprocess the input data with, which then produces data that is more compressible via Zeckendorf. If it does help, then the resultant compressed file just needs to store the operation, the &#8220;good number&#8221;, and the resultant compressed data to remake the original data (if the storage size of these three pieces of data happens to be less than the original input).</p><p>One strategy is to find the nearest AOZN to the data and then get the difference between it and the AOZN to know what number the decompressor needs to add to it. I did some testing with this method, but it is extremely unlikely for large pieces of data to be near AOZNs, and even if it is, the number to add it with is likely to take as many bits as the input data itself, which yields no data savings.</p><p>It&#8217;s possible that performing a division on the input data would be more beneficial, because the resultant data can be much smaller than with subtraction, with a similarly sized divisor. But this also will have diminishing returns because as the size of the divisor grows, the efficiency of the compression is reduced. I have not yet tested this method.</p><p>Then there is XORing the data, for which there could be a few different schemes. You wouldn&#8217;t want to store a piece of XOR that is as large as the input, otherwise, you&#8217;d need to store the whole thing in the result, which cancels the benefit of compression. Another scheme is to have a repeated piece of XOR data, which could be mirrored throughout the whole input, in order to reduce the size needed to store the XOR data. But this would be a costly operation, to search for many permutations of data to XOR with to find one that yields beneficial compression. I have not yet tested this method either.</p><p>There are likely other mathematical or bit operations I am not considering, but they may be useful here.</p><h3><strong>Inverted Zeckendorf</strong></h3><p>Since trying to &#8220;compress&#8221; data with Zeckendorf tends to produce more data than less, what if we treated the input data as already compressed and try to &#8220;decompress&#8221; it with the thinking that, since probabilistically most <code>compress</code> actions produce larger data, maybe <code>decompress</code> actions produce smaller data.</p><p>Unfortunately, this doesn&#8217;t work. If you think about it, if we take arbitrary data, and treat its bits as a list of Zeckendorf &#8220;use bits&#8221;, then summing over those bits by converting them to Fibonacci numbers will tend to yield, on average, a larger number than simply interpreting the input as binary. Therefore, this is likely not a useful avenue for compression.</p><h3><strong>AOZN List</strong></h3><p>What if we represented our data as a list of AOZN indices? Since AOZNs can reach out to larger numbers faster than powers of two, this could be a new numbering system essentially. And perhaps utilizing skip bits could work here as well.</p><p>Well, looking into it, the first handful of elements of the sequence of AOZNs is 1, 4, 12, 33, 88, 232, 609, 1596, 4180, 10945, etc. Already, we can see one issue: the gap between the first two elements (1, 4), means that we would need 3 bits of information to represent the number 3, or any other number where 3 was the remainder after subtracting other AOZNs. That&#8217;s not great. And subsequent gaps mean we may subsequently need multiples of other elements to represent other numbers. I have not tested this method further.</p><h2><strong>Further Related Areas of Research</strong></h2><h3><strong>Circuits / Hardware</strong></h3><p>If the Zeckendorf representation turns out to be useful for certain applications, then it might make sense to produce hardware optimized for dealing with the Zeckendorf representation. Or, it&#8217;s possible that certain operations on hardware execute faster when dealing with the Zeckendorf representation versus binary representation. Some operations that would be interesting to test are all of the basic numeric operations like addition, subtraction, multiplication, division, etc. I have not tested this yet.</p><p>And since the Zeckendorf compression and decompression algorithms involve determining extremely large Fibonacci values, it might be worth it to have lookup tables in hardware, for hyper fast lookups. It would be interesting to investigate the performance of having a sped up Zeckendorf codec in terms of time and cost savings with specialized hardware.</p><h3><strong>Other Numbering Systems</strong></h3><p>What about using a numbering system based on other sequences, like prime numbers? Could that work in compressing data?</p><p>A cursory glance at this reveals that it does not quite have the same properties as a numbering system based on Fibonacci numbers. I mean, there is the <a href="https://en.wikipedia.org/wiki/Fundamental_theorem_of_arithmetic">Fundamental Theorem of Arithmetic</a>, which states, somewhat analogously to <a href="https://en.wikipedia.org/wiki/Zeckendorf%27s_theorem">Zeckendorf&#8217;s Theorem</a>, that all integers greater than 1 have a unique representation of products of prime numbers. But it is not as clear as to how to represent this using 1&#8217;s and 0&#8217;s, while saving data. Maybe someone more clever than me can take a crack at this&#8230;</p><h3><strong>&#8220;Poorly Compressible Numbers&#8221;</strong></h3><p>Since we have the idea of AOZN&#8217;s being &#8220;well compressible&#8221;, what would the opposite look like? Well, that would be a string of 0 bits, and then a 1 bit, to &#8220;use&#8221; a Fibonacci number. The reason for this is that by using mostly 0&#8217;s, we do not save any data that we would have saved by using 1 bits and skipping Fibonacci numbers. When we have a large string of 0&#8217;s and then a 1, this is basically equivalent to indexing a specific Fibonacci number. It&#8217;s like a &#8220;Fibonacci selector.&#8221;</p><p>For example, if we have the bits <code>100</code>, this can be interpreted as <code>1*F(2) + 0*F(1) + 0*F(0)</code> which is 3, which is the third &#8220;effective Fibonacci&#8221; number or the fifth &#8220;actual Fibonacci number&#8221;. I use the term &#8220;effective&#8221;, since, like in Fibbinary, we skip the first two Fibonacci numbers which are 0 and 1; 0 does not help us and 1 is redundant to the second Fibonacci number. An &#8220;effective&#8221; Fibonacci number is just two Fibonacci numbers forward. So the third effective Fibonacci number is 3, (1, 2, 3, 5, 8, 13, &#8230;).</p><h2><strong>AOZN Compressibility</strong></h2><p>What makes AOZNs so compressible? I think one thing that makes it special is that it is a special case of Zeckendorf bit lists, which can be thought of as a variable bit length encoding. Some larger numbers take fewer bits to represent than some smaller numbers, and all numbers are uniquely representable. I think that is a fascinating property; I&#8217;m not sure if there are other sequences that have that property. It&#8217;s like getting more for less, and losing nothing. I would surmise that there are other sequences that can mimic these properties, but I can&#8217;t fathom another consistent way having larger numbers taking less space than smaller numbers, simply by using a different numbering system.</p><p>The manner in which the Zeckendorf bit list is a variable bit length encoding is such that whenever we see a 1 bit in the list, we &#8220;skip&#8221; the next Fibonacci number. And since we don&#8217;t need to store those unnecessary 0s, we save on data. In this way, it reminds me of a <a href="https://en.wikipedia.org/wiki/Skip_list">skip list</a>, which is a data structure that, similarly, skips the traversal of elements at certain locations when doing a search. Perhaps we could think of different kinds of skip lists for Fibonacci numbers, based on properties of the input data, which could save further data. My Zeckendorf algorithm can be thought of as the first-order skip list for representing numbers. But there could be other schemes that skip more than one index at a time, if that is made clear in the algorithm. And since not all numbers could be representable by skipping more than one index, that could be another example of a lossy compression, since some data would need to be compressed at the nearest possible representable string of bits. Further investigation is needed here.</p><h2><strong>Other Things</strong></h2><h3><strong>Has this been done before?</strong></h3><p>As far as I could find, this method has not been done before. I find it funny that I could not find prior examples. I&#8217;d think that someone would have thought of this before, since it&#8217;s so close to Fibbinary. Maybe it is out there somewhere but was shelved as an impractical system. Either way, I&#8217;m sure someone will reach out to me to point out that this was a known algorithm. Even if it was already known, at least I had fun developing it, and I hope we could find something useful from this research.</p><h3><strong>Did you use AI?</strong></h3><p>I, Peter Ryszkiewicz, came up with this idea roughly 6 years ago, before ChatGPT was even released. I have private prototype code on GitHub in Typescript, that can be used to prove this, and GitHub could attest to the push timestamps since git histories can be faked. But the code is old and ugly so I&#8217;m choosing not to publicize that. That being said, the recent implementations in Rust and the web application did use AI assistance (<a href="https://cursor.com/">Cursor</a> and <a href="https://lovable.dev/">Lovable</a> mostly).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xLhI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xLhI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 424w, https://substackcdn.com/image/fetch/$s_!xLhI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 848w, https://substackcdn.com/image/fetch/$s_!xLhI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!xLhI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xLhI!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png" width="1200" height="629.6703296703297" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:764,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!xLhI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 424w, https://substackcdn.com/image/fetch/$s_!xLhI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 848w, https://substackcdn.com/image/fetch/$s_!xLhI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 1272w, https://substackcdn.com/image/fetch/$s_!xLhI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d2a37f3-9fc1-40fa-9376-efb23b6e2be6_2000x1050.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Screenshot of my old prototype for Zeckendorf encoding</p><h3><strong>Did you use AI to write this article?</strong></h3><p>No, I decided against using AI for this article so that my writing style could be expressed faithfully. I also don&#8217;t like the writing style of AI, because even though it is usually very clear, it tends to be tasteless and soulless; a chopped salad of all the labor of all the great authors who have lived and died before us. I don&#8217;t like that. When you read this article, you are actually getting a taste of what goes on in Peter Ryszkiewicz&#8217;s personal neural nets &#128516;&#128513;</p><p>Ironically, after publishing this article, I ran it through some AIs and it pointed out a number of interesting things, including some mistakes. Subsequently, I have fixed the mistakes in this article and I will post another article detailing the interesting findings, shortly.</p><h2><strong>Addendum</strong></h2><p>All plots were made with the Rust library <code>plotters</code>, and all code for generating the plots are available on my repository at <a href="https://github.com/pRizz/zeckendorf/blob/main/src/bin/plot.rs">https://github.com/pRizz/zeckendorf/blob/main/src/bin/plot.rs</a>.</p><p>Code for generating the dark mode compatible LaTeX formula images is available at <a href="https://github.com/pRizz/zeckendorf-article">https://github.com/pRizz/zeckendorf-article</a>.</p><p>The Rust crate is published here: <a href="https://crates.io/crates/zeck">https://crates.io/crates/zeck</a></p><p>The npm library is published here: <a href="https://www.npmjs.com/package/zeck">https://www.npmjs.com/package/zeck</a></p><p>The demo app is published here: <a href="https://prizz.github.io/zeckendorf-webapp/">https://prizz.github.io/zeckendorf-webapp/</a></p><p>The source code for the reference implementation is here: <a href="https://github.com/pRizz/zeckendorf">https://github.com/pRizz/zeckendorf</a>. PRs welcome! Lots of hard work is needed to optimize the performance and memory pressure of compressing and decompressing!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://peter.ryszkiewicz.us/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>