About:

David is a software engineer focused on functional programming and developer tools, working at ahrefs and co-hosting emelle.tv.

Website:

Specializations:

Interests:

Functional programming Web technologies Developer tools Reason OCaml Compilers Type systems Scalable systems CSS The Web Startups
Subscribe to RSS:
The blog post discusses performance optimizations for server-side rendering using the html_of_jsx library, which allows JSX to be rendered to HTML strings in OCaml/Reason. The author emphasizes the importance of static analysis to...
The post discusses the integration of a Markdown backend in odoc, a tool for generating API documentation for OCaml libraries. It highlights the limitations of existing documentation systems, such as fragmented search and inconsis...
The blog post discusses the concept of type-safe CSS, emphasizing the importance of ensuring that CSS properties and values adhere to specifications to prevent invalid syntax and improve the reliability of styles. It explores the ...
This blog post explores the concept of variants in OCaml's type system, detailing their types, classifications, and practical applications. It covers product types and sum types, explaining how they are organized mathematically. T...
The post discusses type-safe interpolation in styled-ppx, building on previous content. It explains the concept of string interpolation in styled-components, emphasizing the importance of ensuring that interpolated values are corr...
The post provides a comprehensive guide on how to persuade managers and colleagues to adopt a less common programming language. It emphasizes the importance of expertise, risk mitigation, and strategic planning. Key points include...
The blog post discusses parser combinators, specifically focusing on implementing a CSV parser in OCaml using the Angstrom library. It provides a detailed explanation of lazy streams, utility functions, and various parser combinat...
The post discusses the impact of Large Language Models (LLMs) on programming language design, emphasizing that LLMs perform better with languages like Python and TypeScript due to their prevalence in training data. It argues for a...
The post discusses Generalized Algebraic Data Types (GADTs) in programming, particularly focusing on type definitions and conversions between different time units (seconds and milliseconds). It includes code examples demonstrating...
The post explains infix operators in ReasonML/OCaml, detailing how they can be defined and used to enhance code readability and functionality. It discusses the core feature of OCaml that allows functions to behave as infix operato...
The blog post explains the necessity of Dune, a build system for OCaml, which simplifies the process of compiling OCaml code into executables or libraries. It highlights how Dune automates the compilation process by interpreting p...
The author discusses the dual nature of OCaml as a programming language, praising its features like the type-checker and its educational value, while criticizing it as a product due to its poor tooling, lack of community support, ...
The author shares their personal journey of joining Ahrefs, emphasizing the importance of continuous learning and sharing work online. They reflect on their initial dreams of working on open source projects and how the COVID lockd...
This tutorial provides a step-by-step guide on how to integrate Tailwind CSS into a Melange project using dune. It covers prerequisites, setting up dune rules for Tailwind, generating CSS, and promoting the output file for easier ...
A comprehensive guide on integrating Tailwind CSS with Melange projects using dune for efficient builds and dependency management.
The text discusses the importance of testing when building preprocessor extensions (ppx) in OCaml, and recommends using cram tests for this purpose. It provides a step-by-step guide on how to set up the tests and explains the bene...
The text discusses the use of cram tests, which are snapshots of interactive shell sessions, for testing OCaml projects and CLIs. It explains the syntax, integration with dune, and how to write effective cram tests. It also highli...
...
...