"Diagrams as code", as featured on the ThoughtWorks Tech Radar, is becoming a popular way to create software architecture diagrams for inclusion in long-lived documentation. The benefits of creating diagrams from text are well understood - text is version controllable, easy to diff, easy to integrate into build pipelines, and automatic layout facilities allow authors to focus on content. The major...
Code quality is an abstract concept that fails to get traction at the business level. Consequently, software companies keep trading code quality for new features. The resulting technical debt is estimated to waste up to 42% of developers' time, causing stress and uncertainty, as well as making our job less enjoyable than it should be. Without clear and quantifiable benefits, it's hard to build a b...
Pair programming dates back to at least 1991, yet it still has, shall we say, "unpredictable" results. Some teams find it transformative, saving untold time, creating amazing products, and eliminating tons of process overhead. Other teams find it a total waste of time and boring or painful to do. The pat answer is that the effectiveness "depends on the team" and "isn't for everyone." But there's a...
Istio is the most widely used service mesh platform in the world for large-scale production deployments. In September 2022, Google and Solo.io announced the release of Istio Ambient Mesh to the community. Ambient offers a revolutionary data-plane architecture that allows service mesh users to ditch sidecars. It slashes operational complexity and enables incremental mesh adoption, all while reducin...
What exactly does the word Asynchronous mean?When it comes to distributed computing, one of the perennial topics comes down to how different services should communicate. Working out the relative merits of specific technical approaches can become a complex affair however, so we often reach for categorisation to simplify our work. Often, the discussion around inter-process communication hinges ...
My current personal mission is to accelerate the journey of leaders in tech through teaching, coaching and mentoring. This all started out more than 10 years ago, when I looked at building support material for future technical leaders - something I missed when I first stepped into my first technical leadership role. Join me as I reflect on a decade of helping other technical leaders where I'll sha...
I’ve noticed an increasingly worrying trend in the industry of specialisation at the expense of collaboration, shared responsibility and valuable outcomes. There might be many reasons for this, from organisational structures, changing workforces or uncertainty in the world. This trend is creating silos, across departments, between roles, and even in teams.These silos mean that all the value that c...
Imperative style of programming is the most popular, familiar, and widely used and yet is packed with accidental complexity. Functional programming is gaining popularity, has less accidental complexity, and makes it easier to understand code once we are familiar with the paradigm. However, it has its own set of limitations. Should we choose to program in imperative or should we use functional? Whi...
Whether it’s the current macroeconomic situation affecting the tech industry, or the global pandemic, or the 2008 global economic crisis before, there will always be uncertainty.Even smaller crises have the impact of disrupting everyday life. Imagine the impact on Black employees during the George Floyd protests; or on AAPI employees over the past year. It is unrealistic to expect that employees a...
Robotic Process Automation (RPA), Low Code, Hyperautomation… Do you also ask yourself what's behind those buzzwords apart from shiny marketing brochures? Should you ignore them, fight them, or is there probably some gold you can mine?In this talk, I will cut through the b…s bingo to show you real advantages and give concrete advice for developers. I want to sketch a nuanced picture of how an organ...
Software architecture helps businesses to achieve competitive advantage in many ways, like reducing costs and improving time-to-market. But to extract architecture's full potential, the software, business domain, and organization need to be aligned as independent value streams. This talk is about the principles, heuristics, and practical techniques that engineers, architects, and leaders can apply...
The abstract nature of software and its development mean that we employ many metaphors to talk about it. We talk about software as architecture, engineering and craft. We describe issues of code quality in terms of debt. We name our classes and UI elements after objects in the physical world. Metaphors are everywhere in software development, but often they are unquestioned and misunderstood. In th...

With ca. 400 million search results on Google, psychological safety (PS) has become one of the biggest buzzwords in business in recent years. Unfortunately, most of the people writing and talking about PS are not psychologists. Although they are for the most part well-meaning, this has led to spread of mis-information about what PS is and how it can be fostered in teams.This talk addresses some mi...

