Sthefano Schiavon

Mobile Flutter Developer

[email protected] · https://sthefano.dev · https://github.com/sthefanoss · https://www.linkedin.com/in/sthefanoss

Summary

I'm a mobile developer. I have worked in Flutter since 2020, on seven projects, five of them published to the stores.

Most of that work is the mobile client, though not all of it: on Runsmith I deliver features end to end across the Flutter app, the Nuxt dashboard and the NestJS API.

I taught myself Flutter, and in 2020 it became my first job, while I was still finishing my electrical engineering degree.

I also have three apps of my own on Google Play and the App Store, the first of them released in 2018, two years before that first job.

On the open-source side, I wrote and maintain flutter_multi_slider, and I contribute to marionette_flutter, a package with 162k downloads a week that lets AI agents drive a Flutter app to test and develop it.

Experience

Senior Mobile Engineer, Runsmith

Nov 2024 – Present

A Flutter app started from scratch, then features delivered end to end across the app, the Nuxt dashboard and the NestJS API.

Runsmith · Nov 2024 – Present · Android, iOS, Web

  • Started the Flutter app from scratch with one other developer and built it out into the client coaches and athletes use on iOS and Android.
  • Went from occasional changes on the web dashboard and the API to delivering features end to end across all three codebases. Claude Code is what made working outside my strongest stack practical, and I have produced more here than in any earlier role.
  • Wrote tests as part of the work rather than after it: unit and widget tests in the Flutter app, and tests alongside the changes on the API and the web client.

Mobile Software Engineer, LiveFire

Jul 2023 – Nov 2024

A running social app for firearm owners, continued with one other Flutter developer: moved off Firebase onto the REST API, with a custom mention editor behind its feed.

LiveFire · Jul 2023 – Nov 2024 · Android, iOS

  • Moved the app off reading its data straight from Firebase and onto the REST API, together with the other Flutter developer. Both paths had to keep working side by side for a period before the Firebase reads could be dropped. Firebase Auth stayed, and still issues the token the API checks.
  • Wrote a custom TextEditingController for user mentions, after going through the available packages and finding none that fit the format the backend expected. The backend stores a mention as a user id rather than a handle, so the controller converts id to handle and handle back to id as the user types, and keeps each mention's range aligned as the user edits the text around it.
  • Fixed the same post going out of sync across feeds. A post can appear in the main feed and in a group feed at the same time, each held by a separate controller with its own copy, so a like registered in one did not reach the other. I added a typed event stream that every consuming controller subscribes to, so an update applies to all copies of the post.
  • Built the training-frequency graph on the profile, in the style of GitHub's commit heatmap, along with the version of it prepared for sharing into a post.
  • Added deep linking, and worked on video playback and live stream viewing.
  • Made the changes the app needed in the NestJS backend myself instead of handing them over.

Mobile Software Engineer, Teladoc Health

Apr 2022 – Jun 2023

Two builds of one telemedicine product: the partner-distributed app, taken through version 2.0 and a null-safety migration, and its consumer fork.

B2B App · 2022 – 2023 · Android, iOS

  • Shipped version 2.0 with a senior developer: a rework of the interface and experience carrying new content, delivered in Jira sprints and published on Google Play and the App Store.
  • Proposed and built an inverse booking flow — kind of professional, then slot, then professional, in place of kind, professional, slot — and took the endpoints it required to the POs, since the existing API could not answer the question in that order.
  • Upgraded Flutter and migrated the codebase to null safety on my own initiative, keeping it on a parallel branch; a developer-experience and static-analysis argument at the start, it became a release one when the stores stopped accepting builds from the old version and the upgraded branch was the one that got through.
  • Kept the app on an unofficial Pusher client after moving to the newly released official one and finding it could not disconnect and resubscribe to a different channel.
  • Worked across the platform channel boundary on third-party plugins, updating their native dependencies and, where no fix existed upstream, their implementations.
  • Fixed production defects on a board separate from the 2.0 work, often from reproduction steps that did not reproduce, shipping the fixes as hotfix builds off their own branches and bringing the crash rate down.
  • Reviewed code on this app and on the B2C build.

B2C App · 2022 – 2023 · Android, iOS

  • Updated interface components and fixed production defects on the consumer build, in short stretches alongside the B2B work.
  • Treated a defect found here as a defect in the B2B build as well: the two shared an origin, so where the same bug was present I filed the task against the B2B app myself and implemented the fix there too, rather than closing only the ticket I had been handed.

Mobile Software Engineer, Atlas Technologies

Apr 2020 – Apr 2022

Three products in two years: a chat app inherited, a short-video feed built solo, and a chat platform rebuilt from scratch and taken to the Play Store.

Fatal Chat · 2020 · Android, Web

  • One of two developers on a live Flutter chat app: push notifications, socket messaging, a REST layer on Dio, auth, deep links and file upload in both chat and profile.
  • Shipped a single codebase to Android and the browser while Flutter web was still in beta, tracing behaviour differences and substituting libraries that held up on both rather than forking for the web.
  • Worked in sprints against Figma boards with the PO, backend developers and designer, reviewing code with the other developer.

Fatal Share · 2021 · Android

  • Sole Flutter developer on a short-video feed built from scratch, pulling video and images from the company’s main site into an infinite scroll with no login.
  • Managed video controllers by hand, keeping a small window of initialised controllers around the visible clip, bounded by playback stutter on one side and low-end device memory on the other.
  • Filtered already-seen content per install via local storage, and proposed interface work back to the designers including custom position and colour animations.

Deal Talk · 2021 – 2022 · Android, iOS, Web

  • Rebuilt the chat product from scratch for Android, iOS and web from one Flutter codebase; it reached Google Play and went live across a handful of test cities with real users.
  • Ran the technical screen for the Flutter hire, reviewing around ten CVs and interviewing two, and reviewed code with the developer hired.
  • Moved web routing to Navigator 2.0 for URL-driven navigation, and verified releases separately across Android, iPhone and desktop browsers, identifying no push notification support on iOS browsers and sockets dropping on background.
  • Fixed authentication in the backend Socket.IO layer, moving it into the handshake middleware so unauthorised clients are refused before the connection is established, and the transport to wss://.

Skills

Flutter · Dart · GetX · Dio · Apple Health · Health Connect · Google Maps · fl_chart · flutter_test · mocktail · fake_async · NestJS · TypeScript · Node.js · MongoDB · Redis · BullMQ · Firebase Admin · OpenAPI · Fly.io · Nuxt 3 · Vue 3 · Pinia · Tailwind CSS · DaisyUI · REST · Algolia · api.video Live Stream · video_player · Firebase Cloud Storage · image_picker · Geolocator · Firebase Auth · Firebase Crashlytics · Firebase Analytics · Firebase Cloud Messaging · Firebase Remote Config · Firebase Dynamic Links · Stripe · Mux · Pusher · Provider · built_value · build_runner · Method channels · OpenTok (Vonage Video) · WebRTC · OneSignal · freezed · Flutter Web · WebSockets · Push Notifications · Deep links · shared_preferences · cached_network_image · File uploads · Video playback · Navigator 2.0 · Socket.IO

Personal Apps

Open Source