SKIP TO CONTENT

ROUGH IDEAS INTO WORKING SOFTWARE

I'm Abdullah, a product engineer. Most of my work lives in the gap between what a product should be and what it takes to ship it: direction, architecture, and the follow-through to get both into production.

Lately that means AI products, developer tools, and the web platforms behind them. I care less about clever tech than about software that holds up: users understand it, and the team can keep building on it.

Some products need their first working version. Others need someone to untangle what's already there. Either way, I start from the real constraints and ship in small steps you can see.

void main() {
    vec4 pos = texture2D(uPositions, vUv);
    vec4 info = texture2D(uInfo, vUv);
    vec2 mouse = uMouse;
    float radius = length(pos.xy) * 1.0;
    float circularForce = 1. - smoothstep(
        0.3,
        1.4,
        pos.x - radius
    );
    float angle = atan(pos.y, pos.x)
        - info.y * 0.3 * mix(0.5, 1., circularForce);
    float targetRadius = mix(
        info.x,
        1.0,
        0.5 + 0.45 * sin(angle * 2. + uTime * 0.6)
    );
    radius += (targetRadius - radius)
        * mix(0.2, 0.5, circularForce);
    vec3 targetPos = vec3(
        cos(angle),
        sin(angle),
        0.0
    ) * radius;
    pos.xy += (targetPos.xy - pos.xy)
        * 0.01
        * uMotionSpeed
        * uFrameScale;
    pos.xy += curl(
        pos.xyz * 4.,
        uTime * 0.1,
        0.1
    ).xy * 0.0005 * uMotionSpeed * uFrameScale;
    float distToMouse = length(pos.xy - mouse);
    vec2 dir = normalize(pos.xy - mouse);
    if (uMouseClicked) {
        float influence = smoothstep(
            0.5,
            0.0,
            distToMouse
        );
        vec2 tangent = vec2(-dir.y, dir.x);
        float spin = info.y * 2.0;
        pos.xy += tangent * 0.005 * spin * influence * uFrameScale;
        pos.xy -= dir * 0.001 * influence * uFrameScale;
    } else {
        pos.xy += dir * 0.01 * uFrameScale * smoothstep(
            0.5,
            0.0,
            distToMouse
        );
    }
    gl_FragColor = vec4(pos.xy, 1.0, 1.0);
}

EXPERIENCE

Titles only tell you so much. What matters is what got faster, clearer, or possible at each place.

PRODUCT ENGINEER / STARISE

2026—NOW · DOHA, QATAR

I ship customer-facing features across TanStack Start, Next.js, Django, and Azure, and help set technical direction along the way.

  • Own features from the first product conversation to production
  • Make the architecture calls across frontend and service boundaries

LEAD AI/UI ENGINEER / TENN.AI

2024—2025 · REMOTE

Led product engineering for an AI workflow product. Most of the job was making a complex tool feel fast and behave predictably.

  • Made the interface feel 4x faster to users
  • Set technical direction across product cycles
  • Presented the product at Web Summit Doha

FOUNDING ENGINEER / GRADEKICK

2024—NOW · EDMONTON, CANADA

Took an education product from nothing to production: the app itself, the AI orchestration behind it, and the cloud infrastructure under it.

  • Designed the core application and model-orchestration architecture
  • Set up Azure Kubernetes deployment and release paths

SOFTWARE DEVELOPMENT INTERN / DIBSY

2023 · DOHA, QATAR

Worked on analytics and data processing for high-volume financial workflows.

  • Cut a reporting workflow from 72 hours to under two minutes
  • Sped up a 15,000-record daily pipeline by 12%

SELECTED WORK

A few projects I keep coming back to. Each one shipped, and each one moved a number that mattered.

NEXUSIX / MOBILE PRODUCT / 2024

A commissioned social app that maps your connections as an interactive bubble field. I built it end to end, from the first sketch to the delivered product.

  • Cross-platform MVP for iOS and Android
  • Product architecture and interaction implementation
  • Express, Supabase, and PostgreSQL backend foundation
Role
End-to-end
Platform
iOS / Android
Status
Delivered

SFM–MVS / VISION RESEARCH / 2025

Research into making 3D reconstruction from photos faster and cleaner: a custom BRISK–SIFT feature extractor, CUDA acceleration, and better outlier removal.

  • 2.3x faster feature extraction
  • 29% more high-quality keypoints
  • 40% less point-cloud noise

SOURCERESEARCH REPORT

CAPABILITIES

The stack changes with the problem. These are the areas I keep coming back to.

  • Product engineering: direction, architecture, delivery
  • AI systems: orchestration, retrieval, model workflows
  • Platforms: Next.js, Python, PostgreSQL, cloud infrastructure
  • Visual computing: OpenCV, CUDA, Three.js, WebGL
Product
Shape + ship
AI systems
Orchestrate + eval
Platform
Build + operate
Visual computing
Model + render

CONTACT

If you're shaping a hard product, or you have a system that's outgrown its design, I'd like to hear about it. Send me the constraints.

Based between Doha and Edmonton.