Videos

2023

  • Roy Osherove — The Good, Bad, and Beautiful of Writing Blockchain-Based Smart Contracts

    Roy walks through the basics of what solidity smart contracts look like and what type of patterns are enabled through them. We also discuss what practices become extra important (hint: testing, auditing), what practices become problematic (hint: continuous delivery), and what design patterns become problematic (hint: CRUD).

  • Nyari Samushonga — Running to Stand Still

    Working in the world of software development, the need for speed has become an ever-present expectation of teams that build solutions. As we work to bring products to life, we are constantly being pressured to go faster. The common ask is that we get more done in less time. This addiction to the fast life has even seeped into our vocabulary for setbacks- we must “fail fast”. So, whether you’re getting it right, or getting it wrong, what is constant is the need for you to do it really quickly. In this talk, I will slowly meander through a radical alternative. The inconvenient truth that, sometimes, going fast can be at the expense of going the right way. I think we have to face up to the unavoidable fact that some things just take more time.

  • Linus Kvarnhammar — Hacked on National Television

    In 2021, Swedish national television (SVT) aired a six-part TV series called “Hacked” where four professional hackers set out to hack into the private assets of normal people, celebrities, and companies. They had all agreed to participate in a cyber security experiment but were unaware of what exactly was going to happen. Linus was one of the four hackers in the TV series and in this talk, he is going to talk about some of the highlights that were seen on-screen as well as behind the scenes. This talk will hopefully be both entertaining and eye-opening.

  • Dylan Beattie - From Hot Metal to HTML: The Story of Typography

    Arial, Times New Roman, Consolas, Comic Sans… digital typography has turned us all into typesetters. The tools we use, the apps we build, the emails we send: with so much of our lives mediated by technology, something as seemingly innocuous as picking a typeface can end up defining our relationship with the systems we use, and become part of the identity that we project into the world. Typography is a fundamental part of modern information design, with implications for user experience, accessibility, even performance - and when it goes wrong, it can produce some of the most baffling bugs you’ve ever seen. Join Dylan Beattie for a journey into the weird and wonderful history of digital typography, from the origins of movable type in 8th century Asia, to the world of e-ink displays and web typography. We’ll look at the relationship between technology and typography over the centuries: the Gutenberg Press, Linotype machines, WYSIWYG and the desktop publishing revolution. What was so special about the Apple II? How do you design a pixel font? We’ll learn why they’re called upper and lower case, we’ll talk about why so many developers find CSS counter-intuitive - and we’ll find out why so many emails used to end with the letter J.

  • Pelonomi Moiloa — Protecting Machines from Us: Lessons from the Majority World

    The possibilities of machine learning are ever expanding and therein lies prospects for a utopian AI-Human hybrid future. With increased opportunities to do good however there are just as many opportunities to do harm and even in the case that good intentions are at the helm, evidence suggests that opportunities for good may eventually prove to be the opposite. The greatest threat to what machine learning is able to achieve and to us as humans is twofold: Machine learning created with harmful biases built into its core with intent, and machine learning that does not reflect the diversity of the users it is meant to serve. The human experience is fundamentally flawed but how do we keep the worst parts of ourselves from manifesting in the machines we create?

  • Scott Hanselman — Mentorship vs Sponsorship: Systems Thinking and Stories

    Join Scott Hanselman for an upbeat discussion about what's beyond mentorship. What's the difference between mentorship and sponsorship and how does that build successful teams? What's the role of the senior engineer as a colleague to an early-in-career engineer? What's the difference between learning how to code and learning how to think about systems? What must we do to welcome the next generation of creators, and what are your responsibilities? Let's facilitate a welcoming culture of learning and exploration and normalize not knowing the answer!

