Intelligence that

Software Developer | Systems Design & AI. I design and build software from data models and backend architecture to intuitive interfaces. Based in Porto, available for full-time roles.

Explore NEXUS↓

THE POSITION

I take complex problems from architecture to working software. I connect data, backend logic and interfaces into products people can understand and use.

INPUTSTATEDECISIONMEMORYNEXT ACTION

FEATURED WORK / NEXUS + MESH

Research linked to its evidence.

I designed NEXUS to make research inspectable: 400 EU-funded projects connected to the Sustainable Development Goals through source passages, evidence checks and a recorded decision history. I built the data workflows and the interface that brings them together.

The validation work includes replay verification of 5,085 decisions across 24 runs. Mesh, the Python and SQLite governance library, adds immutable revisions, transactional commands and review controls, with 39 documented tests.

FOAAP / A PRODUCT I DESIGNED AND BUILT

FOAAP. A venture operating system that remembers.

Founder context gets scattered across chats, documents, and tools. FOAAP turns it into durable venture state, resolves contradictions, and exposes one high-leverage action.

INTERFACE CONCEPTS / SIX DEMO WEBSITES
Hover over a name to explore. Tap or use the arrow keys to switch.
NNorth — Independent design studio

FOAAP / STUDIOS

The interface, up close.

Explore the engine demo ↗
FOAAP Studios with MVP, Presentation, Sound, AI Media and Code studios.

FOAAP Studios · Interface captureSwipe to explore ↔

THE OPERATING MODEL

One continuous path from ambiguity to action.

The information often already exists. I connect it across sources and frameworks so a person can understand their position, see their options and act in time.

01

understand

Understand the person’s position inside a system: what affects them, what they can see, and where their agency is constrained.

02

structure

Build an ontology connecting people, institutions, records, obligations and deadlines. Turn isolated facts into relationships a person can reason over.

03

investigate

Cross sources and unfamiliar frameworks. Find contradictions, outdated records and information that has become relevant to a decision or deadline.

04

decide

Make an explicit assertion about the situation, grounded in evidence. Surface assumptions, weigh alternatives and keep the position open to revision.

05

produce

Assemble that reasoning into something usable: an evidence map, a decision brief or working software. Give the person a basis for action.

06

remember

Keep the sources and reasoning behind each position. Let new information update the model so insight accumulates across decisions.

07

next action

Identify the next concrete move, what it depends on and when it must happen. Make the path from understanding to agency explicit.

THE THESIS

Amplifying your cognitive repertoire through research and synthesis.

I build systems that help people investigate unfamiliar problems, connect evidence across domains, and turn that synthesis into decisions they can revisit.

Explore my GitHub ↗

Selected repositories

03 REPOSITORIES / SOURCE & DECISIONS
scripts/mesh_ontology.py
        fingerprint = digest(request)        self.db.execute("BEGIN IMMEDIATE")        try:            prior = self.db.execute("SELECT * FROM commands WHERE actor=? AND key=?", (actor.id, request["idempotency_key"])).fetchone()            if prior:                require(prior["request_hash"] == fingerprint, "Idempotency key reused with different content", "version_conflict")                result = json.loads(prior["response"])···            self.db.commit()            return result        except BaseException:            self.db.rollback()            raise

Make every change traceable.

I built the governance layer behind NEXUS around immutable revisions, independent review and transactional commands. A retry returns the recorded result; reusing its key with different content is rejected.

The command and its recorded result commit together, or the transaction rolls back.

The host supplies trusted identities. Evidence integrity does not prove that an interpretation is correct.

02 / FOAAP Engine ↗PostgreSQL / PL/pgSQL
supabase/engine-schema.sql
  select v.version into cur_version from public.venture_models v    where v.user_id = p_user and v.venture_id = p_venture for update;···  if p_base = -1 or cur_version = p_base then    update public.venture_models set model = p_model, version = cur_version + 1      where user_id = p_user and venture_id = p_venture;    return query select 'ok'::text, cur_version + 1, p_model, now(); return;  end if;  return query select 'conflict'::text, v.version, v.model, v.updated_at    from public.venture_models v    where v.user_id = p_user and v.venture_id = p_venture;end $$;revoke all on function public.save_venture_model(uuid, text, jsonb, int) from public, anon, authenticated;

Make stale writes explicit.

A row lock serializes updates to an existing model. The caller supplies a base version; a stale save returns a conflict and the current server state so the application can reconcile it.

Concurrency is part of the persistence contract.

The force-save path (p_base = -1) is explicit. Public, anonymous and authenticated roles are denied direct execution of this RPC.

lib/validate_candidate.mjs
    const n = countOccurrences(rawText, q);    if (n === 0) {      errors.push(`quote_not_found: evidence_quotes[${i}] ${JSON.stringify(q.slice(0, 60))}`);    } else if (n > 1) {      errors.push(`ambiguous_quote: evidence_quotes[${i}] occurs ${n}+ times ${JSON.stringify(q.slice(0, 60))}`);    } else {      const start = rawText.indexOf(q);      spans.push({ start, end: start + q.length, text: q });    }

Trace every claim to its source.

I keep model extractions as candidates. In anchorQuotes, a quote must occur exactly once in the original text before the validator accepts its source span. Missing or ambiguous evidence produces an explicit error.

The model supplies the quote. Deterministic code derives its position.

An exact match establishes provenance; it does not establish that the claim is true.

Exact excerpts from the linked revisions. Gaps indicate omitted lines. Each linked repository includes source that can be inspected publicly.

OWNED END TO END

01

Product

Frame the problem, model its relationships and design how a person moves through the product.

02

Engineering

Build the interface, backend and data workflows with React, Python, SQL and Supabase; integrate AI and deploy.

03

Judgment

Test assumptions, trace decisions to evidence and handle conflicting state, failed operations and retries.

Paulo Villalobos speaking

THE BUILDER

I turn complexity into software people can use.

I am most engaged when information, workflows and decisions are scattered across disconnected pieces. I work through the structure underneath: the data model, backend architecture, state and relationships. Then I turn it into a coherent product with an interface that makes the complexity feel clear and intuitive.

I take ownership from problem framing and system design through implementation, testing and deployment. My work spans NEXUS and Mesh, FOAAP’s persistent state and memory workflows, and a property platform for a private client. What drives me is understanding a system deeply enough to make every part work together and make the result useful to someone else.

PORTO / REMOTE

Give me the hard part.

paulo@foaap.app ↗
WhatsApp