Skip to content
View thomasfranke's full-sized avatar

Block or report thomasfranke

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
thomasfranke/readme.md

Thomas Franke

Senior Mobile Engineer · Flutter & native iOS
Clean Architecture · DDD · Offline-first · Automated testing

📍 Porto Alegre, Brazil  ·  🗣️ English (fluent)  ·  Portuguese (native)


About

Bought my first iPhone in 2009 and knew right there my career would never be the same. Former lawyer, started the transition in 2010, went full-time in 2013, and never looked back.

The last 5+ years have been on Flutter, on a native foundation in iOS and Android. Swift still has a place in my heart, but Flutter is what gets all my energy these days. It just freaking works. Lately I've been poking around Flutter desktop too, why not?

Mobile is how I got in, but a good part of the story happens server-side: for years I've been building the backends my own apps run on, and I'm just as at home designing an API as consuming one.

I care about architecture: Clean Arch, DDD, and automated tests. Lately, I've been trying to make sense of this new world of AI agent orchestration, bringing my technical and market background to develop systems faster and more efficiently, without losing sight of the business rules and technical logic.

I've built solo (15M+ downloads on House of Clashers, on a backend I wrote myself) and led corporate mobile teams on ERP-integrated apps processing $1B+ in annual sales. Currently at GeoSapiens, on greenfield Flutter for monitoring systems in the oil & gas industry. Fluent in English, studied it in the US.


Featured Work

Flutter Clean Architecture + Riverpod · 2026 · Flutter

  • Reference implementation of Clean Architecture + DDD in Flutter, a test-focused structure for applications meant to scale.
  • Four levels of tests, unit, widget, narrow integration and on-device E2E against the live Binance API, reaching 100% line coverage, with the scope and limits of each level documented rather than assumed.
  • 🔧 Riverpod · AutoRoute · Dio · SharedPreferences · Freezed · dartz · Mocktail
  • Ported to native Swiftswift-clean-arch-observation: I built it to catch up with what is new on iOS, adapting the Clean Architecture and DDD originally developed here in Flutter. The layers moved over almost untouched, into a standalone CryptoCore Swift package. In progress, the core is covered by tests, the app target is not yet.
    • 🔧 Swift · SwiftUI · Observation · Swift Package Manager · Swift Testing · URLSession

Clean Architecture vs. Spaghetti Code in Flutter · 2026 · Flutter · Research, graded with distinction

  • My undergraduate thesis: two apps with identical features and identical dependencies, built with opposite architectures.
  • Measured instead of argued, static analysis, import coupling, cyclomatic complexity and testability.
  • Presentation in EN and PT, full article in PT.

TOM: Team-Oriented Markdown · 2026 · Flutter desktop & mobile · in development, built in public

  • Taking scalable apps to the next level: a layered (n-tier) architecture with totally independent layers, domain, core, presentation and, yes, desktop and mobile, all isolated, with a strong focus on testing.
  • Spec-driven development: heavy upfront investment in product specs and technical documentation, establishing patterns and standards written to guide both human contributors and AI coding agents consistently.
  • Bringing 10+ years of technical documentation experience together with AI, a combination enabling productivity and applications that felt unimaginable just a few years ago.
  • The product itself: a Git client built for documentation instead of code, rendered markdown diffs, branching without ceremony, section blame, assisted conflict resolution. Local-first, MIT, no proprietary format.

WritRun · 2026 · Dev tooling · alpha, built in public

  • "What is written, runs": docs as the executable source, code as the derived artefact: AI checks the code against the docs and generates tasks and specs ready for development.
  • Every generated task carries a complete brief linked to a spec, ready to hand to a developer or an AI agent; the queue mirrors into GitHub Issues, and the agent drives branches, conventional commits and PRs.
  • Humans keep four named gates: the docs, the handoff, the approval, the merge.
  • 🔧 Git · Bash/POSIX · GitHub Issues & Actions
  • Optional CLI in Gowritrun-cli: the porcelain over the methodology's own scripts, one binary for adopting a repository, keeping the kit current, reading the queue and running the four flows that end in a pull request. It packages; it never decides — the scripts stay the source of truth, and the client is never a dependency of the method. Alpha: each release pins exactly one WritRun tag.
    • 🔧 Go · gh · Homebrew tap · go install

