Current TalksTalks that I’m giving at conferences and user groups in 2017. If you want to request a talk on a different topic, by all means get in touch – I’m always happy exploring and presenting new ideas.
- Apps, Algorithms and Abstractions: Decoding our Digital World
- Ctrl-Alt-Del: Learning to Love Legacy Code new for 2018
- Life, Liberty and the Pursuit of APINess: The Secret to Happy Code
- The Web That Never Was
- Real World REST and Hands-on Hypermedia
- Domain Architecture Isomorphism and the Inverse Conway Manoeuvre
- Amdahl to Zipf: Fundamental Laws of the Physics of People
We've all heard about the idea of the 'rockstar developer' - maybe you've heard your boss talk about hiring a 'rockstar', maybe you've seen the job
adverts looking for 'rockstar developers' on IT job boards. But what if EVERYBODY could be a Rockstar Developer?
In 2018, Dylan Beattie created Rockstar, an esoteric programming language designed for creating programs that are also rock song lyrics. Rockstar
was initially created as a joke - a parody specification that combined features from programming languages like VBScript, Perl, Ruby with lyrical conventions from Bon Jovi, Van Halen and other classic rock bands. Then people started submitting issues. Then they started submitting pull requests. Then somebody created an implementation... and another, and another. Before long Rockstar was on the front page of Hacker News, the front page of Reddit - we even got a feature in Classic Rock magazine.
What started as a joke had become a fully-fledged open source project - and so in 2019, Dylan and a few dedicated Rockstar Developers set out to create a
formal reference implementation, complete with a parser, an evaluator, a specification and change control process, and - of course - lots of awesome Rockstar swag.
In this talk, Dylan will share ideas and insight from working on the Rockstar project. It's partly a talk about programming language design; partly a talk about running an open source project - and partly the hilarious true story of what happens when you try to implement a programming language that was invented in a bar.
It's a familiar scenario… you’re on the train, your phone goes ‘ping’, you take it out of your pocket and hey — someone sent you a message! Awww... it’s a picture of a cat doing something funny. You send back "LOL", you put your phone back in your pocket… but have you ever stopped to think about what’s actually involved in making that happen? Inside even the most basic smartphone there are literally hundreds of innovations, algorithms and inventions — but how do they really work? How were they developed? And what’s the next generation of algorithms and applications going to look like?
In this talk, we’ll take a deep dive into the technology behind those everyday experiences, and demystify the algorithms and abstractions that make our digital world go round. We’ll talk about cellular data networks, signal processing, the fundamental principles of filesystem design, compression algorithms, and even a bit of quantum physics. Whether you’re a programmer, a product owner or just somebody who loves using the latest tech, after watching this talk you’ll never look at your phone quite the same way again.
Dylan worked on the web application stack at Spotlight (www.spotlight.com) from 2000 until 2018 - first as a supplier, then as webmaster, then as systems architect. Working on the same codebase for nearly two decades has given him an unusual perspective on how applications go from being cutting-edge to being 'legacy'. In this talk, he'll share tips, patterns and techniques that he's learned from helping new developers work with a large and unfamiliar codebase. We'll talk about virtualisation, refactoring tools, and how to bring legacy code under control using continuous integration and managed deployments. We'll explore creative ways to use common technologies like DNS to create more productive development environments. We'll talk about how to bridge the gap between automated testing and systems monitoring, how to improve visibility and transparency of your production systems - and why good old Ctrl-Alt-Del might be the secret to unlocking the potential of your legacy codebase.
Whether we realise it or not, when we create software, we are creating user experiences. People are going to interact with our code. Maybe those people are end users; maybe they're the other developers on your team. Maybe they're the mobile app team who are working with your API, or the engineers who are on call the night something goes wrong. These may be radically different use cases, but there's one powerful principle that works across all these scenarios and more - and it's called discoverability.
In this talk, we'll draw on ideas and insight from user experience, API design, psychology and education to show how you can incorporate discoverability into every layer of your application. We'll look at some real-world systems, and we'll discuss how how discoverability works with different interaction paradigms. Because, whether you're building databases, class libraries, hypermedia APIs or mobile apps, sooner or later somebody else is going to work with your code - and when they do, wouldn't it be great if they went away afterwards with a smile on their face?
Audience level: technical, intermediate. Language-agnostic but developer-centric.
Format: talk + slides + code examples
What if IBM had hired Digital Research instead of Microsoft to develop the operating system for their first PC, way back in 1980? What if Marc Andreessen and Jim Clark had gone to work for Nintendo in 1993 and never founded Netscape? What if one of the team at CERN had said “Tim, won’t it sound a bit silly if everyone spends the next fifty years saying double-you-double-you-double-you all the time”?
So strap in, hold tight, and join us as take you on a journey through... the web that never was.
Format: talk + slides.
Audience: Everyone. This talk is a weird combination of a technical lecture and a science fiction story, designed to be entertaining as well as informative.
In this talk, we'll look at the problems of running ReSTful APIs in the real world, and the architectural patterns that exist to help us solve those problems. We'll talk about hypermedia - how does it work and why does it matter. We'll look at resource expansion, and how it can reduce your server workload and speed up your client applications. We'll talk about how to implement PATCH properly, how to handle security and authentication for your APIs, and what tools and services exist to help you design, deliver and debug your HTTP APIs.
Target audience: developers, systems architects.
Level: advanced. Assumes familiarity with HTTP, JSON and some experience designing HTTP APIs
In this talk, we'll look at communication structures and how those structures affect the outcome of the systems you're building. We'll discuss how to apply design patterns to your teams as well as your code, and how to sell the idea to your boss before you start moving desks around.
Target audience: Anyone who builds systems, really :)
Audience level: everyone.
Format: Talk only. No slides, no code, no demos.