Open the interactive Windows XP portfolio · Download the PDF
Femi Lawal
Senior Fullstack AI/ML Engineer · React · Node.js · React Native · AI/LLM Systems
Lagos, Nigeria · lawalshalom@gmail.com · LinkedIn · GitHub · X @lawalshalom
Professional Summary
Medical doctor (MBBS, University of Ibadan) turned fullstack AI engineer, with 8 years of production experience across web, mobile and backend systems. Much of my best work sits where technology meets healthcare: an offline-capable EMR with on-device speech and language models for an occupational health clinic, an ECG interpretation platform, and a surgical tray auditor that won RAIN's internal hackathon. At PaleoHacks I own the funnel platform behind six direct-to-consumer brands. I ship LLM features that stream, run on a phone, or run on a clinic PC with no internet, and I am comfortable arguing for the smaller model when it does the job.
Technical Skills
Backend: Node.js, Express.js, NestJS, Python, FastAPI, REST APIs, GraphQL, WebSockets, Server-Sent Events (SSE), Prisma, pg-boss, Celery, JWT Auth
Frontend: React, Next.js, TypeScript, JavaScript, Tailwind CSS, Redux, Zustand, React Query (TanStack), Turborepo, Ant Design, Material UI
Mobile & Desktop: React Native, Expo, Expo Router, EAS Build, PWA (service workers, IndexedDB), Electron, electron-builder
AI / LLM: Anthropic Claude API, Google Gemini API, Claude Code agent workflows, whisper.cpp, llama.cpp (node-llama-cpp), grammar-constrained generation (GBNF), ONNX Runtime Web, PyTorch, HuggingFace Transformers, scikit-learn, XGBoost, ElevenLabs TTS
Databases: PostgreSQL (row-level security), Neon, Supabase, MongoDB, Redis, SQLAlchemy, Alembic, Expo SQLite, Dexie
DevOps & Cloud: Docker, GitHub Actions CI/CD, AWS (EC2, S3, Lambda, IAM), Cloudflare R2, Vercel, Netlify, Railway, Render, Sentry, Git
Testing: Playwright, Jest, Vitest, pytest, Cypress, React Testing Library, Test-Driven Development
Practices: Agile/Scrum, System Design, API Design, Multi-tenant SaaS, Code Review, WCAG Accessibility, Stripe / PayPal / Paystack / Sticky.io payments
Work Experience
Senior Fullstack AI Engineer, PaleoHacks (Remote Contract)
Jun 2026 to Present · Austin, TX
- Own the Next.js/Turborepo monorepo behind the sales funnels of six direct-to-consumer brands (PaleoHacks, Bright Naturals, Earth Echo Foods, Physio Omega and others) and moved 17 PaleoHacks funnels onto it on Vercel.
- Moved 15,669 images (3.35 GB) out of six app bundles onto Cloudflare R2, shrinking the shipped public folders from 3.36 GB to 6.9 MB with no route changes. Repointed 284 orphaned image references on exact-match evidence and left the rest in a reviewed queue rather than guess.
- Set up Claude-based agent workflows and repo skills that draft advertorial and offer pages from each brand's conventions, then check them against the live source at desktop and mobile widths with Playwright before a PR goes up.
- Built the abandoned-cart lead service (Node.js, Express, Postgres on Render) used by every funnel, and maintain the shared checkout package covering Stripe and PayPal payments, Sticky.io subscriptions, Attentive SMS and Everflow attribution.
- Wrote a Playwright capture pipeline that ports React-rendered Shopify Hydrogen pages into the brand's Liquid theme, keeps carousels and accordions working, rewires subscription checkout, and verifies each page against the live original at 1280 px and 390 px.
Fullstack AI Engineer, Integrated Occupational Health Services (Contract)
Aug 2026 to Present · Port Harcourt, Nigeria
- Built the clinic's EMR from schema to installer. Patients register, pass through nursing, the lab and radiology in any order, a doctor records a fitness-to-work decision, and Fit outcomes produce a QR-verifiable certificate. NestJS and Prisma on Postgres (Neon), a pg-boss worker, an Electron desktop client and a Next.js web client.
- Designed the multi-tenant model so the clinic can onboard other clinics. A Prisma extension injects the clinic id into every query and Postgres row-level security enforces it again, so the API refuses to start on any connection that bypasses RLS.
- Made the clinical day work offline. Repeat readings are append-only observation rows, so the desktop app queues writes locally and syncs without conflicts when the connection returns.
- Built an on-device doctor's assistant where whisper.cpp transcribes Nigerian-accented consultations live. A 0.6B Qwen3 model, run through node-llama-cpp with GBNF grammars generated from the app's Zod schemas, drafts the note fields. Audio lives in a memory ring buffer and never touches disk. The fitness suggestion is rules-first, and the doctor keeps every decision.
- Kept the whole AI runtime under 500 MB of installer growth, with transcription running at 0.13x real time on a laptop CPU, and shipped the Windows build backed by 391 desktop tests plus lint and typecheck in CI.
Senior AI/ML Engineer, Robotics & Artificial Intelligence Nigeria (RAIN) (Contract, Hybrid)
Jan 2026 to Present · Nigeria
- Build custom AI/ML models that remove redundant work in medical settings; four healthcare projects since joining the program.
- Built the Surgical Tray Auditor, which won RAIN's internal hackathon: a fine-tuned MobileNetV3 running as ONNX in the browser, trained on 500+ photos of surgical instruments, 91% F1, about 4 ms per item, no internet needed.
Senior Frontend Engineer, Thrive Market (Full-time, Remote)
Aug 2022 to Mar 2026 · Los Angeles, CA
- Led development of responsive web applications in React and TypeScript with Redux and Next.js for an e-commerce platform serving millions of customers.
- Ran the migration of the full test suite from Cypress to Playwright, raising test coverage by 20% and deployment speed by 16%.
- Brought the platform to WCAG 2.1 AA compliance, which widened reach and lifted SEO on the main product pages.
- Resolved production issues that lifted site performance and UX metrics by 23% and contributed to a 5% rise in client referrals.
- Reviewed code and mentored junior engineers, which shortened onboarding. Named Thriver of the Week for engineering quality and cross-team work.
Lead Frontend Developer, Betty Bingo
Sep 2020 to Apr 2022 · Accra, Ghana
- Led a team of frontend engineers through a rebuild of the company platform; the upgraded application improved the user experience and increased revenue within 3 months.
- Turned client and design requirements into fast, usable interfaces, with over 95% customer satisfaction across assigned projects.
- Integrated AWS services and analytics tooling, and owned the lifecycle from requirements through QA to production.
Lead Fullstack Developer, Loystar Inc.
Apr 2018 to Jun 2020 · Lagos, Nigeria
- Owned Loystar's core SaaS platform end to end, from architecture through deployment and maintenance.
- Built the Node.js and Express APIs on MongoDB and cut API latency by 40% through query optimisation and connection pooling.
- Shipped the React and TypeScript frontend with Redux-Saga and Ant Design at a Lighthouse performance score of 90. Automated the build and release pipeline in CI/CD, with zero post-deployment defects across multiple releases.
Featured AI Projects (Production)
CardioAI, AI-powered ECG interpretation platform · cardioai.fit
Stack: Node.js · Express.js · TypeScript · Supabase (PostgreSQL) · Anthropic Claude API · Google Gemini API · SSE · JWT · Stripe · React Native · Expo · EAS Build
- Founded and built a cardiac diagnostic platform that reads 12-lead ECG images in real time for licensed healthcare professionals.
- Routes each case by complexity, Claude Haiku for standard reads and Claude Sonnet for critical findings, and streams structured output over Server-Sent Events. A contradiction checker rejects inconsistent reports before they reach the clinician.
- Accepts scanned ECG files through Tesseract.js OCR and Sharp, behind JWT auth, Supabase row-level security, rate limiting and Stripe subscriptions.
Surgical Tray Auditor, On-device instrument count check · surgical-tray.netlify.app
Stack: Next.js · PWA · ONNX Runtime Web · MobileNetV3 · PyTorch · OpenCV (ArUco) · Dexie / IndexedDB · Python · Netlify
- Photograph a tray before and after a procedure and get told what did not come back, so nothing is left inside the patient. Runs in the browser, offline, as an installable PWA. Won RAIN's internal hackathon; built with a team of three in 48 hours as an aid to the manual count, not a replacement for it.
- Fine-tuned a MobileNetV3 classifier in PyTorch on 500+ photos of instruments on a green drape (91% F1 in the confusion matrix) and exported it to ONNX for in-browser inference at about 4 ms per item, with a shared JSON contract so the Python training crops and the TypeScript inference crops go through the same vision parameters.
ScriptureLoop, AI scripture audio app · scripture-loop.com
Stack: React Native · Expo 54 · TypeScript · Expo Router · Supabase · ElevenLabs TTS · Expo AV · Expo SQLite · Paystack · EAS Build · PWA
- Built and launched a cross-platform (iOS, Android, Web/PWA) Bible listening app with AI-generated voice audio from ElevenLabs, published to the App Store and Google Play through Expo EAS.
- Offline-first, with Expo SQLite for local caching and Supabase Postgres under row-level security, plus background playback, reading plans and Paystack subscriptions.
Education
- Bachelor of Medicine, Bachelor of Surgery (MBBS), University of Ibadan (2014 to 2021)
Certifications
- AI/Machine Learning Certification, with a focus on LLM integration, Robotics & Artificial Intelligence Nigeria (RAIN) (2026)
- AWS Certified Cloud Practitioner, Amazon Web Services (2026)
- Legacy Full Stack, freeCodeCamp (Jun 2020)
- JavaScript, TestDome (Aug 2020)
- HTML/CSS, TestDome (Sep 2020)
- React, TestDome (Sep 2020)