Midwest JS

Jeremy Lund

Harness the Power of ASTs using jscodeshift

ASTs, or abstract syntax trees, are tree-like representations of your code. Once your code is represented as an abstract syntax tree, you can perform all sorts of tasks on it, such as analyzing your code for problems or transforming it. It fact, many tools that you use today, such as Babel, Prettier and ESLint leverage ASTs to perform their work. In this talk, I’ll talk about what ASTs are, and we’ll look at some examples using AST Explorer. Additionally, I’ll show how you can use jscodeshift and recast to automate code changes on your existing code base, including examples that I have done on my own code base. Why take hours performing tedious and error-prone manual changes, when you can automate them in minutes?

What Can Developers Learn from the Atari 2600?

An Atari 2600 has 128 bytes of RAM. Only 128 bytes. Not even enough to buffer a single screen frame. This, in a console designed specifically to play engaging, animated games. What did developers who wrote games for the Atari 2600 do to work around these resource constraints? And what lessons can we learn from them as we strive to tame the megabytes of data we send to the browser to render a single page? I'll share some history, along with some lessons as we look at how to better work within our own browser's constraints.

Svelte Workshop

Description: How much JavaScript does it take to build a sleek, modern web app? You install a web framework, a router, a state manager, and a CSS-in-JS library. Before you know it, you have a hefty bundle of JavaScript to send to the browser. And that's before you write a single line a code! Svelte isn't an ordinary component framework; rather, it's a build-time compiler that converts your component source code into efficient, compact JavaScript. If you don't use a particular feature of Svelte, it simply melts away, and your users don't have to download it. Areas of Svelte we'll cover in this three-hour whirlwind includes: Managing state and properties, including data stores * Reactivity in Svelte * Template functions * Component testing * Composition * Styling components * Animation and transitions


I work as a Prinicipal Engineer for Instructure. I feel blessed to be doing something that I love and get paid for it. Each day I try to write better code than I did the day before and help someone else to do the same. My work is fueled by Pepsi and the desire to have all of my unit tests come back green.