Samen Steeve
MY SERVICES.
Back to case studies
TribuneJustice
Software EngineeringApplication Pentest & Security

TribuneJustice

Legaltech platform designed and built for a legal expert: escrow payments, video consultations, real-time messaging, FR/EN bilingual — 41 vulnerabilities closed, LCP from 5s to 1.5s.

My role

Tech Lead

Period

November 2025 — ongoing

LaravelAngular 20Next.jsTypesenseMeSombRedisLaravel ReverbDocker
41

Vulnerabilities patched

Two audit campaigns (external pentest + internal review), closed before any exploit

0

Post-deploy incidents

Zero-downtime deployments with automatic stale-cache recovery

< 300ms

Lawyer search speed

Typesense faceted index: specialty, city, availability

594 ➔ 4

Frontend refactor

Monolithic auth service split into 4 Angular Signals services

Executive Summary

TribuneJustice connects clients with certified lawyers, handling escrow payments, video consultations, and real-time case tracking. It is the digital product of Mr Badjeu Kuitchouha Ghislain, a legal expert who came up with the idea and wrote the specifications; I was consulted to build it. I led and built the entire technical side — Laravel backend, Angular SSR frontend, Next.js blog — over 8 months. Two audit campaigns (external pentest + internal review) then found 41 flaws: all closed without disrupting active users.

01. Context — The Digital Product of a Legal Expert

TribuneJustice is the digital product of Mr Badjeu Kuitchouha Ghislain, a legal expert: he came up with the idea and wrote the specifications. He consulted me to build the platform — I designed the data model (MCD), the architecture, the Laravel backend, the Angular frontend, and the Next.js blog, shipped over 8 months (~1,650 tracked changes), exchanging with him on every product decision. In a domain demanding absolute confidentiality and financial integrity, security cannot be an afterthought: after launch, we had the platform audited by an external pentest followed by an internal review. Verdict: 41 flaws — SSRF on the blog image proxy, Redis sessions without TTL, a 594-line monolithic auth service. Every deployment risked breaking active escrow flows.

"In legaltech, today's security flaw is tomorrow's lawsuit. Building for a client means shipping a product that survives its own audits."

02. Building, Refactoring & Hardening

I closed all 41 flaws without disrupting business. On the backend, financial transactions were wrapped in pessimistic locking (lockForUpdate) bound to the deterministic Laravel state machine of the Service Request — the central entity carrying the full case lifecycle: creation, assignment, tracking, payment, resolution. On the frontend, the monolithic auth service (594 lines, 87 consumers) was split into 4 specialized TypeScript services powered by Angular Signals. In parallel, slow SQL search was replaced by a Typesense index.

State Machine & Pessimistic Locks

Eliminates race conditions on escrow payments during concurrent client requests.

Decoupled Frontend (Angular Signals)

4 specialized services — state, API, token, permissions — with strict typing and fine-grained state management.

OWASP Top 10 Hardening

SSRF allowlists, CSP/HSTS headers, bounded TTL sessions, HTTP-only JWT cookies, sudo mode.

Typesense Search Engine

Filter lawyers by specialty, city, and availability in under 300ms.

03. Business Impact & Results

The full rollout deployed with zero downtime. Server load dropped significantly thanks to N+1 query cleanup and strategic Redis caching across 10 core endpoints. Page load went from 5 seconds to under 1.5 seconds (LCP), and media assets from 68 MB to 3.9 MB (−94% as WebP). The architecture is now scalable: 3 new business modules shipped without regression.

A similar project?

Let's discuss your needs. I will get back to you within 24 hours with a concrete analysis.

Start a project