<?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: Evan Rosa</title>
    <description>The latest articles on DEV Community by Evan Rosa (@evan_rosa).</description>
    <link>https://dev.to/evan_rosa</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%2F4085291%2F981ee49f-d823-49df-9e94-b43e2f5d9d67.png</url>
      <title>DEV Community: Evan Rosa</title>
      <link>https://dev.to/evan_rosa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/evan_rosa"/>
    <language>en</language>
    <item>
      <title>The Medallion Architecture, Explained: Raw, Clean, Ready</title>
      <dc:creator>Evan Rosa</dc:creator>
      <pubDate>Wed, 19 Aug 2026 17:32:10 +0000</pubDate>
      <link>https://dev.to/evan_rosa/the-medallion-architecture-explained-raw-clean-ready-287i</link>
      <guid>https://dev.to/evan_rosa/the-medallion-architecture-explained-raw-clean-ready-287i</guid>
      <description>&lt;p&gt;The medallion architecture organizes a data platform into three layers, Raw, Clean, and Ready, that take source data and refine it step by step into trusted, business-ready tables. It is the most common blueprint for the modern data lakehouse, and it is the foundation OptimaFlo is built on. This guide explains each layer in plain English, then shows how to stand one up without hiring a data team.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the medallion architecture?
&lt;/h2&gt;

&lt;p&gt;The medallion architecture is a data design pattern popularized by &lt;a href="https://www.databricks.com/glossary/medallion-architecture" rel="noopener noreferrer"&gt;Databricks&lt;/a&gt;. It splits data processing into three progressively cleaner layers. You may know these layers by their traditional names, bronze, silver, and gold; we use clearer terms: &lt;strong&gt;Raw&lt;/strong&gt;, &lt;strong&gt;Clean&lt;/strong&gt;, and &lt;strong&gt;Ready&lt;/strong&gt;. Each stage adds structure, quality, and business meaning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Raw&lt;/strong&gt; holds data exactly as it arrived.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean&lt;/strong&gt; holds cleaned, validated, joined data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ready&lt;/strong&gt; holds business-ready metrics for dashboards and reports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point is simple. You never transform data in one big, fragile step. You move it through three small, reliable ones, and every stage stays queryable and auditable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three layers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Raw: untouched source data
&lt;/h3&gt;

&lt;p&gt;Raw is your system of record. Data lands here exactly as the source sent it, with zero transforms and full history. Nothing is thrown away. If a downstream rule turns out to be wrong, you can always reprocess from Raw.&lt;/p&gt;

&lt;p&gt;Because Raw keeps everything, the table format matters. OptimaFlo stores every layer in an open lakehouse table format, which gives Raw ACID transactions, schema evolution, and time travel. You can query the table as it looked last Tuesday, not just today.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clean: cleaned and conformed
&lt;/h3&gt;

&lt;p&gt;Clean is where source data becomes reliable. This layer validates types, removes duplicates, fixes nulls, and joins sources into clean, conformed tables. It is the layer most analysts actually build on.&lt;/p&gt;

&lt;p&gt;Clean is also where SQL lives. In a traditional stack this is the dbt layer, written and maintained by data engineers. The transforms are version-controlled and reviewed, because a bad Clean query quietly poisons everything downstream.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ready: business-ready
&lt;/h3&gt;

&lt;p&gt;Ready is the layer your business sees. It holds aggregated metrics, star schemas, and the tables that power dashboards and reports. Ready tables are usually updated incrementally, so a daily metric refreshes in seconds instead of rebuilding from scratch.&lt;/p&gt;

&lt;p&gt;Here is how the three layers compare:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Holds&lt;/th&gt;
&lt;th&gt;Transforms&lt;/th&gt;
&lt;th&gt;Typical consumer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Raw&lt;/td&gt;
&lt;td&gt;Source data, full history&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Reprocessing, audits&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clean&lt;/td&gt;
&lt;td&gt;Cleaned, validated, joined&lt;/td&gt;
&lt;td&gt;Type, dedupe, join&lt;/td&gt;
&lt;td&gt;Analysts, data scientists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ready&lt;/td&gt;
&lt;td&gt;Metrics, star schema&lt;/td&gt;
&lt;td&gt;Aggregate, model&lt;/td&gt;
&lt;td&gt;Dashboards, executives&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why data teams adopt it
&lt;/h2&gt;

