~/sumaia$whoami

I write Laravel.
Some of it ships inside Laravel -
and inside its AI SDK.

Senior software engineer. Seven years of production SaaS in PHP, Laravel and Vue. Contributor to laravel/framework and to laravel/ai, and I run a small fleet of autonomous agents that turn issues into pull requests, review code, and brief me in Slack.

97
laravel/framework
60 merged
laravel/ai
37 merged

Merged pull requests · reviewed and shipped by the Laravel maintainers · synced from GitHub 2 days ago

7Years in production
13LLM providers integrated
5Published packages
3Agents in production

Open to senior backend, AI-engineering and product roles · remote from UTC+6

AI engineering

I build with AI, not just alongside it.

Three places it shows up: inside Laravel's official AI SDK, in a fleet of agents I run on my own infrastructure, and in the products I ship for other people.

01Inside the SDK

37 pull requests merged into laravel/ai, Laravel's official AI SDK - provider gateways, failover, usage accounting and conversation persistence across thirteen vendors.

  • OpenAI
  • Anthropic
  • Gemini
  • Mistral
  • Cohere
  • DeepSeek
  • Ollama
  • xAI
  • OpenRouter
  • Azure OpenAI
  • ElevenLabs
  • Jina
  • Voyage AI
Read the case study →

02Agents in production

Code agent
Turns a GitHub issue into a fixing pull request, reviews PRs with inline comments, and patches bugs reported in Slack.
AI-news agent
Filters the day's model, tooling and research releases into a short Slack briefing.
World-news agent
Same pipeline, different sources - a real-time, de-duplicated briefing channel.

Self-hosted on a 4 GB VPS with Docker Compose, alongside LibreChat, Nextcloud, Rocket.Chat, Jitsi, Wekan and Adminer.

Hermes · Slack API · GitHub API · Docker Compose · Linux VPS

03In products

AI Apply · easy.jobs
Conversational job application with resume auto-parsing and AI candidate scoring feeding the hiring pipeline.
GEEKY AIQ
Answer-engine optimisation: how visible is a brand across AI assistants, scanned on a schedule across models.
The code agent, issue to merge
  1. 01Issue openedGitHub webhook → Slack thread
  2. 02Agent readsrepo, history, failing test
  3. 03Branch + fixsmall diff, one concern
  4. 04Tests runred → green or it stops
  5. 05PR openedsummary written for a human
  6. 06Inline reviewsecond agent, fresh context
  7. 07I mergeor I don't

How I work

  1. The agent writes the first draft. I own the diff.
  2. Every provider fails differently. Design for the failure, not the demo.
  3. If it cannot be tested, it does not ship - that goes double for generated code.

Daily tools

  • Claude Code
  • Cursor
  • Gemini CLI
  • ChatGPT
  • n8n
  • LibreChat (self-hosted)

This site is machine-readable - there is an llms.txt and a Markdown alternate of every page - and parts of it were built pairing with Claude Code. The words are mine.

Selected work

Four things worth reading about

Depth over breadth. Each has a decision in it I would defend in a code review - and a case study that says which.

OnBordly

Co-founder & engineering lead · multi-tenant HRM SaaS

  • Took the product from an empty repository to eight shipped modules - employee records, leave, attendance, onboarding, RBAC, audit logging and admin analytics.
  • Tiered subscription billing with Laravel Cashier, entitlements gated through Laravel Pennant so plan limits live in one place rather than scattered across controllers.
  • Per-company tenancy through Jetstream Teams over a service/repository layer, so isolation is enforced by the framework rather than by remembering to scope a query.

Laravel 10 · Vue 3 · Inertia.js · MySQL · Redis · AWS S3 · PHPUnit

Case study · 2 min →

AI Apply - easy.jobs

