Skip to content
~/adhamaa
Available now — full-time or contractPahang, Malaysia · GMT+8

Adham Akmal Azmi.

$full-stack engineer5+ years shipping

I ship business software end to end — the interface, the API behind it, and the edge infrastructure it runs on. Three production platforms, all built solo.

5+
Years shipping production software
3
Platforms built solo, schema to deploy
2022–26
Led frontend at Shinkels Technik
~/adhamaa/whoami.ts
// the short version
const adham = {
role: "Full-Stack Engineer",
frontend: ["TypeScript", "React", "Next.js"],
backend: ["Hono", "Express", "GraphQL", "Flask"],
owns: ["schema", "api", "ui", "deploy"],
runsOn: "Cloudflare + Neon Postgres",
available: true,
} satisfies Engineer;
// press ⌘K to look around

The whole slice

One feature, start to finish, without a handoff.

01 — schema, designed in the morning

Model the domain first, wire the UI second. A Postgres schema exists before a line of interface does, because if the database and the compiler can catch it, a reviewer should not have to.

02 — api, written against it at lunch

REST and GraphQL services typed end to end against the schema above, with auth and role-based access designed in rather than bolted on afterwards.

03 — interface, shipped before the day is out

Design-system frontends in React and TypeScript. Semantic HTML and real focus states, fast on the mid-range hardware the people using it actually have.

04 — deploy, then the bugs, then the next one

Edge deployment on Cloudflare Workers with serverless Postgres, on a pipeline boring enough to trust on a Friday afternoon. Nothing gets thrown over a wall.

  1. Schema

    01

    designed in the morning

    • PostgreSQL
    • Neon
    • Zod
    • SQL
  2. API

    02

    written against it at lunch

    • Hono
    • Node.js
    • GraphQL
    • Flask
  3. Interface

    03

    shipped before the day is out

    • TypeScript
    • React
    • Next.js
    • Tailwind
  4. Deploy

    04

    then the bugs, then the next one

    • Cloudflare Workers
    • Docker
    • GitHub Actions
    • PM2
01

Selected work

