Speaker

Dmitry Vinnik

Dmitry Vinnik

Engineering Manager, AI/ML @Meta

Seattle, Washington, United States

Actions

Dmitry Vinnik is an Engineering Manager specializing in AI/ML. He is currently working at Meta, where he leads a team of engineers developing cutting-edge solutions. With a decade of experience in the tech industry, Dmitry is recognized for his expertise in developer relations, dev tools, programming languages, and open source technologies. He is a regular speaker at conferences and meetups on various topics related to software development, open source, and engineering leadership.

Area of Expertise

  • Information & Communications Technology

Topics

  • Leadership
  • open source
  • Developer Advocacy
  • testing

Scalable Image Management with Fresco on Android

Scale matters! The amount of data people go through the day on their phones is astounding, especially when it involves images and videos. With most of us being on the go, the network becomes a big concern as the connection is not the same worldwide.

Here is where Fresco comes in! This powerful system for displaying images in Android applications adjusts image quality to the device and the network.

In this talk, we learn how to use Fresco and build a demo app to show how images can be progressively shown on the device.

Mobile Debugging Made Easy with Flipper

As a developer, where do you think you spend most of your time doing? In most cases, the answer would be debugging.

Whenever something breaks, getting to the root cause can only be done by debugging through logs, reporting systems, and other tools.

But what if it wasn't that complex and unpleasant? Flipper, an extensible mobile app debugger, aims to make the developer experience a lot better! Flipper inspects, visualizes, and controls your apps from a simple desktop interface.

In this talk, we will learn how to debug Android, iOS, and React Native apps with Flipper. Then, we will build a new plugin for Flipper to show how flexible the platform actually is.

Hands-on React Native: From Zero to Hero

So many platforms, so little time. How do we write an app for the web, Android, iOS, and other OS without spending all our time and money? Cross-platform can be your answer!

You probably heard about React Native before, a framework that allows the creation of native Android and iOS apps using React. But how do you actually get started with the framework? Whether you are an advanced iOS developer or a beginner React dev, this talk will help you get started with React Native.

In this session, we will start by exploring React Native and its main concepts. Then, we will build a demo app from scratch for Android and iOS to show the power of cross-platform that the framework brings to the table!

