<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>&#x2F;</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>This is a web feed, also known as an Atom feed. Subscribe by copying the URL from the address bar into your newsreader. Visit About Feeds to learn more and get started. It&#x27;s free.</tabi:about_feeds>
        <tabi:visit_the_site>Visit website</tabi:visit_the_site>
        <tabi:recent_posts>Recent posts</tabi:recent_posts>
        <tabi:last_updated_on>Updated on $DATE</tabi:last_updated_on>
        <tabi:default_theme>light</tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>mathias kindberg</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="/skins/mathias.css?h=2db8b2e5d8fe50c7b930" /><title>mathias kindberg</title>
    <link href="/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2025-10-09T00:00:00+00:00</updated><id>/atom.xml</id><entry xml:lang="en">
        <title>Cracking highly imbalanced datasets using mondrian conformal predictors</title>
        <published>2025-10-09T00:00:00+00:00</published>
        <updated>2025-10-09T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/blog/mondrian-conformal-predictors/" type="text/html"/>
        <id>/blog/mondrian-conformal-predictors/</id>
        <summary type="html">Recently, a customer offering a subscription service approached us with a churn case. The problem with churn cases is that the dataset tends to become highly imbalanced when we lower the time steps.</summary>
        </entry><entry xml:lang="en">
        <title>DuckDB: Importing Polars dataframes the easy and hard way using Rust</title>
        <published>2025-10-06T00:00:00+00:00</published>
        <updated>2025-10-06T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/blog/polars-dataframe-to-duckdb-with-arrow/" type="text/html"/>
        <id>/blog/polars-dataframe-to-duckdb-with-arrow/</id>
        <summary type="html">Recently I have been working on a project where I did data manipulation through Polars Dataframes and then wanted to query the result with DuckDB for that OLAP goodness. I wanted to build on the Rust Arrow ecosystem. On the surface, Arrow looks like a nice ecosystem with good interoperability. Polars abstracts over Arrow. DuckDB advertises support for both Polars and Arrow. That turned out to be a mirage.</summary>
        </entry><entry xml:lang="en">
        <title>Building Type Safe Structured Outputs with Rust and OpenAI</title>
        <published>2025-04-29T00:00:00+00:00</published>
        <updated>2025-04-29T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/blog/building-type-safe-structured-outputs-with-rust-and-openai/" type="text/html"/>
        <id>/blog/building-type-safe-structured-outputs-with-rust-and-openai/</id>
        <summary type="html">I built a Hacker News AI news summarizer and AI relevancy scorer and, as the type safety and consistency enthusiast I am, I decided to explore structured outputs when interacting with the LLM models.</summary>
        </entry><entry xml:lang="en">
        <title>🌊 I am building for the maritime industry!</title>
        <published>2024-02-01T00:00:00+00:00</published>
        <updated>2024-02-01T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/blog/coming-soon/" type="text/html"/>
        <id>/blog/coming-soon/</id>
        <summary type="html">I am excited to share my latest endeavor: a leap into the maritime industry! Combining my cloud and software expertise with my experience as a captain and my research building AI models based on maritime data, I am revisiting a field I deeply love, now focusing on digital and software innovations.</summary>
        </entry><entry xml:lang="en">
        <title>Analog Sailing</title>
        <published>2024-01-04T00:00:00+00:00</published>
        <updated>2024-01-04T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/photography/analog-sailing/" type="text/html"/>
        <id>/photography/analog-sailing/</id>
        <summary type="html">A summer around the baltic</summary>
        </entry><entry xml:lang="en">
        <title>Atacama</title>
        <published>2023-05-11T00:00:00+00:00</published>
        <updated>2023-05-11T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/photography/atacama/" type="text/html"/>
        <id>/photography/atacama/</id>
        <summary type="html">Desert in 48 hours </summary>
        </entry><entry xml:lang="en">
        <title>Torres del Paine</title>
        <published>2023-05-08T00:00:00+00:00</published>
        <updated>2023-05-08T00:00:00+00:00</updated>
        <author>
            <name>mathiaskindberg</name>
        </author>
        <link rel="alternate" href="/photography/torres/" type="text/html"/>
        <id>/photography/torres/</id>
        <summary type="html">Abstract environments</summary>
        </entry>
</feed>
