HI THERE, I'M
FIRDAUS ADNAN
Laravel developer building data-heavy dashboards and AI-integrated platforms, plus the occasional website people actually see.
WHAT I DO.
WEB DEVELOPMENT
My work splits fairly evenly in two. On one side, internal systems and dashboards such as approval workflows, analytics platforms, and the third-party API pipelines that keep their data current. On the other, public-facing sites built from Figma handoff to launch, where the job is matching a designer's intent exactly across every breakpoint.
Most of my recent work has leaned backend: integrating LLM APIs, self-hosting Whisper for speech-to-text, and writing custom components when the framework cannot do what a client needs.
01.
MY SKILLS.
LARAVEL/PHP
FILAMENT
LIVEWIRE
MYSQL
JAVASCRIPT
ALPINE.JS
HTML/CSS
TAILWIND
BOOTSTRAP
GIT
WORDPRESS
PYTHON
INTEGRATIONS
OPENAI
GROQ
WHISPER
RAPIDAPI
PAYPAL
GOOGLE OAUTH
AWS S3
FABRIC
02.
SELECTED WORKS.
BEHIND THE LOGIN. (3)
KOL ANALYTICS PLATFORM
THE PROBLEM
Users needed AI summaries of influencer content at several levels, from a single video up to a full profile, without a way to see or control what each generation was costing them.
WHAT I BUILT
Self-hosted Whisper on the application server to transcribe uploaded videos, then fed those transcripts and crawled performance metrics into OpenAI and Groq to generate summaries at video, collection and profile level. Added credit-based metering across every AI feature: trial credits, per-generation deduction, PayPal top-ups and a full transaction history.
THE RESULT
Users can summarise at any level and track their own credit usage, with every generation priced and logged. Transcription runs in-house rather than billing per minute to a third-party API.
TOOLS
PHP/LARAVEL - FILAMENT - MYSQL - WHISPER - OPENAI - GROQ - RAPIDAPI - PAYPAL - AWS S3
RETAIL ANALYTICS DASHBOARD
THE PROBLEM
Business data sat in Microsoft Fabric and needed readable views for non-technical stakeholders. Filament could not render array-sourced data or multiple tables on a single page.
WHAT I BUILT
Dashboard pages turning Fabric data into readable views, working as one of three developers each owning a set of sections. Built a custom Alpine.js data table to get past the Filament limitation, with search, sorting, Excel export, nested expandable rows and pinned totals, then paired it with Highcharts visualizations over the same data.
THE RESULT
Non-technical stakeholders read the numbers directly across every section, and the table became a shared component powering 25 pages for around 150 users across the three-developer team.
TOOLS
PHP/LARAVEL - FILAMENT - ALPINE.JS - HIGHCHARTS - MICROSOFT FABRIC - MYSQL
QUOTATION & INVOICE SYSTEM
THE PROBLEM
Account managers were producing quotations with separate ad-hoc generators, leaving no shared approval trail and no single record of what had gone out.
WHAT I BUILT
A quotation and invoice module from scratch, covering document creation, role-based approval routing between account managers and finance, PDF generation, and a searchable history of every document issued. Converting an approved quotation into an invoice carries the line items across rather than starting again.
THE RESULT
Around 30 documents a month now run through one system instead of scattered generators, with every approval recorded and past documents retrievable by anyone who needs them.
TOOLS
PHP/LARAVEL - MYSQL
PUBLIC FACING. (4)
O'Cera Xepa Soul Pattinson
PHP/LARAVEL
FILAMENT
HTML/CSS
BOOTSTRAP
GOOGLE RECAPTCHA
VITE
AOS
SWEETALERT
2025
A
LITTLE
BIT
ABOUT ME.
I didn't start in software. I graduated in mechanical engineering, then joined the K-Youth Development Programme (a Khazanah Nasional initiative for non-IT graduates) and landed at an agency building WordPress sites for clients. Seven months later I moved to Laravel and haven't looked back.
Two years on, I've shipped AI-integrated analytics platforms, finance approval systems, and brand websites. Most of it comes down to breaking a vague problem into parts that can be tested, a habit I brought over from my engineering degree.