<?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: Mykhailo</title>
    <description>The latest articles on DEV Community by Mykhailo (@yetmike).</description>
    <link>https://dev.to/yetmike</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%2Fuser%2Fprofile_image%2F3901143%2F338ae527-f75c-4c2d-846c-358209ca021f.jpg</url>
      <title>DEV Community: Mykhailo</title>
      <link>https://dev.to/yetmike</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yetmike"/>
    <language>en</language>
    <item>
      <title>Forward Deployed Engineer is outsourcing with a better logo</title>
      <dc:creator>Mykhailo</dc:creator>
      <pubDate>Fri, 14 Aug 2026 00:26:41 +0000</pubDate>
      <link>https://dev.to/yetmike/forward-deployed-engineer-is-outsourcing-with-a-better-logo-3o55</link>
      <guid>https://dev.to/yetmike/forward-deployed-engineer-is-outsourcing-with-a-better-logo-3o55</guid>
      <description>&lt;p&gt;I spent more than five years in outsourcing companies. That is where I started my career.&lt;/p&gt;

&lt;p&gt;The job looked like this: get assigned to a client, learn their infrastructure, fight their legacy systems, sit in calls with people who could not describe what they wanted, ship something that worked, move to the next client. Sometimes I was on their VPN more than my own employer's. Sometimes I knew their systems better than their own staff did.&lt;/p&gt;

&lt;p&gt;Now the same job has a new name and a salary that can be twice as high. It is called Forward Deployed Engineer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the name came from
&lt;/h2&gt;

&lt;p&gt;The term belongs to &lt;a href="https://en.wikipedia.org/wiki/Palantir_Technologies" rel="noopener noreferrer"&gt;Palantir&lt;/a&gt;. The earliest published use I could find is a &lt;a href="https://techcrunch.com/2010/06/25/palantir-the-next-billion-dollar-company-raises-90-million/" rel="noopener noreferrer"&gt;TechCrunch piece from June 2010&lt;/a&gt; about a funding round, which identifies one of their employees by the title forward deployed engineer.&lt;/p&gt;

&lt;p&gt;The name is borrowed from the military, where a &lt;a href="https://en.wikipedia.org/wiki/Forward_operating_base" rel="noopener noreferrer"&gt;forward deployed&lt;/a&gt; unit sits in the field instead of at home base. That is the whole idea. Palantir was selling &lt;a href="https://en.wikipedia.org/wiki/Data_integration" rel="noopener noreferrer"&gt;data integration&lt;/a&gt; software to intelligence and defense customers who could not describe what they needed, partly because the requirements were classified and partly because nobody had written them down. Shipping the software did not work. So they shipped engineers, cleared and embedded on site, writing production code inside the customer's environment for months at a time.&lt;/p&gt;

&lt;p&gt;Internally Palantir called them Deltas, a name they explain in their own post on &lt;a href="https://blog.palantir.com/dev-versus-delta-demystifying-engineering-roles-at-palantir-ad44c2a6e87" rel="noopener noreferrer"&gt;Dev versus Delta&lt;/a&gt;. According to &lt;a href="https://newsletter.pragmaticengineer.com/p/forward-deployed-engineers" rel="noopener noreferrer"&gt;The Pragmatic Engineer&lt;/a&gt;, the company had more FDEs than regular software engineers until roughly 2016. That is a striking ratio for a company that sells a product. There is also &lt;a href="https://blog.palantir.com/a-day-in-the-life-of-a-palantir-forward-deployed-software-engineer-45ef2de257b1" rel="noopener noreferrer"&gt;a day in the life of an FDE&lt;/a&gt; from 2022 if you want their version of the job.&lt;/p&gt;

&lt;p&gt;So the name is about fifteen years old, and the current wave of AI companies hiring FDEs did not invent anything. They picked up a label that already had a decade of history and a good story attached to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The job description is identical
&lt;/h2&gt;

&lt;p&gt;Read what an FDE is supposed to do. Integrate a vendor's product with the client's messy data. Build custom pipelines and workflows on top of it. Sit with non-technical stakeholders and translate business pain into technical requirements. Feed real-world edge cases back to the product team.&lt;/p&gt;