Independent products of mine — not my employer's. Live systems people use to run a business and see patients, each built solo from schema to interface to deploy.

  • 012026 — present

    AA Digital Works

    The platform my own web business runs on — leads to invoices, plus the landing site that feeds it

    AA Digital Works overview with money outstanding and overdue invoices, the sales pipeline with new leads, and delivery and support plan cards — shown with demo data
    The problem
    A one-person web business lives or dies on follow-up. Leads arrived over WhatsApp and a contact form, quotes were documents, and projects and invoices were tracked somewhere else again — so nothing showed where a client actually stood.
    What I built
    One system with a public side and an admin side. A bilingual landing site captures leads; the back office carries each one through quote, project and invoice, with tasks, time and support plans along the way. Three apps in one monorepo: a Hono API on Cloudflare Workers, a React admin for the owner and staff, and an Astro landing site in Bahasa Melayu and English — sharing one Neon Postgres database through Drizzle.
    • One flow from lead to quote to project to invoice, so a client's whole history sits on one record
    • Client status links let a client follow their project's progress without an account
    • The bilingual Bahasa Melayu and English landing site feeds leads straight into the back office
    • Notification workflows keep the owner and staff on top of what changed, by e-mail and in-app
    Read the case study
    Solo — schema, API, UI, deployHonoCloudflare WorkersDrizzleNeon PostgresReactViteTanStack QueryAstroClerkNovu
  • 022026 — present

    Sharah CMpro

    Accounting platform with HR built in — an independent product of mine

    Sharah CMpro cash in/out ledger showing monthly totals, an entry form and categorised transactions
    The problem
    A small manufacturer was running finance and people on separate tools, so the same employee, the same month and the same ringgit had to be entered twice — and reconciled by hand whenever the two disagreed.
    What I built
    One admin console where production, payroll and the ledger share a single database and permission model: cash in/out, revenue and profit, trial balance, balance sheet, fixed assets and Tax & Zakat on the accounting side; employees, attendance, payroll and owner drawings on the people side. I designed the schema, wrote the API, built every screen, and shipped it to the edge.
    • Real double-entry bookkeeping — trial balance and balance sheet are derived from the same entries staff record daily, not re-keyed
    • Tax & Zakat handled as first-class modules, because a Malaysian SME needs both and generic accounting tools give you neither
    • Multi-user with per-entry attribution, so every transaction traces back to whoever recorded it
    • Serverless Postgres on Neon behind a Hono API on Cloudflare Workers — no servers to patch, cold starts in milliseconds
    Solo — schema, API, UI, deployViteReactTypeScriptHonoCloudflareNeon Postgres
  • 032026 — present

    Homeopathy Radionic App

    Clinical workspace for homeopathic practitioners

    Clinical workspace dashboard with patient search, a consultation draft waiting to be continued, and recent patients
    The problem
    Consultations were tracked on paper, which made a patient's history hard to retrieve, hard to compare across visits, and impossible to reason about systematically when deciding on a remedy.
    What I built
    An app that carries a practitioner from intake to outcome: open a case for a patient, work through the consultation, and produce the resulting remedy set — with repertory and reference material alongside, and the whole history kept queryable for the next visit.
    • Consultations are drafts that survive interruption — a clinician can stop mid-case, see it waiting on the dashboard, and resume exactly where they left off
    • Autosaves continuously, so nothing is lost when a session is cut short by the next patient
    • Bilingual English and Bahasa Melayu throughout, switchable in place
    • Domain modelled first — patients, cases, findings and remedies as real types rather than loose JSON
    Solo — schema, API, UI, deployNext.jsReactTypeScriptHonoCloudflareNeon Postgres
  • 042026 (from a 2020 original)

    Quantum Hikmah Certificate Register

    Member and certificate management — an Excel system of mine, rebuilt as a web app

    Certificate register with member selector, template picker, batch generation and an inline PDF preview of a generated certificate
    The problem
    I originally built this as a spreadsheet during my freelance years — I designed the academy's crest, the certificate template and the issuing logic behind it. It worked, but a spreadsheet cannot be verified by a third party, cannot be shared safely, and needed manual work every time a certificate was reissued.
    What I built
    The same system rebuilt as a product: members and registrations in one register, certificates generated from those records against selectable templates, previewed as PDF in the browser, and issued singly or in batch. Same logic I designed in Excel, now with a schema, an API and an audit trail behind it.
    • Carried my own domain logic across a full platform migration — spreadsheet to Postgres — without losing the rules that made the original work
    • Batch generation: every outstanding certificate for a member rendered in one action, each tied to its registration number
    • The crest and certificate template are mine too, so generated output matches the academy's identity exactly
    • Bilingual interface, and role-gated so only admins can issue
    Solo — logic, brand, schema, API, UI, deployViteReactTypeScriptHonoCloudflareNeon Postgres
  • 052026

    adhamaa.github.io

    This site

    The problem
    A portfolio that loads slowly or says nothing concrete is worse than no portfolio at all.
    What I built
    A statically exported Next.js build with a typed content layer, dark-first design tokens and a ⌘K command palette. Ships zero client JavaScript on the pages that don't need any.
    • Fully static export — no server, no runtime cost, deployed by GitHub Actions on push
    • Content is edited through its own Git-based CMS, and every save has to pass lint, typecheck, build and a browser smoke suite before it deploys
    Read the case study
    Design + buildNext.jsTypeScriptTailwind CSSRadix UIGitHub Pages

More on github.com/adhamaa (opens in a new tab)

02

Experience

