<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>Michael Price</title>
    <subtitle>Field notes and career stories from an engineer who still ships.</subtitle>
    <link rel="self" type="application/atom+xml" href="https://blog.nyvorin.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.nyvorin.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-06-15T00:00:00+00:00</updated>
    <id>https://blog.nyvorin.com/atom.xml</id>
    <entry xml:lang="en">
        <title>Awake again</title>
        <published>2026-06-15T00:00:00+00:00</published>
        <updated>2026-06-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.nyvorin.com/posts/awake-again/"/>
        <id>https://blog.nyvorin.com/posts/awake-again/</id>
        
        <content type="html" xml:base="https://blog.nyvorin.com/posts/awake-again/">&lt;p&gt;I ran a plan the other night and watched a whole environment describe itself back to me. The network, the load balancers, the database, the cache, the DNS, all of it laid out in text I could read top to bottom. One command turned that text into running infrastructure. I sat there grinning like it was the first program I ever shipped.&lt;&#x2F;p&gt;
&lt;p&gt;I had not felt that in a while. Somewhere in the last few years I went quiet. Still working, still leading, still shipping, but the part of me that loves to build had been idling in the background. I did not notice it fade. I noticed it come back.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-long-way-here&quot;&gt;The long way here&lt;&#x2F;h2&gt;
&lt;p&gt;The path took its time. I started on the frontend, making things people could see and touch. That pulled me into the full stack, where I learned to own a feature from the database all the way to the pixel. From there I grew into leading. I built and ran an engineering organization of twenty five people, carried several projects at once, modernized an aging platform, and helped a company move faster while keeping the lights on. I loved that work. Standing up a team, mentoring engineers into leaders, turning noise into a rhythm. I would do it again tomorrow.&lt;&#x2F;p&gt;
&lt;p&gt;Along the way I started building on my own. A studio first, then products that came out of it. One of them, Unyform, grew out of a smaller tool I made for myself called MechCrate. MechCrate was me getting tired of wiring up the same machinery for every project, so I built one opinionated system that handled local development, operations, and production deploys, then let an AI drive it. Unyform took that further and turned it into a way for a whole company to connect its stack once and let AI work inside real guardrails.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;all-in-on-infrastructure&quot;&gt;All in on infrastructure&lt;&#x2F;h2&gt;
&lt;p&gt;This year I went all in on the part I had been circling for a long time. I joined a team full time as a DevOps engineer, working on infrastructure that runs at a scale I used to architect only from a distance. Real compliance, real load, systems people depend on to get through their day. My last role gave me a taste of this. Now it is the whole meal. I spend my days scaling cloud systems across two major providers, writing infrastructure as code, and automating the boring and the dangerous parts until they stop being either.&lt;&#x2F;p&gt;
&lt;p&gt;Terraform is my main instrument now. There is something honest about infrastructure you can read. The whole environment sits in files. You propose a change, you see exactly what will happen before it happens, and then it happens the same way every time. After years of clicking through consoles and hoping, that kind of predictability feels like a superpower. Rust is the other language I am leaning into this year, for the tooling I build around all of it. Those two are my 2026.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-command-center-of-my-own&quot;&gt;A command center of my own&lt;&#x2F;h2&gt;
&lt;p&gt;Outside of work, the automation habit has fully taken over. I built a dashboard for my own life that ties my workflows together through a set of MCP servers. Email, messaging, my calendar, documents that need signing, the platforms I post to, my notes and my projects, all reachable from one place an AI can operate on my behalf. I describe what I want and the machinery does the reaching. What used to be an afternoon of switching tabs is now a sentence.&lt;&#x2F;p&gt;
&lt;figure&gt;
  &lt;img src=&quot;&#x2F;img&#x2F;hq-command-center.png&quot; alt=&quot;The hq command center dashboard: project cards for PriceLove, ghostnn.ai, and hq itself, each showing the day&#x27;s schedule, open items, and a sync button that pulls from the tools behind it.&quot; width=&quot;1196&quot; height=&quot;820&quot; loading=&quot;lazy&quot;&gt;
  &lt;figcaption&gt;My hq command center. Every project, meeting, and open item in one place, each card synced from the tools underneath it.&lt;&#x2F;figcaption&gt;
&lt;&#x2F;figure&gt;
&lt;p&gt;The real change is the gap between having an idea and holding a working version of it. That gap used to be weeks. Now it is days, sometimes a single evening. I am motivated and equipped at the same moment, and that pairing is rare enough that I am not taking it for granted. Ideas I would have filed under someday are shipping this week.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;building-is-the-thing-that-drives-me&quot;&gt;Building is the thing that drives me&lt;&#x2F;h2&gt;
&lt;p&gt;Here is the honest part. I love leading. Building teams and helping people grow into their own has been some of the most meaningful work of my life. And underneath all of it, the steady thing that has always driven me is building the systems themselves. Getting my hands into the machine and making it run. This year I found a way to hold both at once, and it woke something up.&lt;&#x2F;p&gt;
&lt;p&gt;I keep at this for the work and for the fun, because the fun is what keeps the work honest. It is what pushes me one step past the limit I found yesterday. I spent a few years quiet. I am awake now, and I am building again.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>The breach that kept coming back</title>
        <published>2026-06-14T00:00:00+00:00</published>
        <updated>2026-06-14T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.nyvorin.com/posts/the-breach-that-kept-coming-back/"/>
        <id>https://blog.nyvorin.com/posts/the-breach-that-kept-coming-back/</id>
        
        <content type="html" xml:base="https://blog.nyvorin.com/posts/the-breach-that-kept-coming-back/">&lt;p&gt;It came in as a bug report on a Wednesday. The text editor on a site I look after had lost most of its buttons. An hour in, I understood I was not looking at a bug. I was looking at a hole, and someone was already climbing through it.&lt;&#x2F;p&gt;
