We care a lot about user experience at Duolingo and monitor it via a number of app performance metrics. App performance is especially a challenge on Android because of the breadth of the ecosystem of devices. In 2021, we ran a cross-company Android reboot effort to improve the code architecture and improve latency. We then set latency and performance guardrails to prevent new changes from slowing down the app. Despite our best efforts, though, latency crept up. Early in 2024, one of our data scientists, Daniel Distler, was able to demonstrate that improving latency in some key parts of the user journey would drive solid increases in DAUs (daily active users), one of our main company metrics. This was the nudge we needed to re-invest in the effort. We created a cross-company tiger team to work on improving Android performance. Throughout the year, 20 software engineers participated. In 2024, the team ran 200+ A/B tests on Android performance and delivered remarkable results: - Entry-level device app open conversion jumped from 91% to 94.7% - Entry-level device users experiencing 5+ second app open latency dropped from 39% to just 8% - Hundreds of thousands of DAU gains were directly attributable to these performance enhancements and we expect the actual long-term impact was even larger What work proved most impactful? - Almost half of our DAU impact came from improving code efficiency - Another 20% of impact came from optimizing network requests - Another chunk came from deferring non-critical work to happen later in key flows - Baseline profiles took a lot of time to get right, but sped up application start-up by 30% Want to learn more? Check out Chenglai Huang and Michael Huang’s blog post: https://lnkd.in/dni58Hez #engineering
Mobile Design Challenges
Explore top LinkedIn content from expert professionals.
-
-
This Housing Ramp Photo Just Went Viral – And Every Product Manager Needs to See It A wheelchair ramp abroad that's "technically compliant" but completely unusable. Steep slope, impossible navigation, pure checkbox thinking. Product Managers: 📌 SAVE this for your next compliance discussion. This ramp screams the same problem I see in fintech products daily: ✅ KYC implemented = compliant ❌ 47-step verification flow = user nightmare The brutal truth: Regulatory compliance can either kill your product or become your competitive edge. I've launched many fintech products. EVERY single one hit regulatory roadblocks. But here's what I learned: >>Compliance-first design isn't slower – it's faster. My 3-Step Framework: 1/ Design Integration - Embed compliance into UX from day one - Make verification feel seamless, not punishing - Test with real users, not just legal checklists 2/ Cross-Functional Collaboration - Get legal/compliance teams brainstorming solutions - Use data to show user impact, not just regulatory risk - Build bridges, not barriers between teams 3/ Validate Early & Often - Test compliance flows with actual users - Get regulator feedback before launch - Document everything, demonstrate impact Golden rule: Build WITH regulations, not around them. Because users can spot fake compliance instantly. But thoughtful regulatory design? That creates product differentiation and user trust. The companies winning in fintech aren't avoiding compliance – they're making it invisible. What's your biggest fintech compliance challenge? Share below in comments Like 👍 if this resonates, Share 🔄 to your network Follow me (Monica Jasuja) for more product insights that actually ship.
-
I failed at 2 HRIS implementations. Back to back. The first failure? I didn’t do any discovery. I picked the platform I thought would be best. The second failure? I did discovery… but badly. I asked employees and managers what they wanted. Not what problems they had. Worse still, I over-indexed on employee requests. They wanted things like better self-serve, easier time-off booking, mobile-first features. All valid - but those weren’t the most painful blockers in the business. The truth is: the worst-affected users weren’t employees. They were managers. They didn’t know where to find core policies, the were bottlenecked by reporting, and had nowhere to manage and document key people processes. If I’d done proper discovery, I’d have known that. Here’s the shift I wish I’d made earlier: 👉 Stop asking “What do you want from an HR system?” 👉 Start asking “Tell me about the last time you had to do X. What was painful about it?” That’s the core of Rob Fitzpatrick’s Mom Test: Don’t ask people for opinions, ask them about their actual experiences. A lightweight framework you can apply today: 1️⃣Identify your worst-affected users. Who feels the friction most? (Hint: it’s not always employees). 2️⃣Ask about real behaviour. “Talk me through the last time you had to approve a holiday / onboard a new starter / run a review.” 3️⃣Dig into pain, not features. “What took the most time? What annoyed you? What went wrong?” 4️⃣Look for patterns. If the same pain shows up across teams, that’s where the real value lies. When you ground discovery in real stories, not wish lists, you stop buying (or building) “what people say they want” and start solving what they actually need. I’d love to hear how other People Leaders approach user discovery before choosing HR tech? Is user discovery even a consideration or have you fallen into the same traps as I did? #PeopleExperience #UserDiscovery #ProductLedPX
-
AI models on mobile devices need to run fast without draining resources, and this is where model compression makes a real difference. By reducing size and complexity, apps stay responsive and efficient, improving performance while preserving accuracy where it matters. Key implications for implementation: Smaller models enable on-device inference, reducing reliance on cloud processing Optimization techniques require careful tuning to avoid unacceptable accuracy loss Energy efficiency improves, extending battery life and supporting continuous use Hardware constraints guide design choices, shaping model architecture decisions Development workflows expand to include profiling and iterative compression steps Effective deployment depends on aligning model design with device capabilities and application needs. #MobileAI #MachineLearning
-
40-60% of your engineering delivery time is lost to handovers and coordination waste. Not to coding. Not to testing. Not to requirements. To waiting, asking, aligning, and passing work between people. The DevOps Handbook and Lean Software Development research make this painfully clear. Your biggest delivery bottleneck isn't technical complexity. It's the space between people. Here's what most organizations do: They add more process. More meetings. More documentation. More alignment rituals. And they wonder why things get slower instead of faster. What actually works? Eliminating the handovers entirely. Concurrent product development puts all the bright people working on the same thing, at the same time, in the same place. Requirements analysis, coding, testing, and documentation happen simultaneously, not sequentially. No waiting for specs. No waiting for code. No waiting for test results. No waiting for documentation. The Three Amigos approach (business analyst, developer, tester) working together in real-time on the same problem creates something you can't get any other way: shared understanding that doesn't need to be written down and handed off. The result? Teams that apply true concurrent development report what used to take 3 weeks being completed in a single day. Same people. Same skills. Radically different approach to how work flows between them. What percentage of your team's time is spent waiting for someone else? #ContinuousDelivery #TDD #ProductDevelopment
-
Our App Was Crawling at Snail Speed… Until I Made This One Mistake 🚀 A few months ago, I checked our Lighthouse scores—30s. That’s like running an F1 race on a bicycle. 🏎️➡️🚲 𝐀𝐧𝐝 𝐭𝐡𝐞 𝐰𝐨𝐫𝐬𝐭 𝐩𝐚𝐫𝐭? We did everything right—modern stack, top framework, best practices. Yet, our app was sluggish. ❌ AI-powered search engines ignored us. ❌ Users kept waiting. ❌ Something was off. So, we did what every dev does—optimize. 🔧 Cut dependencies 🔧 Shrunk bundles 🔧 Tweaked configs We went from 30s to 70s. Better, but still not great. Then, I made a 𝐦𝐢𝐬𝐭𝐚𝐤𝐞. A glorious, game-changing mistake. One deploy, I accidentally removed JavaScript. And guess what? Lighthouse: 91. 😳 Sure, nothing worked. No buttons, no interactivity. But it proved our app could be fast. 💡 The lesson? Stop making JavaScript do everything. 𝐒𝐨 𝐰𝐞 𝐫𝐞𝐛𝐮𝐢𝐥𝐭: ✅ JavaScript only where needed ✅ No unnecessary hydration ✅ No bloated client-side rendering 𝐓𝐡𝐞 𝐫𝐞𝐬𝐮𝐥𝐭? 🚀 From 30s to consistent 90+ scores 🚀 Faster load times 🚀 Better search engine visibility Sometimes, the problem isn’t a lack of optimization—it’s an excess of complexity. Not every app needs a heavy framework. Not every UI should be hydrated. If you’re struggling with performance, ask yourself: ❓ Do I really need this much JavaScript? ❓ Can I pre-render more? ❓ What happens if I strip everything back to basics? You might be surprised by what you find. 👀
-
This discovery completely changed my understanding of optimization for mobile devices. Learn about VRAM bandwidth: During rendering, the GPU reads from or writes to VRAM whenever it fetches mesh data, samples a texture, blends colors into the render target, or performs depth testing. I was shocked to find out that the VRAM performance is vastly different on mobile GPUs compared to gaming PCs. Look at the difference: Standard gaming PC: RTX 3060 with VRAM speed of 320GB/s Renders FullHD: ~2mln pixels Samsung Galaxy S23 Ultra: GPU with RAM speed of 68GB/s Renders 3080x1440: ~4,4mln pixels A mobile device with almost 5 times lower bandwidth than a PC needs to push twice the pixels to the screen. So when porting the game from PC to mobile, we’re expected to make it run 10x faster to keep the same experience. Isn’t that crazy? And this gap seems to grow over time. Now, when I optimize for mobile, I focus on those things: ✔️ I primarily focus on VRAM usage ✔️ I use native GPU profilers to see if the game is bandwidth-bound. ✔️ I plan mobile optimizations mostly based on the memory usage, not the shader complexity. ✔️ I usually start by looking at postprocesses, then render resolution, then shadowmaps resolution, and then - detailed analysis. I prepared a deep dive blog article about VRAM bandwidth and optimization. Look in the comments 👀
-
GSPRs guide your design. Not just your documentation. GSPRs aren’t just "regulatory boxes" to tick. They’re inputs. Early ones. Here's my framework: → Start by identifying which GSPRs apply to their device. (Use the left column in this infographic as a starting point.) → Then, go through the key questions. No need to cover all of them. Just the ones that steer your design decisions. Example: If your device includes software, you might ask: ↳ How will updates be managed safely? ↳ Will cybersecurity be a concern? Once this framework is in place, it becomes second nature to design with compliance in mind. Then comes the other critical step: Always write with GSPRs in mind. Every time you draft a report, pause and ask: “Which GSPRs does this document support?” Simple habit. Massive impact. Because GSPRs aren’t just documentation. They’re part of the project. From day one, to the very end. Design with them. And yes → document them, But that must be the simplest part. You want to get a head start on this one, think of everything? Our GSPR templates for MDR & IVDR enable you to : → Access a complete list of standards to ensure the presumption of conformity of your IVDMD / MD with the GSPR. → Access a list of evidence requirements for each GSPR → Access a pre-defined methodology to ensure compliance with each of the GSPRs. 📗 MDR : https://lnkd.in/eE2i43v7 📕 IVDR : https://lnkd.in/erqgFWKr
-
This is a visual representation of why your team hates Salesforce 😡... Throughout my Salesforce journey, I've seen it all (Insert "Emotional Damage" meme 🫠). One common issue I see often are Flows that "work," but that are not optimized for scale or user experience. They cause ugly error messages, delays on future iteration, & inaccurate data that plague users on a daily basis. Check out the Flow examples below: Version 1 works. It's simple, has only 2 elements, so what's the big deal? To find out, let's look at the #'d boxes in Version 2: 1️⃣ Element Descriptions: Please...for the love of Benioff... document the "Why." Each element allows you to write a description, which explains what it's doing technically and why it's important to the process you're building. This context is essential for future changes and for those that come after you. If another admin can't read your descriptions and understand what it's doing, you haven't documented enough! 2️⃣ Decision Elements after Get Records Elements: In Version 1, the "Get Account Id" element finds a related Account record associated with the triggering Opportunity. What happens if the criteria for the search doesn't find a record? ❌ Flow Error ❌. By checking to see if the Get Records element finds what it's looking for, you can prevent a poor user experience and ensure other automation runs on schedule. 3️⃣ Fault Paths & Error Handling: A fault path is an error handling path that triggers when the element wasn't able to process a change (Update, Create, Delete) in the database. By default, users are presented with red text and a cryptic message without enough readable context to troubleshoot themselves. In Version 2, we've add a fault path for every Create Records element to notify the Salesforce team of new errors. No one likes it when automation fails, but it's a magical experience to reach out to a user and let them know you're already working on it! 🪄🎩🐇 4️⃣ Tracking Performance/Usability: This one is a game changer... What good is an active Flow if you can't measure its performance or usability? Create a custom object called "Automation Saved Time." Any time you add to a Flow, estimate the amount of time the automation saves and add it to a variable. At the end of the Flow, create a new Automation Saved Time record adding the aggregated time for all elements. It'll help answer some amazing questions: a) How much time has your Flow saved users? b) How often has Flow is been run? c) Is this Flow useful? All questions you can only assume the answers to without this data! Build a dashboard and show it to internal stakeholders, so they understand the value you're adding. 5️⃣ Reuse & Recycle: Rather than building a new Flow element each time you need it, connect to an existing element. In this example, we are connecting both fault paths to the same email alert. "In a world full of Version 1s, be a Version 2 💪🏻" #salesforce #salesforceflow #automation #bestpractices #benioff
-
Engineers speak code. Lawyers speak risk. Sometimes, this can create a painful language barrier, especially in conversations about data and compliance. Because lawyers often launch into detailed explanations of privacy regulations and legal requirements, while their technical colleagues are just focused on shipping products and solving problems. It’s the lawyer’s job to bridge this gap, and the best ones I’ve seen are able to do it by leveraging two relatively simple concepts: (1) They boil their message down to the key questions and takeaways, abstracting away the unnecessary complexities. (2) They translate legal requirements into the native language of their technical colleagues. For engineers, that means thinking in systems architecture: - Privacy isn't just a legal requirement - it's a data architecture decision - Compliance isn't a checklist - it's a system design principle - Legal risks aren't barriers - they're technical constraints to code around For product managers, it means speaking product: - Legal requirements become user stories - Compliance becomes a feature to promote, not an obstacle to overcome - Regulations become product specifications When you make this shift, something interesting happens. Legal stops being a separate consideration and becomes part of the development process itself. This is the true meaning of "privacy by design" or "compliance by design." Engineers are natural problem solvers. Frame the legal constraints as technical challenges, and you'll be amazed at the solutions they devise. It all comes down to knowing your audience.