&lt;p&gt;The pattern is popular because it solves real problems at once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliability.&lt;/strong&gt; Failures are isolated to one hop, not the whole pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reproducibility.&lt;/strong&gt; Keeping Raw plus lakehouse time travel means any result can be rebuilt exactly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incremental refinement.&lt;/strong&gt; Each layer does one job, so changes are small and safe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auditability.&lt;/strong&gt; You can trace any Ready number back through Clean to the original source record.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The catch: it usually takes a whole stack and a team
&lt;/h2&gt;

&lt;p&gt;The architecture is elegant. Building it is not. A typical stack stitches together six to ten tools: ingestion (Fivetran), a warehouse (Snowflake), transforms (dbt), orchestration (Airflow), a BI tool (Tableau), and data observability (Monte Carlo). Each one is a contract, a bill, and a thing that breaks at 2 a.m.&lt;/p&gt;

&lt;p&gt;It also takes people. Someone has to write the Clean and Ready SQL, wire up the orchestration, and own the schemas. For a data-rich team without a dedicated data engineering function, that is the wall most projects hit.&lt;/p&gt;

&lt;h2&gt;
  
  
  How OptimaFlo builds the medallion architecture for you
&lt;/h2&gt;

&lt;p&gt;OptimaFlo is one platform that runs the full Raw, Clean, Ready flow inside your own cloud. It is built to remove the stack and help overwhelmed teams at the same time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LLM-native.&lt;/strong&gt; Describe the table you want in plain language. OptimaFlo generates the Clean and Ready SQL, you review and approve it, and it ships. The AI writes the data engineering, you keep the judgment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open lakehouse foundation.&lt;/strong&gt; Every layer is an open table, so ACID guarantees, schema evolution, and time travel apply end to end, not just in one tool. No proprietary lock-in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring your own cloud (BYOC).&lt;/strong&gt; The platform runs in your environment. Your source data is stored in your account, never ours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The right compute, automatically.&lt;/strong&gt; OptimaFlo matches the compute to the size of your data: a light local engine for small jobs, your own warehouse as they grow. You never size or manage clusters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One platform, not ten.&lt;/strong&gt; Ingestion, transforms, orchestration, dashboards, and data quality checks live in one place.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result: you can go from your first data source connection to a live, Ready-backed dashboard in a single afternoon. See the &lt;a href="https://optimaflo.io/docs/getting-started" rel="noopener noreferrer"&gt;getting started guide&lt;/a&gt; for the five-minute version, or the &lt;a href="https://optimaflo.io/docs/architecture" rel="noopener noreferrer"&gt;architecture overview&lt;/a&gt; for the full picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Clean transform looks like
&lt;/h2&gt;

&lt;p&gt;A Clean model is just SQL: take the Raw table, cast the types, drop the bad rows, and write a clean table. OptimaFlo generates SQL like this, and you approve it before it runs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;order_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;customer_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;CAST&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order_total&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="nb"&gt;DECIMAL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;order_total&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;DATE_TRUNC&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'day'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ordered_at&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;       &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;order_day&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;raw&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;orders&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;order_total&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That &lt;code&gt;clean.orders&lt;/code&gt; table then feeds a Ready metric, like daily revenue by customer segment, which lands in your dashboard.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The medallion architecture refines data through three layers: Raw source data, Clean validated data, and Ready business-ready tables.&lt;/li&gt;
&lt;li&gt;Its real cost is the multi-tool stack and the data team needed to run it.&lt;/li&gt;
&lt;li&gt;OptimaFlo collapses that into one LLM-native platform on an open lakehouse, running in your own cloud.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ready to build your first Raw-to-Ready pipeline? &lt;a href="https://optimaflo.io/sign-in" rel="noopener noreferrer"&gt;Start building with OptimaFlo&lt;/a&gt; or read the &lt;a href="https://optimaflo.io/docs/getting-started" rel="noopener noreferrer"&gt;getting started guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>medallion</category>
      <category>dataengineering</category>
      <category>ai</category>
    </item>
    <item>
      <title>Connecting an LLM to Your Data Is the 21% Solution.</title>
      <dc:creator>Evan Rosa</dc:creator>
      <pubDate>Wed, 19 Aug 2026 17:18:10 +0000</pubDate>
      <link>https://dev.to/evan_rosa/connecting-an-llm-to-your-data-is-the-21-solution-1eh2</link>
      <guid>https://dev.to/evan_rosa/connecting-an-llm-to-your-data-is-the-21-solution-1eh2</guid>
      <description>&lt;h1&gt;
  
  
  Connecting an LLM to Your Data Is the 21% Solution.
