{
  "feed_url" : "https://krisbaker.com/work/feed.json",
  "version" : "https://jsonfeed.org/version/1.1",
  "language" : "en",
  "title" : "Kristopher Baker · Apps, systems, and tools I’ve shipped.",
  "items" : [
    {
      "content_html" : "<h2>Context</h2>\n<p>At Wolt, verifying analytics (telemetry) events in development was slow and cumbersome. Engineers relied on a full-screen in-app viewer with no search or filtering, which made instrumentation harder to trust.</p>\n<h2>The problem</h2>\n<p>This made it difficult for engineers and product teams to:</p>\n<ul>\n<li>validate new events</li>\n<li>debug issues</li>\n<li>confidently ship and evaluate instrumented features</li>\n</ul>\n<h2>Approach</h2>\n<video autoplay muted playsinline controls style=\"display: block; width: 880px; max-width: 100%; margin: 0 auto;\">\n  <source src=\"https://krisbaker.com/work/wolt-telemetry-viewer/telemetry-viewer-demo.mp4\" type=\"video/mp4\">\n</video>\n<p>I designed and built a telemetry viewer that streams events from the app to a local desktop client. The goal was not just a nicer viewer. It was a small leverage system for shortening the loop between product intent, instrumentation, and release confidence.</p>\n<p>Key elements:</p>\n<ul>\n<li>local WebSocket-based streaming from the iOS app</li>\n<li>a desktop app with searchable, filterable event views</li>\n<li>full visibility into payloads sent to backend systems, in a form humans could inspect quickly</li>\n</ul>\n<p>I introduced it gradually:</p>\n<ul>\n<li>first validating it with a small group of engineers</li>\n<li>then expanding usage through demos and internal sharing</li>\n</ul>\n<p>I also supported cross-platform adoption by helping an Android engineer implement a similar solution.</p>\n<h2>Outcome</h2>\n<ul>\n<li>Significantly improved speed and confidence when validating telemetry</li>\n<li>Adopted by multiple engineers across teams</li>\n<li>Enabled other initiatives, including privacy-related telemetry work</li>\n</ul>\n<h2>My role</h2>\n<p>Self-driven initiative that I discovered a need for and developed from concept to adoption across teams.</p>",
      "title" : "Building a telemetry tool for faster, more confident product iteration",
      "tags" : [
        "iOS",
        "macOS",
        "Internal tooling",
        "Telemetry",
        "WebSocket"
      ],
      "summary" : "A leverage system for product iteration: real-time app telemetry streamed to a local desktop client over WebSocket, with searchable, filterable views. Replaced a slow in-app viewer and made instrumentation work faster and more trustworthy across teams.",
      "date_published" : "2025-01-01T00:00:00Z",
      "url" : "https://krisbaker.com/work/wolt-telemetry-viewer/",
      "id" : "https://krisbaker.com/work/wolt-telemetry-viewer/"
    },
    {
      "content_html" : "<h2>Context</h2>\n<p>Wolt+ offered free delivery within a defined radius, but users outside that range saw limited benefit, reducing the product's appeal in certain markets.</p>\n<h2>The problem</h2>\n<p>We needed to extend the value of Wolt+ to users just outside the free delivery range by introducing discounted delivery, while keeping the experience consistent across discovery, venue pages, and checkout.</p>\n<h2>Approach</h2>\n<p>As client DRI, I led the iOS implementation and contributed to the overall API and product design.</p>\n<p>Key areas I focused on:</p>\n<ul>\n<li>aligning frontend and backend on how delivery pricing and eligibility should be represented across surfaces</li>\n<li>working with the Discovery team to ensure consistent behavior across all venue lists</li>\n<li>designing a reusable bottom sheet for explaining delivery pricing and savings</li>\n</ul>\n<p>I also led discussions around API structure and naming, coordinating across teams to reach a solution that worked for both backend and client constraints.</p>\n<h2>Outcome</h2>\n<ul>\n<li>Strong positive impact in A/B tests</li>\n<li>Increased perceived value of Wolt+ in markets outside the core delivery radius</li>\n<li>Feature successfully rolled out across multiple surfaces in the app</li>\n</ul>\n<h2>My role</h2>\n<p>DRI, leading client-side implementation, RFC contributions, and cross-team coordination.</p>",
      "title" : "Expanding subscription value with long-distance delivery",
      "tags" : [
        "iOS",
        "Growth",
        "Subscription",
        "API design"
      ],
      "summary" : "DRI for Long-Distance Delivery, extending Wolt+ value to users outside the free delivery radius with discounted pricing kept consistent across discovery, venue, and checkout. Led API and product design discussions across teams.",
      "date_published" : "2025-01-01T00:00:00Z",
      "url" : "https://krisbaker.com/work/wolt-long-distance-delivery/",
      "id" : "https://krisbaker.com/work/wolt-long-distance-delivery/"
    },
    {
      "content_html" : "<h2>Context</h2>\n<p>Wolt+ is Wolt’s subscription product, similar to Uber One or DashPass. A key growth lever is how and when users are prompted to subscribe during the ordering flow.</p>\n<h2>The problem</h2>\n<p>Subscription entry points were limited and required users to leave the order flow. We wanted to introduce new surfaces in cart and checkout, along with a faster “express” signup experience, but the initial plan bundled everything into a single release, increasing complexity and delaying validation.</p>\n<h2>Approach</h2>\n<video autoplay muted loop playsinline style=\"display: block; width: 440px; max-width: 100%; margin: 0 auto;\">\n  <source src=\"https://krisbaker.com/work/wolt-cart-entry-points/cart-signup.mp4\" type=\"video/mp4\">\n  <img src=\"https://krisbaker.com/assets/work/wolt-cart-entry-points/cart-banner.png\" alt=\"Cart entry point + express signup flow\">\n</video>\n<p>I acted as <strong>client-side DRI across iOS, Web, and Android</strong>, driving RFCs and alignment with product, design, backend, and data science, while leading iOS implementation.</p>\n<p>Early on, I pushed to split the work into independent experiments:</p>\n<ul>\n<li>launch and validate the cart entry point first</li>\n<li>follow with express signup as a separate iteration</li>\n</ul>\n<p>This allowed us to ship sooner and learn faster instead of blocking on a more complex implementation.</p>\n<p>For express signup, I worked through several UX and technical constraints:</p>\n<ul>\n<li>enabling multi-step flows inside a bottom sheet (not previously supported)</li>\n<li>simplifying transitions between “express” and full signup to reduce confusion</li>\n<li>coordinating with payments and backend teams on edge cases</li>\n</ul>\n<p>I also worked closely with data science to validate instrumentation and debug misleading A/B test results, ensuring we were measuring the right signals.</p>\n<h2>Outcome</h2>\n<ul>\n<li>Significant lift in Wolt+ signups and downstream order volume</li>\n<li>Both features successfully A/B tested and fully rolled out</li>\n<li>Cart entry point remains a core subscription growth surface</li>\n</ul>\n<h2>My role</h2>\n<p><strong>Client-side DRI across iOS, Web, and Android, leading RFCs, stakeholder alignment, and experimentation strategy, with hands-on iOS implementation.</strong></p>",
      "title" : "Improving subscription conversion through cart and checkout entry points",
      "tags" : [
        "iOS",
        "Growth",
        "Subscription",
        "A/B testing"
      ],
      "summary" : "Client-side DRI for two flagship Wolt+ growth experiments: cart entry point and express signup. Drove cross-platform RFCs and pushed to split the work into independent rollouts, enabling faster iteration and clearer A/B validation.",
      "date_published" : "2024-01-01T00:00:00Z",
      "url" : "https://krisbaker.com/work/wolt-cart-entry-points/",
      "id" : "https://krisbaker.com/work/wolt-cart-entry-points/"
    },
    {
      "content_html" : "<h2>Context</h2>\n<p>SmartNews renders millions of articles through its SmartView system. The existing extraction pipeline had accumulated technical debt and inconsistencies across publishers.</p>\n<p>Replacing it outright was too risky. Any regression would directly impact content readability and user trust.</p>\n<h2>The problem</h2>\n<p>We needed to:</p>\n<ul>\n<li>introduce a new extraction pipeline</li>\n<li>improve HTML parsing and formatting reliability</li>\n<li>integrate with backend-driven rules (CSS, transformations)</li>\n<li>avoid breaking the existing rendering experience</li>\n</ul>\n<p>All without disrupting a core product surface.</p>\n<h2>Approach</h2>\n<p>I built SmartHTMLExtractorV2 as a parallel implementation:</p>\n<ul>\n<li>Created a new Swift module (SmartHTML) wrapping SwiftSoup with a stable internal API</li>\n<li>Implemented a new extractor pipeline with:\n<ul>\n<li>HTML parsing and cleanup</li>\n<li>CSS rule integration from backend services</li>\n<li>structured formatting via internal models</li>\n</ul>\n</li>\n<li>Introduced client-condition gating so v1 and v2 could coexist safely</li>\n</ul>\n<p>To reduce operational risk:</p>\n<ul>\n<li>Added fallback logic (stage/prod URLs if client conditions failed)</li>\n<li>Ensured edition-aware proxying (US vs JP behavior)</li>\n<li>Handled iOS-version-specific behavior (e.g. image format selection like JPEG vs WebP)</li>\n</ul>\n<h2>Outcome</h2>\n<ul>\n<li>Successfully shipped a parallel rendering system without regressions to the core experience</li>\n<li>Enabled incremental rollout and validation instead of a risky full switch</li>\n<li>Established a clean Swift-based foundation for future rendering improvements</li>\n</ul>\n<h2>What this demonstrates</h2>\n<ul>\n<li>Designing safe rollouts for high-risk, high-impact systems</li>\n<li>Wrapping third-party libraries into stable internal abstractions</li>\n<li>Building modular architecture inside a legacy mixed Obj-C/Swift codebase</li>\n<li>Thinking beyond implementation, including operational safety and fallback behavior</li>\n</ul>",
      "title" : "Rebuilding article extraction safely behind feature flags",
      "tags" : [
        "iOS",
        "Swift",
        "Architecture",
        "Feature Flags",
        "Rendering"
      ],
      "summary" : "Led the iOS implementation of a second-generation article extraction system (SmartHTMLExtractorV2), shipping it in parallel with the existing renderer behind client-controlled feature flags to de-risk rollout of a critical content surface.",
      "date_published" : "2022-01-01T00:00:00Z",
      "url" : "https://krisbaker.com/work/smartnews-smartview-v2/",
      "id" : "https://krisbaker.com/work/smartnews-smartview-v2/"
    },
    {
      "content_html" : "<h2>Context</h2>\n<p>SmartNews plays a major role in delivering election coverage. For the 2020 US election, the product included features aimed at presenting balanced perspectives across political content.</p>\n<p>The timeline was fixed. Everything had to be ready for election day.</p>\n<h2>The problem</h2>\n<p>We needed to:</p>\n<ul>\n<li>present content from multiple political perspectives clearly</li>\n<li>build new UI patterns (not just reuse existing ones)</li>\n<li>support real-time election results</li>\n<li>handle US/JP edition differences correctly</li>\n</ul>\n<h2>Approach</h2>\n<p>I worked across several election-related features:</p>\n<h3>Political balancing experience</h3>\n<ul>\n<li>Built a News Event view with a custom UISlider:\n<ul>\n<li>3- or 5-position support for perspective selection</li>\n</ul>\n</li>\n<li>Added onboarding, deep links, and action logging</li>\n<li>Enabled “News from all sides” entry points across surfaces</li>\n</ul>\n<h3>Candidate and results features</h3>\n<ul>\n<li>Implemented:\n<ul>\n<li>candidate widgets and lists</li>\n<li>election results widget with time-based visibility</li>\n</ul>\n</li>\n<li>Added:\n<ul>\n<li>timestamp gating (start/end times)</li>\n<li>edition-aware language rules (e.g. JP edition shows Japanese regardless of system locale)</li>\n</ul>\n</li>\n</ul>\n<h3>Infrastructure</h3>\n<ul>\n<li>Built API integrations with fallback behavior</li>\n<li>Used client conditions for controlled rollout</li>\n<li>Ensured telemetry coverage across interactions</li>\n</ul>\n<h2>Outcome</h2>\n<ul>\n<li>Delivered multiple election features on a fixed deadline</li>\n<li>Enabled users to explore balanced political perspectives</li>\n<li>Handled complex requirements around time, localization, and data availability</li>\n</ul>\n<h2>What this demonstrates</h2>\n<ul>\n<li>Shipping under non-negotiable deadlines</li>\n<li>Building custom UI for sensitive product areas</li>\n<li>Handling multi-edition, multi-locale product logic</li>\n<li>Delivering across multiple surfaces with consistent behavior</li>\n</ul>",
      "title" : "Building politically balanced election experiences under a fixed deadline",
      "tags" : [
        "iOS",
        "Product",
        "UX",
        "Localization"
      ],
      "summary" : "Built key iOS features for SmartNews’ US Election 2020 coverage, including political balancing UI, candidate widgets, and election results surfaces with strict time-based and edition-aware behavior.",
      "date_published" : "2019-01-01T00:00:00Z",
      "url" : "https://krisbaker.com/work/smartnews-us-election-2020/",
      "id" : "https://krisbaker.com/work/smartnews-us-election-2020/"
    }
  ],
  "authors" : [
    {
      "name" : "Kristopher Baker"
    }
  ],
  "description" : "Senior product engineer with deep iOS roots, building consumer product systems, developer tooling, and practical AI-assisted workflows from Tokyo.",
  "home_page_url" : "https://krisbaker.com/"
}