You may have heard your boss say it: "You need to be more strategic!". Maybe it came up in your latest performance review. Or you just want to work more strategically in order to fill all parts of your role as a leader. Or maybe your team/organisation needs more strategic support to help them succeed.But what does it actually mean to really think and act strategically? What actions can you take to...
DDD is about understanding and communicating complexity. We have long recognized that the most effective way to communicate complexity is via human language. But language poses a challenge when working in a team comprised of members of different (sub)cultures and nationalities, each with a native language that might not be the same as the language we are communicating in. Each of these cultures ha...
Team change is inevitable, especially when your company is hiring like crazy or when it is shrinking. Your teams might grow bigger and split. Some people might leave and then your teams merge together. What feels like tectonic shifts happen as you morph structurally to refocus people and work, continuously. It can be a wild ride. How can we bring a humanistic stance to this dynamic reteaming? How ...
Quality cannot be tested in, it has to be built in, so ensuring the right quality needs get captured in delivery plans and requirements is one of the biggest challenges for software delivery, since people first started building software till today, and forever. But defining quality was never an easy task. Different people have different perspectives, needs and expectations, and the job of unifying...
One crucial difference between writing object-oriented software and writing procedural software is the notion of object construction. Objects must be instantiated before they can be used. This is more than a technical detail; it is at the very core of OO's usefulness.A key distinction—and therefore opportunity—of object-oriented programming over procedural programming is that objects have two phas...
Have you watched those Spotify engineering culture videos? They were trendy and influential but that was around nine years ago. What might we say about effective product development culture today? In this talk, Jason will share a summary of 2023-era effective product development culture based on his eight years at Spotify and 14 years at ThoughtWorks. This will include core beliefs, guiding princi...
TLA+ is a language for the specification and verification of discrete systems, including concurrent and distributed algorithms. The behavior of systems is described in the form of state machines, written in a language based on mathematical set theory and temporal logic. The same language also serves to express safety and liveness properties. TLA+ is supported by tools for computer-assisted verific...

GraphQL is steadily gaining popularity as an API technology choice for Client-Server data access. At Netflix, we have been operating a Federated GraphQL platform where developers can contribute to the unified GraphQL API. This platform has transformed the way we create APIs and ship customer-facing software across the entire organization from Netflix Streaming to the Netflix Studio applications an...
Every day, companies struggle to bring great software products to their customers with sufficient speed and efficiency. Especially with an organization's increasing size and complexity, this becomes a significant challenge, and the pace occasionally feels like going against zero. But more than ever, it is precisely this skill of scaling software development efficiently that differentiates thriving...
HTML is, by default, accessible. By simply using “Plain Old Semantic HTML”, we have the ability to create rich and accessible web pages that can meaningfully stand on their own. More often than not, what makes a web page less accessible is the CSS and JavaScript we add to that HTML. With these additions, we can alter the meaning of elements, change their behaviour, or even block access to content ...
In most disciplines "Engineering" means the stuff that works, an application of scientific reasoning to solving practical problems. In Software, depending on your background, it either means something bureaucratic that doesn't work, or it is just another name for software development.So what are the ideas that we can use as tools to give real, practical advantage in our work in the way that other ...