TomLog · 2025 · Dart package · Under Development

  • Logging library with categorized, color-coded output, automatic file/class capture, bounded history, JSON export and hooks for monitoring systems.
  • 🔧 Dart

Flutter DDD · 2024 · Flutter

  • Crypto quotes app on the public Binance API, applying DDD and Clean Architecture with MobX and Modular, the same layered discipline on a different state-management stack.
  • Offline favorites with local storage, dark mode and multi-language, covered by automated tests.
  • Based on my previous stack, with MobX and Modular.
  • 🔧 MobX · Modular · Hive · Dio · Result · Mocktail

Content Moderation API · 2024 · Python

  • An experiment in validating Hugging Face models running locally, measuring performance and effectiveness of hate-speech detection, age classification and sentiment analysis without delegating inference to a third-party API.
  • A deliberately simple app: a straightforward layered implementation, covered by tests.
  • 🔧 FastAPI · Hugging Face · Python

The same architectural discipline across stacks, the Binance ticker domain implemented in Flutter and Spring Boot.


Stack

Flutter/Dart

  • State management: Riverpod · Bloc/Cubit · MobX
  • Navigation: AutoRoute · Modular
  • Networking & storage: Dio · SQFLite · Hive · SharedPreferences
  • Models & error handling: Freezed · Json Annotation · Json Serializable · dartz/Result
  • Localization: intl · flutter_localizations
  • Testing: unit, widget, integration and E2E, with high coverage · Mocktail
  • CLI & automation: Makefile-driven CLI to navigate the whole app structure — tests by level and package, coverage and codegen gates, static analysis, feature flags

Native: iOS (Objective-C/Swift) · Android (Java/Kotlin)
Backend: FastAPI (Python) · Spring Boot (Java) · Laravel (PHP) · SQL/MySQL
Architecture: Clean Architecture · DDD · offline-first · modularization for large-scale apps
DevOps: CI/CD (GitHub Actions, Bitbucket Pipelines, Codemagic) · private app distribution · Sentry · Crashlytics


Shipped

House of Clashers · 2013/2022 · iOS · Android

  • Leading Clash of Clans companion app: 15M+ downloads, 1B+ API requests, 100k+ daily users at peak.
  • Built and scaled solo, including the custom PHP backend behind it.
  • 🔧 Flutter · PHP · SQL · Firebase

ERP Mobile Platform · 2022/2025 · Versotech (private)

  • Mobile Lead: led the architecture and the mobile team on a B2B client platform and a field sales application.
  • Orders captured in the field fed straight into the client's ERP, by the time I left, the field sales app alone was processing $1B+ in annual sales (a conservative figure).
  • 🔧 Flutter · offline-first sync · DDD · CI/CD · automated tests (unit, integration, E2E) · error monitoring

GitHub Stats

Thomas Franke Streak


Always happy to talk about mobile architecture, testing strategy, or scaling Flutter codebases.
Reach me on LinkedIn

Pinned Loading

  1. springboot-ddd springboot-ddd Public

    Spring Boot service exposing Binance crypto tickers, organized in DDD layers (domain, application, infrastructure, presentation).

    Java 1

  2. fastapi-content-moderation fastapi-content-moderation Public

    FastAPI service running local Hugging Face models for hate-speech detection, age classification and sentiment analysis, in DDD layers.

    Python

  3. flutter-clean-arch-riverpod flutter-clean-arch-riverpod Public

    Clean Architecture + DDD reference app in Flutter, with four levels of automated tests and 100% line coverage.

    Dart

  4. flutter-clean-vs-spaghetti flutter-clean-vs-spaghetti Public

    Undergraduate thesis — two Flutter apps, identical features, opposite architectures, compared by coupling, complexity and testability.

    Dart

  5. tom tom Public

    A Git client built for documentation instead of code: rendered markdown diffs, section blame, assisted conflict resolution. Local-first, MIT.

    Dart

  6. tomlog tomlog Public

    Dart logging library — categorized color-coded logs, automatic file/class capture, bounded history, JSON export and monitoring hooks.

    Dart