&lt;/h1&gt;

&lt;p&gt;I hear the same question in almost every early conversation: why do I need a platform when I can point Claude at Postgres and start asking questions?&lt;/p&gt;

&lt;p&gt;It is a fair question. The connectors are real. Claude wires into Snowflake and Postgres, ChatGPT reaches warehouses over MCP bridges, Gemini sits inside BigQuery. The demo is genuinely impressive.&lt;/p&gt;

&lt;p&gt;We also now have public numbers on what happens after the demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  The numbers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://claude.com/blog/how-anthropic-enables-self-service-data-analytics-with-claude" rel="noopener noreferrer"&gt;Anthropic measured it&lt;/a&gt; on their own analytics workload: "Without skills, Claude's ability to answer analytics questions accurately didn't exceed 21% on our evals." Same model you would connect to your database. Their data, their questions, 21%.&lt;/p&gt;

&lt;p&gt;The benchmarks agree. &lt;a href="https://spider2-sql.github.io/" rel="noopener noreferrer"&gt;Spider 2.0&lt;/a&gt; is built from real enterprise warehouse workflows: thousand-column schemas, hundred-line queries, multiple SQL dialects. GPT-4o scores 10.1% on it. o1-preview reaches 17.1%. The same models clear 85% on the older academic benchmark, which is why the demo feels like magic and the fourth week does not.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bird-bench.github.io/" rel="noopener noreferrer"&gt;BIRD&lt;/a&gt; explains the collapse. Every BIRD question ships with a hand-written hint explaining what the fields mean. Remove the hints and GPT-4 &lt;a href="https://beancount.io/bean-labs/research-logs/2026/06/06/bird-benchmark-text-to-sql-real-database-gap" rel="noopener noreferrer"&gt;falls from 54.89% to 34.88%&lt;/a&gt;. Your users do not write hints. They ask "how many active customers do we have" and assume the model knows what active means. It does not. It picks one of your four dozen candidate columns and sums with confidence.&lt;/p&gt;

&lt;p&gt;That is the dangerous part. A wrong number does not look wrong. Anthropic names it the silent failure and admits their hardened stack reduces it rather than eliminating it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the 74 points cost
&lt;/h2&gt;

&lt;p&gt;Anthropic closed the gap from 21% to above 95%. Not with a bigger model, and not with more data access: they gave the agent grep access to thousands of their own correct past queries and accuracy moved less than one point.&lt;/p&gt;

&lt;p&gt;What worked was structure. Governed canonical datasets. A semantic layer where a human owns every metric definition. Lineage. Skills that encode how a careful analyst works. An eval harness watching all of it. Four layers, built and maintained by one of the best data teams in the world. I wrote about &lt;a href="https://optimaflo.io/blog/self-service-analytics-data-modeling-bet" rel="noopener noreferrer"&gt;who gets to build that scaffolding&lt;/a&gt; when the post first landed.&lt;/p&gt;

