© Mapbox, © OpenStreetMap

Speaker

Jeb Barabanov

Jeb Barabanov

Performance Tech Lead at Wix.com

Haifa, Israel

Experienced software engineer with a deep passion for software products, Jeb has been developing software since the age of 14. When not writing code, catch him kitesurfing or desperately trying to get some tolerable sound out of his drums and guitar.

Area of Expertise

  • Information & Communications Technology

Topics

  • Software Engineering
  • Web Development
  • Web Performance
  • FullStack Development
  • Software Architecture
  • Open Source Software

Unlocking the Power of Open Source: From Ideas to Impact!

Ever dreamed of not just contributing to, but owning your own open source project? Hands up if you've had brilliant ideas for open source initiatives but felt a bit uncertain about bringing them to life. And let's not forget those projects we started with enthusiasm, only to find them gathering digital dust a few months later. What if there were keys to turning these dreams into successful, thriving projects?

🚀 Join us for an engaging talk that goes beyond the basics. Dive into the heart of what it truly means to own an open source project. We'll explore common pitfalls, discuss the hurdles you might encounter, and shed light on the responsibilities that come with the territory. Whether you're a seasoned developer or just starting out, this session is your roadmap to navigating the exciting world of open source ownership.

🔍 What's in Store:

Uncover the essence of owning an open source project.
Navigate through common pitfalls with practical insights.
Overcome challenges and turn your ideas into impactful projects.
Discover your role and responsibilities in the open source community.
Learn from real-world examples and success stories.
Don't miss this opportunity to gain valuable insights and take your open source journey to new heights. Let's turn those brilliant ideas into thriving projects together! See you at the conference!

I am thrilled to present a compelling talk that navigates the journey from contributing to open source to the nuanced responsibilities of owning an open source project. This proposal is grounded in my extensive experience as the owner of several projects, including the widely acclaimed "angular-builders" with over 1k stars on Github and 1M monthly downloads in npm.

Key Points:

- Transition from Contributor to Owner: Delve into the practical aspects of moving from contributing to owning and maintaining open source projects, sharing insights gleaned from real-world experiences.

- Technical and Non-Technical Aspects: Explore both technical perspectives (CI, tests, code quality, reviews) and non-technical considerations, such as raising awareness, handling contributions, prioritization, and more.

- Blog Post Foundation: This talk is an extension of a detailed blog post "The Ultimate Owner's Guide to Open Source" that I authored. The blog provides additional depth and serves as a valuable resource for attendees seeking a more in-depth understanding. Link: https://www.freecodecamp.org/news/ultimate-owners-guide-to-open-source/

Target Audience:
Designed for developers keen on open source, this talk aims to empower a diverse audience, offering practical insights applicable to a range of projects.

Value Proposition:
As a passionate advocate for open source, I am confident that this talk, complemented by the accompanying blog post, will significantly contribute to the open source community. By providing actionable insights and lessons learned, we can foster a more resilient and vibrant open source ecosystem.

Pros and Cons of Low-Code Platforms for Web Service Development

Developing web services from scratch can be a daunting task, especially when you're short on time, budget, or domain expertise. However, with the advent of low-code platforms, developers can now create complex applications with ease. In this talk, we will explore the pros and cons of using low-code platforms for web service development, using an audio-processing web service as an example.

We will showcase an audio-processing web service that splits audio files into separate stems using machine learning. The web service was built using Wix Velo and AWS Batch, and will serve as a case study for demonstrating the benefits of low-code platforms. We will review the architecture of the web service, compare the development experience using low-code platforms versus traditional full-stack development, and discuss the limitations of low-code platforms.

The talk is intended for developers interested in exploring low-code platforms for their projects. By the end of the talk, you will have a better understanding of how low-code platforms can accelerate development, when to use them, and how to incorporate them into your development workflow.

The talk was first delivered in person at WixDevCon September 2022 in NYC, the recording of a webinar version can be found here: https://www.youtube.com/watch?v=vZs4d6UqEAE

- Intro and background
- Spleeter by Deezer and the problem with it
- User friendly web service for Spleeter
- Typical building blocks for a multi-user web service
- Bringing AWS into picture and separating concerns
- AWS part (Docker, ECR and AWS Batch)
- Wix part (everything except the audio processing)
- Integration of Wix and AWS based solution
- Backward communication and error handling between two systems
- Live demo
- Let's talk about cost and effort

Optimizing Your Web App: How to Score 100 on Lighthouse

As web developers, we all strive for a high Lighthouse score. However, despite following best practices on Core Web Vitals, some of us still struggle with a good score.
This talk will explore the differences between field data and lab data, the importance of the latter and practical ways to improve it, all backed up by live examples.
We will talk about the definition of TBT and long tasks, about JavaScript execution by v8 engine and the impact of Webpack on it. Finally we'll see how this can be improved and how indeed one can reach a score of 100 on Lighthouse.

The audience will learn:

- Difference between field and lab data and how it correlates with real user experience
- Types of long tasks and how to deal with them
- Fundamentals of JavaScript evaluation by browsers (parsing/compilation/execution) and how it affects lab scores
- Techniques for breaking up long tasks and improving TBT
- The truth about bundle sizes (which do not necessarily mean bad performance)

