Senior Android & Kotlin Multiplatform engineer · Stockholm, Sweden
github/jacksonfdam · github/jacksonmafra-umain · linkedin · medium · about.me
I'm Jackson Mafra, a Brazilian software engineer living in Stockholm, Sweden, with 25+ years of code behind me. Today I'm a Senior Android developer at Umain, where I work on the McDonald's global app with Kotlin, Jetpack Compose and Kotlin Multiplatform. Before going native mobile I spent years in back-end PHP and JavaScript/Node, and I still enjoy crossing stacks — from Swift on the server to Go and TypeScript.
I have a long-running obsession with mobile security: I build intentionally vulnerable apps, static-analysis tooling and attacker/defender demos, and I speak about Android and KMP at conferences and meetups (mDevCamp Prague, CocoaHeads Stockholm). I write regularly on Medium and LinkedIn about Android internals, Kotlin Multiplatform and security, and I mentor developers moving into mobile and QA. Off the keyboard, I'm a gamer and geek.
Unified Mobile Threat Analysis Platform. Orchestrates jadx, apktool and friends into one static-analysis pipeline — every head sees a different angle.
Python, Android, Security — repo · live demo
One flash-sale ticketing system implemented in seven backend frameworks, served by a single frontend that has no idea which backend is answering. A teaching lab, not a product.
TypeScript, Go, Python, PHP, OpenAPI — repo · live demo
A modern Android security showcase built as a working fintech app ("Fortress Bank") with a dual defender/attacker perspective.
Kotlin, Compose, Security — repo · live demo
A real Kotlin Multiplatform SDK — REST + WebSocket client for Stockholm public transport — shipping to Android, iOS, JVM, Node and the browser from one source tree. The companion project to my mDevCamp Prague talk.
Kotlin Multiplatform, Ktor, Wasm — repo · live demo
Turns any exported PDF (Keynote, PowerPoint, Canva, Figma) into a flawless fullscreen presentation, with a local-first WebSocket remote control.
Kotlin, Compose Multiplatform — repo
A seven-week, codelab-style course that takes a returning developer from rusty JavaScript to job-ready QA engineering — ISTQB, Cypress, Postman and GitHub Actions.
TypeScript, QA, Education — repo · live demo
| Project | Description | Links |
|---|---|---|
sork TypeScript |
A vole-rescue puzzle game set in Stockholm. Guide a crowd of sorkar, small, round Swedish voles in knitted hats, from the entry hatch to the exit by assigning skills that reshape the terrain. | repo · live |
uBomber TypeScript |
An open-source Bomberman-style arcade game set in Stockholm. | repo · live |
UmainLauncher Kotlin |
A minimal, working Android home launcher built with Kotlin + Jetpack Compose, inspired by NoLagLauncher | repo |
RansonKit Kotlin |
RansomKit is an educational, multi-module Android project designed for security research, threat modeling, and defensive engineering seminars. | repo |
TicketingLabs TypeScript |
One flash-sale ticketing system, implemented in seven backend frameworks, served by a single frontend that has no idea which backend is answering. It is a teaching lab, not a product. | repo · live |
AnimatedPet Kotlin |
A floating, draggable sprite-sheet pet that lives on top of your home screen and other apps. Tap the pet to open the app; drag it to move it around. | repo |
GreenPath TypeScript |
A seven week, codelab style course that takes a returning developer from a rusty grasp of JavaScript up to a junior QA level, with a bias toward JavaScript based test automation. | repo · live |
medusa-nexus Python |
Unified Mobile Threat Analysis Platform. Every head sees a different angle. | repo · live |
mahjong Kotlin |
A privacy-first HTTP capture viewer.You drag in a capture, it shows you the requests and responses, and then it forgets the whole thing. No proxy, no interception, no saving. It reads files. That i… | repo |
Sift HTML |
A privacy-first HTTP capture viewer.You drag in a capture, it shows you the requests and responses, and then it forgets the whole thing. No proxy, no interception, no saving. It reads files. | repo · live |
SavedFlow JavaScript |
A browser extension that turns Instagram's single, undifferentiated pile of saved posts into collections, with save dates, search, multi-select and drag and drop. Instagram has had a Saved button for years. | repo · live |
aware Kotlin |
Aware is a Compose Multiplatform demo (Android + iOS) that showcases the KSensor library by framing each sensor and device state around the everyday product feature it powers — not around the raw reading. | repo |
johnny-castaway-compose Kotlin |
from-scratch re-implementation of the classic Johnny Castaway screensaver (Dynamix / Sierra On-Line, 1992 — Windows 3.x, DGDS engine) as a native macOS .saver, written in Kotlin Multiplatform. |
repo |
Beam Kotlin |
Beam turns any exported PDF (Keynote, PowerPoint, Canva, Figma) into a flawless fullscreen presentation, controlled from a phone.Local-first. | repo |
StockholmTransport Kotlin |
A KMP library is an SDK with multiple front doors. The same Kotlin code — networking, models, lifecycle — running on Android, iOS, a Node server, and live in the browser. No rewrite. | repo · live |
agentic-gitutils Python |
Small collection of custom git subcommands that emit JSON, making git output greppable, pipeable, and agent-friendly. | repo |
UmainIO2026 Kotlin |
The Android Show (Developers' Cut 2026) WcDonald's demo | repo |
UmainFortress Kotlin |
A modern Android security showcase, built as a working fintech app ("Fortress Bank") with a dual narrative running through every topic: the 🛡️ Defender's implementation alongside the ⚔️ Attacker's tactics. | repo · live |
biblion HTML |
Biblion is a modern, browser-based ebook reader designed for PDF and ePub files. It features a clean, focused reading experience with offline persistence, theme support, and text-to-speech capabilities. | repo · live |
hackdroid Kotlin |
An intentionally vulnerable Android app for security presentations. | repo |
DroidGuard JavaScript |
DroidGuard Quest is a free, study-only single-page app that turns Android security knowledge into a Duolingo-style journey. | repo · live |
OmniQuest JavaScript |
Aprenda jogando. Bilíngue PT/SV. | repo · live |
UChess Kotlin |
An Android chess app built with Kotlin and Jetpack Compose. | repo |
UmainPos Kotlin |
A Jetpack Compose demo app that reproduces the Sentry Smart Home UI. | repo |
SentrySmartHome Kotlin |
A Jetpack Compose demo app that reproduces the Sentry Smart Home UI. | repo |
GhostTouch Kotlin |
Educational Security Demo — This project demonstrates how Android overlay attacks work and how production apps can defend against them. | repo |
OmnisMytho Kotlin |
A mythology encyclopedia app showcasing modern Android/KMP development — gods, demons, angels, spirits and creatures from six mythological traditions, rendered in the style of an ancient grimoire. | repo |
filmstaden Kotlin |
Filmstaden app as a personal showcase | repo |
CoffeeOrder Kotlin |
A premium Android application showcasing advanced Jetpack Compose UI techniques, spatial animations, and high-performance custom graphics. | repo |
SeatMap Kotlin |
Seat Map feature allows users to view and interact with seat layouts, such as for flight or event bookings, showcasing a modern and responsive user interface. | repo |
Parallax Kotlin |
Parallax Example | repo |
clock-calendar Kotlin |
ClockCalendar is a visually immersive 3D Clock and Calendar Android application built with Jetpack Compose. | repo |
SkyPulse Python |
SkyPulse is a hacker-style Bash + Python CLI tool that searches for flight deals, syncs multiple sources, and monitors prices all directly from your terminal. | repo |
cocoaheads-hummingbird Swift |
A production-style performance comparison of Swift (Hummingbird), Kotlin (Ktor), and JavaScript (Express) — presented at CocoaHeads Stockholm. | repo |
Visualizations Kotlin |
A modern Windows Media Player–style visualizer built with Jetpack Compose. Includes bars, waves, alchemy bubbles, battery pulses, color modes, fullscreen animation, and a retro WMP-inspired UI. | repo |
cyberpunk-hackers-toolkit Kotlin |
This project is a native Android implementation of a futuristic, cyberpunk hacker's toolkit interface. | repo |
UAuthenticator Kotlin |
A fully functional, production-ready Google Authenticator clone built with the latest Android technologies. | repo |
ouija Kotlin |
A spooky, animated Ouija board built entirely with Jetpack Compose for Android, inspired by a fantastic web project. | repo |
CreditCardDemo Kotlin |
This project is a fully functional and animated credit card form UI built entirely with Jetpack Compose, Android's modern UI toolkit. | repo |
stockholm-transport-simulator JavaScript |
FULL v0, Cursor, Manus, Same.dev, Lovable, Devin, Replit Agent, Windsurf Agent, VSCode Agent, Dia Browser & Trae AI (And other Open Sourced) System Prompts, Tools & AI Models. | repo |
androidx-cataloger JavaScript |
This tool helps Android developers easily manage dependencies by providing up-to-date information about AndroidX libraries, their versions, and artifacts. | repo |
hianime-mal-sync Shell |
A set of scripts to sync your anime list with MyAnimeList (MAL) from HiAnime effortlessly! Whether you want to update your MAL watch status from a JSON file or generate an XML file for import, these scripts… | repo |
- Three Signals and a Very Literal Intern (Medium) — 2026-07-31
Wiring an AI subagent to a real Android device with two MCP servers, ADB, logcat and an HTTP proxy — and making it admit what it could not do. - How to build an Android launcher from scratch (with Kotlin & Jetpack Compose) (Medium) — 2026-07-29
Most tutorials build an app. This one builds the app that launches every other app — a home launcher. - Android Ransomware: When Storage Access Meets Disaster (Medium) — 2026-07-24
The Android permission model is broken in ways that are not just a joke — a storage-access deep dive. - One flash sale, seven backends, three phones, one contract (Medium) — 2026-07-18
The story behind TicketingLabs — practice, not a product, and not a flex. - Shift-left mobile security — block bad commits with one YAML (Medium) — 2026-07-02
Bugs caught early are cheap, bugs caught late are expensive. The CI recipe. - Five small bugs, one critical chain — anatomy of a 1-click account takeover (Medium) — 2026-07-02
The most consequential finding in a mobile audit is rarely a single bug. It's a sequence. - Your KMP library is only as protected as its weakest target (Medium) — 2026-06-13
You write one thing, but you defend N. And the attacker knows it. - Five tools, one truth. How MedusaNexus orchestrates static analysis (Medium) — 2026-06-12
From a folder of standalone tools — jadx-gui, apktool — to one orchestrated pipeline. - Taming the Web with Kotlin Multiplatform — how I actually built it (Medium) — 2026-06-05
The article version of my mDevCamp Prague talk: one KMP source tree shipping to Android, iOS, JVM, Node and the browser. - Hummingbird: Swift on the Server (Medium) — 2026-02-28
The same TODO API in Swift (Hummingbird), Kotlin (Ktor) and Node (Express), one million Postgres rows, k6 — and the numbers speak. - Previewing Your KMP-Driven Compose UI Without Losing Your Mind (Medium) — 2025-11-07
If your Compose previews are broken, the problem is not the tool — it's the architecture. A disciplined KMP workflow. - Beyond the Grind: 4 Core Truths About Code I Wish I Knew Sooner (Medium) — 2025-10-15
Bridging the divide between daily development and the theoretical landscape of technical interviews. - Articles and posts on LinkedIn (LinkedIn)
Long-form posts on Compose APIs, Android library bundling (Fat AAR → Fused Library Plugin) and mobile engineering practice.





