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