&lt;p&gt;The other vendors built the same conclusion into their products. Snowflake restricts its own MCP server to semantic views because raw schemas lack the meaning an analyst needs. Google wraps Gemini in a Knowledge Catalog and a Looker semantic layer and calls the bundle the product. The connector is the interface; the governed layer underneath is what they sell.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a connector never builds
&lt;/h2&gt;

&lt;p&gt;Accuracy aside, there is a category error in the pitch. A connector reads tables. Your data problem is that nobody is building the tables.&lt;/p&gt;

&lt;p&gt;The connector will not land your sources in a warehouse. It will not model Raw into Clean into Ready. It runs when you open a chat and stops when you close it: ChatGPT sessions &lt;a href="https://www.usecarly.com/blog/chatgpt-work-limits/" rel="noopener noreferrer"&gt;drop their state on disconnect and run nothing on a schedule&lt;/a&gt;. It watches nothing overnight. It re-learns your business every session, because chat memory is not a semantic layer.&lt;/p&gt;

&lt;p&gt;And the plumbing itself is on you. Anthropic archived its reference Postgres MCP server, the one without query timeouts, row caps, or column blocklists, behind a plain warning: no security guarantees. &lt;a href="https://dev.to/spencerpauly/why-is-anthropics-archived-postgres-mcp-server-still-getting-312k-installs-a-month-3oeh"&gt;It still gets about 312k installs a month&lt;/a&gt;, mostly from people wiring up exactly the setup in the pitch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I land
&lt;/h2&gt;

&lt;p&gt;OptimaFlo runs on these same models. You bring your own Claude, GPT, or Gemini key. I have no argument with the engine.&lt;/p&gt;

&lt;p&gt;What we sell is the 74 points: the governed datasets, the semantic layer, the pipelines, the quality checks, and the eval discipline that Anthropic staffed a team to build, shipped as a product one data owner can run, on open &lt;a href="https://iceberg.apache.org/" rel="noopener noreferrer"&gt;Iceberg&lt;/a&gt; tables in your own cloud. A human approves the SQL before it touches your tables. The chat interface is in there too. It is the last step, and it is the easy one.&lt;/p&gt;

&lt;p&gt;If your warehouse is already modeled and governed, a $20 chat seat on top of it is a great deal, and I say so in our &lt;a href="https://optimaflo.io/compare/chatgpt-claude-gemini-vs-ai-data-team" rel="noopener noreferrer"&gt;side-by-side comparison&lt;/a&gt;. If nobody is building that warehouse, the seat has nothing to stand on.&lt;/p&gt;

&lt;p&gt;The 21% is what the model brings. The rest is the job. &lt;a href="https://optimaflo.io/how-it-works" rel="noopener noreferrer"&gt;Come see how we do it&lt;/a&gt;, or kick the tires in a &lt;a href="https://optimaflo.io/pilot-program" rel="noopener noreferrer"&gt;7-day pilot&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>dataengineering</category>
      <category>semanticlayer</category>
    </item>
    <item>
      <title>Apache Iceberg in Your Own Cloud, Without the Overhead</title>
      <dc:creator>Evan Rosa</dc:creator>
      <pubDate>Wed, 19 Aug 2026 16:36:57 +0000</pubDate>
      <link>https://dev.to/evan_rosa/apache-iceberg-in-your-own-cloud-without-the-overhead-38b5</link>
      <guid>https://dev.to/evan_rosa/apache-iceberg-in-your-own-cloud-without-the-overhead-38b5</guid>
      <description>&lt;p&gt;You do not need a data team to run Apache Iceberg. That used to be the catch, and it is no longer true. A single person can create, query, and maintain Iceberg tables today, because managed platforms took the hard parts off your plate.&lt;/p&gt;

&lt;p&gt;So the interesting question is not whether you can run Iceberg. You can. The question is &lt;em&gt;where your data lives&lt;/em&gt; while you do it, and what you trade away for the easy path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two ways to run Iceberg in 2026
&lt;/h2&gt;

