Home/Selected work
Product / Users / Evidence

The problems.
The work.

Misleading funnels, confusing experiments, ad integrations, and app migrations. Here’s the work behind what I say I can do.

Engineering / Product / Data

What the work involved.

What happened, what the investigation found, and what changed. These cases omit company names.

CASE · 016

Four hidden bugs. A broken iOS feed. An emergency release avoided.

The home feed went blank and ads turned white. I traced four defects across SwiftUI, an ad SDK, and bidder configuration, contained the immediate ad failure across app versions, and fixed the underlying code.

Production investigationSwiftUI · UIKitAd SDKs · Bidding→
CASE · 001

They had new registration designs ready. I found the problem in the funnel.

The team thought registration was losing 70% of users. I rebuilt the funnel and investigated the different paths. The step they suspected was working; the first page and the route to login needed attention.

Funnel logicMobile onboardingiOS · Android→
CASE · 004

I built a tracking map, found what the refactor lost, and fixed it.

I built an AI-assisted tracking map to compare events before and after a major refactor. It exposed two missing interaction events, and I implemented the fix.

AI-assisted tracking mapRefactoringTracking repair→
CASE · 006

Their A/B test winner performed worse after rollout. I investigated why.

An independent article nobody knew about brought a surge of downloads during the test. I separated that cohort and found that the control performed better for the remaining organic traffic.

Experiment analysisTraffic mixCohorts→
CASE · 007

They planned to rework the subscription flow. I narrowed down what to investigate.

I investigated why mobile subscription conversion looked worse than web. Different user intent made page views misleading, so the team narrowed the work to the purchase steps and add-to-cart-to-payment conversion.

Conversion contextSubscriptionUser intent→
CASE · 009

I worked through onboarding, product questions, and measurement for a fitness app.

I improved registration, introduced Jobs to Be Done and regular product-health metrics, ran onboarding experiments, investigated demand for social features, and reviewed tracking.

OnboardingProduct researchExperiments & metrics→
CASE · 010

The prompt worked as a reminder. The effect did not last.

The team wanted to roll out a homepage prompt. I investigated the raw data and found a short-lived effect for specific users, rather than evidence of a lasting improvement.

Experiment analysisUser behaviorEffect over time→
CASE · 011

They wanted more ad revenue. I rebuilt how the app loads ads.

I built consent-based ad loading for GAM and other ad providers on iOS, added more bidding, and fixed request, configuration, and display issues in the existing integration.

Ad architectureConsent-based loadingRevenue→
CASE · 012

They wanted shared code. I defined the architecture and migrated the business logic.

I migrated business logic for iOS and Android to Kotlin Multiplatform, then started moving UI into shared Compose code.

Kotlin MultiplatformBusiness logicShared UI→
CASE · 013

Shared code had to work for iOS, and for the people shipping it.

I helped a large company adapt its shared-code architecture for both mobile platforms, CI, releases, and everyday development, and recommended how to expand it.

Kotlin MultiplatformArchitectureDelivery→
CASE · 014

Five A/B tests were running. I untangled how they affected each other.

I compared cohorts, test-group splits, and behavior in the raw data to identify which experiments changed behavior and how they influenced one another.

Concurrent experimentsCohort analysisUser intent→
CASE · 015

A whole home in one iPhone and iPad app. I led it from MVP to 1.0.

As lead iOS developer at a smart-home startup, I led a team of up to four developers through the MVP and version 1.0: an offline demo mode, a dedicated iPad experience, encrypted remote access, and real-time sync with the home’s hardware.

Team leadiPhone + iPadEncryption & sync→

In every case, the useful move was not to optimize the first symptom. It was to find the mechanism behind it.

Development / Selected work

Difficult engineering work. Done hands-on.

15+ years of hands-on delivery across new products and established systems. My experience spans native iOS and Android, Flutter, architecture, tests, and automation.

01
SwiftUI · Backend migration

Modernizing established mobile apps

I’ve worked on moving an app used by millions to backend v3 and SwiftUI. This involved changing the app’s integration with a new backend version as well as its interface implementation.

02
Kotlin Multiplatform · iOS · Android · Compose

Two companies. Two paths to shared code.

For one company, I defined the architecture, migrated business logic for both platforms, and started migrating UI to shared Compose code. For another, I helped adapt the architecture to iOS constraints, CI, releases, and everyday development, then recommended the next steps.

03
GAM · Other ad providers · iOS

Rebuilding how an app loads ads

I built consent-based provider selection and a simple interface for ad slots, added bidders, and fixed GAM request, configuration, and display issues. Released changes reduced unnecessary requests and improved CPM and impressions; the latest fixes are still awaiting release.

04
Tests · CI · Automation

Building the systems behind delivery

At Nebenan, my work included modular app structure and CI automation for translations, PR checks, and formatting, plus a Slack-to-Confluence tool for capturing decisions.

Let’s talk

Bring me
the problem.

An app that needs building. A migration that needs someone to own it. Numbers that don’t make sense. A product decision your team can’t resolve. Tell me what’s happening. I’ll tell you whether I’m the right person, how I’d approach it, and what the work would cost.

Email Alex ↗alex@x91tech.com
You bring the context. I take the work seriously.
Not sure what you’d get? See sample reports →