Hi, my name is

ABDERRAHMANE HANA

and I'm a
Software Engineer

Open source by day, CTF player by night

pfp

Backend / Systems / Rust / Part-time Priest at the Cult of Vi

Backend / Systems / Rust / Part-time Priest at the Cult of Vi

Backend / Systems / Rust / Part-time Priest at the Cult of Vi

Backend / Systems / Rust / Part-time Priest at the Cult of Vi

Backend / Systems / Rust / Part-time Priest at the Cult of Vi

ABOUT

Computer science is a tower of abstractions, each layer standing on the one below. Networks over hardware. Languages over machine code. Frameworks over languages. Most engineers pick a floor and stay. I take the stairs.

That's why I can ship a distributed backend one week and chase a memory-corruption bug in a CTF the next. When you understand the layer beneath the one you're paid to touch, you write code that respects it. No magic, no mystery.

Six years shipping. Rust when I want the compiler to argue with me. Vim when I want to argue with everyone else.

6+

years shipping

5,000+

GoCampus users

1,000

daily active

I believe in

  • 01

    Systems thinking

    Read the source of the thing you depend on. It's rarely magic.

  • 02

    Craftsmanship

    Code is craft. Every function deserves the same attention as the first line.

  • 03

    Pragmatism

    Ship it. Perfect is the enemy of deployed.

  • 04

    Curiosity

    Break things to understand them. Learn something new before it becomes mandatory.

WORK

Real tools for real users

Pagent MCP Server

Let an agent log in properly.

Every AI client wanted API-key auth. Keys don't expire, don't scope, and can't be revoked per client. So I built the authorization server instead.

OAuth 2.1

full spec, DCR to PKCE

2.5 yrs

shipping at pagent

TypeScriptSvelteKitPrismaMCP

GoCampus

Campus life, digitized.

Finding your next class at AUI was chaos. I joined DeviTeam and we fixed it.

5,000+

users

1,000

DAU

1.3M MAD

processed

99.75%

crash-free

React NativeTypeScriptNode.js

Blokbustr

Trace the untraceable.

Blockchain promises transparency. Reality delivers obfuscation. I built the tools to follow the money anyway.

3

chains traced (BTC, EVM, Solana)

7

GitHub stars

TypeScriptSvelteKitAWSRedis

Rust: Speedemon & Bust the Ghost

Two reasons to fight the borrow checker.

A downloader that stops servers from throttling one connection, and a ghost hunt that updates its beliefs every time you miss.

32KB

of Rust

WASM

in the browser

RustLeptosWebAssembly

Degree Planner

Plan your degree like you plan your code.

Tired of spreadsheets and manual tracking. Built an interactive flowchart instead.

WIP

still building

TypeScriptNext.jstRPCSupabaseReact Flow

EXPERIENCE

Where the code went to production

2024–now

Software Engineer

Pagent

Remote, Bonn

  • Built pagent's MCP server and the OAuth 2.1 authorization server behind it: dynamic client registration, PKCE, discovery documents, consent screen, token rotation and cleanup. Schema migration to shipped feature.
  • Built the agent chat platform: workspace context layer, 12 capabilities, and server-side history compaction so long threads stop hitting the context window
  • Built the browser extension's pairing flow, including the races I found by breaking it
  • Shipped the experiment platform's goal system: computed, conditional, and cross-page goals
TypeScriptSvelteKitPrismatRPCPostgresAWS
2019–now

Freelance Developer

Freelancer.com & Upwork

5.0 over 15 reviews on Freelancer, 4.7 over 4 on Upwork

  • Built a Reddit scraper that takes a keyword and finds every subreddit related to it: Python, Selenium, Django
  • Fixed a Bitcoin dApp repo that wouldn't run, and iterated the MVP of an embeddable AI chat bot in Next.js
  • 89% on time, 95% on budget, 100% accept rate across both platforms
PythonSeleniumDjangoNext.jsReact
2021–2025

Software Engineer (part-time)

DeviTeam

  • Shipped GoCampus: 5,000+ users, 1,000 DAU, 1.3M MAD in wallet refills
  • Built GoSocial for 2,100+ AUI students: events, posts, community tooling
React NativeNode.jsPostgreSQL
$ cat /etc/shadow

CTF

Breaking things to understand how they work

web hard

Three bugs to forge an admin token

A hand-rolled TCP proxy with a parser differential, an SSRF that leaks the JWKS, and a JWT verifier that trusts the token to name its own algorithm.

AKASEC CTF solved
forensics hard

The proxy that wasn't a proxy

A DFIR challenge with 50,000 SIEM logs and no host artifacts. The rogue container names itself, and the flag is hiding in HTTP response sizes.

AKASEC CTF solved
web hard

SSRF into a preg_replace /e that shouldn't exist

A PHP box that only validates one of two parameters, an SSRF to an internal server running preg_replace with the /e modifier, and a function blocklist that forgot glob.

AKASEC CTF solved

LET'S BUILD

I'm always interested in challenging projects, open source collaborations, or just a good conversation about systems and security.