<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: BezaCore Labs</title>
    <description>The latest articles on DEV Community by BezaCore Labs (bezacorelabs).</description>
    <link>https://dev.to/bezacorelabs</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F14139%2Fdd041527-8f06-4952-80f0-de622769bfce.png</url>
      <title>DEV Community: BezaCore Labs</title>
      <link>https://dev.to/bezacorelabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bezacorelabs"/>
    <language>en</language>
    <item>
      <title>Why every engagement is fixed-price</title>
      <dc:creator>Joseph Soper</dc:creator>
      <pubDate>Fri, 31 Jul 2026 00:26:31 +0000</pubDate>
      <link>https://dev.to/bezacorelabs/why-every-engagement-is-fixed-price-2ipf</link>
      <guid>https://dev.to/bezacorelabs/why-every-engagement-is-fixed-price-2ipf</guid>
      <description>&lt;p&gt;I quote fixed prices. Every engagement, agreed in writing before any work starts. Here’s the thinking behind it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hourly billing rewards the wrong things
&lt;/h2&gt;

&lt;p&gt;When you bill by the hour, the slow, meandering version of the work pays better than the fast, focused one. That’s a strange incentive to put between a studio and the people it’s trying to help. It also means you can’t really budget — the final number is a mystery until the invoice lands.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixed scope keeps both sides honest
&lt;/h2&gt;

&lt;p&gt;Before anything starts, we write down exactly what’s included and what isn’t. You know the price. I know the boundaries. Nobody’s watching a meter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;You can budget.&lt;/strong&gt; The number is the number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I’m rewarded for being good, not slow.&lt;/strong&gt; Working efficiently helps both of us.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope creep is a conversation, not a surprise.&lt;/strong&gt; New requests get re-quoted openly, never quietly billed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The one exception
&lt;/h2&gt;

&lt;p&gt;Ongoing support is the exception, because “keep helping as things come up” genuinely doesn’t have a fixed scope. That’s what the retainer is for — a monthly block of hours at a clear rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start small if you want
&lt;/h2&gt;

&lt;p&gt;If committing to a fixed price still feels like a leap with someone new, the $500 Infrastructure Audit is a low-risk way to see how I work before a bigger build.&lt;/p&gt;

&lt;p&gt;Clear scope, clear price, written down. It’s better for everyone — including me.&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
      <category>startup</category>
    </item>
    <item>
      <title>Shipping is the easy part. Running it is the job.</title>
      <dc:creator>Joseph Soper</dc:creator>
      <pubDate>Mon, 27 Jul 2026 23:37:22 +0000</pubDate>
      <link>https://dev.to/bezacorelabs/shipping-is-the-easy-part-running-it-is-the-job-8ke</link>
      <guid>https://dev.to/bezacorelabs/shipping-is-the-easy-part-running-it-is-the-job-8ke</guid>
      <description>&lt;p&gt;Most software relationships end at the handoff. The repo gets transferred, the invoice gets paid, and everyone moves on — until something breaks in production and it’s suddenly unclear whose problem it is.&lt;/p&gt;

&lt;p&gt;I build the other way. Deploying the thing and keeping it running are part of the job, not a separate contract you go shopping for later.&lt;/p&gt;

&lt;h2&gt;
  
  
  The handoff is where projects quietly fail
&lt;/h2&gt;

&lt;p&gt;A working app on a developer’s laptop is not the same as an app that stays up under real traffic, recovers from a bad deploy, and tells you something’s wrong before your users do. That gap — between “it works” and “it keeps working” — is where a lot of small teams get stranded. They hired someone to build it, and now they need someone else to run it, and the two don’t quite talk to each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  One studio, the whole lifecycle
&lt;/h2&gt;

&lt;p&gt;At BezaCore Labs the same person who builds it also containerizes it, sets up the pipeline, deploys it to Google Cloud, and wires up monitoring. Not because it’s fancy — because the person who wrote the code is the one best placed to keep it healthy, and because I’ve spent years on the operational side cleaning up systems nobody planned to run.&lt;/p&gt;

&lt;p&gt;In practice that means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Infrastructure as code&lt;/strong&gt;, so the setup is reproducible instead of a pile of manual clicks nobody remembers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring and alerts&lt;/strong&gt;, so problems surface on my screen, not in your support inbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backups you can actually restore&lt;/strong&gt;, and a written recovery path — tested, not assumed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why it matters to you
&lt;/h2&gt;

&lt;p&gt;You get one accountable studio from the first commit to live traffic. When something needs attention, there’s no finger-pointing between “the dev” and “the ops person” — it’s the same studio, and it’s already watching.&lt;/p&gt;

&lt;p&gt;Shipping is the easy part. Running it is the job.&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>sre</category>
      <category>career</category>
    </item>
    <item>
      <title>I had a blog with no pipeline feeding it</title>
      <dc:creator>Joseph Soper</dc:creator>
      <pubDate>Sun, 26 Jul 2026 02:12:08 +0000</pubDate>
      <link>https://dev.to/bezacorelabs/i-had-a-blog-with-no-pipeline-feeding-it-4enm</link>
      <guid>https://dev.to/bezacorelabs/i-had-a-blog-with-no-pipeline-feeding-it-4enm</guid>
      <description>&lt;p&gt;Building in public is part of how this studio is supposed to work. It's in the go-to-market plan in plain language: don't buy attention, earn it by showing the work.&lt;/p&gt;

