<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://darkheartlabs.technology/feed.xml" rel="self" type="application/atom+xml" /><link href="https://darkheartlabs.technology/" rel="alternate" type="text/html" /><updated>2026-07-04T01:11:38+00:00</updated><id>https://darkheartlabs.technology/feed.xml</id><title type="html">JV · Dark Heart Labs | Essays</title><subtitle>Essays on code and creativity. Dark Heart Labs · From the Orchid Room.</subtitle><author><name>Jennifer Vise Picado</name></author><entry><title type="html">The Model Is a Mirror</title><link href="https://darkheartlabs.technology/p/the-model-is-a-mirror/" rel="alternate" type="text/html" title="The Model Is a Mirror" /><published>2026-06-28T00:00:00+00:00</published><updated>2026-06-28T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/the-model-is-a-mirror</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Whatever you bring to the prompt, the model hands back with better grammar. Vague intent in, vague prose out. Half-formed plan in, confident-sounding half-formed plan out. The system does not invent rigour you did not supply; it polishes whatever shape you handed it until the edges look intentional.]]></summary></entry><entry><title type="html">Migrations Are Confessions</title><link href="https://darkheartlabs.technology/p/migrations-are-confessions/" rel="alternate" type="text/html" title="Migrations Are Confessions" /><published>2026-06-21T00:00:00+00:00</published><updated>2026-06-21T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/migrations-are-confessions</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Every schema change is a sentence about something the original author got wrong. Not maliciously — just earlier, with less information, under different constraints. The migration file is a footnote to a decision made by someone who could not see this far ahead, and it is your job to write the footnote without contempt.]]></summary></entry><entry><title type="html">Rest Is a Deploy Target</title><link href="https://darkheartlabs.technology/p/rest-is-a-deploy-target/" rel="alternate" type="text/html" title="Rest Is a Deploy Target" /><published>2026-06-17T00:00:00+00:00</published><updated>2026-06-17T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/rest-is-a-deploy-target</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Sleep ships the build your brain wrote during the day. The insight you almost had at 4pm is waiting in a queue; the queue does not drain unless you actually lie down. Skipping rest is not heroism. It is leaving the artefact in staging and calling the work done.]]></summary></entry><entry><title type="html">Naming Things Is Still the Hardest Problem</title><link href="https://darkheartlabs.technology/p/naming-things-is-still-the-hardest-problem/" rel="alternate" type="text/html" title="Naming Things Is Still the Hardest Problem" /><published>2026-06-14T00:00:00+00:00</published><updated>2026-06-14T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/naming-things-is-still-the-hardest-problem</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[A name is the smallest unit of design in a codebase. Every identifier you commit is a tiny API — a promise to every future reader, including future-you at 2am, that this thing does what it says on the tin. Get the name wrong and the cost compounds: misreads, defensive comments, wrapper functions invented to translate one bad name into a better one.]]></summary></entry><entry><title type="html">Documentation as Empathy</title><link href="https://darkheartlabs.technology/p/documentation-as-empathy/" rel="alternate" type="text/html" title="Documentation as Empathy" /><published>2026-06-07T00:00:00+00:00</published><updated>2026-06-07T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/documentation-as-empathy</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Docs are a letter to the next person, and the next person is almost always you. Six months from now, the context you currently hold in working memory will be gone. What survives is whatever you wrote down, in whatever tone you chose to write it in.]]></summary></entry><entry><title type="html">The Context-Switching Tax Nobody Itemizes</title><link href="https://darkheartlabs.technology/p/context-switching-tax/" rel="alternate" type="text/html" title="The Context-Switching Tax Nobody Itemizes" /><published>2026-05-31T00:00:00+00:00</published><updated>2026-05-31T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/context-switching-tax</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Every interruption is a charge against a budget you never see. The visible cost is the minute the conversation took. The hidden cost is the twenty minutes of context reconstruction that follows — the slow rebuild of mental state, open files, half-formed hypotheses.]]></summary></entry><entry><title type="html">Relocation as Refactor</title><link href="https://darkheartlabs.technology/p/relocation-as-refactor/" rel="alternate" type="text/html" title="Relocation as Refactor" /><published>2026-05-24T00:00:00+00:00</published><updated>2026-05-24T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/relocation-as-refactor</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Moving countries is a migration with no rollback plan. You lift an entire system — paperwork, relationships, daily routines, the small infrastructure of being a person — and you redeploy it onto unfamiliar substrate. Some services come back up immediately. Others stay broken for months. The ones that stay broken the longest are the ones you forgot were running.]]></summary></entry><entry><title type="html">Protocols as Promises</title><link href="https://darkheartlabs.technology/p/protocols-as-promises/" rel="alternate" type="text/html" title="Protocols as Promises" /><published>2026-05-17T00:00:00+00:00</published><updated>2026-05-17T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/protocols-as-promises</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[A protocol is a promise two strangers agree to keep. Neither party has met the other. Neither will read the other’s source code. The only thing standing between them and chaos is a written specification and a shared willingness to honour it.]]></summary></entry><entry><title type="html">Sensory Load Is a System Resource</title><link href="https://darkheartlabs.technology/p/sensory-load-is-a-system-resource/" rel="alternate" type="text/html" title="Sensory Load Is a System Resource" /><published>2026-05-10T00:00:00+00:00</published><updated>2026-05-10T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/sensory-load-is-a-system-resource</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[The nervous system is a constrained machine. It has bandwidth, latency, a thermal budget. Light, sound, fabric, social context — all of these consume capacity, and they consume it whether or not you notice them consuming it.]]></summary></entry><entry><title type="html">The Tyranny of the Default</title><link href="https://darkheartlabs.technology/p/the-tyranny-of-the-default/" rel="alternate" type="text/html" title="The Tyranny of the Default" /><published>2026-05-03T00:00:00+00:00</published><updated>2026-05-03T00:00:00+00:00</updated><id>https://darkheartlabs.technology/p/the-tyranny-of-the-default</id><author><name>Jennifer Vise Picado</name></author><summary type="html"><![CDATA[Most users will never change the setting. Not because they cannot — because they will not. The default is the product. Every option you bury in a preference pane is a decision you have effectively made on behalf of ninety-five percent of the people who will ever touch the software.]]></summary></entry></feed>