Cross-Platform CSS (Yes, it's Possible!) with Yoga

It's no secret that people view the same website across many devices, browsers, and screen sizes. To make the same app work on all these platforms, developers have to spend a significant amount of time. If only there were an engine that allows web developers to write their code once and use it everywhere.

Presenting Yoga, an open source, cross-platform layout engine that manages user interfaces across platforms by reusing CSS layouts.

In this talk, we will learn about Yoga's main concepts and use-cases. Then, we will build a demo app for React Native and Android to showcase the reusability of Yoga.

Do you even Function? Guiding Through Functional Interfaces

Object-Oriented Programming - it is often synonymous with Java Development. But what if I were to tell you that there is more to Java than OOP principles?

Starting JDK8, Java language introduced a new and exciting world of Functional Programming. This inherently powerful paradigm drives services like AWS Lambda, Azure Functions, or any other Function as a Service product out there.

Functional programming offers better security, simpler maintenance, and more flexible design, so it is vital for Java developers to embrace this paradigm and learn how to use it well.

In this talk, we discuss how to apply Functional programming in Java with the primary focus on Functional Interfaces. We explore out-of-the-box Functional structures, how to build custom Functions and look at common mistakes of impure abstractions and overly-DRY design.

Stress Driven Development, and How to Avoid It

When was the last time you took a day off? Are you going to the office every weekday? How often do you work with people? All these questions usually show one thing - we all have stress that comes from our work. Famous Work-Life balance is often non-existent in many organizations, and developers feel trapped in their daily routine to "deliver a business value" to their employer. With stress, your creativity shrinks and innovative approach dies in a busy work you do.
What if I was to say it does not have to be that way? In this talk, we will discuss ways how to relax and avoid "Stress Driven Development". We will look at the problem from a perspective of an individual contributor, a technical lead, and a manager. As a result, the audience will be able to take away best practices for tackling stress and help others in their organizations to become more productive and simply happier individuals.

Where Did My Day Go? Answering Productivity Question

What did you do today? What did you do this week? If you have a hard time answering these questions, you are not alone! With our daily routine turning into a continuous mess of unnecessary meetings, instant messages, and emails, we end up with a day full of tasks but no value to show for it.

In this talk, we discuss how to use laws of productivity to your advantage, how to reclaim your time, and how to get your team onboard with these changes. We learn about real stories from developers who succeeded in becoming more productive, and we analyze what common mistakes are made by those who failed on this journey towards more effective workday.

Impostor Syndrome: How to Overcome Your Inner Roadblock

Do you ever doubt yourself? Wonder if you are smart enough to voice your opinion or try something new? If so, you probably have an Impostor Syndrome.

Impostor Syndrome is a condition where we always question our achievements and expertise. This condition prevents us from getting out there and sharing our ideas and our knowledge. With the continuous growth of social media depicting “perfect lives,” worldwide experts and all-powerful CEOs, it is no wonder we doubt our strength.

In this talk, we discuss ups-and-downs of world-renowned experts to see what helped them to break from the Impostor Syndrome. We learn ways to overcome our self-imposed roadblock and how to share our ideas freely with no fear of failure.

Better Start: Enforcing Best Engineering Practices with Kotlin

As Developers, we are getting lazy! With amazing IDEs and plugins we use on a daily basis, we let these tools do the most important job for a Software Project – ensure maintainability of the codebase. These tools with static analysis, formatters and styleguides keep our code clean and readable while we can focus on making the application to work.
Despite this abstraction of styling and duplication detection, we, as Software Engineers, are still responsible to keep in mind best practices like DRY, KISS, YAGNI, and many more. While IDEs are great at detecting basic mistakes, we still need to choose the best possible solution among variety of solutions.
In this talk, we will look at Kotlin as a way to enforce best Software Engineering practices on the language-level. We will see how Kotlin by limiting verbosity, by using private data classes, extension functions and many other functionalities, allow for more flexible and maintainable codebase. The main goal of this talk is to convince you that Kotlin is a great way to bring years of experience of using best practices to a first-year university student, or to a long-time Java veteran.

Kotlin Coroutines vs. Java CompletableFuture: Guide to Asynchronous Programming in JVM

Concurrent programming can be scary. Anyone who tried to use Threads and Runnable in Java,or worked with 'volatility' and 'synchronization' was most likely scarred by this experience for years to come.
Fear no more! With Kotlin, we get an access to Coroutines – fluent way of creating asynchronous flows. Fortunately, Java hasn`t stayed behind and has been improving its workflows with CompletableFuture.
In this talk, we will explore asynchronous programming in Kotlin and Java, look at its origin in JavaScript Promises, highlight how both languages moving towards declarative style of programming and allow you to choose between two solutions of Coroutines and CompletableFutures.
As a demo, we will attempt to use asynchronous programming while building a self-contained Web Crawler in a matter of minutes.

Back to the CompletableFuture: Concurrency in Action

Callback hell is a known way to give any JavaScript developer nightmares. However, Java developers are not much better off since anything concurrency and multithreading related gives us cold sweats.

With Threads and Runnables being the very first (and often last) things we used in Java, these classes gave many of us impression of and appreciation for complexities of concurrency. As a result, many developers abandoned the idea of ever touching thread management in Java and focused on a single-threaded development.

Fear no more! The world of concurrency in Java has changed since JDK8 and continues getting better. In this talk, we discuss improvements around Concurrency API of JDK5 and the power of asynchronous programming of CompletableFutures post-JDK8. Our goal is to break out of the fear of concurrency in Java and to learn about a new, declarative way of thread programming.

Dmitry Vinnik

Engineering Manager, AI/ML @Meta

Seattle, Washington, United States

Actions

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