I started on a sales floor, not in a lecture hall. I learned to code because my customers deserved better than what I could sell them. Everything since has been an extension of that.
ABDULLAH.JPG
Best ideas arrive somewhere with no Wi-Fi.
In 2022 I was a sales guy at Uniformers with amateur tech experience and a drive to close deals. I was good at the talking part. What bothered me was everything that happened after the handshake — the clunky forms, the dead links, the websites that made good businesses look careless.
So I stopped complaining and opened a text editor. HTML, then CSS, then JavaScript, learned on the fly between calls because I wanted to give my customers a better experience than the one I was selling them.
That's still the shape of how I work: I don't learn a technology because it's trending. I learn it because something in front of me is broken and that's what fixes it.
A degree in Computer Science at Bath Spa University gave that instinct a backbone — algorithms, databases, machine learning, the reasons things work rather than just the fact that they do. Now I take projects end to end: the design, the backend, the deploy, and the client conversation in between.
/// OPINIONS, HELD LOOSELY BUT HELD
Every site looks like every other site. Same hero, same three cards, same rounded corners. I'd rather build something a person remembers the next morning than something that scores well on a template checklist.
A live site earning a business money is worth more than a flawless one still in a branch. Ship it, watch real people use it, then fix what actually broke instead of what you imagined would.
Nobody hires a developer because they want more code in the world. They want more customers, less admin, fewer mistakes. Sales taught me to ask what the actual problem is before quoting a solution.
I've never finished a tutorial and felt like I knew anything. I learned computer vision by making a turret track my face, and machine learning by trying to predict strokes. Build the thing badly, then find out why.
A React component, a servo motor, a sales funnel and a person deciding whether to trust you are the same kind of problem wearing different clothes. Inputs, state, feedback. Once you see that, moving between web, hardware and AI stops feeling like switching careers.
Unlimited budget and unlimited time produce mush. A bakery with no budget, a deadline in nine days and one phone to test on forces you to decide what actually matters. Most of my best work came out of a corner I had to think my way out of.
It makes the boring parts cheap, which means taste and judgement are worth more than they were, not less. I use it heavily and trust it narrowly. Knowing why the answer is right is still the whole job.
/// IDEA → DESIGN → BUILD → SHIP
Before a single line: who is this for, what do they need to do, and what happens to the business if they can't? Half the features people ask for disappear at this stage.
Layout and flow first, in something we can both look at and argue about. Cheap to change now, expensive to change once it's built.
The path that makes money gets built and working end to end before anything decorative. Everything else is polish layered onto something that already runs.
Live, on a real domain, tested on a real phone. Then I watch what people actually do with it, which is never quite what anyone predicted, and iterate from there.
/// THE PART THAT MAKES THE OTHER PART WORK
Hiking, mountains, anywhere the signal drops. I solve more problems walking up a ridge with no laptop than I do staring at the bug. It's the only reliable debugger I've found for my own head.
I play them and I make them. Dragons & Knights in Unity and Hallways, a branching horror piece in Twine, both started as "I wonder if I could" on a weekend. Game design is the fastest teacher of feedback loops and pacing I know.
Headphones on is the default state. There's a direct relationship between what's playing and what gets built — one album for wiring up a backend, something entirely different for pushing pixels around at 2am.
Arduino boards, servos, 3D-printed parts and things that move when they're told to. The face-tracking turret exists purely because software that stays on a screen eventually gets boring.
Enough about how I think. Here's what I've actually built.
SEE THE WORK