James	Gray

James Gray

JEG2

James Edward Gray II — JEG2 — has been a developer for over two decades. At times he has managed developers. In both roles, teaching programming has always been a big focus of his work. He co-wrote Designing Elixir Systems with OTP with his friend Bruce Tate and has been active member of the Elixir community since 2017.

When programming, James is passionate about design. When managing, he tries to empower teams of self-organizing musketeers. When teaching, he cares deeply about practical examples, visualization of algorithms, and how to train fluency.

James spends a significant amount of time at swimming pools with his wife watching their daughter compete. He has also always loved regular expressions and board games.

Talk:
What Expertise Looks Like

Some folks just seem to be stone cold pros. When you catch them in their element, it can look like they’ve thought of everything, are prepared to handle any situation that arises, or both. Here’s the truth though: no one enters a new project as an expert.

This talk presents a walkthrough of a complex replacement project performed by a small team. We will examine what happened under two lenses. First we will see the seeming wizardry: algorithms that yielded 40x speed improvements, repeated analysis that proved correctness, and a managed rollout that controlled for failure. Then we’ll take a peek behind the curtain to find: a handful of totally mundane actions that created the magic and the errors we made along the way that helped us reach our goals.

This talk is for anyone who wants to take on bigger and more challenging programming tasks. We’ll look at straightforward plans you can copy to get the results you need. We’ll also look at a secret weapon for making safe changes to live systems that a lot of developers will tell you is a bad idea. This talk won’t make you an expert, but practicing the ideas in it will, many times over.

Key takeaways:

  • How to evaluate potential approaches and solutions
  • Why estimates are often better than exact numbers
  • Ways to get maximum leverage from your design choices
  • What code organization can do for future you beyond just managing complexity
  • The other side of the rewrite critique
  • Ways intent can guide you to correctness
  • How to test your designs
  • The advantage of not knowing everything

The goal is to showcase several techniques that can extend the reach of most developers. Knowing how to begin can provide the needed confidence to take on bigger projects. Most importantly this talk will turn expertise from a quality seen in some gifted folks to a well-known path to be taken whenever it is needed.

Target audience:

  • This is a talk for anyone who has some standard programming experience — building CRUD API’s, wiring up LiveViews, etc. — but hasn’t yet taken on many sizable software projects. It will particularly focus on transformations to existing complex systems.

  • This talk should also appeal to developers working with LLM agents. It features several complexity management practices that can help to keep them on track. Our planning and design skills are growing more and more vital with each new advance.