{
"name": "Tamilore Afolabi",
"alias": "Tamziy",
"role": "Full-Stack Software Engineer",
"location": "Ibadan, Nigeria",
"focus": [
"Backend systems that scale",
"Auth flows that can't be bypassed",
"Transactions that stay consistent under concurrency",
"APIs built for the long run"
],
"stack": {
"backend": ["Java", "Spring Boot", "Node.js", "Express"],
"frontend": ["React", "Vite", "HTML", "CSS"],
"databases": ["MySQL", "PostgreSQL", "MongoDB"],
"security": ["JWT", "bcrypt", "RBAC", "Spring Security"]
},
"currently": "Mastering Spring Boot — layered architecture, JPA/Hibernate, Spring Security",
"philosophy": "I don't just ship features. I engineer the layer underneath them."
}Languages & Core
Frameworks & Runtimes
Databases
Security & Auth
Tools
In Progress
- Spring Boot: Mastering layered architecture — service/repository separation, JPA entity relationships, Spring Security. Migrating from Node.js-first thinking to proper enterprise patterns
- DSA: Daily problem-solving focused on pattern recognition, time complexity, and solutions that hold up under scale — arrays, linked lists, recursion, DP
- Systems thinking: Concurrency control, data integrity under load, and access control architecture
Production-grade e-learning platform with dual user roles, end-to-end JWT auth, email verification, and a custom dark-mode design system. Built across four deliberate phases.
System Architecture
graph TD
Client["React 19 Frontend"] -->|HTTPS| API["Express 5 REST API"]
API --> AuthMW["JWT Auth Middleware"]
AuthMW -->|Valid token| RoleMW["Role Guard Middleware"]
RoleMW -->|Student| SC["Student Controllers"]
RoleMW -->|Instructor| IC["Instructor Controllers"]
SC --> DB[("MySQL Database")]
IC --> DB
DB -->|WHERE instructor_id = ?| IC
API -->|Signup trigger| Email["Resend API"]
Email -->|32-byte token| Inbox["User Inbox"]
Inbox -->|/verify| API
style Client fill:#0c1018,color:#61DAFB,stroke:#61DAFB
style API fill:#0c1018,color:#339933,stroke:#339933
style AuthMW fill:#0c1018,color:#ff2d1f,stroke:#ff2d1f
style RoleMW fill:#0c1018,color:#ff2d1f,stroke:#ff2d1f
style SC fill:#0c1018,color:#e8edf5,stroke:#263044
style IC fill:#0c1018,color:#e8edf5,stroke:#263044
style DB fill:#0c1018,color:#4479A1,stroke:#4479A1
style Email fill:#0c1018,color:#EA4335,stroke:#EA4335
style Inbox fill:#0c1018,color:#8a95a8,stroke:#263044
Engineering Breakdown
| Layer | What was built | Why it matters |
|---|---|---|
| Auth | JWT stateless sessions + bcrypt (cost 10). Signup triggers branded email with 32-byte cryptographic token | Accounts locked at API level until confirmed — not just a UI gate |
| RBAC | Three independent layers: React route guard → Express middleware → SQL ownership check | No client-side bypass can reach data — unauthorised access is structurally impossible |
| Session | AuthContext handles token expiry and invalid tokens as separate cases | No broken states served — redirect fires before stale data renders |
| Content | YouTube URL parser handles watch / youtu.be / embed / Shorts | Search + filter state in URL params — every filtered view is directly linkable |
| Prod | Error boundaries, skeletons, typed token error responses, CORS locked to origin | ~30 files, 1,200+ line CSS design system, responsive to 320px |
- Stale State Rejection: If a user’s JWT expires while they are filling out a form, the API rejects the submission and the React
AuthContextcatches the 401, clears local storage, and preserves the user's input state while forcing a re-auth. - Concurrent Video Tracking: Handles edge cases where a user opens the same course in two tabs; progress tracking enforces a "latest timestamp wins" rule to prevent database deadlocks.
- Auth Overhead: Custom JWT middleware adds
<15mslatency to protected routes. - Query Optimization: Indexed
instructor_idforeign keys dropped course-fetching queries fromO(n)table scans toO(log n), averaging120msresponse times in local testing.
[Insert screenshot of Postman test suite passing or API logs blocking an unauthorized request here]
|
Escrow-Backed Service Marketplace · Hackathon Financial trust engineered into the architecture — not bolted on.
|
Enterprise REST API · Concurrency Focus Built for correctness under pressure. Architecture prioritises data integrity over convenience.
|
|
Browser-Level Security Anti-cheat logic in a middleware layer — no UI action trusted at face value.
|
Daily Practice Solving problems that hold up under scale — not just ones that pass test cases.
|
| Institution | Degree | Status | |
|---|---|---|---|
* |
University of Ibadan | B.Sc. Computer Science | Penultimate Year |