&lt;p&gt;Now read what I did in outsourcing. Integrate whatever the client bought with whatever the client already had. Build custom pipelines on top of it. Sit with non-technical stakeholders and translate business pain into technical requirements. File bugs and feature requests upstream when the vendor's product could not do the thing the client paid for.&lt;/p&gt;

&lt;p&gt;I cannot find the daily difference. Same messy enterprise APIs. Same undocumented internal system that one person understands and that person is on vacation. Same client stakeholder who changes the requirement after the sprint started. Same travel, same context switching, same burnout curve.&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%2Fwbdy28k56an4zxk89qhm.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%2Fwbdy28k56an4zxk89qhm.png" alt="Scooby-Doo unmasking meme: the masked figure is labelled Forward Deployed Engineer, and underneath the mask is an outsource engineer on twice the pay" width="600" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually differs
&lt;/h2&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%2Fpuxws8qdq33778w13m1j.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%2Fpuxws8qdq33778w13m1j.png" alt="Outsourcing agency sells hours and locks the client into people; a product vendor sells licenses and locks the client into the platform. Same engineer, same messy APIs, up to twice the pay" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Two business models, one job description.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An outsourcing agency sells hours. The unit of revenue is a person occupying a seat for a month. If a client cuts ten engineers, the agency loses ten engineers of revenue. Every engineer is a line item, and line items get negotiated down. That is why the rate is what it is, and it is why the agency's incentive is to keep bodies billable rather than to make any single engineer irreplaceable.&lt;/p&gt;

&lt;p&gt;A product vendor sells licenses. The unit of revenue is an annual contract with a margin an agency will never see. The engineer they send into the client is not the product. The engineer is what makes the contract renew. One person who unblocks a stuck rollout can be the reason a seven-figure renewal happens instead of a churn. That is a very different number to justify a salary against.&lt;/p&gt;

&lt;p&gt;If you want the numbers, &lt;a href="https://www.levels.fyi/" rel="noopener noreferrer"&gt;levels.fyi&lt;/a&gt; has them. Palantir's forward deployed software engineer sits around $211K median. An &lt;a href="https://www.levels.fyi/companies/epam-systems/salaries/software-engineer/locations/united-states" rel="noopener noreferrer"&gt;EPAM engineer in the US&lt;/a&gt; is $165K. &lt;a href="https://www.levels.fyi/companies/accenture/salaries/software-engineer/locations/united-states" rel="noopener noreferrer"&gt;Accenture&lt;/a&gt; is closer to $109K. The frontier labs pay far more than any of them, but they pay everyone far more, so that gap is the company and not the title.&lt;/p&gt;

&lt;h2&gt;
  
  
  The lock-in argument does not hold up
&lt;/h2&gt;

&lt;p&gt;The usual defense is that outsourcing and FDE work create different kinds of dependency. Outsourcing locks the client into people who understand the custom code. FDE work locks the client into the vendor's platform.&lt;/p&gt;

&lt;p&gt;Both are &lt;a href="https://en.wikipedia.org/wiki/Vendor_lock-in" rel="noopener noreferrer"&gt;lock-in&lt;/a&gt;. I have watched both happen. I have written the pipeline that nobody else could maintain, and I have also been the one who inherited someone else's version of it three years later and needed two weeks just to draw the diagram.&lt;/p&gt;

&lt;p&gt;The distinction people draw is real but small. It describes who captures the value, not what the engineer does with their day. An engineer wiring a client's legacy database into a vendor's domain model is doing the same work whether the invoice says &lt;a href="https://en.wikipedia.org/wiki/Time_and_materials" rel="noopener noreferrer"&gt;time and materials&lt;/a&gt; or annual license.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would actually tell someone trying to make the jump
&lt;/h2&gt;

