<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: karakanb</title><link>https://news.ycombinator.com/user?id=karakanb</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 02 Jul 2026 22:43:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=karakanb" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by karakanb in "Show HN: ZeroFS – A log-structured filesystem for S3"]]></title><description><![CDATA[
<p>One of the reasons why ZeroFS seems interesting is they use SlateDB under the hood, which optimizes the requests that hit S3 behind the scenes.</p>
]]></description><pubDate>Thu, 02 Jul 2026 14:46:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48762455</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=48762455</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48762455</guid></item><item><title><![CDATA[New comment by karakanb in "Upcoming breaking changes for npm v12"]]></title><description><![CDATA[
<p>It is not obvious from the post but it seems like the allow list for the scripts supports whitelisting packages instead of a global setting. This should make it easier to maintain org-wise rules to allow scripts only for specific packages.<p>Is there a linter that could be used for scenarios like this to prevent unsafe default on package manager config?</p>
]]></description><pubDate>Tue, 09 Jun 2026 22:56:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48468973</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=48468973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48468973</guid></item><item><title><![CDATA[Migrating from Python to Go with a 12x speedup]]></title><description><![CDATA[
<p>Article URL: <a href="https://getbruin.com/blog/worlds-fastest-ingestion-tool/">https://getbruin.com/blog/worlds-fastest-ingestion-tool/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48357261">https://news.ycombinator.com/item?id=48357261</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 01 Jun 2026 14:24:22 +0000</pubDate><link>https://getbruin.com/blog/worlds-fastest-ingestion-tool/</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=48357261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48357261</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: Streambed – Stream Postgres to Iceberg on S3, Supports Postgres Wire"]]></title><description><![CDATA[
<p>Hi, this looks interesting, thanks for sharing. I am the builder of ingestr (<a href="https://github.com/bruin-data/ingestr" rel="nofollow">https://github.com/bruin-data/ingestr</a>), so I am very much in the same space.<p>I really like that you did this in Go, and I'll definitely dig a bit more into the source code to see how you tackled the CDC stuff, given that there is not many reliable CDC libraries in Go, and there are quite a few gotchas when it comes to doing CDC right. We also hand-rolled ours in ingestr, or I must say clanker-rolled, and we got quite a few things wrong in the first place.<p>Curious about the postgres-compatible query option: what's the usecase you have in mind there? My perception is that any org that would use Iceberg also has one or a few query engines in place, is this more for debugging stuff?<p>Quite cool stuff, keep it up!</p>
]]></description><pubDate>Sun, 31 May 2026 22:57:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=48350576</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=48350576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48350576</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: Zot – Yet another coding agent harness"]]></title><description><![CDATA[
<p>Zot seems interesting, this is the first time I see it. On a quickl look it seems like Pi, but in Go. I was hoping to embed Pi into some of our internal projects and the typescript stuff was blocking me, I'll definitely give Zot a look.</p>
]]></description><pubDate>Fri, 29 May 2026 07:23:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48320113</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=48320113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48320113</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>That's a good point, thanks!</p>
]]></description><pubDate>Sat, 02 May 2026 19:43:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47989759</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47989759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47989759</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>The project has been under development for over 6 months. We just open sourced it with a clean history. I am not sure what you expect here, should a project exist for months before it is worthy of a show post?</p>
]]></description><pubDate>Sat, 02 May 2026 19:43:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47989754</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47989754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47989754</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>DAC currently supports YAML and JSX, what else would be a good alternative?</p>
]]></description><pubDate>Sat, 02 May 2026 19:41:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47989741</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47989741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47989741</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>Thanks! DAC does that kind of validation partially, although doesn't validate the usage of the downstream dashboards. That's a very nice idea though.<p>In terms of validation it will validate queries, metric definitions, chart definitions and all ahead of time, before render. That way agents tend to validate their work much quicker.</p>
]]></description><pubDate>Sat, 02 May 2026 19:41:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47989731</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47989731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47989731</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>I am not sure we are on the same page, as far as I am aware Vega doesn't do layout, does it? E.g DAC could use Vega for the charts and still take care of everything else around it.</p>
]]></description><pubDate>Sat, 02 May 2026 19:39:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47989715</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47989715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47989715</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>There are quite a few libraries for charts and visualization, there are not as many for actually combining many of them with layouts, different components and including the actual implementation of the backend. Dac aims to provide all that as a standard and an implementation.</p>
]]></description><pubDate>Sat, 02 May 2026 13:48:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47986387</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47986387</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47986387</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>Point taken, thanks! Out of curiosity, which DAC did you come here for?</p>
]]></description><pubDate>Sat, 02 May 2026 12:48:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47985963</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47985963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47985963</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>Partly, yes. It is a simplification with the perspective that the agents would be the primary builders.</p>
]]></description><pubDate>Sat, 02 May 2026 12:47:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47985952</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47985952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47985952</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>You write a few lines of YAML or JSX and you get a dynamic, interactive dashboard out of it. Do you have any suggestions on how to make it simpler?</p>
]]></description><pubDate>Sat, 02 May 2026 12:46:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47985945</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47985945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47985945</guid></item><item><title><![CDATA[New comment by karakanb in "Show HN: DAC – open-source dashboard as code tool for agents and humans"]]></title><description><![CDATA[
<p>That's a great idea, will do very quickly, thanks!</p>
]]></description><pubDate>Sat, 02 May 2026 11:29:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47985448</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47985448</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47985448</guid></item><item><title><![CDATA[Show HN: DAC – open-source dashboard as code tool for agents and humans]]></title><description><![CDATA[
<p>Hi all, this is Burak.<p>When agents became a reality one of the first things I wanted to do was to automate building dashboards. The first, and the most obvious, wall that I ran into was that a lot of the tools were just driven by UI. This meant that without the agents handling browser UIs and whatnot, it wasn't possible to have the agents do that. In addition, it would be impossible to review any of the changes the agent would make.<p>The first instinct there is to get your agent to build a React app for the dashboard. This works beautifully for the happy path, but I quickly ran into other issues there:
- every dashboard turns out to be different
- have to implement a backend to centralize the query execution
- there is no centralized mechanism to control the rules and standards around visualizations
- there is no way to get a semantic layer working with the dashboards easily<p>In the end, agents ended up reinventing the wheel for every new dashboard, even under the same project. Building a standardized, local project for these turned out to be building a BI tool from scratch.<p>After trying these out, I asked myself: what if the dashboards were built for agents as the primary user?<p>A product like that would need to have a couple of features:
- First of all, everything needs to be driven by version-controllable text. YAML is fine.
- Changes to the dashboards should be easy to review and understand by humans.
- Agents are great at writing code, it'd be great if this were driven by code to have dynamic stuff: JSX would be great.
- Static analysis being a first-class citizen: validate dashboards before deploying. Agents can check their work too.
- A standardized way of deploying these based on a couple of files in a folder: operationally very simple.
- Built-in semantic layer to standardize metrics.<p>That's what I ended up building: dac (Dashboard-As-Code) is an open-source tool and a spec to define dashboards, well, as code. It contains an implementation in Go that can be deployed as a single binary anywhere. The dashboards are defined in YAML and JSX, YAML for static stuff, JSX for dynamic dashboards. You can run queries at load time to define conditional charts, generate tabs on the fly per customer, or list charts for each A/B test you are running.<p>I built it in Go because I do love Go, and I think it is the greatest language at the moment to work with AI agents.<p>dac runs as a single binary, you can get started with a `dac init` command and it'll automatically create some sample dashboards for you based on duckdb. It supports 10+ SQL backends, with more to come. It supports validation, custom themes and whatnot.<p>You can see it here: <a href="https://github.com/bruin-data/dac" rel="nofollow">https://github.com/bruin-data/dac</a><p>I would love to hear what can be improved here, please let me know your thoughts.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47949066">https://news.ycombinator.com/item?id=47949066</a></p>
<p>Points: 119</p>
<p># Comments: 35</p>
]]></description><pubDate>Wed, 29 Apr 2026 14:37:20 +0000</pubDate><link>https://github.com/bruin-data/dac</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47949066</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47949066</guid></item><item><title><![CDATA[Building an AI Data Analyst Sucks]]></title><description><![CDATA[
<p>Article URL: <a href="https://getbruin.com/blog/build-your-own-ai-data-analyst/">https://getbruin.com/blog/build-your-own-ai-data-analyst/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47518452">https://news.ycombinator.com/item?id=47518452</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 25 Mar 2026 15:13:24 +0000</pubDate><link>https://getbruin.com/blog/build-your-own-ai-data-analyst/</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47518452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47518452</guid></item><item><title><![CDATA[New comment by karakanb in "A case for Go as the best language for AI agents"]]></title><description><![CDATA[
<p>Hi, author here, thanks! I have used TypeScript before across various projects, but I haven't considered building CLI tooling in that before, I guess due to my prejudice against the whole JS ecosystem. I plan to give it another try in the next weeks.</p>
]]></description><pubDate>Mon, 02 Mar 2026 19:50:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47223154</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47223154</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47223154</guid></item><item><title><![CDATA[A case for Go as the best language for AI agents]]></title><description><![CDATA[
<p>Article URL: <a href="https://getbruin.com/blog/go-is-the-best-language-for-agents/">https://getbruin.com/blog/go-is-the-best-language-for-agents/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47222270">https://news.ycombinator.com/item?id=47222270</a></p>
<p>Points: 203</p>
<p># Comments: 293</p>
]]></description><pubDate>Mon, 02 Mar 2026 18:48:36 +0000</pubDate><link>https://getbruin.com/blog/go-is-the-best-language-for-agents/</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=47222270</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47222270</guid></item><item><title><![CDATA[Show HN: I built an MCP server to connect AI agents to your DWH]]></title><description><![CDATA[
<p>Hi all, this is Burak, I am one of the makers of Bruin CLI (<a href="https://github.com/bruin-data/bruin" rel="nofollow">https://github.com/bruin-data/bruin</a>). We built an MCP server that allows you to connect your AI agents to your DWH/query engine and make them interact with your data.<p>A bit of a back story: we started Bruin as an open-source CLI tool that brings together data ingestion, transformation, quality and governance. You can build data pipelines using SQL and Python, ingest data from many sources, run data quality checks and some more stuff, open-source. The goal has been to build a CLI experience that would make humans productive.<p>After some time, agents popped up, and when we started using them heavily for our own development stuff, it became quite apparent that we might be able to offer similar capabilities for data engineering tasks. Agents can already use CLI tools, and they have the ability to run shell commands, which meant that they could technically use Bruin CLI as well.<p>Our initial attempts were around building a simple `AGENTS.md` file with a set of instructions on how to use Bruin. It worked fine to a certain extent; however, it came with its own set of problems, primarily around maintenance. Every new feature/flag meant more docs to sync. It also meant the file needed to be distributed somehow to all the users, which would be a manual process.<p>We then started looking into MCP servers: while they are great to expose remote capabilities, for a CLI tool, it meant that we would have to expose pretty much every command and subcommand we had as new tools. This meant a lot of maintenance work, a lot of duplication, and a large number of tools which bloat the context.<p>Eventually, we landed on a middle-ground: expose only documentation navigation, not the commands themselves. In that spirit, we ended up with just 3 tools:
- `bruin_get_overview`
- `bruin_get_docs_tree`
- `bruin_get_doc_content`<p>The agent uses MCP to fetch docs, understand capabilities, and figure out the correct CLI invocation. Then it just runs the actual Bruin CLI in the shell. This means less manual work for us, and making the new features in the CLI automatically available to everyone else.<p>You can now use Bruin CLI to connect your AI agents, such as Cursor, Claude Code, Codex, or any other agent that supports MCP servers, into your DWH. Given that all of your DWH metadata is in Bruin, your agent will automatically know about all the business metadata necessary.<p>Here's a quick video of me demoing the tool: <a href="https://www.youtube.com/watch?v=604wuKeTP6U" rel="nofollow">https://www.youtube.com/watch?v=604wuKeTP6U</a><p>All of this is fully open-source, and you can run it anywhere.<p>Bruin MCP works out of the box with:
- BigQuery
- Snowflake
- Databricks
- Athena
- Clickhouse
- Synapse
- Redshift
- Postgres
- DuckDB
- MySQL<p>I would love to hear your thoughts and feedback on it, thanks!<p><a href="https://github.com/bruin-data/bruin" rel="nofollow">https://github.com/bruin-data/bruin</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46060191">https://news.ycombinator.com/item?id=46060191</a></p>
<p>Points: 1</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 26 Nov 2025 17:45:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46060191</link><dc:creator>karakanb</dc:creator><comments>https://news.ycombinator.com/item?id=46060191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46060191</guid></item></channel></rss>