I lead the AI work at Fraktal Oslo, a consultancy that builds data platforms, and I am a senior data engineer there. Before that: fifteen years of writing software, five of them alongside a PhD in innovation studies. This site is where the two halves meet.
What I do
I work a lot on how to implement agent-powered pipelines and talk-to-your-data kinds of capabilities, and agent-powered coding.
In practice that means three things. Finding out which models and endpoints a customer can use, what they cost and what they leak, before the customer has to ask. Putting a semantic layer under an agent so that "what was revenue last quarter" gets one answer instead of two. And running coding agents against every kind of endpoint we can find, local models included, so the recommendation we give is tested and not guessed.
The platforms underneath are Rust and Python on open standards, Apache Iceberg among them. We have watched customers adopt technology for years, and the pattern is always the same: the thing that wins is the interface that gets standardised, and the customer who can switch is the one who is fine. So vendor lock-in is not something we like, and modularity is a design goal, not a slogan.
The theory half
My PhD was in innovation studies: responsible innovation, regional industrial path development and evolutionary economic geography, with salmon farming as the case. I did 92 interviews across Norway, Australia and the United States about how an industry takes up a new technology, and what decides whether a region ends up locked into the old path or transformed by the new one.
Innovation is inherently experimental, so it's hard to foresee the future, and thus we need to be able to change.
That sentence is most of what I took from the PhD into the AI work. The posts here use the theory on purpose, one lens at a time: dominant designs and eras of ferment on what is happening to BI, explore versus exploit on how a company ends up on one vendor, path dependence on why this blog looks the way it does. Innovation theory was built on cases like cars, steel and salmon, and it transfers to software better than I expected.
The site
Everything here is text in one git repo: a Zola site, a Rust CLI that generates the PDFs, the audio, the share images and the plain-markdown copies, and a Rust Cloudflare Worker for the newsletter. The infrastructure series explains each piece. Opinions are mine, not my employer's.
Publications
-
Lindfors, E. T. (2025). The Evolution of Technological Trajectories – Responsible Innovation and Regional Industrial Path Development in the Salmon Farming Industry. PhD thesis, Western Norway University of Applied Sciences.
-
Hopp, J. Z., Coffay, M., & Lindfors, E. T. (2023). Inclusion in the global innovation system for CRISPR salmon in Norway. Norsk Geografisk Tidsskrift - Norwegian Journal of Geography, 77(1), 10-20.
-
Lindfors, E. T. (2022). Radical path transformation of the Norwegian and Tasmanian salmon farming industries. Regional Studies, Regional Science, 9(1), 757-775.
-
Lindfors, E. T., & Jakobsen, S.-E. (2022). Sustainable regional industry development through co-evolution. Marine Policy, 135, 104855.
-
Fløysand, A., Lindfors, E. T., Jakobsen, S.-E., & Coenen, L. (2021). Place-Based Directionality of Innovation: Tasmanian Salmon Farming and Responsible Innovation. Sustainability, 13(1), 62.
Open Source
I maintain several open source projects:
- a2a-rs — Rust implementation of Google's Agent-to-Agent protocol
- rust-browser-mcp — MCP server for AI-powered web navigation
- strata — Rust data platform that covers ingest, transform and present in one tool: where dbt starts at the warehouse, strata also does the ingest side. The present layer, with a semantic layer and metrics views, is what I am building now; the Norwegian aquaculture dataset in the BI post runs on it
- roms-rs — Discontinuous Galerkin solver for coastal ocean modeling
- lindfors-site — this site: Zola, the site-tools CLI, the newsletter Worker