<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Miguel Filipe</title>
    <link>https://blog.mfilipe.eu/</link>
    <description>Recent content on Miguel Filipe</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <copyright>© Miguel Filipe</copyright>
    <lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.mfilipe.eu/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>About</title>
      <link>https://blog.mfilipe.eu/about/</link>
      <pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/about/</guid>
      <description>I&amp;rsquo;m Miguel Mascarenhas Filipe, and I like to solve problems so much that one of my mottos is &amp;ldquo;problems are waiting to be solved&amp;rdquo;. On Twitter: &amp;ldquo;Sui generis, creative &amp;amp; adventurer. Loves distributed systems, hard problems, and First Principles Engineering&amp;rdquo;.&#xA;At Dune I&amp;rsquo;m the Tech Lead and Software Engineer on the API team.&#xA;My professional background has a ~6y stint on large scale distributed (and high throughput) systems at AWS/DynamoDB and Microsoft/Skype, and ~12y on startup environments from 20 to 250 people.</description>
    </item>
    <item>
      <title>Testing LLMs is hard, doubly hard when the testplan and code are vibecoded</title>
      <link>https://blog.mfilipe.eu/post/benchmarking_llms-v3-rebuild/</link>
      <pubDate>Thu, 07 May 2026 22:59:29 +0100</pubDate>
      <guid>https://blog.mfilipe.eu/post/benchmarking_llms-v3-rebuild/</guid>
      <description>Part 4/4 — Part 4 ← Part 3 ← Part 2 ← Part 1&#xA;May 2026 — co-authored with Gemma 4&#xA;The transition from Exam V2 to V3 was necessitated by the discovery that the V2 harness was providing invalid scoring data, masking model instability and quantization failures.&#xA;Setup Hardware: Framework 13 (Ryzen AI 370HX, 64GB DDR5). Inference: llama-swap via Vulkan. KV Cache: q8_0 (fixed across all runs). Environment: Go-based scraper resilience task (buffering, eviction, background flush).</description>
    </item>
    <item>
      <title>WHY Are Local LLMs So Slow On My Framework 13 AMD Strix Point</title>
      <link>https://blog.mfilipe.eu/post/local-llm-performance-framework13/</link>
      <pubDate>Fri, 10 Apr 2026 21:01:28 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/post/local-llm-performance-framework13/</guid>
      <description>*February 2026 &amp;ndash; co-authored with Claude Opus 4.6.&#xA;Part 2/4 — Part 4 ← Part 3 ← Part 2 ← Part 1&#xA;Yes, the title is clickbaity :&amp;gt;. Veritasium has a great video about why clickbait is unreasonably effective and I&amp;rsquo;ve been dying to try it on a technical post. The irony is that the actual content is the opposite of clickbait &amp;ndash; every claim backed by a shell command, every number derived from first principles.</description>
    </item>
    <item>
      <title>Gemma 4 vs Qwen3.5: benchmarking quantized local LLMs on Go coding</title>
      <link>https://blog.mfilipe.eu/post/local-llm-coding-harder-test/</link>
      <pubDate>Fri, 10 Apr 2026 17:04:51 +0100</pubDate>
      <guid>https://blog.mfilipe.eu/post/local-llm-coding-harder-test/</guid>
      <description>April 20261&#xA;Part 3/4 — Part 4 ← Part 3 ← Part 2 ← Part 1&#xA;In episode 1 three models tied at 13/15. The test was too easy — it couldn&amp;rsquo;t separate a good model from a mediocre one having a lucky run. Since then Qwen3.5, Gemma 4, and Qwen3-Coder dropped. They&amp;rsquo;d all tie too. We needed a harder exam and better methodology. We also suspected (correctly) that single-seed results were noise and that our grep-based scoring was garbage, so we planned for multi-seed and real test execution from the start.</description>
    </item>
    <item>
      <title>I benchmarked 8 local LLMs writing Go on my Framework 13 AMD Strix Point</title>
      <link>https://blog.mfilipe.eu/post/benchmarking-local-llms-go-coding/</link>
      <pubDate>Fri, 10 Apr 2026 17:04:51 +0100</pubDate>
      <guid>https://blog.mfilipe.eu/post/benchmarking-local-llms-go-coding/</guid>
      <description>Part 1/4 — Part 4 ← Part 3 ← Part 2 ← Part 1 (Feb 2025)&#xA;I have a Framework 13 with a Ryzen AI 370HX and a bunch of GGUF models accumulating in ~/.cache/llama.cpp/. I wanted to know if any of them can actually write Go that compiles and runs. Not vibes, not leaderboard numbers &amp;ndash; go build says yes or no. Goal was to have some sense of where local models are in terms of practical capability, being limited in size and available ram/compute</description>
    </item>
    <item>
      <title>BUIDL Europe 2025: BUIDLING with Dune ECHO</title>
      <link>https://blog.mfilipe.eu/talks/buidl-europe-2025-dune-echo/</link>
      <pubDate>Thu, 09 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/talks/buidl-europe-2025-dune-echo/</guid>
      <description>A solo talk I gave at BUIDL Europe in Lisbon (January 2025) — building on Dune ECHO.&#xA;🎥 YouTube recording </description>
    </item>
    <item>
      <title>EVM Foundations (7-day study guide)</title>
      <link>https://blog.mfilipe.eu/papers/evm-foundations/</link>
      <pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/papers/evm-foundations/</guid>
      <description>Goal: build solid mental models of EVM execution, storage, state, and gas—validated by small, real traces on your node.&#xA;Prereqs (install any you’re missing) Geth (or your node with debug/trace APIs): https://geth.ethereum.org/ Foundry (cast/forge): https://book.getfoundry.sh/ Solidity compiler (solc): https://docs.soliditylang.org/en/latest/installing-solidity.html Day 1 — Big-picture EVM &amp;amp; “living spec” Read&#xA;EVM overview: https://ethereum.org/en/developers/docs/evm/&#xA;Execution-specs (EELS) README: https://github.com/ethereum/execution-specs&#xA;Keep these open while learning:&#xA;Opcodes (reference): https://ethereum.org/en/developers/docs/evm/opcodes/ Opcodes (interactive, gas, traces): https://www.evm.codes/ Output</description>
    </item>
    <item>
      <title>DuckCon #5: Delighting users with RESTful APIs and DuckDB</title>
      <link>https://blog.mfilipe.eu/talks/duckcon-5-2024/</link>
      <pubDate>Thu, 15 Aug 2024 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/talks/duckcon-5-2024/</guid>
      <description>A talk I gave at DuckCon #5 in Seattle (August 2024) — how we use DuckDB at Dune to serve blockchain data through a RESTful API, the tradeoffs we made, and what worked.&#xA;📄 Slides (PDF) 📅 DuckCon #5 — event page 🎥 YouTube recording </description>
    </item>
    <item>
      <title>How we&#39;ve improved Dune API using DuckDB</title>
      <link>https://blog.mfilipe.eu/post/blogpost-improving-dune-api/</link>
      <pubDate>Thu, 01 Aug 2024 12:22:38 -0700</pubDate>
      <guid>https://blog.mfilipe.eu/post/blogpost-improving-dune-api/</guid>
      <description>At Dune, we value our customers’ feedback and are committed to continuously improving our services. This is the story of how a simple, prioritized feature request for DuneAPI —supporting query result pagination for larger results—evolved into a comprehensive improvement involving the adoption of DuckDB at Dune.&#xA;We’ve learned a lot during this journey and are excited to share our experiences and the new functionalities we’ve been building.&#xA;Motivation &amp;amp; Context The journey began with user feedback and a repeated feature request: “Dune API doesn’t support pagination, and the maximum size of query results is limited (~1GB).</description>
    </item>
    <item>
      <title>Trino Fest 2023: DuneSQL — a query engine for blockchain data</title>
      <link>https://blog.mfilipe.eu/talks/trino-fest-2023-dunesql/</link>
      <pubDate>Thu, 15 Jun 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/talks/trino-fest-2023-dunesql/</guid>
      <description>A joint talk with Jonas Irgens Kylling at Trino Fest 2023 (virtual, June 2023) on DuneSQL — Dune&amp;rsquo;s query engine for blockchain data, built on Trino with native INT256 / UINT256 support. We covered the challenges of querying blockchain data, the move to Trino, and how DuneSQL is operated in production.&#xA;📄 Slides (PDF) 📝 Trino blog write-up 🎥 YouTube recording 👥 Co-presented with Jonas Irgens Kylling; contributions from Ryan Duan </description>
    </item>
    <item>
      <title>Snowflake Paper and Architecture Review</title>
      <link>https://blog.mfilipe.eu/papers/snowflake-paper/</link>
      <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/papers/snowflake-paper/</guid>
      <description>Snowflake Paper (PDF) — SIGMOD 2016 Andy Pavlo&amp;rsquo;s lecture from spring 2023: YouTube lecture Slides (PDF) — CMU 15-721 Intro Snowflake was a wilful investment decision to make a bleeding edge from scratch OLAP database built for SaaS. Hired very senior engineers from Oracle and Vectorwise. Developed in C++, intention to have a scalable, vectorized OLAP database built on top of cloud. Fully built from scratch, full control. (This is known as a &amp;ldquo;greenfield&amp;rdquo; design, no baggage, no legacy)</description>
    </item>
    <item>
      <title>QCon London 2020</title>
      <link>https://blog.mfilipe.eu/talks/qcon-london-2020/</link>
      <pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/talks/qcon-london-2020/</guid>
      <description>Notes I took at QCon London 2020 — three days of talks on distributed systems, ML, engineering culture, and more. Raw, unedited, captured live.&#xA;Day 1 Opening notes IoT with less internet Microservice decomposition patterns Streaming millions of likes per second Databases and stream processing From batch to streaming to both Kafka as a distributed system Day 2 Day 2 notes Tech leadership through the Underground Railroad Evolution of financial exchange architectures How we were astronauts and NoWare mission control BERT for sentiment analysis The ideal number of microservices is 489 The Tesla virtual power plant Speeding up ML development with MLflow Day 3 Interop of open-source tools Design secure architectures the modern way Evolution of distributed systems on k8s N26 hypergrowth Keep calm and secure your CI/CD </description>
    </item>
    <item>
      <title>DynamoDB: a view under the hood</title>
      <link>https://blog.mfilipe.eu/papers/dynamodb-view-under-the-hood/</link>
      <pubDate>Mon, 01 Jan 2018 00:00:00 +0000</pubDate>
      <guid>https://blog.mfilipe.eu/papers/dynamodb-view-under-the-hood/</guid>
      <description>A talk I gave on the internals of AWS DynamoDB, from my time on the team: partitions, replication, the request path, and how storage actually works under the hood. From my personal memory — slides are the artifact, not the talk recording.&#xA;📄 Download the slides (PDF)&#xA;Your browser doesn&#39;t render embedded PDFs. Download the PDF directly.</description>
    </item>
  </channel>
</rss>