&lt;p&gt;My first instinct was to panic. I did not. Panic makes you start fixing before you understand what you are fixing. So I sat with the logs and mapped the damage first. What got in, how far it reached, what it might have touched. Once I could describe the blast radius out loud, I started to move.&lt;&#x2F;p&gt;
&lt;p&gt;The work split into two jobs. Close the hole. Clean up what came through it.&lt;&#x2F;p&gt;
&lt;p&gt;The cleanup ran late. Around midnight I called the system administrator on the client side and told her straight how urgent this was. We got on a Zoom and rotated the keys that mattered while we were both awake to confirm each one. Nothing proved those keys had been stolen. They could have been, and that was reason enough to treat them as if they were. You assume the worst on the things that would hurt the most. That keeps the blast radius small, and it lets everyone sleep that night instead of lying awake doing math.&lt;&#x2F;p&gt;
&lt;p&gt;Then I thought I had it. I patched the path the attacker used, set up a scanner, and stepped back.&lt;&#x2F;p&gt;
&lt;p&gt;Out of habit, I checked again myself. The attacker had already found a second way in, one my fix did not cover and my scanner never flagged. If I had trusted the green light over my own eyes, the site would have sat there wide open as though I had never shown up. That happened three times. Patch, reverify, find the next door hanging open. Whack-a-mole, and the mole was winning on volume.&lt;&#x2F;p&gt;
&lt;p&gt;What ended it was going under the symptom. Instead of closing each door one at a time, I shut the whole wing. I cut off every route into that plugin at once. The recurrences stopped. By late Thursday into early Friday morning, it was actually over.&lt;&#x2F;p&gt;
&lt;p&gt;A few things stuck.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;recheck-it-yourself&quot;&gt;Recheck it yourself&lt;&#x2F;h2&gt;
&lt;p&gt;Reverification is the job. Run it yourself, every time. A scanner only catches what it was built to catch and stays quiet about the rest. The check I trusted was the one I ran by hand, hunting for the thing I had not thought of yet.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;legacy-is-a-countdown&quot;&gt;Legacy is a countdown&lt;&#x2F;h2&gt;
&lt;p&gt;Running a live site on an out of date framework is a countdown. When the security patches stop coming and the known holes pile up, getting hit becomes a question of when somebody aims a bot your way. Sometimes the vendor does not ship a fix in time. In my case a clean upgrade would have triggered a cascade of other upgrades, too risky and too slow for a site already scheduled to be retired in a few months. So you hold the line by hand and you plan the exit.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-human-part&quot;&gt;The human part&lt;&#x2F;h2&gt;
&lt;p&gt;The part people skip is the human one. The midnight call. The plain language. Choosing to act as if the worst were true so nobody had to gamble on it. Each time it came back I told her before she had to ask, owned that my last fix was too narrow, and showed her the wider one. That is what kept her trusting me enough to let me keep working while the ground moved under us.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;when-attacking-gets-cheap&quot;&gt;When attacking gets cheap&lt;&#x2F;h2&gt;
&lt;p&gt;And then there is the part that actually sits with me. This landed three days after the exploit for that plugin went public. It also landed the day after Anthropic shipped its Fable 5 model, &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.anthropic.com&#x2F;news&#x2F;fable-mythos-access&quot;&gt;which the company pulled soon after&lt;&#x2F;a&gt;, &lt;a rel=&quot;noopener&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;cybersecuritynews.com&#x2F;anthropics-claude-fable-5-jailbroken&#x2F;&quot;&gt;following a public jailbreak&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;I cannot prove a model wrote the thing that hit me. I can tell you the timing made me sit up. Attacking a system used to take skill. Now someone can describe what they want and let a model do the reaching. More people will try, because trying just got cheap.&lt;&#x2F;p&gt;
&lt;p&gt;So the next stretch looks like white hat AI against black hat AI. Some of the black hat will be bad intent holding a good model. Some of it will be a good model talked into bad work by someone who knew the right words. I spent two days as the white hat. I do not think it was my last.&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>What version one has to survive</title>
        <published>2026-06-13T00:00:00+00:00</published>
        <updated>2026-06-13T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.nyvorin.com/posts/what-version-one-has-to-survive/"/>
        <id>https://blog.nyvorin.com/posts/what-version-one-has-to-survive/</id>
        
        <content type="html" xml:base="https://blog.nyvorin.com/posts/what-version-one-has-to-survive/">&lt;p&gt;Before Pluto TV was a company, it was a handful of files I owned end to end. No
funding, no org chart, no second opinion. Just the bet, and the code the bet
rode on.&lt;&#x2F;p&gt;
&lt;p&gt;People treat version one like a rough draft. I have come to see it the opposite
way. The first version carries the whole company on its back before anyone has
agreed to catch it. It has to take a punch from reality and keep standing long
enough for the next person to believe in it.&lt;&#x2F;p&gt;
&lt;p&gt;So I built it to survive contact. I kept the moving parts few enough that I
could hold the whole thing in my head at 2am. I made the risky pieces loud, so
when something broke it told me where and why instead of going quiet. I left the
clever ideas on the shelf and shipped the boring ones that I could reason about
under pressure.&lt;&#x2F;p&gt;
&lt;p&gt;That version got Pluto off the ground and into its first real funding. Later it
grew into the free streaming service millions of people watch, and Viacom
acquired it. None of that happens if the first cut folds the first week.&lt;&#x2F;p&gt;
&lt;p&gt;Here is the lesson I still carry into every founding build. Version one is not
where you prove how good you are. It is where you prove the idea can stand up.
Make it small, make it honest about its own failures, and make it yours. The
polish comes after something is alive to polish.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
