Bereket Tilahun Hire on Upwork

Backend Security Engineer · Addis Ababa · remote-ready

Systems that stay trustworthy when everything else changes.

I build backend and security systems that stay trustworthy when the inputs, models and environments around them change.

Bereket Tilahun, arms folded, in a black floral shirt
automated tests guard the flagship scanner
precision and recall on all 13 evaluated check classes, rebuilt each commit
from a clean machine to a working install
MCP servers surveyed in one reproducible census

Five systems, built to be distrusted.

Each one is designed to be checked, not believed. Every figure opens its source; every case study says what isn’t finished.

01

Agent Perimeter

Scans the tools an AI agent can reach and proves — not guesses — which ones an attacker could hijack.

It flags suspicious text, then drives a live agent through the injection path and records demonstrated impact. And every published number is regenerable by someone who doesn’t trust it.

registered checks in 8 groups
precision / recall
Python 3.12FastAPIPydantic v2SQLAlchemy 2 + AlembicPostgres 16Next.js 15.5+7
Read the case study
  1. MCP server
  2. Discovery
  3. Capability graph
  4. 34 checks · 8 groups
  5. Findings + reproductions
  6. SARIF / HTML / CI drift gate
02

Ground Truth

A test bench that says how accurate a document-reading model really is, with error bars anyone can recompute.

Every published figure is a bootstrap confidence interval, never a bare point estimate — and a stdlib-only script regenerates every leaderboard row from the published data alone, no repo checkout needed.

synthetic golden items
test functions
Python 3.12Pydantic v2DuckDBNumPy / SciPy / scikit-learnJinja2Next.js 16.3+5
Read the case study
  1. Corpus
  2. Grader
  3. Replicates (n ≥ 5)
  4. Statistics
  5. Calibration
  6. Leaderboard
03

Ledger Sense

Reads construction invoices, checks the arithmetic, and only lets a human approve anything that moves money.

Deterministic-first architecture: Decimal money handling (no floats in the money path), sensitivity boundaries enforced structurally, writeback that never approves or pays, and a hard stop on bank-detail changes that only an attested human confirmation can clear.

validation rules (8 arithmetic + 3 integrity)
test functions
Python 3.12FastAPIPydantic v2SQLAlchemy 2 + AlembicPostgreSQLpdfplumber+10
Read the case study
  1. Document
  2. Classify
  3. Parse
  4. Extract
  5. Validate
  6. Route
04

Selector Drift

Keeps data extraction from legacy business systems working when their screens change — and refuses to guess.

The heal log is the product: a wrong heal silently returns plausible, incorrect numbers into an accounting system for weeks — so the validation gate, not the heal, is the centre of the design.

resolution rungs, cheapest & most reliable first
validation gate checks before any write
Python 3.12PlaywrightPydantic v2PostgreSQLAlembicPrefect 3+3
Read the case study
  1. Cached selector
  2. Accessibility tree
  3. Semantic anchors
  4. Structural heuristics
  5. Visual grounding (last resort)
05

AZTDP

Scores how every request behaves, not only whether its login token is valid, so a stolen token gets stopped instead of trusted.

The check runs synchronously on the request path, before any business logic: IP drift, geo drift, device change, request-rate anomalies and an ML anomaly score decide the outcome, and a token seen from a new IP within 60 seconds is hard-denied even in fail-open mode.

services in one Compose stack
enforcement outcomes
PythonDjangoFastAPISpring Boot (Java)TypeScriptKeycloak (OIDC)+11
Read the case study
  1. Request + JWT
  2. JWT verify (JWKS)
  3. Risk evaluation
  4. Policy decision (OPA)
  5. Allow · deny · step-up · revoke

How I work.

