Jessica Kerr

Lead Engineer at Atomist

Jessica Kerr is a developer of development systems. She works remotely from St. Louis, for Atomist, where she writes automations and automation infrastructure in TypeScript, Clojure, and whatever else is needed. She is a back-end developer who believes the front-end is most crucial. Jessica speaks at conferences in the US and Europe; find her on the >Code podcast (greaterthancode.com) and on Twitter and Medium as @jessitron.

Presentations

There's a story to tell, about musicians, artists, philosophers, scientists, and then programmers.

There's a truth inside it that leads to a new view of work, that sees beauty in the painful complexity that is software development.

Starting from The Journal of the History of Ideas, Jessica traces the concept of an “invisible college” through music and art and science to programming. She finds the dark truth behind the 10x developer, a real definition of “Senior Developer” and a new name for our work and our teams.

DevOps is only the beginning. As developers, we don't get paid to write code; we deliver working software in production. And we control how we do that. How does your team turn source code into running software? And how do you make sure it stays working? If it’s like my experiences, the
process is too intricate for words. Instead, let’s code it. How quickly can we get from an idea to deployment? I can spin up a project, change a bit of code, then track that through tests, code review, and into production: give me ten minutes and a few button clicks. You’ll say, but my deployment process is unique. That’s OK: we’re developers, and we can code this. Build complete? How about a nice button for deployment. Oh wait it needs review? Enforce policies in code, not through training. Build failed? Here’s a DM in Slack that includes the error from the log. Forgot to format your code? Oh look I did that. It’s like adding a team member who looooves to update issue status and check on the status of that PR for you. Let’s scale up ourselves: with our software development machine, a team can take care of more software and still build new things. Have a new organizational
best practice? Put that in code and roll it out to every existing repository in minutes.

In this session, you'll see examples of how a highly automated developer experience might look. Then we'll change some of these live, in TypeScript using Atomist's automation API. The principles apply everywhere; the examples use Spring Boot, GitHub, and Slack. Atomist expands the range of development automation past what we have considered. Come to this session, and be the developer who makes a 10x team.

How can we make our tools work with our team? Like a good team member, great tools keep us informed, implement our decisions, and help us understand errors.
Drawing from aviation, medicine, and software, here are strategies for choosing and building tools that enhance us and do not frustrate us.

Great automation doesn't replace humans; it enhances us. The tools we choose or build for our team need to play like team members: keep us informed, do the consistent boring work, and pass the hard decisions to the humans along with the information we need to make them.

Programming is a series of frustrations. Everything we do, we could do better or faster if we only had our tools set up just so. If our error messages were a little better, our code a little cleaner, our tests a lot wider. When we spend time on this, it's known as “yak shaving,” and it can get messy.

How do you balance the work you’re supposed to be doing with the work that makes your work, work? Dive into the yak stack with me. We'll see five different species of yak, and discuss how and when to tackle each one. At the bottom of the yak stack, we might find the Golden Yak, with secret wisdom engraved on its skin.

This session will give you reasons to spend time smoothing your development experience, and clues for where to spend that time in ways that help your whole team.

With TypeScript, the JavaScript + Node ecosystem becomes a serious contender for backend development. This talk describes why: maturity, strong language features, and Enterprise-quality open source tools. Once you know how cool and fun it is, I'll reveal some less-pleasant surprises. Get the information I wish I had when moving from Java/Scala to TypeScript. If you're new to Node or to TypeScript, or if you're experienced but still frustrated, this session will widen your development world and strengthen your superpowers.

The TypeScript compiler is a function from JavaScript + some types => JavaScript + type errors. You get to choose how many type errors you get! In this session, we'll start out lenient and gradually tighten the type checking. See the transition, its beauty and its pain.

See (at least) five things I love about TypeScript, and (at least) five things that really tripped me up. You will love these things too! and you will not be surprised about the hard bits, because you'll know they're coming.

TypeScript is a serious Enterprise-ready language. This talk will get you ready for it.