2020

  • Alistair Cockburn — Getting Back To The Heart of Agile

    Agile has become overly decorated, with vocabulary and rules to make your head spin. It wasn't intended that way. In this talk, Dr. Alistair Cockburn, one of the authors of the agile manifesto, shows how to abbreviate it all to just four words: Collaborate, Deliver, Reflect, Improve. Oddly, shortening it to those four words makes it easier to learn and more broadly applicable. Not only that, it helps us find new, relevant topics, such as guest leadership and solutions focus. What's best, these four words apply to all initiatives, not just software or product development.

  • Nyari Samushonga — Misguided Loyalties

    We all want to predictably deliver quality software solutions. Many technical and process methodologies have been created to make this possible. Yet time and again we repeat the age old patterns of late delivery and poor quality, ensuring we continue to face the backlash of unmet expectations. Could it be that while we profess to want to do better, our overt and hidden attachments to unproductive ways mean we self sabotage and follow patterns that ensure repeated failure? In this talk I'd like us to peel away the layers and take a close look at some of the ways that what we do ensures we do not get what we want. We have the tools to win we just need to choose to use them.

  • Dr. Markus Borg — Trained, not coded – Beauty in Software 2.0

    Deep learning has revolutionized several application areas, especially within computer vision. However, developing systems that rely on machine learning (ML) introduces new challenges. As features are trained rather than coded, the beauty concept must expand to cover also data. But even with beauty in the training data, how could we possibly trust AI in critical applications such as self-driving cars? In this talk, we will look at testing of a pedestrian detection system in state-of-the-art automotive simulators. We will discuss how the concept of safety fundamentally changes with ML and present a promising approach to testing. By embracing beauty in test code, we will demonstrate evolutionary test case generation for testing of trained systems – using AI to test AI.

  • Kevlin Henney - Lambda? You Keep Using that Letter

    Lambdas. All the cool kid languages have them. But does 'lambda' mean what C#, Java, Python, C++, etc. mean by 'lambda'? Where did lambdas come from? What were they originally for? What is their relationship to data abstraction? In this session we will look into the history, the syntax and the uses of lambdas and the way in which lambda constructs in various languages do (or do not) match the original construct introduced in lambda calculus.

  • Aslam Khan — Scaling Down

    Many teams have a scaling problem that is relative to their business or industry, which is a long way off from the massively scaled companies such as Facebook and co. Many of these teams are inadvertently over-engineering for their needs. We need to learn to scale down right, simple as possible.

  • Dr. Alistair Cockburn - Answering questions with stories

    In this extra talk, Alistair answers questions from the audience with stories from his work experience.

  • GeePaw Hill — Changing Changing Software

    At its center, the software trade is about changing software. From the outside, the trade seems to be flourishing, but when you look close, you see the unmistakable signs of a feverish and decidedly unhealthy entity. So we're going to have to change it. In this talk, GeePaw introduces the various challenges we face in changing changing software, and offers an approach: re-centering our entire trade — not just the code or the coding, but the entire industry — around the fundamental activity: harvesting the value from making one change, then using that value to fuel the next one. It's change, harvest, change, harvest, change, harvest, over and over, day after day, world without end.

2019

  • Linda Rising - Thinking Fast and Slow

    When Daniel Kahneman won the Nobel Prize for developing a new model of how the brain works, it changed how we think about thinking. If you haven't had time to read Kahneman's book "Thinking Fast and Slow," or even if you have, Linda will "translate" the model and what it means for us in working better. We know that our jobs involve thinking, problem-solving, and decision-making. We all want to do a better job of thinking fast and slow. Linda will help you get started with that.

  • Kjell Ljøstad - How to Become Agile Without Scrum or Kanban

    This is NOT a talk about Scrum or Kanban. The Agile Manifesto is all about communication, interaction, collaboration and building trust. Yet when most companies decide to go agile, they focus on implementing some rigid process that they don't yet fully understand, and they have a hard time getting it to work. We go back to the core of the Agile ideology. We will talk about how you can use relational skills to improve communication, get team members engaged and build trust. Agile initiatives tend to become a matter limited to the developers, and it is often hard to engage other parts of the organisation. In this workshop you will learn what make teams work efficiently and the basics of how you can get the whole organisation to cooperate better. By building relations and trust between people, working on how they communicate and how they interact with each other, you will build the foundation of a truly agile organisation.

  • Kevlin Henney - What Do You Mean?

    "It's just semantics." How many conversations about philosophy, politics and programming are derailed by this thought-stopping comment? Semantics is all about meaning. If there is one thing we struggle with and need to get better at, it is the search for and clarification of meaning. The world in which a software system lives is filled with meaning. The structure, concepts and names that inform the code, its changes and the mental models held by developers are expressions of meaning. The very act of development is an exercise in meaning — its discovery, its formulation, its communication. Paradigms, processes and practices are anchored in different ways of thinking about and arriving at meaning. But just because we are immersed in concepts of meaning from an early age, and just because the daily work of software development is about wrangling meaning, and just because it's just semantics, that doesn't mean we're necessarily good at it. It takes effort and insight. Let's talk about what we mean.

  • Jon Skeet - Sondheim, Seurat and Software: Finding Art in Code

    White. A blank page or canvas. The challenge: bring order to the whole. Through design. Composition. Tension. Balance. Light. And harmony. The opening lines of Sondheim's "Sunday in the Park with George" were written with fine art and paintings in mind, but ring true for software engineer as well. As Seurat created grand visions from tiny dots, so software solves huge problems one line at a time. Some parallels are obvious - the suggestion of "favor composition over inheritance springs to mind" - but others take more reflection. This talk offers musings on each element, and links each back to the cornerstone so often neglected in the midst of design docs, specifications and linters: our shared humanity. What turns "good" code into "great" code? How subjective is this? How does it affect how libraries connect with their consumers, and how applications connect with their users? At the end of this talk, you'll be left with more questions than answers - catalysts for your own thoughts on the nature of code and art, and for further discussion.

  • Nyari Samushonga - A Seat at the Table

    Technology is taking an increasingly central role in the structure and reach of businesses. From its less prominent past as a rarely-noticeable cost centre buried in basements and maligned by those skeptical of its value contribution, the exponential increase in digital connectivity has moved it to its current position: a front-and centre disruptor, enabler and differentiator of modern day commerce. This shift cuts across all industries: regardless of the nature of your business, chances are you are in the technology business. The superpowers of digitisation have given those that build this new ecosystem a seat at almost every decision-making table as first-class citizens, adorned with all the rights and rewards that accrue to business leaders. But as we all know, with great privilege comes great responsibility. Are we, as an industry, reciprocating business' shift towards technology with a commensurate embrace of the complex learning curve we must undertake to understand the fundamentals of running a business? Do we fully understand the business contexts in which our superpowers are deployed? Beauty in code without responsibility in business is a waste.

  • Dan North - BDD Is Not About Testing

    BDD started as a way to teach TDD to programmers who kept getting hung up on the idea they were writing tests. Fast-forward a decade or so and it seems BDD scenario automation tools have invaded the world of acceptance testing like Japanese knotweed. All around I see teams harming themselves writing awkward, verbose tests using slow, cumbersome tools like Cucumber and SpecFlow, and acting as though BDD is some kind of testing approach. Part of the problem is that once you have an automated BDD scenario and you've written the software to satisfy it, it can look seductively like a test. From there it is a short step to thinking of these scenario automation tools as testing software, and the rest is frustrating, repetitive history. This talk explores the relationship between BDD scenarios and acceptance tests, and suggests some strategies for avoiding the pain of BDD-as-test automation.