&lt;p&gt;There are two real options, and they pull in opposite directions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managed services.&lt;/strong&gt; Platforms like Snowflake run Iceberg for you. They own the metadata catalog, the storage optimization, and the governance. You focus on pipelines and analytics, and one person can do it. The easiest on-ramp by far.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-managed open source.&lt;/strong&gt; You host Iceberg on your own cloud object storage, like AWS S3 or Azure Blob, and query it with engines like Spark or Trino. This is the path that introduces operational overhead. Someone configures IAM, stands up the catalog, and keeps it running. That someone is usually a data engineer.&lt;/p&gt;

&lt;p&gt;Both paths give you real Iceberg. The difference is what you give up.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tradeoff nobody names: convenience versus control
&lt;/h2&gt;

&lt;p&gt;Managed Iceberg is convenient, and the convenience has a price. Your tables and the optimization around them live inside the vendor's platform. You query open data, but the operational center of gravity sits with them.&lt;/p&gt;

&lt;p&gt;Self-managed Iceberg is the opposite. The data stays in your own account. It stays portable, so any engine can read it and you are not tied to one vendor's roadmap or pricing. You pay for that freedom in setup and upkeep, which is why most small teams never choose it. The control is worth it. The overhead is the wall.&lt;/p&gt;

&lt;p&gt;That leaves a gap. What if you want the control of self-managed Iceberg, in your own cloud, without paying the operational tax that normally comes with it?&lt;/p&gt;

&lt;h2&gt;
  
  
  Where OptimaFlo fits
&lt;/h2&gt;

&lt;p&gt;OptimaFlo is built for exactly that gap. It runs the open, in-your-cloud version of Iceberg, and takes the setup work off you.&lt;/p&gt;

&lt;p&gt;Your data lands in your own cloud account under a bring-your-own-cloud model, stored as open Iceberg tables across the medallion architecture: Raw source data, Clean modeled data, and Ready business metrics. The tables stay yours and stay portable. Here is what OptimaFlo takes off your plate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Catalog and access setup, handled at connect time
&lt;/h3&gt;

&lt;p&gt;The first hurdle in self-managed Iceberg is plumbing: standing up the catalog and wiring the cloud permissions so engines can read and write safely. OptimaFlo provisions that when you connect a source, so you do not hand-configure IAM roles or run a catalog server yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  The SQL, written by AI
&lt;/h3&gt;

&lt;p&gt;Iceberg gives you durable tables. It does not write the transforms that fill them. You describe the table you want in plain language, OptimaFlo generates the Clean and Ready SQL, and you review and approve it before it runs. You keep the judgment and skip the hand-coding.&lt;/p&gt;

&lt;h3&gt;
  
  
  The right engine, picked for you
&lt;/h3&gt;

&lt;p&gt;Iceberg separates storage from compute, so the same tables can run on different engines. OptimaFlo picks for you: small jobs on a light, cheap engine, larger ones on your warehouse. You never size a cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this is for
&lt;/h2&gt;

&lt;p&gt;You have data in your own cloud and a reason to keep it there: portability, governance, or just not wanting a vendor to hold it. You like the open, self-managed model, but you do not have an engineer to stand up catalogs and wire cloud permissions. That is the person OptimaFlo is built for. You get the control of self-managed Iceberg with an operational load closer to a managed service.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You do not need a data team to use Iceberg. Managed services already make it a one-person job.&lt;/li&gt;
&lt;li&gt;The real choice is convenience versus control: managed keeps your data in a vendor's platform, self-managed keeps it open and yours but adds operational overhead.&lt;/li&gt;
&lt;li&gt;OptimaFlo removes that overhead for the in-your-cloud path: catalog and IAM at connect time, AI-generated SQL, and automatic engine selection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Want open Iceberg in your own cloud without the setup work? &lt;a href="https://optimaflo.io/sign-in" rel="noopener noreferrer"&gt;Start building with OptimaFlo&lt;/a&gt; or read the &lt;a href="https://optimaflo.io/docs/getting-started" rel="noopener noreferrer"&gt;getting started guide&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dataengineering</category>
      <category>iceberg</category>
    </item>
  </channel>
</rss>
