Blog
Building a RAG Investment Assistant
For VC teams, valuable knowledge is everywhere: PDFs, inboxes, call transcripts, news feeds, and internal notes. The problem is getting the right context when you actually need it.
We built a platform that brings all of this information into a single searchable knowledge base, with LLM agents on top that can:
• prepare meeting briefings
• research people and companies
• answer questions across the firm’s internal knowledge
• continuously ingest and structure new information
In the article, we go under the hood and explain how the system works, including its storage architecture, seven-stage ingestion pipeline, Airflow automations, and the agent layer that we substantially redesigned after the first production release.
We also cover a production incident that changed how we approached monitoring and reliability.
If you’re building RAG systems, internal AI assistants, or agentic workflows on top of large amounts of unstructured company data, this one gets pretty technical.
Upstream posts
From Scientific Computing to Type-Safe Finance: Bitnomial
In this interview, we discuss what needs to change for Haskell to reach more developers and companies, and where the Haskell Foundation can have the greatest impact. We also look at Haskell from the perspective of a large financial system at Bitnomial: how type safety and effect tracking help engineers manage correctness at scale, where the complexity budget for advanced types should be spent, and why technologies such as Servant remain powerful tools for moving guarantees from individual applications to entire systems.
Daml for Haskellers: interview with Heitor Toledo Lassarote de Paula
In this interview with our Daml Team Lead, Heitor, we examine which Haskell intuitions transfer successfully to Daml, where analogies such as Update and IO break down, and how developers should reason about authorization, visibility, contract lifecycles, and testing. We also discuss learning paths and tooling for Daml developers, common mistakes made by Solidity programmers, and the practical topics covered in the upcoming Daml Smart Contracts Development Guide.
Haskell, Strong Types, and the Next Generation of Bioinformatics: interview with Michal Gajda
Bioinformatics combines scientific discovery with the challenge of processing large, complex, and imperfect datasets. In this interview with Michal Gajda, we explore how Haskell’s strong types, purity, and functional abstractions can support reliable and high performance biological data processing.
Drawing on projects such as hPDB, JSON Autotype, and XML TypeLift, Michal discusses scalability, parser development, and the barriers to wider adoption of functional programming in bioinformatics. He also considers how better education, tooling, and AI assisted programming could make Haskell more accessible to future scientists.

Article by Michał Gajda
July 27th, 2026
4 min read
Claude Code: From Agent to Useful Tool
The main point of the article is that Claude Code needs engineering around it just as much as any other development tool. On its own, the agent can write code and run commands, but it quickly runs into the usual problems: missing context, repeated mistakes, unsafe decisions, and fragile fixes. A better setup gives it project rules, current documentation, MCP access, reusable skills, hooks, task trackers, Git safety nets, and clear session workflows. With these pieces in place, Claude Code can handle implementation, investigation, and verification more reliably, while the developer still owns architecture, review, and product judgment. The result is not an autonomous engineer, but a practical tool that works best when its context and workflow are engineered deliberately.

Article by Kirill Dukhanin
June 22nd, 2026
19 min read
How Serokell Contributes to the Future of Haskell
Over the past years, Serokell has worked on several parts of the Haskell ecosystem: GHC development, language proposals, Dependent Haskell, developer tooling, and education. In this article, we’ll go through the main contributions and explain why they matter.
Rust, C++, and the Tradeoffs Behind Safe Low-Level Code: interview with Nikita Lisitsa
In this post, we interview Nikita Lisitsa about C++, Rust, systems programming, and game development.
We discuss whether C++ is still the default path into systems programming, where Rust fits in, and how both languages may coexist over the next decade. Nikita also shares his perspective on memory safety, language complexity, game engine design, real-time physics simulations, renderer abstractions, and the lessons he learned from shipping Costa Verde.

Article by Fedor Logachev
June 8th, 2026
11 min read
Editor’s pick
Serokell’s Work on GHC: Dependent Types, Part 5
This article continues the fine tradition of Serokell's GHC team sharing their progress on bringing dependent types to Haskell. A lot has happened since the last report, and there is plenty to cover.
In this edition, Vladislav Zavialov presents three major contributions and a host of smaller improvements that push Dependent Haskell closer to becoming a practical reality.
Upstream posts
The Hidden Perils of MonadBaseControl
MonadBaseControl
is notoriously tricky to use correctly. It’s really easy to misuse and
end up introducing subtle unexpected behaviour or downright bugs, even
in the hands of the more experienced de…
Rust in Production: JetBrains
In our Rust in Production interview series, we talk with developers and technical leaders who are shaping how Rust is built and used in practice..
Beyond the Hype: Crossing the GenAI Divide in Real-World Business
If you judged the state of AI in business by your LinkedIn feed, you’d think the revolution already happened..
Design Patterns for Long-Term Memory in LLM-Powered Architectures
The explosive growth of large language models (LLMs) has reshaped the AI landscape. Yet their core design is still fundamentally stateless: a drawback often referred to as “conversational amnesia.” …
The Real Limits of AI Agents in 2025
TL;DR: Everyone says 2025 is the year of autonomous AI agents. We’ve built a lot of them in production, and that’s exactly why we think most of the current hype just doesn’t add up. In this post, we'll break down the most common misconceptions, talk about what actually works in the real world, and explain why the math and economics behind the hype don’t hold up yet.
Reviving an Old iMac with NixOS
People have been using computers for decades. Information technology advances by leaps and bounds. As a result, yesterday’s new, powerful machines quickly become today’s obsolete hardware, gatherin…
Thanks for visiting the Serokell blog.
Serokell is a multinational team of programmers, joined by love towards functional languages. Science and education are among the core values of Serokell. Our blog is a place for our specialists to talk about things that matter to them. Stay tuned to read more about pioneering research and practical applications of functional programming, mathematics, artificial intelligence, and computer science.

.png)

.png)
.png)
.png)
.png)
.jpg)
.png)