GraphQL offers tons of benefits,. The colocation of data is the most revolutionary to me. What if we could utilize existing the GraphQL query parser but talk to any backend? I’ll explore how we can use GraphQL style data fetching without a GraphQL backend to bring colocation of data in the GraphQL query format that is source agnostic.
As developers, we go through different phases in our career. In the initial periods, the focus is mainly on understanding core concepts, tenaciously solving problems, and incorporating constructive feedback. Soon, responsibilities come in the form of designing large systems, collaboration with people, both on a team and across organizations, and providing constructive feedback. This talk is about how mentorship plays a significant role in the development of both technical and people skills.
What is Mentorship? What values do you learn as a mentee, or a mentor, or both? How does mentorship have a positive impact on your career? These questions are answered using examples from my journey- first as a mentee, and then as a mentor at Yelp! All that sounds great, but how does one start finding a mentor or a mentee, you ask? You’re about to find out!
Santa Clause, The Free Lunch, and JS Testing - All myths? We all know Testing is key, but it’s not easy. What are your options, what exists, and what works? Let’s talk about it all. What tools exist, and what matters in testing React and React Native.
You write React for work, but you don't want to no mo'. You ask your boss, please? But he still says, no! How about instead of missing class, you try something different? Well, the Angular team has something cool for you... Angular elements! Angular elements are Angular components packaged as custom elements, a web standard for defining new HTML elements in a framework-agnostic way. Learn how to write and package your Angular components to be used across any framework (or no framework) by extending HTML to allow you to define a tag whose content is created and controlled by your Angular code. Now you can put your Angular components into any other frameworks components! (You gotta fight for your right to write Angular!)
In a world where perpetually confused developers can’t quite get their environments working, new libraries emerge from the ashes of lost productivity: envinfo and Solidarity. Escape the complexity and witness the rise of projects embracing change to save their projects from themselves.
Interactive application are becoming increasingly data intensive, running into challenges of asynchrony/consistency, and performance/networking. This talk will show how we can use a database management over interaction history to model the interactive application, and an accompany demo of a new JS library based on relational transducers.
What could a bunch of DIY Pinterest projects teach us about coding? There's hidden insights everywhere in your life if you know where to look. Let's talk about the power of pattern recognition, how to practice it, and how embracing it can enrich your team!
The cascade is a beautiful and troublesome thing - the infinite inheritance is arguably the best and worst part of CSS. We rely on it for setting styles in context and base styles and we try to protect it from naming collisions and specificity wars through all sorts of conventions in the classic markup + css world. Since migrating to React, we’ve had to do things a bit differently. This is the story of why we traded in the cascade for consistency and how we fumbled and figured our way through the challenges of CSS in React, eventually getting to a production quality design system.
How do we deal with reusable CSS in a design system centric world? Problems with the cascade: consistent BEM style naming conventions allow styles to easily be manually overridden & with hundreds of devs, our frontend infra team can’t be on every css code review If we give up the cascade and everything in CSS Modules becomes namespaced, how do we share basic styles that we want to include across all our components’ pages besides dumping globals on a page?
We based our solution on two key requirements: Components should be able to be used in isolation from one another Components need to be generic enough for developers to use across the site, but consistent enough that they adhere to our design system
This talk will cover some options as to how to write CSS in React without going down the CSS in JS route, alternatives to using global styles, specificity issues, baking meyer reset into base components, patterns around component abstractions, how to deal with no longer having the cascade part of styling when components interact, etc. This is a more in-depth talk version of https://engineeringblog.yelp.com/2018/03/css-in-the-age-of-react.html
Web apps are evolving targets which show their age via varying degrees of code cruft. And that's ok. Tech debt is an expected side-effect of living production web apps, and the challenge lies in paying down the debt while still pushing forward.
Enter Abstract Syntax Tree’s...
AST’s enable developers to parse input code into a predictable tree data structure that can be easily traversed, manipulated and then regenerated in place. Transpliers such as BabelJS use this powerful pattern to transpile ES2015+ down to a baseline of ES5.
While this 1:1 transpiling is the most common usage of ASTs, they can also be leveraged to supercharge the transformation of your legacy code to meet the conventions, libraries, and/or design patterns your team is using today.
Amal aims to demystify this process by breaking down the steps of how to build your own custom AST based transforms.
In this talk I'll go through how I created interface elements for a WebVR installation at JSConf EU 2018, getting started with WebVR, & ideas for the future of WebVR art!
You've launched your application, and now you've been asked to optimize it. How do you know how fast it is? Is your data accurate and actionable? We'll explore both generic and framework-specific approaches to instrumenting your application, along with real-world examples of how to put these techniques in practice!
Topics and description TBD