2018

  • James Bach - Beauty or Bugs: Using the Blink Oracle in Testing

    Here's how the blink technique works: 1. Blast a firehose of data at your senses. 2. Notice things in it that are ugly, weird, or that in any other way seem worthy of investigation. (This process takes time. Give yourself at least 20 milliseconds to make a judgment.) In this presentation I will show some examples of blinking and how I use tools to create visualizations that support the process. The art of blinking is in designing the right kinds of complex displays that make interesting problems stand out.

  • Aslam Khan - Complexity sucks

    Building software is mostly about trying to wrap our heads around the complexity of a domain. If we understand the domain, we have a better chance of producing a simpler design. The harsh reality is that there is a pretty good chance of deforming that simple design over months and years. The challenge we face is dealing with inherent complexity up front and insidious complexity that sneaks in later. In this talk I will share some techniques that I find useful in tackling domain complexity.

  • Adam Tornhill - Guide refactorings with behavioral code analysis

    Adam Tornhill is a programmer who combines degrees in engineering and psychology. He's the founder of Empear where he designs tools for software analysis. He's also the author of Your Code as a Crime Scene, Software Design X-Rays, Lisp for the Web, and Patterns in C. Adam's other interests include modern history, music, and martial arts.

  • Kevlin Henney - 1968

    It's half a century since the NATO Software Engineering conference in Garmisch. How are we doing? Are we nearly there yet? Or is there no there there? The world of software development has changed so much and in so many ways since 1968 that it's difficult to imagine what we could learn from the past, but it's learning rather than imagination that's the constraint. There was no shortage of imagination, insight and inspiration in the 1960s and 1970s, and in many ways the apple of 21st-century software development has fallen disappointingly close to the tree of the past. So let's turn back the clock to see what we could have learned from the past, what we can still learn from the past and what the future might hold in store for code and its development.

  • Louis Hansen - Software professionals, we keep using that word...

    We constantly refer to Software Development, and the people in this field, as professionals, but are we really? Are we held sufficiently accountable for the things we build? And should we be? This talk will go through what it means to be a profession in the classical definition. We will look at what parts we already have in our field, and why we might want to strive for certain other aspects.

  • Aino Vonge Corry - A Comment on how we learn

    As an expert you will be asked to facilitate the learning of others, not to mention your personal eternal learning in your field. Join an interactive session about how our brains accept new knowledge and store it for later use. Your take-away will be three-fold; how to chunk information you give to others, how to improve your own learning AND something to entertain with at dull parties.

  • Kent Beck - Summarizing the Beauty in Code Conference

    In this session Kent Beck reflects upon some of his take-aways from his career and summarizes the Beauty in Code conference