
We’re an international software company that helps people and organisations use #OCaml to build safer & faster code. #OCaml #FunctionalProgramming #MirageOS 🐫
Paris, France
Joined September 2017
- Tweets1.4K
- Following233
- Followers2K
- Likes2.1K
Your editor can still tell you useful things about code that doesn't compile yet. That's Typing Recovery, and it used to live in Merlin's own patched copy of the OCaml front end. It now lives in OCaml itself tarides.com/blog/2026-10-15-…
When a new OCaml compiler lands, your editor, formatter and docs are expected to just work on day one. That readiness is the result of months of coordinated effort across six core tools. The maintainers explain what it takes: tarides.com/blog/2026-10-07-…
This goes nicely with an earlier post on what shipped in OCaml 5.5: tarides.com/blog/2026-06-23-…
Combobulate now supports OCaml and OxCaml! Navigate by expressions, bindings and match arms instead of line by line, right inside Emacs 🐫 Learn more on our blog: tarides.com/blog/2026-10-01-…
Pairs nicely with this earlier post on code navigation in OCaml-LSP: tarides.com/blog/2024-11-20-…
Tarides retweeted
I updated my website to the latest oxcaml-5.2.0-minus39 and made some notes about how the opam packaging works anil.recoil.org/notes/oxcaml… : this might be helpful if you're trying out the performance extensions with your own non-Jane Street codebases
Tarides retweeted
In 2015 I formed a small group of engineers at Jane Street to rebuild the firm’s core trading system from the ground up, and we ended up cutting latency by two orders of magnitude. Some of the techniques we used, relevant for algorithmic trading systems and exchanges today:
Zero allocation: Whenever a program allocates memory for an object on the heap, the runtime pays a steep penalty in latency. The simplest solution is to avoid memory allocation entirely.
Jane Street famously uses OCaml, a strongly typed programming language that by default produces garbage collected by a dynamic collector. Most other firms use languages with manual memory management, but it was a strict part of Jane Street’s tech culture that all risk-sensitive code had to be written in OCaml. It took a collaborative effort across multiple groups within Jane Street’s technology org to create zero-allocation core libraries, combining the type safety of a functional programming language with the memory profile of a language like C.
We built the new main trading loop in this hybrid OCaml/C-style, producing zero new allocations in the critical path from tick to trade. In modern languages like Rust, it is substantially easier to achieve precise memory management while still benefiting from type safety and compile-time guarantees.
Kernel bypass: A primary goal of a low-latency trading system or exchange is to pull a network packet containing market data or order flow through the network card’s interface and into the program’s memory space as fast as possible. The standard Linux OS kernel uses slow abstractions to support a wide variety of network drivers, at the expense of the entire system’s end-to-end latency. When we started with an empty program that contained no business logic and only forwarded packets through when received, the end-to-end latency was already too slow.
To fix this issue, we employed a standard practice in the HFT industry in which we bypassed the OS’s kernel stack entirely by leveraging our network card vendors’ proprietary APIs to DMA packets straight from the NIC into memory. This technique brought our empty-packet-forwarding baseline into the latency regime we needed in order to build out the rest of the trading, risk, and protocol code.
Local IPC: Kernel bypass is necessary when reading routed packets off a network from a third party such as another exchange or client connection. When communicating between internal instead of external processes, the fastest transports avoid network stacks entirely.
Processes within the same box can transfer messages using shared memory or Unix domain sockets. This allowed us to continue with our familiar process boundaries for separable components without sacrificing significant performance. We had to write custom logic to emulate many of the features of network- and transport-layer protocols, with the result of creating a reusable, zero-overhead IPC mechanism.
Working on this problem was one of the most intellectually rewarding experiences of my early career. The above latency optimization techniques are fairly commonplace in the HFT trade but hard to learn outside the industry setting. Half of our team at Architect comes from Jane Street and other trading firms, and we value using our domain knowledge to build exchanges for the public rather than trading software that never leaves an HFT’s walls.
Tarides retweeted
AI is writing more production code than ever but this won't stop regulators from raising the security bar. 🛡️
Whether code is written by a developer or generated by AI, it must still meet the requirements of the EU Cyber Resilience Act.
In our latest blog, we discuss how TrustInSoft Analyzer applies the same mathematical verification to every line of code, helping teams build secure-by-design software and prepare for CRA compliance.
Read the full blog: zurl.co/ZSogy
Tarides retweeted
We're at 998 enrolled students. Today is the last day to enrol.
Let's get it past 1000!
Enrolment for NPTEL course on Functional Programming with OCaml closes *July 27*! Course starts *July 20*. It is taught by FP Launchpad P.I. Prof. K C
Sivaramakrishnan (@kcsrk).
Tarides retweeted
[Changelog] Dune 3.24.0: The Dune team is pleased to announce the release of dune 3.24.0.
Highlights include the following
* Dune package management now uses the relocatable compiler by default, for all supported compiler versions. This brings a… dlvr.it/TTgn0f
Tarides retweeted
Xavier Leroy (creator of OCaml) is an expert in compilers, formal verification of software and functional programming.
This interview should be an approachable resource if you're curious about formal verification of software since I was learning that on the fly during it.
In this episode:
• OCaml compared with Rust and JavaScript
• What is formal verification and how does it work
• How languages call each other across boundaries
• How to address "almost-correct" LLM code
• How type inference works in programming languages
Where to watch:
• YouTube - youtu.be/9Cswiqrq6So
• Spotify - open.spotify.com/episode/7cd…
• Apple Podcasts - podcasts.apple.com/us/podcas…
• Transcript - developing.dev/p/creator-of-…
Thank you to the sponsor of this episode for supporting my work:
• WorkOS: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code, check them out at workos.com/
Chapters:
00:00 - Intro
00:43 - What sets OCaml apart
04:39 - OCaml vs Rust
07:57 - Why is manual memory management more performant
11:21 - Javascript vs OCaml
14:00 - Famous Rob Pike quote
16:05 - Type inference and how it works
22:12 - What is formal verification and how does it work
40:07 - What made multicore support difficult for OCaml
50:17 - How programming languages interface and call each other
57:41 - The danger of almost-correct LLM code
01:05:39 - How LLMs will change programming languages
01:10:26 - Industry vs academia
01:15:05 - Most interesting unsolved problems
01:18:30 - Top book recommendations for engineers
01:21:17 - Advice for his younger self
01:23:31 - Outro
Tarides retweeted
Today we’re releasing Hegel for OCaml.
Hegel is a family of PBT libraries based on Hypothesis which provides powerful, ergonomic property-based testing for many different languages. Hegel allows you to declare data generation inline with your test code, and provides native support for stateful testing.
Links below.
Tarides retweeted
Oh this is so useful for quick scripts: octx, a CLI tool to generate type-safe OCaml serialisers for various formats. You can just check in the output to an existing project. tangled.org/patrick.sirref.o…
The latest OCaml release is out! GC pacing improvements, relocatable OCaml, polymorphic parameters, and more 🐫 🔥 tarides.com/blog/2026-06-23-…
Tarides retweeted
In most languages, you hunt allocations down with a profiler and they creep back the moment you touch the hot path.
Jane Street's superset of OCaml lets you flip that around: annotate a function and the compiler refuses to build if anything in its call tree touches the heap.
Tarides retweeted
New podcast episode!
Richard Eisenberg (@RaeHaskCaml) on OCaml, effective AI, teaching programming, career pivot points, Haskell, language design, hiring and much more:
Tarides retweeted
🎉 Summit Day 1 is here!
The keynote room is set, attendees are filing in, and the energy is building as we get ready to kick off RISC-V Summit Europe 2026.
Take a look below for this morning's schedule and follow along throughout the day for highlights, insights, and announcements from Bologna.
#RISCVSummitEurope #RISCV #RISCVEverywhere
Tarides retweeted
We’re in Bologna 🇮🇹
Member Day + Developer Workshops kick off today, and the main conference starts tomorrow at RISC-V Summit Europe.
Still thinking of joining? You can register on-site at the door (credit card only).
Let’s go 🔥 #RISCVSummitEurope #RISCV
Tarides retweeted
I'm offering "Functional Programming with OCaml" on the NPTEL platform in July 2026 sem. Enrollment is open now.
The first 8 modules of the interactive book should be fairly stable. The rest is still in development. Sharing early in the spirit of building in the open.
Tarides retweeted
A fun post about the renaissance we've been seeing in terminal UIs, and some of the things we've built in service of that.
blog.janestreet.com/strace-u…


























