Git is a powerful tool but most of us only learn the basics. Mastering git allows us to spend less time staring at merge conflicts and more time focusing on real work. Mastery involves not just knowledge of specific commands but also familiarity with how git can be used to boost your team's performance. You'll dig into git itself, learning about branches, merging and (yikes!) rebase, all through the command line. We’ll cover what to do in the event of a conflict, how to bail out when things go sideways and most importantly how to find that commit you just overwrote. With those tools under your belt, you'll learn about advanced techniques like bisect, hooks, stash patch adds & cherry-picking. After this talk, git will have changed from a nuisance that regularly ruins your day to a powerful swiss army knife under your command.
“Asynchronous state management” is a phrase that can strike fear in the heart of even the most jaded programmer. Tools like Redux and ngrx help us keep our state in check but they don’t handle asynchronous changes well. How do we deal with events when we don't know when the next update will happen? This talk provides an answer: RxJS. It acts as a wrapper around all of your events, so you can use the same patterns for any event, regardless of source. RxJS also works seamlessly with every major state management tool, so the skills you learn in one area transfer to the next. You'll learn about observables, how to upgrade your existing tooling to take advantage of RxJS and why RxJS is the best solution to deal with asynchronous state management.