Biography β Ahsan Mahmood, eight years and six roles
The longer story: where it started in January 2018, the six roles since, the pattern I settled on, the constraint I work under, and what I deliberately do not claim.
The constraint I work under
A product should cost nothing to run. Free-tier Firebase or Supabase, work done in the browser wherever the browser can do it, Cloudflare Workers or Laravel where a server is genuinely required, and no paid service sitting in the critical path.
This started as a necessity and turned into a design tool. A constraint that hard forces the question does this feature need a server at all? β and the answer is no far more often than the industryβs defaults suggest. It is also the only reason one person can keep more than twenty products alive simultaneously without a bill that grows faster than the products do.
Where it needs file storage or transactional email, that is FilesHub β a platform I built and operate, precisely so the free-tier rule did not have to bend the first time an app needed to send a password reset.
It rules things out, which is the point. A constraint that never costs you anything was not a constraint.
- Flutter & Dart β The Complete Guide
- Udemy (Academind)
- Unity Game Tutorial: Board Game β Ludo 3D
- Udemy
Four of the five are game development, which is not what I do for a living. They are here because they are true, not because they are relevant.
- React Native β The Practical Guide
- Complete C# Unity Game Developer 2D
- Udemy (GameDev.tv)
- Complete C# Unity Game Developer 3D
- BSc Software Engineering
- Virtual University of Pakistan
- FSc Pre-Engineering
- Govt. Shalimar Graduate College, Lahore
- Matriculation in Science
- Govt. Comprehensive Higher Secondary School
Elsewhere
The same person, in the places where the work actually lives. I check these links on a weekly cadence, because profile links rot silently β one of mine was dead for months and nobody noticed, including me.
At a glance
Eight years, six roles, and one pattern that stuck.
The short version is on the about page. This is the long one β where it started, what each role was actually for, the pattern I settled on, and the things I deliberately do not claim.
The evidence for it is on the projects page, the full record is in the CV, and if you would rather skip both and just describe your problem, that works too.
That's the story
No client count and no testimonial averages that are not computed from testimonials you can read on this site yourself.
No download or install counts, anywhere on this site. They fluctuate, nobody can verify them, and the number is never the interesting part.
What I do not claim
No iOS. There is no Apple Developer account and there never has been. Nothing I have built has shipped to the App Store.
An earlier version of this page said I had deployed to the Apple App Store, that a browser extension of mine had thousands of users, and that I was an expert in several things. None of those were checkable and one of them was simply false.
None of that makes the record smaller. It makes it checkable, which is worth more β and every figure on this site can be traced back to a probe, a payslip or a public registry.
No skill percentages. The skills page gives a level and a year, because "React 95%" is a decimal place invented to look precise.
No MongoDB or GraphQL in new work. Both are on my CV, both are real, and both belong to the Perkforce years.
What it cost
Breadth, honestly. I am a generalist by construction: I know enough of a database, a build system, a store review process and an accessibility tree to ship, and I am not the deepest person in the room on any single one of them. On a team I am most useful owning a vertical slice end to end rather than a horizontal layer across everything.
The pattern I settled on
Somewhere in the Zaions years I stopped starting from scratch. The shape that stuck is a single React and TypeScript codebase that becomes three products: a web app, an Android app packaged with Capacitor, and a Manifest V3 browser extension. One repository, one set of tests, three store listings.
The argument for it is unglamorous. A fix lands on every surface at once, a feature cannot be quietly missing from the platform nobody opened this week, and β the part that actually decides it β one person can hold the whole thing in their head. Three codebases need three people or a lot of forgetting.
The Perkforce years ran alongside that: four years of SaaS delivery across web and mobile, the Slack app, the Microsoft Teams app, and enough code review and delivery coordination to know which arguments about architecture are worth having.
What I publish
native-update β over-the-air web-bundle updates for Capacitor apps, with checksum and signature verification and automatic rollback when a bundle fails to boot.
The work is also registered on ORCID, which is where the citable record of it lives:
Twenty-five packages on npm under the aoneahsan maintainer, four of them open source. Two are worth naming because they are the ones I would defend in a code review:
Alongside those, twenty-three products are live across the web, Google Play and the Chrome, Firefox and Edge extension stores, and sixteen documentation sites exist because a package nobody can work out how to install is a package nobody uses.
strata-storage β one storage API spanning localStorage, IndexedDB, cookies, SQLite, Keychain and the filesystem, so a call is correct on web and on native without the caller knowing which it is.
Last reconciled against the source record on 1 August 2026. Two of the figures on this page are re-probed before every deploy.
The six roles, and what each was for
Building and maintaining his own products full time β 23 live across the web, Google Play and the Chrome, Firefox and Edge extension stores.
25 packages published to npm, four of them open source.
- Available for client projects and contracts.
- Mar 2026 β Present
Open Source & Community Projects Developer
Pixel-perfect UIs for multiple web projects in HTML5, CSS3 and JavaScript, aligned to design specs.
Consistent delivery in a fast-paced environment.
Frontend Developer | UI Developer
Developed and maintained custom WordPress themes and plugins.
Advanced custom fields and custom theme development for various clients.
WordPress Developer | Custom Theme Developer
Five companies and then my own. Two of them overlap in what they taught me and I have not padded them out to look like six distinct chapters.
Owned delivery of Perkforce SaaS features across web and mobile β React, Node.js, TypeScript, Apollo GraphQL client and server.
Cross-platform mobile through Capacitor, with production store releases.
Built the Slack app and the Microsoft Teams app integrations.
Led implementation planning, code review and delivery coordination as team and project lead.
Senior MERN Stack Developer (Remote)
Delivered a custom management system in Laravel and Angular for educational content and user management.
Improved performance and reliability by optimising Angular workflows and adding PWA capabilities.
Pixel-perfect responsive UI in HTML5, CSS3 and JavaScript.
Web App Developer | Laravel | Angular
Delivered multiple full-stack client products β React, Angular, Node.js, Laravel, TypeScript-first.
Built native and hybrid mobile apps on Node.js/Express with MongoDB and MySQL backends.
Shipped a production Manifest V3 browser extension for Udemy playback controls.
Owned end-to-end execution: requirements, architecture, implementation, deployment.
Team Lead | SaaS App Developer (MERN/MEAN)
Where this started
January 2018, as a frontend developer at NetRoots Technologies in Lahore, building pixel-accurate interfaces from design specs. It was a junior job and it was a real one β which matters, because the version of this story I used to tell said 2018 was when I was learning HTML and CSS as a hobby. That was flattering and it was wrong. The first line on the timeline below is a payslip, not a tutorial.
What followed was four months of WordPress themes, then a year and a half at PNY Trainings on a Laravel and Angular management system, which is where I learned that most of the difficulty in software is not the framework. It is the part where somebody has to keep using the thing after you have finished being interested in it.
- Course completions
- Education
What I studied, and what I didnβt
The distinction matters and most portfolios blur it. The first list is education. The second is course completions β they are certificates of having finished a video series, not accreditations, and calling them anything grander would be the same kind of inflation as a fabricated client count.
The longer version
On this page
Every date and role below is read from the same record the CV is built from, so the two cannot drift apart.
One React and TypeScript codebase becomes a web app, an Android app and a browser extension. Twenty-three of them are live right now. Based in Lahore, Pakistan β working with clients worldwide.
Full-stack developer. I ship products, not prototypes.
- Full-stack software developer
- Lahore, Pakistan
https://aoneahsan.com/bio