Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Streamlining Success With Stream Chat

Streamlining Success With Stream Chat

If you've ever wondered what's the process behind building an SDK or library for public use, then you might also be interested in how to do it for more than 10 different technologies and platforms, while serving billions of users all over the world!

In this session, we'll go talk about how Stream started with its Chat product, which SDKs we built initially, and how and what we had to do to scale our process to serve all modern platforms and technologies.

We'll talk about the obstacles we found while building those SDKs and what we did differently for our Compose SDK, which served as a prototype that we applied to several other platforms.

All of this will give you insight into how the startup world works and give you important tips to build your own product.

Filip Babić is an Android developer from Croatia and a Google Developer Expert for Android. He previously worked at the Five Agency, building world-known applications, such as the RosettaStone language-learning application and AccuWeather, the globally known weather reporting app, and at COBE d.o.o., a German-owned mobile agency, which is partners with the biggest German media company. Filip is currently in his early twenties, and is enrolled at the Faculty of Electrical Engineering, Computer Science and Informational Technologies in Osijek, Croatia, and is finishing up his Master's degree in Computer Science, currently holding a Bachelor's degree in CS. He should finish up his studies in the year 2020.

Altruistic when it comes to consulting and mentoring, trying to give help to everyone, whenever possible, motivated by the ideology that the Android ecosystem we live in is only as good as we make it. Writing a large number of articles, tutorials, and guides, both through self-publication on Medium and through the RayWenderlich team. With his writing peaking, as he became an author for the book Kotlin Coroutines by Tutorials - the first, and currently only, Kotlin-Coroutine-related book out there, under the RayWenderlich publication.

A highly community-driven individual, holding over twenty different talks in Croatia and heading over to four global conferences, having applied to many more to come. He is also passionately involved in the local IT community in Osijek, being the lead Meetup and GDG Osijek chapter organizer, trying to generate as much positive energy and content for both the new developers and the veterans.

He also organizes the Android Developer Academy in Osijek, a free, voluntary initiative, to promote the teaching and education of new prospective Android developers. Filip currently lives in Osijek, Croatia, but has been known to travel, and stay in Zagreb, because of his employment, and to travel around for conferences he enjoys speaking at.

Neevash is a software engineer, author, mentor, and Google Developer Expert (GDE) for Flutter and Dart from Trinidad and Tobago.

He has been immersed in software engineering for his entire career, and over the years, he's had the opportunity to work with clients ranging from Government to startups.

Neevash's passion is building and launching projects that help and improve people's lives. To this end, he's been fortunate to work with incredible developers, marketers, product managers, and salespersons over his career.

Today, Neevash leads Developer Relations at Stream, a hyper-growth startup based in Boulder, Colorado, with a distributed global team.

Neevash Ramdial (Nash)

June 03, 2022
Tweet

Other Decks in Technology