Four rules, each with the system that forced it.

  1. No floats in the money path

    Ledger Sense treats money as Decimal with contract-supplied rounding, enforced by a ruff lint rule, a dedicated CI job, and hypothesis property tests over every arithmetic rule — the wrong type is rejected before it can reach a total.

    Ledger Sense — money path

  2. Fail closed

    Agent Perimeter refuses active probing without a scope file — CLI and HTTP API go through the same authorisation function, and the API returns 422 authorization_required, never a silent skip. Its census records an un-cursored page as a suspected pagination bug, never as a completed population.

    Agent Perimeter — scope gate & census

  3. A wrong heal is worse than a broken selector

    Selector Drift’s resolution cascade exists to heal; its validation gate exists to stop bad heals. Type assertions outrank model confidence, and distributional checks catch the adjacent-column lock-on that per-value checks cannot.

    Selector Drift — validation gate

  4. Don’t hide caveats

    Ground Truth’s methodology opens by stating that its population is synthetic and external validity is unmeasured by design. Agent Perimeter reports census zeros with Wilson intervals so a zero never reads as “none”.

    Ground Truth & Agent Perimeter — methodology

Four years, five modes.

  1. 2022 – 2023

    Operate

    Junior Software Engineer · DZ Software Engineering PLC

    Triaged 10–12 Tier-1 incidents a day across Python, Java and C++ services; wrote the runbooks and automated health checks that cut recurring failures by 15%.

  2. 2021 – 2023

    Build

    Freelance Backend Engineer (part-time) · Independent, remote

    Shipped 15+ production backends on FastAPI, Django REST and Spring Boot at sub-200 ms for 100+ concurrent users — including a multilingual code search with authorisation-before-query and tenant-scoped AES-256.

  3. 2023 – present

    Harden

    Senior Software Engineer · DZ Software Engineering PLC

    Hardened 47 API endpoints and closed 9 High/Critical CVEs with no recurrence; led a Zero Trust migration — 11 long-lived secrets replaced with short-lived OIDC tokens, incident reconstruction under 20 minutes.

  4. 2023 – present

    Measure

    Evaluation & benchmark infrastructure · production

    Built the LLM evaluation pipeline and CI gate now guarding 11 production services — 40% less manual review, zero correctness regressions — and a benchmark curation pipeline that cut MTTD by 30%.

  5. 2025 – present

    Design Systems

    The five systems in this portfolio

    Agent Perimeter, Ground Truth, Ledger Sense, Selector Drift and AZTDP — five systems that treat security, evidence and failure behaviour as first-class design inputs.

Stack.

Backend

Python 3.12 · FastAPI · Django REST · Spring Boot · Pydantic v2 · SQLAlchemy 2 + Alembic · PostgreSQL · async workers · event-driven pipelines · Typer CLI

Security

Zero Trust · OIDC / Keycloak · JWT & token lifecycle · RBAC / ABAC · OWASP Top 10 · threat modeling · SARIF 2.1.0 · envelope encryption · Argon2 · seccomp profiles · HMAC · Bandit / pip-audit · Trivy · gitleaks

Data

Redis · DuckDB · SQLite · Parquet · NumPy / SciPy / scikit-learn · BM25 / TF-IDF · pdfplumber · pypdfium2 · RapidOCR

Infrastructure

Docker & Compose · GitHub Actions · AWS (EC2, S3, IAM, VPC) · Linux · structlog · Prometheus · multi-stage builds · CI/CD gates

AI & Evaluation

LLM evaluation pipelines · cluster-BCa bootstrap intervals · Cohen’s κ · Krippendorff’s α · Benjamini–Hochberg · O’Brien–Fleming sequential testing · isotonic / Platt calibration · LLM-as-judge bias controls · hypothesis property testing

Bereket Tilahun, arms folded, in a black floral shirt

I build systems that know what they are allowed to do, know when they are uncertain, and fail safely.

I’m a backend engineer in Addis Ababa. Over four years I’ve operated production services, built them, hardened them and measured them — and I’ve come to believe that correctness, security and evidence are design inputs, not things you add after.

The five systems here are where that belief has ended up. Each one is designed to be checked: scope files before probing, sealed splits before leaderboards, a review queue before any money moves, provenance before publication. The case studies say exactly where each one stands, including what isn’t finished.

B.Sc. Computer Science — HiLCoE School of Computer Science & Technology, Addis Ababa

Let’s talk.

Open to backend and security engineering roles — Addis Ababa or remote.