During the past year I’ve been leading cross-company effort to improve the Lighthouse Score of all Wix sites (which is a lot). I’ve learned a lot and I’m willing to share this knowledge with others. In fact I am already doing it here https://www.justjeb.com/post/how-to-score-100-on-lighthouse, but I’d love to do that in person.

Sneak peek: https://www.youtube.com/watch?v=892xU3TIudM (LibertyJS, Philly, 2023)

Browser Fundamentals: From Macro to Micro

Hey fellow web developers! Understanding how the browser does its thing is key for us. Have you ever thought about what happens when a Promise is done doing its job? Or maybe you've wondered why websites can feel a bit sluggish sometimes? And seriously, why do we toss in setTimeout(func, 0) all the time? Well, this deep dive into the inner workings of browsers is here to spill the beans on these questions and more. We're going to unpack the techy stuff in a way that makes sense, so you can really grasp the behind-the-scenes magic of the websites you're creating!

What will the audience learn:
• Modern browsers architecture - birds eye view
• Multi-process and reasoning behind it
• What happens in the Renderer process
• How long executing JS can block the rendering and affect responsiveness
• Difference between a rendering cycle and an event loop cycle
• UI events prioritization by browser
• Macro tasks and micro tasks
• Ways to make their web sites more responsive (and the logic behind it)

Outline:
- Intro and background
- One day in developers' life (everyone can related to it)
- Problem statement
- Zoom out - browser architecture
- Zoom in - Multi-process in browsers architecture
- Zoom in - Multi-threading in Renderer process
- Zoom in - Execution of web application code
- Zoom in - main thread
- Game loop and its similarity to browser's event loop
- Task queue
- UI events prioritization
- setTimeout Web API and its inner workings
- Ergonomics issue with setTimeout
- yieldToMain (a more ergonomic alternative to setTimeout)
- async/await syntactic sugar
- Micro tasks vs macro tasks
- Optimizing example from the beginning using the learned techniques
- New Scheduler API
- Summary

A glimpse at what I'm gonna talk about: https://www.justjeb.com/post/why-does-settimeout-work

Unleashing Web Performance: Mastering JavaScript Optimization and Real-World Responsiveness

Join us for a deep dive into web performance optimization where JavaScript execution meets real-world responsiveness. Explore the inner workings of the V8 engine, dissect TBT and long tasks, and understand the delicate balance between lab data and real-world user experiences. Discover the impact of Webpack bundling and learn actionable strategies to enhance your web app's speed and efficiency. This session bridges the gap between theory and practice, empowering you to create web applications that shine both in the lab and the wild.

What the audience will learn:

- Understand how the V8 engine processes JavaScript, allowing you to optimize your code for maximum efficiency.
- Dive deep into Total Blocking Time (TBT) and long tasks, and master techniques to minimize these bottlenecks for smoother user interactions.
- Grasp the intricacies of Webpack bundling and discover how to fine-tune it to significantly improve your web app's loading speed.
- Walk away with practical, real-world strategies that you can implement immediately to enhance your web app's speed, responsiveness, and overall user experience.

Outline:

- Intro and background, a little bit about me and a little bit about the audience, link with someone in the audience.
- Website performance and interactivity metrics (TBT and INP)
- Long tasks
- Reproducing the problem with a dummy app
- Breaking up the JS bundle and/or synchronous JS flow
- JS compilation and evaluation - under the hood of V8 engine
- Delaying global scope execution
- Bundlers and auto generated code
- Code splitting for bundlers code
- Trade offs
- Summary
- Questions

Navigating Web Performance: INP and LoAF from Wix’s 10M Sites

Get ready for a web performance deep dive! In this session, we'll demystify INP (Interaction to Next Paint), the new kid on the block replacing FID in March 2024, drawing insights from analyzing data across 10 million websites at Wix. As INP de-facto becomes a Core Web Vitals metric, understanding its implications is crucial for optimizing user experiences.

Alongside INP, we'll introduce LoAF (Long Animation Frames) API, showcasing practical insights derived from our analysis. No jargon, just real-world data and tips on leveraging INP and LoAF for faster, more efficient web experiences. Join us for a straightforward exploration of web performance essentials with a unique perspective drawn from a massive dataset at Wix.

What the Audience Will Learn:

INP Transition:

- Shift from FID to INP in March 2024.
- Grasp how INP ensures swift post-interaction responses.

User-Centric Responsiveness:

- Tailor responsiveness to 90% post-load user behavior.
- Recognize visual cues indicating efficient responsiveness.

LoAF API Application:

- Utilize LoAF for nuanced UI insights.
- Understand the significance of long animation frame measurements.

Practical Experimentation:

- Test LoAF starting Chrome 116.
- Extract actionable insights from long animation frame data.

Streamlined Optimization Techniques:

- Implement INP and LoAF for improved user experiences.
- Apply straightforward tips suitable for all developers.

Webdevcon 2024 Sessionize Event

March 2024 Amsterdam, The Netherlands

LibertyJS 2023

I delivered my talk "Optimizing Your Web App: How to Score 100 on Lighthouse".

October 2023 Philadelphia, Pennsylvania, United States

Jeb Barabanov

Performance Tech Lead at Wix.com

Haifa, Israel

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top