Transcript

  1. G E T S T R E A M .

    I O Streamlining Success Building a framework that helps us serve billions of users
  2. G E T S T R E A M .

    I O Speakers Neevash Ramdial Director of Global Developer Relations Filip Babić Android UI Team Lead
  3. G E T S T R E A M .

    I O Agenda • The Idea of Stream • Development in startups • Trailblazing with Compose • Frameworking SDKs • Seeing the results
  4. G E T S T R E A M .

    I O The Idea of Stream
  5. G E T S T R E A M .

    I O What problem are we trying to solve?
  6. G E T S T R E A M .

    I O The state of tech (at the time) • Boom of socially aware apps • Many companies were relying on in-house solutions • We built Feeds to explore this market
  7. G E T S T R E A M .

    I O What are Feeds? Feed: A list of activities Follow: Feeds can follow other feeds, so activities from one show up in the other Feed Group: Settings for all the feeds of that type/group TL/DR: Very similar to how Reddit or Twitter work.
  8. G E T S T R E A M .

    I O Problems we solved • Complexity of Feeds ◦ Very hard to nail socially aware apps ◦ Building and scaling is expensive • Performance requirements ◦ Infrastructure has to be fast ◦ Stability and security is a must!
  9. G E T S T R E A M .

    I O We nailed Activity Feeds! What’s next?
  10. G E T S T R E A M .

    I O Beautiful Chat UI SDKs for all your messaging needs
  11. G E T S T R E A M .

    I O What we already built for you • Real-time event handling • Offline caching, retries, synchronization • Push notifications • Rich UI experience ◦ Performant lists with complex data ◦ Attachments and reactions 👍 ◦ Threads, quote replies
  12. G E T S T R E A M .

    I O A Chat API for all your messaging needs • Powerful backend Chat API • Server-side SDKs
  13. G E T S T R E A M .

    I O Backend Infrastructure • Scales to millions of users • High reliability and availability ◦ 99.999% SLA available • Low latency Edge infrastructure • Unlimited message storage ◦ Plus a CDN to store files & images
  14. G E T S T R E A M .

    I O Robust Security
  15. G E T S T R E A M .

    I O Get Started for Free • 30-Day Free Chat Trial ◦ Full feature access ◦ No credit card required • Maker Accounts ◦ Free indefinitely for qualifying users ◦ Usage caps, no surprise overages
  16. G E T S T R E A M .

    I O Development in Startups
  17. G E T S T R E A M .

    I O Development in startups • We need things fast! ◦ Impossible to plan everything AoT • Products expand with time ◦ Easy to add code, hard to change • Learning from mistakes
  18. G E T S T R E A M .

    I O SDK development • Be careful about breaking changes 🔨 ◦ Billions of people can be affected ◦ Hard to build trust if you change things often 🤝 • Public app & fully open source 📖
  19. G E T S T R E A M .

    I O What did we realize? • Started with BE, Web, native… ◦ We didn’t cover all the tech at start ◦ Need a framework to replicate this • How can we make sure our future SDKs are polished and consistent?
  20. G E T S T R E A M .

    I O Trailblazing with Compose
  21. G E T S T R E A M .

    I O • Built from scratch for Jetpack Compose • More flexible and customizable • Full tutorial and sample app Compose SDK
  22. G E T S T R E A M .

    I O • Rich set of features • Ship an MVP first, then iterate and improve • High focus on user satisfaction Compose SDK
  23. G E T S T R E A M .

    I O Building the Compose SDK June 2021 Dec 2021 2 weeks 1st Iteration 2 weeks Reusability 2 months MVP SDK Compose 1.0 Real SDK Feedback & Polishing
  24. G E T S T R E A M .

    I O Building the Compose SDK June 2021 Dec 2021 4 weeks 1st Iteration & Polish Feature Complete Feedback & Polishing End of July Compose 1.0 Beta SDK
  25. G E T S T R E A M .

    I O Building the Compose SDK • Built during the betas, released on day 1 • Customization and flexibility • Full detailed documentation • Built in the open on GitHub
  26. G E T S T R E A M .

    I O • Avoid building too many features • Lighter customization depth • Guides & Examples rather than overhead alternatives • Ramp up development internally What changed from the original plan
  27. G E T S T R E A M .

    I O The Compose SDK went out! Customers followed
  28. G E T S T R E A M .

    I O Frameworking SDKs
  29. G E T S T R E A M .

    I O Our product philosophy • Put developer experience first • Focus on people • Build extensive features • Be lean with the timeline • Support internal alignment
  30. G E T S T R E A M .

    I O Developer Experience • Deep and extensive documentation • Guides for common use cases • Clear API
  31. G E T S T R E A M .

    I O Focusing on People • Easy to access support channels • Support rotations & priority • Direct integration meetings w/ engineers
  32. G E T S T R E A M .

    I O Building extensive features • Think about what’s core and nice to have • New SDK, focus on core requirements • Improvements > large feature sets
  33. G E T S T R E A M .

    I O Being mindful of the timeline • Be as agile as possible ◦ Especially with end-user products • It’s easier to pivot and iterate in 0.1 than 1.0 • If you add “beta” no one complains! :]
  34. G E T S T R E A M .

    I O Support internal alignment • Once you have a good example, scale it • Few weekly alignment meetings ◦ Feature parity ◦ Naming/semantics ◦ Testing/stability • Delegated responsibilities
  35. G E T S T R E A M .

    I O Seeing the Results
  36. G E T S T R E A M .

    I O • Build new SDKs in half the time and with a single engineer • Adoption rate of emerging SDKs is twice as fast as compared to our 1st gen • 10% of customers already using or trying them & giving feedback!! Results of our new SDKs!
  37. G E T S T R E A M .

    I O Resources • GitHub repos for all of our UI SDKs 🌟 ◦ https://github.com/GetStream/ • Tutorials ◦ https://getstream.io/chat/sdk/ • Documentation (with tons of customization snippets!) ◦ https://getstream.io/chat/docs/ • Blog (technical, case studies, company…) ◦ https://getstream.io/blog/ • YouTube channel ◦ https://gstrm.io/dev-youtube
  38. G E T S T R E A M .

    I O Any questions? :]
  39. G E T S T R E A M .

    I O Thank you.