Skip to content
Antonio Ibarra
Haskell Software Engineer
Let’s talk
Haskell Software Engineer

Backend software with Haskell,built with functional design.

I build Haskell web applications with SQL and Nix, with a focus on explicit types, testable behavior, and reproducible development. My specialization is Cardano: Plutus, Aiken, and eUTxO design.

HaskellScottySQLiteNixPlutusAiken
PROJECTS

Haskell software & Cardano specialization

Start with Career Trainer for general Haskell backend work, then explore the educational Cardano projects.

Career Trainer

Haskell backend / web application

Personal project · initial implementation
PROBLEM

Persist career goals and learning topics, generate practice questions, and update progress from submitted answers.

EVIDENCE

The technical write-up walks through domain records, SQL updates, API failure behavior, and the Nix development workflow.

ARCHITECTURE

One Haskell executable: Scotty routes over WAI/Warp, Lucid2 HTML, SQLite persistence, and an OpenAI API client with typed JSON decoding and local fallback questions.

TECH
Haskell / GHCScottyWAI / WarpLucid2SQLiteNixOpenAI API

Spending App

Educational eUTxO application

Educational project
PROBLEM

Make UTxO and extended UTxO concepts concrete through an application that connects contract rules to wallet interactions.

EVIDENCE

This site does not currently link an implementation repository.

ARCHITECTURE

Aiken validation logic with a TypeScript, MeshJS, React, and Next.js off-chain interface.

TECH
AikenMeshJSTypeScriptNext.js

Cardano Smart Contracts Lab

Cross-stack learning hub

Educational resource
PROBLEM

Compare on-chain and off-chain approaches across the Cardano development ecosystem.

EVIDENCE

This site does not currently link an implementation repository.

ARCHITECTURE

Examples spanning Aiken, Haskell, MeshJS, Python, TypeScript, and command-line workflows.

TECH
AikenHaskellMeshJSTypeScriptPython
ABOUT

Types, persistence, and explicit boundaries.

My project work connects functional programming to HTTP, database state, and external APIs. Cardano work adds experience reasoning about transaction constraints and invariants.

Explicit failure behavior

Career Trainer decodes generated questions into Haskell records and falls back to local questions when the API is unavailable.

Functional mindset

Career goals and generated questions have explicit Haskell data models; SQLite stores learning state between sessions.

Reproducible setup

Career Trainer uses Nix flakes to declare its development environment, with documented run and development commands.

SKILLS

Capabilities at a glance

Grouped for fast scanning by recruiters and engineering leads.

Haskell backend development

5 items
Haskell / GHCScottyWAI / WarpLucid2SQL / SQLite

Correctness & reproducibility

5 items
Typed domain modelsJSON decodingExplicit fallback behaviorNixTest strategy

Cardano specialization

5 items
Plutus (on-chain / off-chain)AikeneUTxO modelMeshJSValidator invariants

Supporting tools

4 items
TypeScript / JavaScriptNext.jsGit / GitHubTechnical documentation
PROCESS

How I work with teams

Predictable delivery, low ambiguity, and strong documentation.

Specs → tests → implementation

Align on requirements, encode invariants, and prevent regressions with clear, testable behavior.

Incremental delivery

Small PRs, measurable checkpoints, and consistent progress that’s easy to review.

Remote discipline

Async updates, strong handoffs, and documentation that keeps work moving across time zones.

CONTACT

Let’s build something solid.

Available for remote collaboration. Email is the clearest way to start a technical conversation.