Five years of paid work, from freelance client builds to leading frontend architecture and writing the services behind it.

  1. Founder & Developer · AA Digital Works

    Sep 2026 — present

    Malaysia

    Run a one-person web and systems business that builds websites, landing pages and management systems for Malaysian businesses — and the platform the business itself runs on.

    • Scope, quote, build and launch client work directly: business websites, landing pages, and management, inventory and booking systems that replace spreadsheets and paper logs.
    • Built and operate the business's own platform — a back office that carries every client from first lead to quote, project and invoice, and a bilingual landing site that feeds leads straight into it.
    • Offer monthly support plans after launch, so each client has one person accountable for fixes, improvements and new features.
    • Hono
    • Cloudflare Workers
    • Drizzle
    • Neon Postgres
    • React
    • Vite
    • TanStack Query
    • Astro
    • Clerk
    • Novu
  2. Application Engineer / Full-Stack Engineer · Shinkels Technik Sdn Bhd

    Jul 2022 — Aug 2026

    Johor Bahru, Malaysia

    Led frontend architecture and wrote the services behind it, across several client-facing web applications.

    • Architected reusable React component libraries shared across multiple projects, cutting the time to stand up a new screen from days to hours.
    • Designed and shipped backend services in Node.js and Express — REST and GraphQL endpoints covering authentication, authorization and integration with both SQL and NoSQL stores.
    • Built Python Flask APIs for services better suited to the Python ecosystem, and kept their contracts consistent with the Node side.
    • Owned application state strategy (Redux, Context API, React Router) for maintainable single-page apps that stayed fast as they grew.
    • Translated UX wireframes into responsive, cross-browser interfaces that behaved consistently on desktop and mobile.
    • Ran CI/CD and release operations (Git, PM2, Docker, Linux) so deployments were routine rather than events.
    • Adopted AI pair-programming into the daily workflow without leaning on it — generated code was a first draft I read line by line, corrected to our standards and optimised before it ever reached review.
    • Set coding standards, led code reviews and mentored junior developers.
    • React
    • TypeScript
    • Next.js
    • Node.js
    • Express
    • GraphQL
    • Python
    • Flask
    • PostgreSQL
    • MongoDB
    • Docker
  3. Software Developer · Rhingle Sdn Bhd

    Jul 2021 — Jul 2022

    Kuala Lumpur, Malaysia

    Feature and maintenance work on production web applications inside a cross-functional team.

    • Diagnosed and fixed defects before release, reducing the number that reached production.
    • Refactored slow and brittle code paths, improving both runtime performance and the team's ability to change them.
    • Delivered features against tight deadlines alongside design and QA.
    • JavaScript
    • React
    • Node.js
    • SQL
    • Git
  4. Freelance Web Developer · Self-employed

    Sep 2019 — Dec 2021

    Batu Pahat, Malaysia

    Direct client work: design through build through launch, mostly for small businesses.

    • Designed and shipped marketing sites and storefronts end to end, from Figma and Adobe XD mockups to a live domain.
    • Built static sites with Gatsby and Jekyll, and content-managed sites on headless CMSs including Strapi, Netlify CMS and headless WordPress.
    • Set up e-commerce on Shopify and EasyStore, including theme work in Liquid.
    • Designed and built the original certificate issuing system for a training programme in Excel — logo, certificate template and the issuing logic — which I later rebuilt as the QHP web registry.
    • Handled the client relationship directly — scope, expectations, revisions and handover.
    • React
    • Gatsby
    • JavaScript
    • HTML
    • CSS
    • Shopify
    • Strapi
03

Stack

The tools behind the systems above — not a checklist of everything I have read the docs for.

Frontend

01

what users actually touch

  • ›TypeScript
  • ›React
  • ›Next.js
  • ›Vite
  • ›Tailwind CSS
  • ›Radix UI
  • ›Redux · Context

Backend

02

the services behind it

  • ›Node.js
  • ›Hono
  • ›Express
  • ›GraphQL
  • ›REST
  • ›Python
  • ›Flask
  • ›Django

Data

03

schemas and storage

  • ›PostgreSQL
  • ›Neon (serverless PG)
  • ›MongoDB
  • ›SQL
  • ›Zod
  • ›Schema design

Platform

04

how it ships and stays up

  • ›Cloudflare Workers
  • ›Docker
  • ›Linux
  • ›GitHub Actions
  • ›PM2
  • ›Git
  • ›AI pair programming
  • ›Postman
  • ›Figma
04

How I work

The habits behind the work, and what currently has my attention.

  1. 01

    I own the whole slice

    Schema, API, interface, deploy. Nothing gets thrown over a wall, and nothing waits on someone else's half of the feature.

  2. 02

    AI is a tool, not an author

    I pair with AI daily — it makes the first draft fast. Nothing ships unread: I review every line, refactor it to the standard the codebase already holds, and optimise what it got lazily right.

  3. 03

    Ship small, ship often

    Short-lived branches, reversible changes, and a deploy pipeline boring enough to trust on a Friday afternoon.

  4. 04

    Types are documentation

    If the compiler can catch it, a reviewer shouldn't have to. Model the domain first, wire the UI second.

  5. 05

    Built for the person using it

    Accounting clerks and clinicians don't read release notes. Semantic HTML, real focus states, fast pages on mid-range hardware.

  6. 06

    Measure before optimising

    Bundle budgets, real device timings and a profiler beat opinions about what feels slow.

Currently
  • Building on the edge — Hono on Cloudflare Workers with Neon Postgres.
  • Deepening Python API work: Flask services and data pipelines.
  • Contributing to open source, especially Islamic open source projects.
05Contact

Hiring, or need something built?

I'm open to full-time roles and contract work, remote or in Malaysia. Tell me what you're trying to ship and I'll tell you honestly whether I'm the right person for it — usually within a day.

What I can take off your plate
  • Internal tools, admin consoles and dashboards
  • Business platforms — accounting, HR, operations, CRM
  • REST & GraphQL API design, auth and role-based access
  • Edge deployment: Cloudflare Workers, serverless Postgres
  • Design-system frontends in React, Next.js and TypeScript
  • AI-assisted delivery — faster drafts, reviewed and hardened by hand
  • Taking an ambiguous brief to a shipped v1, solo