Skip to content
Nana Adjei Manu

Product engineer at charles · Berlin

nana : engineer × pl researcher

Nana Adjei Manu

I’m a software engineer who lives in Berlin. I work at charles, building customer-facing product for an AI-native conversational marketing and commerce platform. Before that I spent eight years across frontend, backend, and infrastructure at SuitePad, HousingAnywhere, Andela, Leafly, and others.

On the side I work on programming languages. I hold an MSc in Advanced Computer Science from the University of Leicester, where my thesis was on operational semantics, and I’m currently thinking about how a static analyzer could check object lifecycles in TypeScript across await. I like OCaml and Haskell, and I write about both.

Email . Also on LinkedIn, Twitter, and RSS. Opinions are my own.

projects : Repo list

Things I’ve built, mostly around languages: L-Language, a small functional language in Haskell with a visualizer for its operational semantics; cathtml, a type-safe HTML DSL in OCaml; and rcv, a declarative résumé format compiled to PDF, in Rust. Smaller tools include Pricc, gurl, and Sqll. All projects →

research : Thread list

  1. Typestate for TypeScript

    Γ ⊢ h : File⟨open⟩ after await e ?

    Checking lifecycle protocols in the presence of aliases and asynchronous interference.

  2. Operational semantics

    ⟨e, σ⟩ ⟶ ⟨e′, σ′⟩

    Small-step and big-step accounts of evaluation, from arithmetic to closures. The subject of my MSc thesis at Leicester.

notes : Post list

All writing, including essays →