You've heard about micro frontends. You've potentially even implemented them - but you either faced issues or had to put in some work to make them scale. But even then - they tend to be inflationary solutions causing more problems than giving benefits.The missing piece of the micro frontend puzzle is to introduce a discovery mechanism that loosely couples your micro frontends. This way you'll achi...
In this interactive talk, we get intimate with Flow. As a practitioner, how are you responding to this hyper-connected and distracting work environment? How is it impacting the flow of your work and life? Sustainable delivery of value requires flow. Disruptions to flow impede our ability to get to the outcomes we desire.Flow is like water and it can travel through many places. When movin...
Automated testing is often described as a way of verifying behavior or a way of supporting refactoring. Beyond those two uses there is a third one. Tests can be used to gain feedback about the design of existing systems.In this talk, Michael Feathers will describe testing techniques that you can use to assess the design of your system and determine whether its modularization supplies adequate supp...
It is well understood that quality is an important element for software delivery to occur frequently and safely. But quality is a broad concept that can be applied in a variety of ways across organizations. QAs can be a dedicated team or even part of a cross-functional team, in which they are held accountable for quality. However, relying on just one role to ensure quality can introduce numerous r...
Istio is the most widely used service mesh platform in the world for large-scale production deployments. In September 2022, Google and Solo.io announced the release of Istio Ambient Mesh to the community. Ambient offers a revolutionary data-plane architecture that allows service mesh users to ditch sidecars. It slashes operational complexity and enables incremental mesh adoption, all while reducin...
Software development has become more complex over the years: Building and running a distributed architecture in the cloud, ensuring observability, discussing user experience with design and product, and keeping a healthy balance between dev speed and code quality isn’t easy. Just be agile and practice DevOps, they say.Join Sven and learn how great software teams measure and improve their developer...
Microservices are becoming increasingly common for designing complex software systems that span multiple functional domains and teams.The question is - how can we develop microservices in a more testable way?Designing Testable Systems using Hexagonal Architecture, aka Ports & AdaptersTesting Microservices using Unit Testing, Integration Testing, Component TestingApplying Test Driven Developmen...
If you’ve tried GitHub Copilot, you know that it can feel like magic. The tool fills out entire blocks of code with shocking accuracy—though knowing exactly where to correct it requires skill. In this session, Rizèl Scarlett shares how GitHub Copilot can help you level up your software engineering career....
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 generatio...
IoT software must evolve rapidly. WebAssembly may provide a means of flexibly modifying code while executing it in a strictly sandboxed environment. WebAssembly has the potential to become a ubiquitous execution environment for IoT. ...
You may have heard of how risky it is to invest in large end to end tests, and you might know how to avoid writing them, but what happens if you encounter one in the wild? This talk is a story about how I used the Saff squeeze to break down large tests and ensure that I still covered edge cases....
About 15 years ago, I got inspired by the practice of Test Driven Development. Now, with many years of great and not-so-great experiences practicing Test Driven Development, I thought it is the time to capture my own “laws”. The term “law” is obviously an exaggeration and “principles or heuristics” cover my intend much better. Either way, I want to talk about the scope of testing, using the observ...
Don't document your code; code your document.Documentation is essential, and at the same time, it is part of the software products that usually contain the most bugs. For example, documentations tend to be outdated, have wrong references to the documented system, and may contain inconsistencies. The compiler or the unit tests discover the same type of errors in a program code. Documentation does n...
In this session Zan will walk you through a set of advanced approaches that some advanced DevOps teams use to orchestrate their pipelines and bring their teams’ productivity to the next level. The patterns discussed were inspired by my conversations around complex CI/CD orchestrations with some of the largest, most advanced DevOps teams, that I hope bring some of that inspiration to a wider audien...
WebAssembly was made to open web browsers to more languages besides JavaScript. Its virtual machine and bytecode target allows safe re-use of third party code. Using WebAssembly outside the browser is a relatively new trend worth understanding.This talk dives into WebAssembly through a series of real-world integrations outside of the web browser. You’ll learn how key aspects like I/O work, includi...
Terraform is a GREAT tool, but like a lot of other things in life, it has its pitfalls and bad practices.Since you are working with Terraform, you probably went through its documentation, which can tell you what resources can be used - BUT do you always have a clear path towards using these resources? How should modules be constructed? How should you structure your Terraform code in general?In thi...
There is no week when tech blogs and media don’t hype the next new and fancy technology that enables companies to deliver even faster. While it is important to operate a modern technology stack, it is equally important how to smoothly transition from the “old” ways of doing things, and identifying the “gotchas” to look out for.In this talk Attila Papai, Engineer Lead at Wise, will share how and wh...

The earliest crewed spaceflights, including the Mercury, Gemini, and Apollo programs, were some of the earliest instances of software being responsible for life-or-death decisions. While various aspects of the software and systems design could be considered outdated by modern standards, many of the core principles and design choices are directly relevant to the systems we build today.This talk div...