Conversational application engine · GDPR-compliant recruitment SaaS

  • Replaced a multi-step application form with a chat flow covering personal details, education, employment, documents, video, screening questions and quiz.
  • Resume auto-parsing to pre-fill fields, session persistence so an incomplete application survives a reload, and input validation at entry to block injection.
  • Found and fixed a production bug where the entire notification pipeline failed silently - applications saved, employers never told, nothing in any log.

Laravel · PHP · Vanilla JS · MySQL · Redis · REST APIs

Case study · 2 min →

Provider gateways - laravel/ai

Contributor · Laravel's official AI SDK

  • Hardened integrations across thirteen LLM providers that each fail differently and each describe those failures differently.
  • Failover error handling across gateways, correct model resolution through a failover chain, and a typed InsufficientCreditsException so running out of credit stops being an anonymous 4xx.
  • Normalised usage accounting across OpenAI-shaped providers, and made a dead stream broadcast a failure instead of hanging.

PHP 8 · Pest · OpenAI · Gemini · Mistral · Cohere · Ollama · xAI · DeepSeek

Case study · 2 min →

GEEKY AIQ

Answer-engine optimisation platform

  • Measures how visible a brand is across AI assistants - prompt tracking, citation share and competitor comparison on a schedule.
  • Built on the same provider-integration patterns as the SDK work above, which is what made the multi-model scanning tractable.

Laravel · Vue.js · MySQL · Redis · OpenAI · Tailwind

Case study · 1 min →

Open source

Merged into the framework

Every line below was reviewed and merged by the Laravel maintainers. Numbers link to the pull request.

laravel/framework 60 merged Queues · Cache · Validation
#62178 [13.x] Fix `distinct:ignore_case` throwing on values that are not valid UTF-8
#62083 [13.x] Release the unique lock when dispatching a scheduled job fails
#62084 [13.x] Fix altering SQLite tables with a foreign key to a table name that needs quoting
#62032 [13.x] Fix `encrypted:object` and `encrypted:collection` casts always being dirty
#62009 [13.x] Fix `has()` and `withCount()` on self-referencing one-of-many relations
laravel/ai 37 merged Provider gateways · Failover
#644 Add JSON_UNESCAPED_UNICODE to schema instruction encoding
#633 Apply model attribute and explicit model to all providers in a failover list
#613 Reject blank URL in RemoteDocument, RemoteImage, and RemoteAudio constructors
#610 Capture missing usage details across OpenAI-shaped providers
#606 Throw InsufficientCreditsException for OpenRouter and DeepSeek credit errors

Full list on /contributions, grouped by release.

Packages

Published on Packagist and npm

laravel-sqs-redrive

Native AWS SQS dead-letter-queue support. Detects redrive policies automatically and lets SQS route failed jobs instead of deleting the message.

composer require sumaiazaman/laravel-sqs-redrive
laravel-acronym-pluralizer

Fixes Laravel's pluralizer for uppercase acronyms - Str::plural('CD') returns CDs, not CDS. Drop-in, no config.

composer require sumaiazaman/laravel-acronym-pluralizer
laravel-stringable-extras

Adds the missing whenDoesntContain() and whenDoesntContainAll() methods, completing Stringable's fluent conditional API.

composer require sumaiazaman/laravel-stringable-extras
google-onetap-login

Google One-Tap sign-in for Laravel, with automatic user registration and minimal setup.

composer require sumaia/google-onetap-login
@sumaiaaktar/stripe-payment

Stripe payment UI components for React and Next.js, built on Stripe Elements. TypeScript, ESM and CJS builds.

npm i @sumaiaaktar/stripe-payment

Notes

Written from the work, not about it

Archive

Also shipped

Feb 2026 – Present
Co-founder & engineering lead · OnBordly
May 2021 – Feb 2026
Software Developer · WPDeveloper (easy.jobs)
Feb 2019 – May 2021
Software Developer · Geeky Social Ltd.

Contact

Open to senior backend, AI-engineering and product roles

Remote, working from Dhaka at UTC+6 - a full overlap with European mornings. Happiest on integration-heavy systems where the interesting problem is what happens when the other side of the wire misbehaves.