# Livefront > Since 2001, Livefront has helped companies grow by designing, building, and scaling digital products people love. ## Pages - [About Livefront](/about.md) - [Adaptive Retail Services](/adaptive-retail.md) - [AI & Automation](/ai-automation.md) - [AI Strategy Workshop](/healthcare-ai.md) - [AI Strategy Workshops](/ai-strategy-workshop.md) - [All Insights](/insights/all.md) - [Analytics & Optimization Services](/analytics-optimization.md) - [AR, VR & Mixed Reality Experiences](/ar-vr-mixed-reality.md) - [Automotive Apps](/automotive.md) - [Bridge](/bridge.md) - [Chimney](/chimney.md) - [Clap Back](/showcase/clap-back.md) - [Connected TV Apps](/connected-tv.md) - [Contact Livefront](/contact.md) - [Cross-Platform Mobile Apps](/cross-platform-mobile.md) - [Data & Analytics](/data-analytics.md) - [Design System Services](/design-systems.md) - [Digital Accessibility Services](/accessibility.md) - [Digital Bubbles](/showcase/bubbles.md) - [Digital Engineering](/digital-engineering.md) - [Digital Health & Wellness Solutions](/health-wellness.md) - [Digital Nonprofit Solutions](/nonprofits.md) - [Digital Sports & Fitness Solutions](/sports-fitness.md) - [Digital Startup Solutions](/startups.md) - [Digital Travel & Hospitality Solutions](/travel-hospitality.md) - [Download Slides](/download.md) - [Download Slides](/download-slides.md) - [Duvet](/duvet.md) - [E-commerce Solutions](/e-commerce.md) - [Education & Edtech Solutions](/education.md) - [Emerging Healthcare Trends](/emerging-healthcare-trends.md) - [Experience Design](/experience-design.md) - [Figma Plugins](/figma-plugins.md) - [Final Pass](/final-pass.md) - [Finance & Fintech Solutions](/financial-services.md) - [Finding Home AI](/showcase/real-estate.md) - [Growth Marketing & Optimization Services](/growth-marketing.md) - [Gson Kotlin Adapter](/gson-kotlin-adapter.md) - [Immersion Lab](/showcase/immersion-lab.md) - [IoT & Embedded Software Solutions](/iot-embedded-software.md) - [Kiosks & Digital Signage Solutions](/kiosks-digital-signage.md) - [Livefront](/index.md) - [Livefront + Zeal](/livefront-and-zeal.md) - [Livefront Brewing](/brewing.md) - [Livefront Careers](/careers.md) - [Livefront Community](/community.md) - [Livefront Expertise](/expertise.md) - [Livefront Insights](/insights.md) - [Loupe](/loupe.md) - [Loyalty & Membership Services](/loyalty-membership.md) - [Lumos](/showcase/lumos.md) - [Media & Entertainment Solutions](/media-entertainment.md) - [MESH](/mesh.md) - [Mobile Apps](/mobile-apps.md) - [Pentimento](/pentimento.md) - [Pragmatic AI in Healthcare](/pragmatic-ai-in-healthcare.md) - [Privacy Policy](/privacy.md) - [Process Killer](/process-killer.md) - [Restaurants & QSR Solutions](/restaurants.md) - [Retail & Consumer Goods Solutions](/retail-consumer-goods.md) - [Scale better teams](/scale.md) - [Sealed Enum](/sealed-enum.md) - [See your ambition](/see.md) - [Shape your future](/shape.md) - [Ship better software](/ship.md) - [Shroud](/shroud.md) - [Smart Factory](/smart-factory.md) - [Social Platform Solutions](/social.md) - [Strategy & Product](/strategy-and-product.md) - [Technology Solutions](/technology.md) - [Terms of Use](/terms.md) - [Thank You](/event-confirmation.md) - [Thank You](/thankyou.md) - [The Livefront Way](/livefront-way.md) - [Twin Cities Hack Night](/twin-cities-hack-night.md) - [Voice Apps](/voice.md) - [Web Apps](/web-apps.md) - [Xcode Tools](/xcode-tools.md) - [Yes, Chef!](/showcase/yes-chef.md) ## Team - [Adam May - Director, Engineering](/team/adam-may.md) - [Adrian Missy - Solutions Architect](/team/adrian-missy.md) - [Al Wold - Software Engineer](/team/al-wold.md) - [Alec Rippberger - Software Engineer](/team/alec-rippberger.md) - [Alex Constancio - Software Engineer](/team/alex-constancio.md) - [Ali Joaquin - Director, Design](/team/ali-joaquin.md) - [Andrew VanderLeest - Software Engineer](/team/andrew-vanderleest.md) - [Ben Kimball - QA Analyst](/team/ben-kimball.md) - [Ben Tribble - Commercial Strategy Director](/team/ben-tribble.md) - [Ben Wood - Director, Design](/team/ben-wood.md) - [Brian Yencho - Director, Engineering](/team/brian-yencho.md) - [Brooke Thies - Product Designer](/team/brooke-thies.md) - [Bryan Lindsey - Software Engineer](/team/bryan-lindsey.md) - [Caleb Derosier - Software Engineer](/team/caleb-derosier.md) - [Chris Fry - Software Engineer](/team/chris-fry.md) - [Chris Sessions - Software Engineer](/team/chris-sessions.md) - [Chris Wodicka - Product Designer](/team/chris-wodicka.md) - [Christian Spaulding - Product Designer](/team/christian-spaulding.md) - [Corey Fleitz - Recruiter](/team/corey-fleitz.md) - [David Perez - Software Engineer](/team/david-perez.md) - [Diana Flotten - Product Strategist](/team/diana-flotten.md) - [Emily Dziak - Product Designer](/team/emily-dziak.md) - [Forrest Tracy - Director, Engineering](/team/forrest-tracy.md) - [Garrett Schafer - Software Engineer](/team/garrett-schafer.md) - [Inge Chiles - Software Engineer](/team/inge-chiles.md) - [Jack Cunningham - Director, Product Management](/team/jack-cunningham.md) - [Jared Hoerr - Software Engineer](/team/jared-hoerr.md) - [Jarin Schmidt - VP, Client Partnerships](/team/jarin-schmidt.md) - [Jennifer Morgan - Product Manager](/team/jennifer-morgan.md) - [Joe Sonka - Chief of Staff](/team/joe-sonka.md) - [John Caplinger - QA Analyst](/team/john-caplinger.md) - [John Cavalieri - Software Engineer](/team/john-cavalieri.md) - [Joseph Schlichting - Product Strategist](/team/joseph-schlichting.md) - [Jubie Alade - Software Engineer](/team/jubie-alade.md) - [Kagan Riedel - Software Engineer](/team/kagan-riedel.md) - [Livefront Team](/team.md) - [Lucas Kivi - Software Engineer](/team/lucas-kivi.md) - [Luke Cich - QA Analyst](/team/luke-cich.md) - [Mason O'Neil - Software Engineer](/team/mason-o'neil.md) - [Matt Czech - Software Engineer](/team/matt-czech.md) - [Matt Schraan - VP, Product Management](/team/matt-schraan.md) - [Megan Fischer - Software Engineer](/team/megan-fischer.md) - [Mike Bollinger - Founder & CEO](/team/mike-bollinger.md) - [Mike Faber - Product Manager](/team/mike-faber.md) - [Nathan Ansel - Software Engineer](/team/nathan-ansel.md) - [Nick Krantz - Software Engineer](/team/nick-krantz.md) - [Noah Cusimano - Software Engineer](/team/noah-cusimano.md) - [Olivia Rudd - Product Designer](/team/olivia-rudd.md) - [Paige Keane - Product Strategist](/team/paige-keane.md) - [Paul Cramer - VP, Business Development](/team/paul-cramer.md) - [Paul Himes - Software Engineer](/team/paul-himes.md) - [Paul McAleer - Product Strategist](/team/paul-mcaleer.md) - [Pete Jones - Software Engineer](/team/pete-jones.md) - [Phillip Johnson - VP, Business Development](/team/phillip-johnson.md) - [Phylicia Flynn - Product Designer](/team/phylicia-flynn.md) - [Rob Abbott - Software Engineer](/team/rob-abbott.md) - [Robin Marquardt - Product Designer](/team/robin-marquardt.md) - [Sam Kirchmeier - VP, Engineering](/team/sam-kirchmeier.md) - [Samuel Carter - Recruiter](/team/samuel-carter.md) - [Sean Ephraim - Solutions Architect](/team/sean-ephraim.md) - [Sean Weiser - Principal Software Engineer](/team/sean-weiser.md) - [Sergio Najera - Software Engineer](/team/sergio-najera.md) - [Shalanah Dawson - Software Engineer](/team/shalanah-dawson.md) - [Shannon Draeker - Software Engineer](/team/shannon-draeker.md) - [Sonia Merten - QA Analyst](/team/sonia-merten.md) - [Steve Horn - Director, Engineering](/team/steve-horn.md) - [Tyler Johnson - Software Engineer](/team/tyler-johnson.md) - [Yatharth Garg - AI Solutions Engineer](/team/yatharth-garg.md) ## Partners - [Livefront + Anthropic](/partners/anthropic.md) - [Livefront + AWS](/partners/aws.md) - [Livefront + Databricks](/partners/databricks.md) - [Livefront + LangChain](/partners/langchain.md) - [Livefront + Microsoft Azure](/partners/azure.md) - [Livefront + OpenAI](/partners/openai.md) ## Talks - [☠️😈 A Developer's Guide to Making Project Setup As Difficult As Possible 😈☠️ at Minnebar (2023)](/speaks/-a-developers-guide-to-minnebar-april-2023.md) - [🌐 WWW: What in the world is happening on the web? at Minnebar (2023)](/speaks/-www-what-in-the-minnebar-april-2023.md) - [🎯 The Kano Model: A (mostly) useful framework for prioritizing product features 🎯 at Minnebar (2023)](/speaks/-the-kano-model-a-minnebar-april-2023.md) - [🐬 Flipper Zero: The Hacking Multi-Tool Making a Splash on TikTok at Minnebar (2023)](/speaks/-flipper-zero-the-hacking-minnebar-april-2023.md) - [🪄 SwiftUI Magic: Advanced Techniques for Complex Interfaces. at Minnebar (2023)](/speaks/-swiftui-magic-advanced-techniques-minnebar-april-2023.md) - [25 interviews with 25 Minnesota digital leaders in 25 minutes at Twin Cities Startup Week (2020)](/speaks/25-interviews-with-25-minnesota-twin-cities-startup-october-2020.md) - [A look at the business side of a UX project at Prime Digital Academy (2019)](/speaks/a-look-at-the-business-prime-digital-academy-july-2019.md) - [A RADICL Sprint: Getting Product Alignment in Just One Day at ProductWorld (2024)](/speaks/a-radicl-sprint-getting-product-productworld-february-2024.md) - [A RADICL Sprint: Getting Product Alignment in Just One Day at Twin Cities Startup Week (2023)](/speaks/a-radicl-sprint-getting-product-twin-cities-startup-september-2023.md) - [Accessibility Testing 101: Native App Manual Testing at Minnebar (2024)](/speaks/accessibility-testing-101-native-app-minnebar-april-2024.md) - [Agentic AI in Practice: Building an AI Agent with Evereve & Livefront at MnTech Tech Connect (2026)](/speaks/agentic-ai-in-practice-building-mntech-tech-connect-april-2026.md) - [AI Sucks at Minnebar (2026)](/speaks/ai-sucks-minnebar-may-2026.md) - [An Introduction to HealthKit at Twin Cities iPhone Developers Meetup (2019)](/speaks/an-introduction-to-healthkit-twin-cities-iphone-august-2019.md) - [An Introduction to iOS Development at Mpls Jr Devs (2019)](/speaks/an-introduction-to-ios-development-mpls-jr-devs-february-2019.md) - [Android Vision: Detecting everything from barcodes to faces at Minnebar (2016)](/speaks/android-vision-detecting-everything-from-minnebar-april-2016.md) - [Android Vision: Detecting everything from faces to barcodes at DevFest (2016)](/speaks/android-vision-detecting-everything-from-devfest-february-2016.md) - [Android Wear Development at Google Developers Group (2014)](/speaks/android-wear-development-google-developers-group-november-2014.md) - [App Clips 101 at Minnebar (2020)](/speaks/app-clips-101-minnebar-october-2020.md) - [App Personalization Made Easy: Unleashing the Power of Native Technologies at Twin Cities Startup Week (2023)](/speaks/app-personalization-made-easy-unleashing-twin-cities-startup-september-2023.md) - [Assistive Tech Is for Everyone (They Just Don't Know It Yet) at Minnebar (2025)](/speaks/assistive-tech-is-for-everyone-minnebar-may-2025.md) - [Back to the : A Brief History of Web Development at Minnebar (2025)](/speaks/back-to-the-future--minnebar-may-2025.md) - [Beyond Notifications: Creating Apps for Android Wear at DevFest (2015)](/speaks/beyond-notifications-creating-apps-for-devfest-march-2015.md) - [Beyond Notifications: Creating Apps for Android Wear at Minnesota Developers Conference (2015)](/speaks/beyond-notifications-creating-apps-for-minnesota-developers-conference-september-2015.md) - [Beyond Notifications: Creating Apps for Android Wear at Mobile March (2015)](/speaks/beyond-notifications-creating-apps-for-mobile-march-march-2015.md) - [Beyond REST: Web Services Designed for Mobile at Minnebar (2015)](/speaks/beyond-rest-web-services-designed-minnebar-may-2015.md) - [Beyond REST: Web Services Designed for Mobile at Minnesota Developers Conference (2015)](/speaks/beyond-rest-web-services-designed-minnesota-developers-conference-september-2015.md) - [Beyond REST: Web Services Designed for Mobile at Mobile March (2015)](/speaks/beyond-rest-web-services-designed-mobile-march-march-2015.md) - [Beyond Tapping on Glass: What Mobile Means Now at MobCon (2015)](/speaks/beyond-tapping-on-glass-what-mobcon-november-2015.md) - [Bluetooth LE, Core Bluetooth, and a Glimpse into your Near Future at Minnebar (2013)](/speaks/bluetooth-le-core-bluetooth-and-minnebar-april-2013.md) - [Building Efficient & Resilient Engineering Teams at Minnebar (2025)](/speaks/building-efficient-resilient-engineering-minnebar-may-2025.md) - [Building High Performance Engineering Teams at Beta MN Operators Workshop (2018)](/speaks/building-high-performance-engineering-teams-beta-mn-operators-may-2018.md) - [Building High Performance Engineering Teams at Beta MN Operators Workshop (2018)](/speaks/building-high-performance-engineering-teams-beta-mn-operators-september-2017.md) - [Building High Performance Engineering Teams at Beta MN Operators Workshop (2019)](/speaks/building-high-performance-engineering-teams-beta-mn-operators-february-2019.md) - [Building High Performance Teams at SCPD Conference (2017)](/speaks/building-high-performance-teams-scpd-conference-june-2017.md) - [Building HTML5 Tablet Apps for iOS & Android at Minnesota Developers Conference (2012)](/speaks/building-html5-tablet-apps-for-minnesota-developers-conference-september-2012.md) - [Building HTML5 Tablet Apps for iOS & Android at MinneWebCon (2012)](/speaks/building-html5-tablet-apps-for-minnewebcon-april-2012.md) - [Building HTML5 Tablet Apps for iOS & Android at Twin Cities Software Engineers (2012)](/speaks/building-html5-tablet-apps-for-twin-cities-software-july-2012.md) - [Building seamless workflows at UXPA Minnesota (2025)](/speaks/building-seamless-workflows-uxpa-minnesota-march-2025.md) - [Comp Sci in MN Public High Schools: Successes + Failures from an Educator and a Student at Minnebar (2018)](/speaks/comp-sci-in-mn-public-minnebar-april-2018.md) - [Computer Vision on iOS: Detecting Logos at Minnebar (2020)](/speaks/computer-vision-on-ios-detecting-minnebar-october-2020.md) - [Core Bluetooth Applications at Mobile March (2013)](/speaks/core-bluetooth-applications-mobile-march-march-2013.md) - [Creating Loyalty in Uncertain Times at Nostos Events (2020)](/speaks/creating-loyalty-in-uncertain-times-nostos-events-november-2020.md) - [Custom iOS Controls at Minnesota Developers Conference (2011)](/speaks/custom-ios-controls-minnesota-developers-conference-september-2011.md) - [Designing Dynamic Prototypes: Simulate Real App Experiences with Figma Variables at Minnebar (2025)](/speaks/designing-dynamic-prototypes-simulate-real-minnebar-may-2025.md) - [Designing for Emotion in Mobile at General Mills - Private Event (2014)](/speaks/designing-for-emotion-in-mobile-general-mills--october-2014.md) - [Designing for Emotion in Mobile at Minnebar (2014)](/speaks/designing-for-emotion-in-mobile-minnebar-april-2014.md) - [Designing for Emotion in Mobile at MobCon (2013)](/speaks/designing-for-emotion-in-mobile-mobcon-november-2013.md) - [Designing for Emotion in Mobile at Morsekode - Private Event (2014)](/speaks/designing-for-emotion-in-mobile-morsekode-private-april-2014.md) - [Designing for Platforms at MHTA Spring Conference (2014)](/speaks/designing-for-platforms-mhta-spring-conference-may-2014.md) - [Designing for Platforms at Midwest Mobile Summit (2014)](/speaks/designing-for-platforms-midwest-mobile-summit-may-2014.md) - [Designing for Platforms at Mobile March (2014)](/speaks/designing-for-platforms-mobile-march-march-2014.md) - [Designing with Developers in Mind (and Vice Versa) at DeveloperWeek (2025)](/speaks/designing-with-developers-in-mind-developerweek-february-2025.md) - [Designing with Developers in Mind (and Vice Versa) at Minnebar (2023)](/speaks/designing-with-developers-in-mind-minnebar-april-2023.md) - [Developing for Apple Vision Pro at Minnebar (2024)](/speaks/developing-for-apple-vision-pro-minnebar-april-2024.md) - [DevTool Diamonds: Power Features You Didn't Know Existed at Minnebar (2025)](/speaks/devtool-diamonds-power-features-you-minnebar-may-2025.md) - [Digital Accessibility As Strategy, Not Compliance at SXSW (2025)](/speaks/digital-accessibility-as-strategy-not-sxsw-march-2025.md) - [Digital Accessibility Is Strategy, Not Compliance at ProductWorld (2025)](/speaks/digital-accessibility-is-strategy-not-productworld-february-2025.md) - [Digital Accessibility Is Strategy, Not Compliance at Twin Cities Startup Week (2024)](/speaks/digital-accessibility-is-strategy-not-twin-cities-startup-september-2024.md) - [Digital Health is Not Just an App on Your Phone at MobCon Digital Health (2016)](/speaks/digital-health-is-not-just-mobcon-digital-health-april-2016.md) - [Discover 3D Photography at Minnebar (2022)](/speaks/discover-3d-photography-minnebar-june-2022.md) - [Don't Just Write Code, Design It at DevFest (2019)](/speaks/dont-just-write-code-design-devfest-february-2019.md) - [Don't Let Your Journey Map Lead Your Product Team Astray! at Minnebar (2025)](/speaks/dont-let-your-journey-map-minnebar-may-2025.md) - [Everybody Hates Nougat at DevFest (2018)](/speaks/everybody-hates-nougat-devfest-february-2018.md) - [Everybody Hates Nougat at Minnebar (2018)](/speaks/everybody-hates-nougat-minnebar-april-2018.md) - [Everything in Time: The Ultimate Guide to Android Date and Time Programming at Minnebar (2026)](/speaks/everything-in-time-the-ultimate-minnebar-may-2026.md) - [Executive Panel: Building Minnesota's Brightest Tech Future Together at MnTech Tech Connect (2026)](/speaks/executive-panel-building-minnesotas-brightest-mntech-tech-connect-april-2026.md) - [Experimenting with a fresh take on roadmaps at ProductCamp (2024)](/speaks/experimenting-with-a-fresh-take-productcamp-october-2024.md) - [Exploring NFC on Android at Minnebar (2014)](/speaks/exploring-nfc-on-android-minnebar-april-2014.md) - [Exploring Stateless UIs in Swift at Minnebar (2016)](/speaks/exploring-stateless-uis-in-swift-minnebar-april-2016.md) - [Finger Painting - Advanced Canvas and Touch Handling at DevFest (2017)](/speaks/finger-painting-advanced-canvas-devfest-february-2017.md) - [Finger Painting : Using a Canvas in Android at Minnebar (2017)](/speaks/finger-painting-using-a-minnebar-march-2017.md) - [From Prototype to MVP at Beta Operators Workshop (2020)](/speaks/from-prototype-to-mvp-beta-operators-workshop-april-2020.md) - [Generating API Documentation For Your Kotlin or Java Library at Minnebar (2024)](/speaks/generating-api-documentation-for-your-minnebar-april-2024.md) - [Good App Development at Apple Store Uptown (2013)](/speaks/good-app-development-apple-store-uptown-june-2013.md) - [Gradle tips and tricks to improve your Android build experience at Minnebar (2023)](/speaks/gradle-tips-and-tricks-to-minnebar-april-2023.md) - [Harnessing the Power of Nondeterminism for Software Engineering at DevFestMN (2025)](/speaks/harnessing-the-power-of-nondeterminism-devfestmn-december-2025.md) - [How does accessibility drive growth? at GDS Group Podcast (2025)](/speaks/how-does-accessibility-drive-growth-gds-group-podcast-march-2025.md) - [How To Build A Computer in Minecraft (And Other Games) at Minnebar (2022)](/speaks/how-to-build-a-computer-minnebar-june-2022.md) - [How To Direct a Software Team When You Have No Idea What They're Talking About at Minnebar (2025)](/speaks/how-to-direct-a-software-minnebar-may-2025.md) - [How to Protect Your MVP and Your Sanity and Still Meet Your Deadlines at MnTech Tech Connect (2026)](/speaks/how-to-protect-your-mvp-mntech-tech-connect-april-2026.md) - [How to use design to trick people into thinking your app is faster than it is at DevFest (2019)](/speaks/how-to-use-design-to-devfest-february-2019.md) - [Humans in the Loop: Hiring Software Engineers in the AI Era at DevFestMN (2025)](/speaks/humans-in-the-loop-hiring-devfestmn-december-2025.md) - [Humans in the Loop: Hiring Software Engineers in the AI Era at Open Source North (2026)](/speaks/humans-in-the-loop-hiring-open-source-north-may-2026.md) - [iOS AutoLayout at CocoaHeads (2013)](/speaks/ios-autolayout-cocoaheads-september-2013.md) - [iOS Training Part 2 at Mobile March (2012)](/speaks/ios-training-part-2-mobile-march-march-2012.md) - [Job Hunting During the Holidays at MinneAMA (2023)](/speaks/job-hunting-during-the-holidays-minneama-december-2023.md) - [Kotlin at 60fps - Write Hot Code Without Losing Your Cool at Minnebar (2020)](/speaks/kotlin-at-60fps-write-minnebar-october-2020.md) - [Let's Animate! An Introduction to RIVE.APP at Minnebar (2026)](/speaks/lets-animate-an-introduction-to-minnebar-may-2026.md) - [Lightning Talks at DevFest (2019)](/speaks/lightning-talks-devfest-february-2019.md) - [Matters of Life and Death: Truly Understanding the Android Application Lifecycle at DevFest (2016)](/speaks/matters-of-life-and-death-devfest-february-2016.md) - [Matters of Life and Death: Truly Understanding the Android Application Lifecycle at Minnebar (2016)](/speaks/matters-of-life-and-death-minnebar-april-2016.md) - [Meaningful Motion : Make the Transition! at DevFest (2017)](/speaks/meaningful-motion-make-the-devfest-february-2017.md) - [Meaningful Motion : Make the Transition! at Minnebar (2017)](/speaks/meaningful-motion-make-the-minnebar-march-2017.md) - [Mike Bollinger: Explorer & Entrepreneur at MESA - Private Event (2013)](/speaks/mike-bollinger-explorer-entrepreneur-mesa-private-february-2013.md) - [MinneAMA: Coding Exercises at MinneAMA (2022)](/speaks/minneama-coding-exercises-minneama-july-2022.md) - [Mobile App Accessibility at GMI Agency Summit (2022)](/speaks/mobile-app-accessibility-gmi-agency-summit-november-2022.md) - [Motivation Leadership at Pollen LikeABoss (2015)](/speaks/motivation-leadership-pollen-likeaboss-march-2015.md) - [Physics-Based Interfaces with UIKit Dynamics at Minnebar (2014)](/speaks/physics-based-interfaces-with-uikit-dynamics-minnebar-april-2014.md) - [Physics-Based Interfaces with UIKit Dynamics at Minnesota Developers Conference (2014)](/speaks/physics-based-interfaces-with-uikit-dynamics-minnesota-developers-conference-september-2014.md) - [Physics-Based Interfaces with UIKit Dynamics at Mobile March (2014)](/speaks/physics-based-interfaces-with-uikit-dynamics-mobile-march-march-2014.md) - [Politiclaw: Building a Local-First Political Co-Pilot With Openclaw at Minnebar (2026)](/speaks/politiclaw-building-a-local-first-political-minnebar-may-2026.md) - [Preppers & Comrades Unite: Building a Decentralized Mesh Network for Resilient Communication at Minnebar (2026)](/speaks/preppers-comrades-unite-building-minnebar-may-2026.md) - [Product Folk: A Community for Product Managers at Twin Cities Startup Week (2023)](/speaks/product-folk-a-community-for-twin-cities-startup-september-2023.md) - [Radical Sabbatical - How I structured one year of creative web-dev at Minnebar (2025)](/speaks/radical-sabbatical-how-i-minnebar-may-2025.md) - [RESTful Android at Gluecon (2012)](/speaks/restful-android-gluecon-may-2012.md) - [RESTful Android at Minnebar (2012)](/speaks/restful-android-minnebar-april-2012.md) - [RESTful Android at Mobile March (2012)](/speaks/restful-android-mobile-march-march-2012.md) - [Room Persistence Library: Using Android components to easily persist data at DevFest (2018)](/speaks/room-persistence-library-using-android-devfest-february-2018.md) - [Scaling a Codebase Beyond the Initial Build at Open Source North (2024)](/speaks/scaling-a-codebase-beyond-the-open-source-north-june-2024.md) - [Secrets of High Performing Product Teams at MinneAMA (2021)](/speaks/secrets-of-high-performing-product-minneama-january-2021.md) - [Secrets of High Performing Product Teams at MN Tech Connect (2021)](/speaks/secrets-of-high-performing-product-mn-tech-connect-june-2021.md) - [Smart Watches and what they mean for Mobile Experience Design at Midwest Mobile Summit (2015)](/speaks/smart-watches-and-what-they-midwest-mobile-summit-may-2015.md) - [Smart Watches and what they mean for Mobile Experience Design at MIMA Summit (2014)](/speaks/smart-watches-and-what-they-mima-summit-october-2014.md) - [Smart Watches and what they mean for Mobile Experience Design at Minnebar (2015)](/speaks/smart-watches-and-what-they-minnebar-may-2015.md) - [Smart Watches and what they mean for Mobile Experience Design at MobCon (2014)](/speaks/smart-watches-and-what-they-mobcon-november-2014.md) - [Smart Watches and what they mean for Mobile Experience Design at Mobile March (2015)](/speaks/smart-watches-and-what-they-mobile-march-march-2015.md) - [Static Code Checks for Android at Minnebar (2020)](/speaks/static-code-checks-for-android-minnebar-october-2020.md) - [Supercharging Your Design Workflow with Nested Symbols in Sketch at Minnebar (2017)](/speaks/supercharging-your-design-workflow-with-minnebar-march-2017.md) - [Table of Experts: AI panel discussion at Minneapolis-St. Paul Business Journal Panel (2024)](/speaks/table-of-experts-ai-panel-minneapolis-st-paul-business-february-2024.md) - [Talk to the Hand: Making Your App Accessible with VoiceOver at Minnebar (2017)](/speaks/talk-to-the-hand-making-minnebar-march-2017.md) - [Taming the Chaos: Mastering Swift Concurrency at Minnebar (2025)](/speaks/taming-the-chaos-mastering-swift-minnebar-may-2025.md) - [Testing Products for Accessibility: Why Manual and Automated Testing Go Hand-in-Hand at axe-con (2025)](/speaks/testing-products-for-accessibility-why-axe-con-february-2025.md) - [Testing Products for Accessibility: Why Manual and Automated Testing Go Hand-in-Hand at Minnebar (2025)](/speaks/testing-products-for-accessibility-why-minnebar-may-2025.md) - [The Composable Architecture Meet-and-Greet at Minnebar (2022)](/speaks/the-composable-architecture-meet-and-greet-minnebar-june-2022.md) - [The Future of Customer Experience at Healthcare Event - Private (2018)](/speaks/the-future-of-customer-experience-healthcare-event--july-2018.md) - [The Language of Motion : Touch Handling in Android at Minnebar (2017)](/speaks/the-language-of-motion--minnebar-march-2017.md) - [The Preflight Checklist: Lessons learned the hard way so you can ship your app the easy way at Minnebar (2019)](/speaks/the-preflight-checklist-lessons-learned-minnebar-april-2019.md) - [The Process & Practice of Mobile UI Design at Atomic Playpen - Private Event (2013)](/speaks/the-process-practice-of-atomic-playpen--april-2013.md) - [The Process & Practice of Mobile UI Design at Medtronic - Private Event (2013)](/speaks/the-process-practice-of-medtronic-private-january-2013.md) - [The Process & Practice of Mobile UI Design at Midwest Mobile Summit (2013)](/speaks/the-process-practice-of-midwest-mobile-summit-april-2013.md) - [The Process & Practice of Mobile UI Design at MIMA Summit (2013)](/speaks/the-process-practice-of-mima-summit-october-2013.md) - [The Process & Practice of Mobile UI Design at MinneWebCon (2013)](/speaks/the-process-practice-of-minnewebcon-april-2013.md) - [The Process & Practice of Mobile UI Design at MobCon (2012)](/speaks/the-process-practice-of-mobcon-november-2012.md) - [The Process & Practice of Mobile UI Design at Mobile March (2013)](/speaks/the-process-practice-of-mobile-march-march-2013.md) - [The Process & Practice of Mobile UI Design at Zeus Jones - Private Event (2013)](/speaks/the-process-practice-of-zeus-jones--march-2013.md) - [The Startup Game Show at Minnebar (2020)](/speaks/the-startup-game-show-minnebar-october-2020.md) - [Thriving in the Great Resignation Era: How to Build and Retain Amazing Teams at Twin Cities Startup Week (2022)](/speaks/thriving-in-the-great-resignation-twin-cities-startup-september-2022.md) - [UI Design Trickery That Makes Software Faster at Open Source North (2023)](/speaks/ui-design-trickery-that-makes-open-source-north-may-2023.md) - [Using design to trick people into thinking your app is faster than it is at Minnebar (2019)](/speaks/using-design-to-trick-people-minnebar-april-2019.md) - [Using design to trick people into thinking your app is faster than it is at MN Tech Connect (2020)](/speaks/using-design-to-trick-people-mn-tech-connect-september-2020.md) - [Using design to trick people into thinking your app is faster than it is at Twin Cities Startup Week (2019)](/speaks/using-design-to-trick-people-twin-cities-startup-october-2019.md) - [UX-Driven Code: Building with the User in Mind at UXDX (2025)](/speaks/ux-driven-code-building-with-the-uxdx-june-2025.md) - [Value-Oriented Programming at Twin Cities iPhone Developers Meetup (2018)](/speaks/value-oriented-programming-twin-cities-iphone-october-2018.md) - [Voice is The Interface: UX Lessons Learned Designing for Voice at Fahren Voice UX Event (2018)](/speaks/voice-is-the-interface-ux-fahren-voice-ux-october-2018.md) - [What Mobile Means Now at Mobile Twin Cities (2018)](/speaks/what-mobile-means-now-mobile-twin-cities-september-2018.md) - [What Mobile Means Now at US Bank InQ (2017)](/speaks/what-mobile-means-now-us-bank-inq-august-2017.md) - [What Mobile Means Now: Beyond Tapping on Glass at Blue Cross Blue Shield - Private Event (2016)](/speaks/what-mobile-means-now-beyond-blue-cross-blue-january-2016.md) - [What Mobile Means Now: Beyond Tapping on Glass at Delta Dental - Private Event (2016)](/speaks/what-mobile-means-now-beyond-delta-dental--february-2016.md) - [What Mobile Means Now: Beyond Tapping on Glass at Duluth Trading Company - Private Event (2016)](/speaks/what-mobile-means-now-beyond-duluth-trading-company-april-2016.md) - [What Wall Street Thinks of Your Brand at MAMA2 (2016)](/speaks/what-wall-street-thinks-of-mama2-january-2016.md) - [What's a Transformer at DevFestMN (2023)](/speaks/whats-a-transformer-devfestmn-december-2023.md) - [What's a Transformer? Understanding the Innovation That Changed Artificial Intelligence at Minnebar (2024)](/speaks/whats-a-transformer-understanding-the-minnebar-april-2024.md) - [When *NOT* to Speak to Users: Determining If Unmoderated User Research Can Scale Your Efforts 🧐 at Minnebar (2023)](/speaks/when-not-to-speak-to-minnebar-april-2023.md) - [When will it be done? How bad questions give you bad software (and what to ask instead) at Minnebar (2019)](/speaks/when-will-it-be-done-minnebar-april-2019.md) - [When will it be done? How bad questions give you bad software (and what to ask instead) at productDNA (2019)](/speaks/when-will-it-be-done-productdna-june-2019.md) - [Why I built this: Ignite talks from 5 emerging startups at Minnebar (2019)](/speaks/why-i-built-this-ignite-minnebar-april-2019.md) - [Why you should (or shouldn't) do A/B testing. at Minnebar (2022)](/speaks/why-you-should-or-shouldnt-minnebar-june-2022.md) - [Why You Should De-Google Your Online Data and Start Self Hosting at Minnebar (2024)](/speaks/why-you-should-de-google-your-minnebar-april-2024.md) - [You're Not Leading. You're Reacting. at Minnebar (2026)](/speaks/youre-not-leading-youre-reacting-minnebar-may-2026.md) - [Your Future Mobile Strategy at Club-E (2016)](/speaks/your-future-mobile-strategy-club-e-may-2016.md) - [Your Future Mobile Strategy at MHTA Spring Conference (2016)](/speaks/your-future-mobile-strategy-mhta-spring-conference-april-2016.md) - [Zero Tech Debt: Building a High-Standards Engineering Culture in the Age of AI at Tech Connect (2025)](/speaks/zero-tech-debt-building-a-tech-connect-may-2025.md) - [Zero Tech Debt: How to Build an Engineering Culture of No Deferred Work at DeveloperWeek Management (2024)](/speaks/zero-tech-debt-how-to-developerweek-management-may-2024.md) - [Zero Tech Debt: How to Build an Engineering Culture of No Deferred Work at DevFestMN (2024)](/speaks/zero-tech-debt-how-to-devfestmn-december-2024.md) - [Zero Tech Debt: How to Build an Engineering Culture of No Deferred Work at Minnebar (2024)](/speaks/zero-tech-debt-how-to-minnebar-april-2024.md) - [Zero Tech Debt: How to Build an Engineering Culture of No Deferred Work at Twin Cities Startup Week (2024)](/speaks/zero-tech-debt-how-to-twin-cities-startup-september-2024.md) - [Zero to One with Mobile: What You Need to Know Before Bringing Your First Mobile App to Market at Twin Cities Startup Week (2022)](/speaks/zero-to-one-with-mobile-twin-cities-startup-september-2022.md) ## Videos - [3D on the Web: Using React and Three.js](/teaches/3d-on-the-web-using-april-2025-82921e353e.md) - [5 Things We've Learned from Running a North Star Workshop](/teaches/5-things-weve-learned-from-december-2023-b01cbf85d9.md) - [7 ways cat people make better UX designers](/teaches/7-ways-cat-people-make-march-2025-cb6a4857b6.md) - [Best Practices When Responding to App Store Reviews](/teaches/best-practices-when-responding-to-november-2021-f7a8214add.md) - [Beyond Aesthetics - How metrics transform design into business strategy](/teaches/beyond-aesthetics-how-metrics-september-2025-b11705efbf.md) - [Breaking Bad (Habits) of designing for the web](/teaches/breaking-bad-habits-of-designing-november-2024-fc10987bb8.md) - [Character Development: Bringing your App mascot to life](/teaches/character-development-bringing-your-app-march-2024-473c6c8717.md) - [Continuous Delivery & Automation at Livefront](/teaches/continuous-delivery-automation-at-june-2023-e84e16b4c5.md) - [Creating Apps for Everyone: A Guide to Mobile App Accessibility](/teaches/creating-apps-for-everyone-a-march-2023-889e1b523e.md) - [Creating Custom SF Symbols](/teaches/creating-custom-sf-symbols-june-2025-32fa9b734b.md) - [Customizing Your API Docs With Dokka](/teaches/customizing-your-api-docs-with-march-2024-24fe88fc84.md) - [Debugging Mobile Apps with Loupe](/teaches/debugging-mobile-apps-with-loupe-june-2023-bffb8119ec.md) - [Design Audits: Taking the Red Pen into the Dev Process](/teaches/design-audits-taking-the-red-october-2023-582141697f.md) - [Diamonds in the DevTools](/teaches/diamonds-in-the-devtools-december-2025-f387137cf9.md) - [Do I need a hypothesis for my UX research study?](/teaches/do-i-need-a-hypothesis-may-2024-284b26a9f0.md) - [Don't Sweat the Small Stuff: Improving pull request workflow through automation](/teaches/dont-sweat-the-small-stuff-december-2024-f18eeeb2be.md) - [Enforce Correctness Through API Design](/teaches/enforce-correctness-through-api-design-december-2021-d399bb127e.md) - [Error States, Your New Bestie](/teaches/error-states-your-new-bestie-may-2023-37a516fba5.md) - [Generative AI for iOS Unit Testing](/teaches/generative-ai-for-ios-unit-february-2024-b1b4d58321.md) - [Gson Deserialization: Three Tips I Wish I Knew](/teaches/gson-deserialization-three-tips-i-december-2021-d2d93e1ee4.md) - [Hiring: The Livefront Way](/teaches/hiring-the-livefront-way-december-2025-9002c1923e.md) - [How To Be An Expert (At Not Being An Expert)](/teaches/how-to-be-an-expert-november-2021-0b3d2c8f67.md) - [How to Navigate App Store Review](/teaches/how-to-navigate-app-store-april-2023-7d2c28a1bf.md) - [How to Transition to the Small Screen](/teaches/how-to-transition-to-the-november-2021-1c1c6464da.md) - [Implementing Dark Theme for Android](/teaches/implementing-dark-theme-for-android-april-2023-c032988d94.md) - [Introduction to Product Led Growth](/teaches/introduction-to-product-led-growth-december-2024-a2883517ea.md) - [iOS Tips from Gandalf (Halloween Special)](/teaches/ios-tips-from-gandalf-halloween-october-2025-b0da4c94ab.md) - [JavaScript to WebAssembly](/teaches/javascript-to-webassembly-may-2023-d81921de3c.md) - [Localizing Xcode String Catalogs with LangChain](/teaches/localizing-xcode-string-catalogs-with-august-2025-1343c60ef5.md) - [Measuring Android Build Times](/teaches/measuring-android-build-times-november-2023-8827049625.md) - [Metrics that Matter, Measuring Product Impact the Right Way](/teaches/metrics-that-matter-measuring-product-december-2024-ccbff561db.md) - [My Second Least Favorite Football Team...](/teaches/my-second-least-favorite-football-november-2021-27dac339c3.md) - [Natural Intelligence A forward thinking approach to AI](/teaches/natural-intelligence-a-december-2023-993822720a.md) - [One Repo to Rule Them All](/teaches/one-repo-to-rule-them-december-2024-94a5f8c3ff.md) - [Opening the Digital Front Door with iOS 18](/teaches/opening-the-digital-front-door-february-2025-d9f6406aa7.md) - [React to React Native](/teaches/react-to-react-native-june-2023-825b908b81.md) - [Roku is a Bizarre Platform](/teaches/roku-is-a-bizarre-platform-december-2021-0c00970c3e.md) - [Scan to Win: How to elevate your mobile app with QR codes](/teaches/scan-to-win-how-to-december-2025-952765822a.md) - [SQLCipher & the Swift Package Manager](/teaches/sqlcipher-the-swift-package-december-2023-1423001bd6.md) - [Sticky Footers in SwiftUI](/teaches/sticky-footers-in-swiftui-april-2023-25779d001d.md) - [Superhuman Programming; Using AI to Unlock Limitless Potential](/teaches/superhuman-programming-using-ai-to-september-2024-608c2d12e4.md) - [SwiftUI Custom Alignment](/teaches/swiftui-custom-alignment-december-2024-4741134684.md) - [Telling Your Code's Story With Commits](/teaches/telling-your-codes-story-with-august-2023-c17154529f.md) - [Testing: Mocks vs Fakes](/teaches/testing-mocks-vs-fakes-may-2023-f02c98ce10.md) - [The Day You Learned Shortcuts](/teaches/the-day-you-learned-shortcuts-november-2021-bf122931bd.md) - [The Screen Reader Experience](/teaches/the-screen-reader-experience-september-2023-a469f60436.md) - [The State of Compose: An overview of Jetpack Compose](/teaches/the-state-of-compose-an-december-2024-73656d95a0.md) - [The UX of a Developer](/teaches/the-ux-of-a-developer-november-2021-1f16ef552e.md) - [Tips for Nailing a Video Interview in Digital](/teaches/tips-for-nailing-a-video-april-2024-70be101c56.md) - [Translating Common XML TalkBack Solutions to Compose](/teaches/translating-common-xml-talkback-solutions-november-2023-17dba4d485.md) - [Unidirectional Data Flow](/teaches/unidirectional-data-flow-december-2023-67a3bcd360.md) - [Using Adobe's Delivery API to get A/B Test Data](/teaches/using-adobes-delivery-api-to-august-2024-9b6e873d92.md) - [Version Catalogs - A one stop shop for dependencies](/teaches/version-catalogs-a-one-september-2025-ae91cc3a47.md) - [Vestigial Design - Investigating Instagram's Hidden Appendage](/teaches/vestigial-design-investigating-instagrams-november-2021-01bbe22bc2.md) - [Write Better Unit Tests](/teaches/write-better-unit-tests-november-2021-b73034d62c.md) - [XCTestCase Lifecycle Management](/teaches/xctestcase-lifecycle-management-december-2023-4bdf35f32d.md) - [Your Strategy is a Garden](/teaches/your-strategy-is-a-garden-july-2025-ee79affe01.md) - [Zero to One with Mobile. Lesson 1: Draft a quarterback you trust](/teaches/zero-to-one-with-mobile-december-2023-7cfc745768.md) - [Zero to One with Mobile. Lesson 2: Ask yourself why should this product exist](/teaches/zero-to-one-with-mobile-december-2023-099cb0fd4b.md) - [Zero to One with Mobile. Lesson 3: Emphasize themes over features](/teaches/zero-to-one-with-mobile-december-2023-9eb8c54b25.md) - [Zero to One with Mobile. Lesson 4: As for technical debt, practice frugality](/teaches/zero-to-one-with-mobile-december-2023-7c836bf785.md) - [Zero to One with Mobile. Lesson 5: Understand technology choice implications](/teaches/zero-to-one-with-mobile-december-2023-21d750bea6.md) - [Zero to One with Mobile. Lesson 6: Build feedback loops into every stage](/teaches/zero-to-one-with-mobile-december-2023-5aceb442e0.md) - [Zero to One with Mobile. Lesson 7: Bring your organization along for the ride](/teaches/zero-to-one-with-mobile-december-2023-80ab193cc1.md) ## Writing - ["Yeah, no": Using Claude Code to Write Concise PR Descriptions](/writing/yeah-no-using-claude-code-to-write-concise-pr-descriptions.md) - [10 Swift Extensions We Use at Livefront](/writing/10-swift-extensions-we-use-at-livefront.md) - [10 Tips to Spice Up Your Fresh-Grad Portfolio](/writing/10-tips-to-spice-up-your-fresh-grad-portfolio.md) - [3 Insights From My Budding UX Career](/writing/3-insights-from-my-budding-ux-career.md) - [4 hard-won lessons from working on a professional software engineering team](/writing/4-hard-won-lessons-from-working-on-a-professional-software-engineering-team.md) - [4 tips for using Carthage](/writing/4-tips-for-using-carthage.md) - [5 Tips to Surviving a Remote Internship](/writing/5-tips-to-surviving-a-remote-internship.md) - [8 Steps to Finding a Successful Product Development Partner](/writing/8-steps-to-finding-a-successful-product-development-partner.md) - [A Case for Alphabetization](/writing/a-case-for-alphabetization.md) - [A Core Location Abstraction Layer with Combine and SwiftUI](/writing/a-core-location-abstraction-layer-with-combine-and-swiftui.md) - [A Practical Guide to Type-Safe Image Handling in React Native](/writing/a-practical-guide-to-type-safe-image-handling-in-react-native.md) - [A Product Manager's Guide to Roku Beta Testing Programs.](/writing/a-product-managers-guide-to-roku-beta-testing-programs.md) - [A Selectable, Expanding List in SwiftUI](/writing/a-selectable-expanding-list-in-swiftui.md) - [A win for you: The Developer Tax Saga Continues](/writing/a-win-for-you-the-developer-tax-saga-continues.md) - [Accessibility Dos and Don'ts for Interactive Cards](/writing/accessibility-dos-and-donts-for-interactive-cards.md) - [Adapting Gson to Kotlin](/writing/adapting-gson-to-kotlin.md) - [Advanced Android Edge-to-Edge (Part 1): Keyboard Transitions with MotionLayout](/writing/advanced-android-edge-to-edge-part-1-keyboard-transitions-with-motionlayout.md) - [Advanced Android Edge-to-Edge (Part 2): BottomSheetDialogFragment](/writing/advanced-android-edge-to-edge-part-2-bottomsheetdialogfragment.md) - [Adventures in iOS Dev Automation](/writing/adventures-in-ios-dev-automation.md) - [Agent vs. Assistant: What Makes Agentic AI Fundamentally Different from Generative AI Chatbots](/writing/agent-vs-assistant-what-makes-agentic-ai-fundamentally-different-from-generative-ai-chatbots.md) - [Alarming technique for letting your user rearrange objects](/writing/alarming-technique-for-letting-your-user-rearrange-objects.md) - [All eyes on me](/writing/all-eyes-on-me.md) - [Android Static Code Checks -- Keep Your Codebase Tidy With Detekt](/writing/android-static-code-checks-keep-your-codebase-tidy-with-detekt.md) - [Animating font size in UILabels](/writing/animating-font-size-in-uilabels.md) - [Applying Design Concepts to Code](/writing/applying-design-concepts-to-code.md) - [Applying Design Concepts to Code -- Part II](/writing/applying-design-concepts-to-code-part-ii.md) - [Applying Design Concepts to Code -- Part III](/writing/applying-design-to-software-part-iii.md) - [Automate everything -- and keep iterating with Apple Shortcuts](/writing/automate-everything-and-keep-iterating-with-apple-shortcuts.md) - [Bad Dates with DatePicker](/writing/bad-dates-with-datepicker.md) - [Basic Continuous Integration with Jenkins, Xcode, and GitHub](/writing/basic-continuous-integration-with-jenkins-xcode-and-github.md) - [Basic Intelligent Recomposition in Android Compose](/writing/basic-intelligent-recomposition-in-android-compose.md) - [Best practices when responding to App Store reviews](/writing/best-practices-when-responding-to-app-store-reviews.md) - [Beyond Anecdotes: Balancing Qualitative and Quantitative Data for Smarter Product Decisions](/writing/beyond-anecdotes-balancing-qualitative-and-quantitative-data-for-smarter-product-decisions.md) - [Building Better Tests with Compose Semantics](/writing/building-better-tests-with-compose-semantics.md) - [Building Insights with Product Usage Data](/writing/building-insights-with-product-usage-data.md) - [Cast Aside](/writing/cast-aside.md) - [Charting a Course from Android Compose Nav2 to Nav3: Manually Inject Navigation Arguments](/writing/charting-a-course-from-android-compose-nav2-to-nav3-manually-inject-navigation-arguments.md) - [Charting a Course from Android Compose Nav2 to Nav3: Rework Bottom Sheet Navigation Destinations](/writing/charting-a-course-from-android-compose-nav2-to-nav3-rework-bottom-sheet-navigation-destinations.md) - [Charting a Course from Android Compose Nav2 to Nav3: Use Metadata for Transition Animations](/writing/charting-a-course-from-android-compose-nav2-to-nav3-use-metadata-for-transition-animations.md) - [Charting a Course from Android Compose Navigation 2 to Navigation 3](/writing/charting-a-course-from-android-compose-navigation-2-to-navigation-3.md) - [Coroutine Misconceptions: Whose Context Is It Anyway?](/writing/coroutine-misconceptions-whose-context-is-it-anyway.md) - [Cover up your users' sensitive data -- it's private.](/writing/cover-up-your-users-sensitive-data-it-s-private.md) - [Crafting Accessible Components in Compose](/writing/crafting-accessible-components-in-compose.md) - [Crafting your Product AI Principles: Taking Cues from Apple & Google on the Themes of Reliability](/writing/crafting-your-product-ai-principles-taking-cues-from-apple-google-on-the-themes-of-reliability.md) - [Creating a Dynamic Draggable ScrollView with UIKit for SwiftUI](/writing/creating-a-dynamic-draggable-scrollview-with-uikit-for-swiftui.md) - [Creating a Service Layer in Swift](/writing/creating-a-service-layer-in-swift.md) - [Creating Custom SF Symbols](/writing/creating-custom-sf-symbols.md) - [Dagger Hilt: Testing injected Android components with code coverage](/writing/dagger-hilt-testing-injected-android-components-with-code-coverage.md) - [Design Audits: Adding One More Hat to the Product Design Haberdashery](/writing/design-audits-adding-one-more-hat-to-the-product-design-haberdashery.md) - [Ditch the Extra Plugin: A Simple Way to Render SVGs in React Native](/writing/ditch-the-extra-plugin-a-simple-way-to-render-svgs-in-react-native.md) - [Documenting Design Workflows](/writing/documenting-design-workflows.md) - [Does Your Team Need a Product Manager?](/writing/does-your-team-need-a-product-manager.md) - [Don't Live with Regret. Build a Kill Switch into your Mobile App](/writing/dont-live-with-regret-build-a-kill-switch-into-your-mobile-app.md) - [Don't Make Your Code Predict the Future](/writing/dont-make-your-code-predict-the-future.md) - [Embracing the Distance: Strategies for Successful Unmoderated User Research](/writing/embracing-the-distance-strategies-for-successful-unmoderated-user-research.md) - [Enhancing Brand Harmony through Design Systems](/writing/enhancing-brand-harmony-through-design-systems.md) - [Error States, Your New Bestie](/writing/error-states-your-new-bestie.md) - [Exploring Memoization in Swift](/writing/exploring-memoization-in-swift.md) - [Exploring the Benefits of Git Worktree](/writing/exploring-the-benefits-of-git-worktree.md) - [Five Reasons To Write Unit Tests](/writing/five-reasons-to-write-unit-tests.md) - [Fixing Issues with Codable Identifiers](/writing/fixing-issues-with-codable-identifiers.md) - [Flight School: 3 Key UX/UI principles you might not have learned in your graphic design program](/writing/flight-school.md) - [From Phone Trees to AI Agents: Building Trust in Natural Language Systems](/writing/from-phone-trees-to-ai-agents-building-trust-in-natural-language-systems.md) - [From Zero to UX Hero: Navigating the Bootcamp Journey](/writing/from-zero-to-ux-hero.md) - [Higher-Order Code Smells](/writing/higher-order-code-smells.md) - [Higher-Order Code Smells (Part 2)](/writing/higher-order-code-smells-part-2.md) - [Home improvement insights that will make you a better designer.](/writing/home-improvement-insights-that-will-make-you-a-better-designer.md) - [How (Programming) Languages Shape Problem-Solving](/writing/how-programming-languages-shape-problem-solving.md) - [How Learning UX Made Me a Better Developer](/writing/how-learning-ux-made-me-a-better-developer.md) - [How to add a dynamic Swift framework to a Command Line Tool](/writing/how-to-add-a-dynamic-swift-framework-to-a-command-line-tool.md) - [How to change the Toolbar font on Android](/writing/how-to-change-the-toolbar-font-on-android.md) - [How to Choose a Digital Product Partner: A Complete Guide for 2025](/writing/how-to-choose-a-digital-product-partner-a-complete-guide-for-2025.md) - [How to connect your Android emulator to a local web service](/writing/how-to-connect-your-android-emulator-to-a-local-web-service.md) - [How to customize the style of your Dokka documentation](/writing/how-to-customize-the-style-of-your-dokka-documentation.md) - [How to debug background fetch events on iOS](/writing/how-to-debug-background-fetch-events-on-ios.md) - [How to Design a Successful A/B Test](/writing/how-to-design-a-successful-a-b-test.md) - [How to get featured on the App Store by making Apple look good](/writing/how-to-get-featured-on-the-app-store-by-making-apple-look-good.md) - [How to lead a software team when you have no idea what they're talking about](/writing/how-to-lead-a-software-team-when-you-have-no-idea-what-theyre-talking-about.md) - [How to Level Up Your Technical Acumen as a Non-Technical Person](/writing/how-to-level-up-your-technical-acumen-as-a-non-technical-person.md) - [How To Sabotage Your Project Using Inconsistency](/writing/how-to-sabotage-your-project-using-inconsistency.md) - [How to Stop Text Overflow in React Native](/writing/how-to-stop-text-overflow-in-react-native.md) - [I Ditched User Personas -- And Here's Why You Should Too](/writing/i-ditched-user-personas-and-heres-why-you-should-too.md) - [Identity Crisis](/writing/identity-crisis.md) - [If You Want To Design Good APIs, Start Thinking Like A Designer](/writing/if-you-want-to-design-good-apis-start-thinking-like-a-designer.md) - [Implementing a Flight Recorder: Keeping Your Application in the Clear](/writing/implementing-a-flight-recorder-keeping-your-application-in-the-clear.md) - [Improve Android build-times by using resConfigs](/writing/improve-android-build-times-by-using-resconfigs.md) - [Integrating Your Roku Channel With Roku Pay](/writing/integrating-your-roku-channel-with-roku-pay.md) - [Intro to Polymorphism with Kotlinx.Serialization](/writing/intro-to-polymorphism-with-kotlinx-serialization.md) - [Introduction to SwiftPoet](/writing/introduction-to-swiftpoet.md) - [Is an App Clip Right For Your App?](/writing/is-an-app-clip-right-for-your-app.md) - [It's Alive! Turning design mock-up into reality](/writing/its-alive.md) - [It's All About Customer Behavior](/writing/its-all-about-customer-behavior.md) - [Jurassic Markup: Surviving Custom Email Template Development](/writing/jurassic-markup-surviving-custom-email-template-development.md) - [Keep Your iOS Tests Quick by Removing Artificial Delays](/writing/keep-your-ios-tests-quick-by-removing-artificial-delays.md) - [Kotlin @ 60FPS](/writing/kotlin-60fps.md) - [Kotlin for Java: Part I -- Constructors & Builders](/writing/kotlin-for-java-part-i-constructors-builders.md) - [Kotlin: A tale of cyclical static initialization](/writing/kotlin-a-tale-of-static-cyclical-initialization.md) - [kotlinx.serialization: (de)serializing JSON's nullable, optional properties](/writing/kotlinx-serialization-de-serializing-jsons-nullable-optional-properties.md) - [Leveling Up as a Product Designer](/writing/leveling-up-as-a-product-designer.md) - [Lies, Damn Lies, and Semantic Versioning](/writing/lies-damn-lies-and-semantic-versioning.md) - [Migration: Gson to Kotlinx.Serialization](/writing/migration-gson-to-kotlinx-serialization.md) - [Minnesota Nice Pull Requests: Writing Better PR Descriptions](/writing/minnesota-nice-pull-requests-writing-better-pr-descriptions.md) - [Mistakes to Avoid When Switching from Graphic Design to Product Design](/writing/mistakes-to-avoid-when-switching-from-graphic-design-to-product-design.md) - [Moderated vs. Unmoderated User Testing and the Goldilocks Method That's Just Right](/writing/moderated-vs-unmoderated-user-testing-and-the-goldilocks-method-thats-just-right.md) - [My Favorite Design Patterns: State](/writing/my-favorite-design-patterns-state.md) - [Native Android Libraries Gone Bad](/writing/native-android-libraries-gone-bad.md) - [Niche Doesn't Mean Small](/writing/niche-doesnt-mean-small.md) - [Optimism is not assurance](/writing/optimism-is-not-assurance.md) - [Optimize Your Product Strategy Efforts: The Art of Harnessing Unmoderated User Research](/writing/the-art-of-harnessing-unmoderated-user-research.md) - [Padding vs Content Margins: A Discreet VoiceOver Nuance](/writing/padding-vs-content-margins-a-discreet-voiceover-nuance.md) - [Part 2: Key Features of Successful Retail Mobile Apps](/writing/part-2-key-features-of-successful-retail-mobile-apps.md) - [Part 3: Integrating In-Store and Offline Channels through Mobile Apps](/writing/part-3-integrating-in-store-and-offline-channels-through-mobile-apps.md) - [Part 4: Future Trends and Innovations in Retail Mobile Apps](/writing/part-4-future-trends-and-innovations-in-retail-mobile-apps.md) - [PDF Pitfalls in Xcode](/writing/pdf-pitfalls-in-xcode.md) - [Personalization (But Not Creepy)](/writing/personalization-but-not-creepy.md) - [Pick the Process, Pick the Culture](/writing/pick-the-process-pick-the-culture.md) - [Practical Dynamic Type](/writing/practical-dynamic-type.md) - [Practical Dynamic Type, Part 2: Testing](/writing/practical-dynamic-type-part-2-testing.md) - [Practical Dynamic Type, Part 3: Attributed Text](/writing/practical-dynamic-type-part-3-attributed-text.md) - [Put me in coach (marks)](/writing/put-me-in-coach-marks.md) - [QA Quonversations: AI's Place in Software Testing](/writing/qa-quonversations-ais-place-in-software-testing.md) - [RecyclerView Trick: Selectively bind ViewHolders with Payloads](/writing/recyclerview-trick-selectively-bind-viewholders-with-payloads.md) - [RESTful API Design Tips for Digital Products](/writing/restful-api-design-tips-for-digital-products.md) - [Rethinking the Product Roadmap: Bring Back the Utility and Practicality](/writing/rethinking-the-product-roadmap-bring-back-the-utility-and-practicality.md) - [Screening Your Code For Risks: Lessons From a Minnesota Porch](/writing/screening-your-code-for-risks-lessons-from-a-minnesota-porch.md) - [sealed-enum: Replacing Enums in Kotlin](/writing/sealed-enum-replacing-enums-in-kotlin.md) - [Second Drafts](/writing/second-drafts.md) - [Selling in your mobile app? Let's save you some money!](/writing/selling-in-your-mobile-app-lets-save-you-some-money.md) - [Spacial Orientation for Developers in a Hurry](/writing/spacial-orientation-for-developers-in-a-hurry.md) - [Staying Focused in a Mass Market](/writing/staying-focused-in-a-mass-market.md) - [Stop Putting State In Your View Models](/writing/stop-putting-state-in-your-view-models.md) - [Strengthening Collaboration Between Product & Brand](/writing/strengthening-collaboration-between-product-brand.md) - [Suppressing annoying Kotlin compiler warnings](/writing/suppressing-annoying-kotlin-compiler-warnings.md) - [Suspending Lambdas in Kotlin](/writing/suspending-lambdas-in-kotlin.md) - [Swift expected nil, not ](/writing/swift-expected-nil-not-nil.md) - [Swift Macro Client Testing](/writing/swift-macro-client-testing.md) - [Swift Macro Expansion Testing](/writing/swift-macro-expansion-testing.md) - [Swift Macro Unit Testing](/writing/swift-macro-unit-testing.md) - [SwiftUI Custom Alignment](/writing/swiftui-custom-alignment.md) - [SwiftUI's Missing onLayout Modifier](/writing/swiftuis-missing-onlayout-modifier.md) - [Take More Shortcuts](/writing/take-more-shortcuts.md) - [Talkback Ordering in Android Jetpack Compose](/writing/talkback-ordering-in-android-jetpack-compose.md) - [Temporal: Getting a Second Date](/writing/temporal-getting-a-second-date.md) - [The (best) way to perform online user testing with Principle](/writing/the-best-way-to-perform-online-user-testing-with-principle.md) - [The Art of Presenting Your Designs Effectively](/writing/the-art-of-presenting-your-designs-effectively.md) - [The Best Features Mean Nothing without a Clear Product Strategy](/writing/the-best-features-mean-nothing-without-a-clear-product-strategy.md) - [The Evolution of Digital Product Teams -- A CXO's Perspective](/writing/the-evolution-of-digital-product-teams-a-cxos-perspective.md) - [The First 2 Commits Every Android Project Should Have](/writing/the-first-2-commits-every-android-project-should-have.md) - [The Hidden Dangers of AI Note-Taking Assistants: What Leaders Need to Know](/writing/the-hidden-dangers-of-ai-note-taking-assistants-what-leaders-need-to-know.md) - [The importance of