I am a Full Stack Software Engineer with 4+ years of experience building enterprise applications, scalable SaaS platforms, backend services, analytics dashboards and data-intensive web products.
My work sits at the intersection of:
Product Engineering × Frontend Architecture × Backend Systems × Data
My primary stack includes React, Next.js, Node.js, TypeScript, PostgreSQL and Redis, supported by experience in authentication, payments, caching, third-party integrations, background processing, data visualisation and performance engineering.
I am also the Founder and Lead Engineer of Statyx, a production sports analytics platform built for real-time odds, player analytics, historical trends and subscription-based research tools.
I build interfaces users can understand and systems engineers can maintain.
|
|
|
Statyx is a production analytics platform that helps users research sports odds, player props, line movement, historical performance and betting trends through interactive dashboards.
I designed and developed the product from concept to production, covering frontend architecture, backend integrations, authentication, subscriptions, third-party data providers, visualisation systems and deployment.
|
Registered users |
Active daily users |
Odds and analytics |
Analytics platform |
- Real-time odds aggregation
- Player props and performance analytics
- Historical trend analysis
- Line movement tracking
- Betting research dashboards
- Interactive statistical visualisations
- Multi-sports data support
- Secure authentication and protected access
- Subscription-based SaaS architecture
- Responsive desktop and mobile experience
flowchart LR
A[Sports Data Providers] --> B[Ingestion Layer]
B --> C[Normalisation & Validation]
C --> D[(PostgreSQL)]
C --> E[(Redis Cache)]
D --> F[Node.js API Services]
E --> F
F --> G[Next.js Application]
G --> H[Odds Dashboard]
G --> I[Player Analytics]
G --> J[Historical Trends]
G --> K[Data Visualisations]
L[Clerk Authentication] --> F
M[Stripe Webhooks] --> F
N[Scheduled Jobs] --> B
style A fill:#F97316,color:#fff,stroke:#F97316
style B fill:#EC4899,color:#fff,stroke:#EC4899
style C fill:#8B5CF6,color:#fff,stroke:#8B5CF6
style D fill:#2563EB,color:#fff,stroke:#2563EB
style E fill:#DC2626,color:#fff,stroke:#DC2626
style F fill:#0284C7,color:#fff,stroke:#0284C7
style G fill:#111827,color:#fff,stroke:#38BDF8
style L fill:#7C3AED,color:#fff,stroke:#7C3AED
style M fill:#635BFF,color:#fff,stroke:#635BFF
style N fill:#059669,color:#fff,stroke:#059669
| Area | Implementation |
|---|---|
| Application | React, Next.js and TypeScript |
| Backend | Node.js services and REST APIs |
| Database | PostgreSQL for structured analytical data |
| Caching | Redis for frequently requested data |
| Authentication | Clerk with protected application routes |
| Payments | Stripe subscriptions and webhook synchronisation |
| Visualisation | D3.js, Recharts and Chart.js |
| Data ingestion | Scheduled synchronisation and provider abstraction |
| Performance | Caching, memoisation, code splitting and selective rendering |
- Normalised inconsistent responses across multiple sports data providers
- Designed caching strategies balancing speed and data freshness
- Optimised analytical queries for read-heavy dashboard workloads
- Built reusable chart and visualisation components
- Implemented reliable subscription synchronisation through Stripe webhooks
- Reduced redundant requests using client-side and server-side caching
- Created responsive layouts for dense statistical datasets
- Designed the architecture to support additional sports and analytics modules
01. Design for change, not imaginary scale.
02. Keep interfaces simple and implementation details private.
03. Measure performance before optimising it.
04. Prefer readable systems over clever abstractions.
05. Make invalid states difficult to represent.
06. Treat observability as a feature, not an afterthought.
07. Cache carefully. Invalidate deliberately.
When all else fails:
git blameStrictly for historical research.
- Distributed systems and service boundaries
- Event-driven architecture
- Backend scalability and fault tolerance
- PostgreSQL query planning and indexing
- Real-time data ingestion pipelines
- Observability and production reliability
- Advanced data visualisation systems
- Better ways to explain that “works locally” is not a deployment strategy
I am interested in roles involving:
Full Stack Engineering · Backend Engineering · Frontend Architecture
SaaS Platforms · Sports Technology · Analytics Products · Developer Tools
Open to:
- Remote opportunities
- International relocation
- Visa-sponsored software engineering roles
- Product-focused engineering teams
- Technically ambitious early-stage companies