Henrik Bolte Portfolio
Co-founder and lead mobile engineer of a Thailand-based app studio. The page sells services, a product framework, one shipped land-analysis app (DOODIN), and five named client testimonials — a portfolio written for buyers, not recruiters.
Location
Unlisted — probably wherever the wifi is strongest.
Skills
What makes it work
A breakdown of the choices that make this portfolio stand out.
Agency founder framing vs. contractor framing
Presenting as a founder who built an agency reframes the entire value proposition. It signals business ownership, client management, and team leadership — a very different signal from "available for hire as a mobile developer."
Client testimonials with names and companies
Instead of a logo wall, the page quotes five clients by name, several with their company (collectorbase Inc., SamePageSports LLC, Donald Service AB). One testimonial describes a concrete job: turning an existing Angular + Capacitor codebase into a working Android app. Named, specific feedback is more checkable than an unattributed logo strip.
Platform breadth as versatility signal
Listing iOS, Android, web, and backend development alongside cross-platform delivery and app-store release support shows range across the whole stack. For companies with heterogeneous mobile requirements, this breadth signals that the engineer can advise on platform strategy rather than just execute within a chosen stack.
What Mobile Developers can take from this
Specific, actionable tips to apply to your own portfolio — no generic advice.
Show platform breadth: native iOS, native Android, and at least one cross-platform framework. Companies want to know your platform strategy opinion.
Document architecture decisions: why React Native over Flutter for this client, why native was right for that one. Decision rationale is the senior-level signal.
If you have enterprise clients, name them when possible. Recognisable logos carry more weight than project descriptions regardless of how well-written.
App Store reviews, download counts, and retention metrics are portfolio gold. Even a 4.2-star app with 10k downloads proves product delivery.
Include at least one example of a performance challenge solved: launch time optimization, memory management, or battery usage — these are universal mobile concerns.
Projects
Where most developers show a grid of side projects, this page shows one shipped app and five client testimonials. Henrik Bolte presents DOODIN, a land-analysis app, on its outcome figures and lets named clients vouch for the rest — a portfolio written for buyers, not recruiters.
DOODIN — Smart Land Analysis & Visualization
hbolte.com presents DOODIN as a mobile app for land analysis, visualization, and sharing. Users draw plots, measure land, and read terrain data on an interactive map, aimed at landowners, buyers, and professionals. The live product at doodin.app, operated by Henrik Bolte Co., Ltd. for the Thai market, adds more features. Owners and brokers can photograph a title deed so the app draws the plot boundary, or draw it on the map themselves. Each plot gets slope and elevation estimates and a shareable one-link listing page. Brokers also get client-specific shared lists, lead and viewing tracking, and in-app chat, all on web and mobile under one account.
An agency that runs its own product in production, not just client work, shows it can own architecture, maps and geospatial data, document scanning, and a two-sided workflow for sellers and buyers. The title-deed scan that generates a boundary is a concrete, non-trivial feature to discuss in an interview.
Scan-a-title-deed-to-boundary flow turns a paper document into map geometry
Terrain data (slope, elevation difference, orientation) computed from the plot boundary and labelled as estimates, not surveys
Buyer-facing pages open from a shared link with no app download or sign-up
One account across web and mobile, with a broker workspace for listings, leads, and chat
A Capacitor plugin that uploads large files natively using the tus resumable upload protocol. The README's stated problem: pushing big files through the Capacitor bridge from native to the webview causes performance and out-of-memory issues, so the plugin keeps the whole upload on the native layer. It supports concurrent uploads, pause/resume/abort, progress and success listeners, and configurable endpoints, headers, metadata and chunk sizes.
It solves a real cross-platform limit (bridge memory on large uploads) by dropping into native code on both platforms, then ships it as a typed, versioned package. That is the gap between building hybrid apps and understanding what happens under them.
Uploads run natively, bypassing the Capacitor bridge to avoid OOM on large files
Resumable after network failures; pause, resume, abort and concurrent uploads
Android + iOS implementations, example app, npm release pipeline
More Mobile Developer portfolios
Ready to build your portfolio?
Follow the Mobile Developer roadmap — skills, projects, and timeline to get hired.