Nasser Sanou

Chapter one

About

I was born in Burkina Faso and I build in New York. The distance between those two facts is most of what I work on.

In this chapter

  • Where I come from2
  • In my own words3
  • Where I am right now4
  • Why that order matters5
  • What I build6
  • What I make7
  • Awards8
  • At a glance9
  • Code
  • Music
  • Art
  • Languages
  • Places

Where I come from

I trained as an artist before I trained as an engineer, and the order is not incidental.

Training

A fine arts degree from CNAA in Ouagadougou in 2001, then Flatiron School and General Assembly in New York almost twenty years later.

Distance

Eighteen years and one continent between the two schools. Both are still in the work.

Nasser Sanou

I was born in Burkina Faso and I build in New York. The distance between those two facts is most of what I work on.

I trained as an artist before I trained as an engineer: a fine arts degree from CNAA in Ouagadougou in 2001, then Flatiron School and General Assembly in New York almost twenty years later. I mention that order because it explains how I work. I design the whole system on paper before I write anything, and I care about how it looks when it is finished.

What I build now is LLM application architecture and cross-platform mobile software. On the AI side that means stateful agent systems: graph orchestration where the model reasons, calls tools, evaluates the result, and re-plans, rather than running a single-shot chain. It means a provider-agnostic gateway that routes between Anthropic and Google instead of coupling either one as the other's tool, because vendor lock-in is a decision you make once and pay for later.

On the mobile side it means designing for conditions most software ignores. The markets I build for have roughly 85% mobile penetration against 19.9% internet penetration. Offline is not an edge case there, it is the default state. Card payments barely exist, so mobile money rails are the payment layer. Literacy rates mean a text-first interface excludes the people the product is for, which is why Faso Kuma is voice-first by architecture rather than by preference.

I speak Mooré and Dioula natively, and French and English fluently, and I build and test interfaces in all four, including for languages with almost no existing digital tooling. That is not a line on a résumé. It is the reason I can specify a translation corpus where community submissions are promoted to confirmed only after three independent validations, and know why that threshold matters.

I also make music. I have performed as Baba G, and the discipline transfers more than you would expect: you finish the take, you ship the record, and the audience tells you what you got wrong.

Where I am right now

Sixteen applications architected, none of them shipped to a store yet. AES Connect is closest: 250+ TestFlight builds in, App Store submission in preparation. I audited another of my own platforms that an AI assistant reported as 100% complete and found it at 40–45%, with zero of twenty SDK integrations and no test coverage, then rebuilt the plan around the real number.

Closing the gaps

I am currently closing the gaps I know about: a retrieval pipeline in Python and FastAPI with pgvector, evaluated with RAGAS, so I can quote a recall figure rather than claim RAG experience. Tracing on the agent work. Test coverage on the critical paths.

I'd rather you read that here than find it in an interview.

Why that order matters

I design the whole system on paper before I write anything. The constraint comes first and everything downstream follows from it.

Constraint, architecture, build, shipFour stages joined left to right. The constraint is named first and the architecture follows from it.ConstraintArchitectureBuildShip
19.9% internet penetration => offline-first
the constraintthe conclusion

What I build

Sixteen applications architected against real constraints rather than ideal ones.

javascriptaes-connect/app.config.ts
1
const aesConnect = {
  components: 200,
2
  isolation: "row-level security",
3
  offline: true,
}
  1. 1Three nested tab environments on Expo Router, so civic, marketplace and services contexts never require leaving the app.
  2. 2Postgres row-level security scopes content per member state. A client-side filtering bug here would be a cross-border data exposure.
  3. 3State persists through Redux Persist and AsyncStorage, because the app has to be useful before the network returns.

What I make

I have performed as Baba G since before I wrote any code, and the discipline transfers.

cssbaba-g/releases.ts
1
const babaG = {
2
  languages: ["Mooré", "Dioula", "Kasena", "French"],
3
  award: "Kundé d'Or, 2004",
}
  1. 1Still performing. The name predates every application on this site.
  2. 2Sung in the two languages I grew up speaking, which is also why I can test an interface in them.
  3. 3Kundé d'Or for Best Music Group, the award the Burkinabè industry gives.

Awards

Music and performance, alongside the engineering.

  • Best diaspora rap artist2024
  • Golden Kundé (Kundé d'Or), Best Music Group2004

At a glance

Everything above, as a list.

Languages
Mooré
Dioula
French
English
Tools
TypeScript
React Native
LangGraph
Postgres
Places
Ouagadougou
New York
Other work
Baba G, performing
Fine arts, CNAA

Summary

Five things, if you read nothing else.

  • Born in Burkina Faso, building in New York.
  • Artist first, engineer second, and the order matters.
  • Sixteen applications architected against real constraints rather than ideal ones.
  • Four languages spoken, built and tested in.
  • Still performing as Baba G.
Write to me