&lt;p&gt;Then I shipped this blog, wrote two posts about how I run engagements, and noticed something uncomfortable. There was a publishing surface and there was plenty of real work happening behind it — two products in flight, a homelab platform, a client site — and absolutely nothing connecting the two. No pipeline. No cadence. Just a good intention and an empty queue.&lt;/p&gt;

&lt;h2&gt;
  
  
  Intentions don't survive contact with a build day
&lt;/h2&gt;

&lt;p&gt;The obvious fix is "write a post about what you did today." I've tried that version. It fails for a boring reason: at the end of a long build session, writing a polished post is a tax, and taxes get dodged. You skip one day, then a week, and then you're staring at a blank editor trying to reconstruct what you did on a Tuesday eleven days ago.&lt;/p&gt;

&lt;p&gt;That reconstruction problem is the one that actually worried me. My words at the time were:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I don't want to be 70% done and trying to remember what I did on day X.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The interesting details — the bug that took three hours, the tradeoff you agonized over, the thing that surprised you — have a short shelf life. They're vivid the day they happen and gone by the weekend.&lt;/p&gt;

&lt;p&gt;So the tax has to come off the writing, not off the remembering.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capture daily, publish weekly
&lt;/h2&gt;

&lt;p&gt;The system splits into two tiers that cost very different amounts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr8bgi81ckwxf6csxg8oy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr8bgi81ckwxf6csxg8oy.png" alt="The build-in-public pipeline: daily capture into a per-project build log, a weekly distill into one post, publish canonically to bezacore.com/blog, then syndicate full copies to LinkedIn, dev.to, and Medium." width="799" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier one is capture, and it's about a minute.&lt;/strong&gt; At the end of any session that produced something real, I drop one to three raw bullets into a build log: what shipped, why it's interesting, and a link. Bullets, not prose. No editing, no audience in mind. If a session wasn't post-worthy, I write nothing — not everything is content, and pretending otherwise is how you end up publishing filler.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier two is the distill, once a week.&lt;/strong&gt; I read the week's seeds, pick one angle, and write a single post from it. One post, one idea. The raw material is already sitting there with the details intact, so the writing session is actually writing instead of archaeology.&lt;/p&gt;

&lt;p&gt;The split matters because it puts the expensive step on a schedule I can defend and the cheap step where the memory actually is.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I got wrong on day one
&lt;/h2&gt;

&lt;p&gt;I built the capture layer as a single central file. Every project's seeds in one place. It lasted about a day before it felt wrong — I was recording each project's story &lt;em&gt;outside&lt;/em&gt; the project, in a file that belonged to none of them.&lt;/p&gt;

&lt;p&gt;The instinct was to flip: give every project its own log. But then the weekly distill has to go hunting across a dozen files to find out which ones changed this week.&lt;/p&gt;

&lt;p&gt;Central or per-project looked like a real tradeoff, and it wasn't one. My notes live in Obsidian, which has a feature — Bases — that generates a live index from every file matching a query. So each project got its own build log at its own root, and one auto-generating view rolls all of them up, sorted by most recently touched. Locality and a single pane of glass, no maintenance, nothing to keep in sync.&lt;/p&gt;

&lt;p&gt;The lesson generalizes past note-taking: when a design feels like it's forcing a choice, check whether something already in your stack dissolves the choice before you spend an afternoon defending one side of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Make the habit structural
&lt;/h2&gt;

&lt;p&gt;The last piece is the one that decides whether any of this survives past week three. I already run a scripted wrap-up ritual at the end of every session — update the roadmap, sync the work tracker, write the journal. The build-log capture is now a step inside it.&lt;/p&gt;

&lt;p&gt;That's the whole trick. It isn't willpower or a calendar reminder. It's a step in a checklist I was already running, positioned at the exact moment the material is freshest. Habits that depend on remembering to have them are not habits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Write once, publish everywhere
&lt;/h2&gt;

&lt;p&gt;Because the expensive part is the thinking, not the typing, one post should reach more than one audience. This blog is canonical — it's the surface I own, and it's where the SEO accrues. From there the same post goes out as a full copy to developer communities with a canonical tag pointing home, and as native text on LinkedIn, where external links get suppressed so the link lives in the first comment instead. A short thread on X and Bluesky gets added once the weekly rhythm is real, rather than stalling the habit on format-wrangling before there's anything to wrangle.&lt;/p&gt;

&lt;p&gt;Same idea, four surfaces, one writing session.&lt;/p&gt;




&lt;h2&gt;
  
  
  This post is the system's first output
&lt;/h2&gt;

&lt;p&gt;There's a certain amount of nerve required to make post one an explanation of how you're going to write posts. But it's the honest starting point, and it's the piece that stops being true the longer I wait to publish it.&lt;/p&gt;

&lt;p&gt;Build in public fails as an intention. It works as a system.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>writing</category>
      <category>productivity</category>
      <category>career</category>
    </item>
  </channel>
</rss>