&lt;p&gt;If you are in outsourcing and you want the FDE title and the FDE compensation, the honest advice is to stop optimizing your engineering and start optimizing three other things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn one product deeply instead of ten stacks shallowly.&lt;/strong&gt; Outsourcing rewards breadth. You get thrown at whatever the next contract needs, and after five years you have touched a dozen stacks and mastered none of them. Product companies hire for the opposite. They want someone who knows their platform's data model well enough to argue with the core team about it. Pick a platform, go deep, get certified if the vendor offers it, build something real on it in public.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get comfortable being wrong in front of executives.&lt;/strong&gt; In outsourcing my escalation path was almost always internal. There was an account manager and a delivery lead between me and anyone who owned a budget. FDE work removes those layers. You are in the room where the customer decides whether to keep paying, and you have to say "that integration will take three weeks and here is why" to someone who wanted to hear one week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go find out what they are actually hiring for.&lt;/strong&gt; Change your LinkedIn title to Forward Deployed Engineer and start reading the job posts. Scrape them if you want, there is nothing hidden here. A few dozen descriptions will tell you what the requirements really are, and once you line them up against your own CV the gaps are obvious. Then build a plan to close them.&lt;/p&gt;

&lt;p&gt;What you will notice is that almost every one of these roles is at a product company. So you need a product mindset. Not just "solve the client's problem", but understand why the company put you at this particular client, what that account means to them, and what happens if it goes badly.&lt;/p&gt;

&lt;p&gt;None of this is about writing better code. If you are already the person the client asks for by name, you have the engineering part.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I am not sure about
&lt;/h2&gt;

&lt;p&gt;I do not know how durable the FDE label is. Roles that exist to make a specific product land tend to get squeezed when the product gets easier to deploy, or when the vendor decides the work belongs to a partner network. That is more or less what happened to a lot of specialist consulting niches over the last decade.&lt;/p&gt;

&lt;p&gt;I also do not know whether the pay gap survives the title becoming common. Right now it is scarce enough that the compensation reflects the revenue it protects. In five years there may be a lot of people with FDE on their profile, and the salary may look a lot more like a senior engineer's, and the same people who chased the title will be looking for the next one.&lt;/p&gt;

&lt;p&gt;I did this job for five years before it had the good name. Nobody called it strategic then, and I still cannot tell whether they were wrong about the work or just early on the pricing.&lt;/p&gt;




&lt;p&gt;Originally published on &lt;a href="https://yetmike.com/blog/forward-deployed-engineer-vs-outsourcing?utm_source=devto&amp;amp;utm_medium=cross-post&amp;amp;utm_campaign=forward-deployed-engineer-vs-outsourcing" rel="noopener noreferrer"&gt;yetmike.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>career</category>
      <category>engineering</category>
      <category>consulting</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Podman Lost to Docker. I Stopped Fighting It.</title>
      <dc:creator>Mykhailo</dc:creator>
      <pubDate>Mon, 27 Apr 2026 20:18:32 +0000</pubDate>
      <link>https://dev.to/yetmike/podman-lost-to-docker-i-stopped-fighting-it-21hi</link>
      <guid>https://dev.to/yetmike/podman-lost-to-docker-i-stopped-fighting-it-21hi</guid>
      <description>&lt;p&gt;Most "Podman vs Docker" articles treat it as a technical comparison. It isn't. It's a migration cost problem.&lt;/p&gt;

&lt;p&gt;The technical case for Podman is real: rootless by default (not opt-in like &lt;a href="https://docs.docker.com/engine/security/rootless/" rel="noopener noreferrer"&gt;Docker's 20.10 mode&lt;/a&gt;), no &lt;code&gt;dockerd&lt;/code&gt; running as root, no &lt;a href="https://www.docker.com/pricing/" rel="noopener noreferrer"&gt;$9–15/user/month&lt;/a&gt; for Docker Desktop, and &lt;a href="https://www.redhat.com/en/blog/quadlet-podman" rel="noopener noreferrer"&gt;Quadlet&lt;/a&gt; (5.0, 2025) for native &lt;a href="https://systemd.io/" rel="noopener noreferrer"&gt;systemd&lt;/a&gt; integration. These are genuine architectural wins.&lt;/p&gt;

&lt;p&gt;But &lt;a href="https://survey.stackoverflow.co/2025/technology" rel="noopener noreferrer"&gt;Stack Overflow's 2025 survey&lt;/a&gt; shows Docker at 71.1% adoption — the largest single-year jump of any technology. Podman at 11.1%. &lt;a href="https://www.docker.com/blog/docker-stack-overflow-survey-thank-you-2024/" rel="noopener noreferrer"&gt;Docker Hub&lt;/a&gt;: 318 billion pulls. &lt;a href="https://podman-desktop.io/blog/podman-desktop-2025-journey" rel="noopener noreferrer"&gt;Podman Desktop&lt;/a&gt;: 3 million total downloads since launch.&lt;/p&gt;

&lt;p&gt;That's not a competitor. That's a niche.&lt;/p&gt;

&lt;h2&gt;
  
  
  The question that actually matters
&lt;/h2&gt;

&lt;p&gt;Not "which is better?" but "what context are you in?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starting fresh — use Podman if it fits.&lt;/strong&gt; On &lt;a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux" rel="noopener noreferrer"&gt;RHEL&lt;/a&gt;, it's the obvious choice: &lt;a href="https://developers.redhat.com/articles/2023/08/03/podman-next-generation-container-management-tool" rel="noopener noreferrer"&gt;Red Hat ships it by default&lt;/a&gt;, Quadlet integrates directly with systemd, rootless-by-default matters when someone audits your runtime. &lt;a href="https://www.cncf.io/projects/podman/" rel="noopener noreferrer"&gt;The CNCF accepted it into sandbox in January 2025&lt;/a&gt;. Greenfield project, no legacy tooling — go for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Migrating an existing Docker setup — think twice.&lt;/strong&gt; This is where the calculation breaks down. The spreadsheet shows Docker Desktop at $9–15/user/month. It doesn't show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Migration day&lt;/li&gt;
&lt;li&gt;Debugging socket path differences (&lt;a href="https://podman.io/docs/installation" rel="noopener noreferrer"&gt;Podman uses a different socket location&lt;/a&gt; than Docker)&lt;/li&gt;
&lt;li&gt;Updating CI pipelines built around Docker socket compatibility&lt;/li&gt;
&lt;li&gt;Fixing &lt;a href="https://containers.dev/" rel="noopener noreferrer"&gt;Dev Containers&lt;/a&gt; when VS Code stops finding the right runtime&lt;/li&gt;
&lt;li&gt;The 30-minute Podman explanation for every new hire who's never heard of it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are real hours from real people. None of them ship anything a user will ever see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Docker won anyway
&lt;/h2&gt;

&lt;p&gt;Not on merit. On surface area.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/features/actions" rel="noopener noreferrer"&gt;GitHub Actions&lt;/a&gt; assumes Docker. &lt;a href="https://rancherdesktop.io/" rel="noopener noreferrer"&gt;Rancher Desktop&lt;/a&gt; defaults to Docker. &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;MCP server configs&lt;/a&gt; reference Docker. Every Stack Overflow answer assumes Docker. Every internal platform template your company has written assumes Docker.&lt;/p&gt;

&lt;p&gt;When you switch, you're not just swapping a binary. You're swimming against the accumulated inertia of every tool your team uses daily. Podman's remaining real advantages — daemonless architecture, rootless-by-default, Quadlet — are genuinely better. They're also genuinely invisible to 90% of the people making the decision.&lt;/p&gt;

&lt;p&gt;I wrote about the full trade-off breakdown, including where each argument actually landed and what Docker did and didn't fix, &lt;a href="https://yetmike.com/blog/podman-lost-to-docker/?utm_source=devto&amp;amp;utm_medium=cross-post&amp;amp;utm_campaign=podman-lost-to-docker" rel="noopener noreferrer"&gt;in the original post on yetmike.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The short version: run the numbers with migration costs included. Then decide.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://yetmike.com/blog/podman-lost-to-docker/?utm_source=devto&amp;amp;utm_medium=cross-post&amp;amp;utm_campaign=podman-lost-to-docker" rel="noopener noreferrer"&gt;yetmike.com&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>podman</category>
      <category>devops</category>
      <category>containers</category>
    </item>
  </channel>
</rss>
