23 May 2024 _ Face Convention Center, Bucharest, Romania
Codecamp_Festival is a one-of-a-kind experience, mixing learning from the best speakers out there, from all over the world, with the glitz and glamour of a true music festival.
Four awesome stages, three inspiring keynotes, seeing your superheroes up close and personal and making new connections, in a laid back and friendly scenery, who said learning can’t be fun?
Meet the superheroes that changed the game in software development.
Yeap, they’re all coming to Romania! Grab a coffee with them and prepare to be starstruck.
Get the Codecamp app
09:00 – 09:45
Welcome to Codecamp_Festival!
09:45 – 10:00
10:00 – 10:45
AI Impacts in Development Practice, Michael Feathers
11:00 – 11:45
Architecture Over Architects, Diana Montalion, Andrew Harmel-Law
Software Architecture, Team Topologies and Complexity Science, James Lewis
Defensive Coding Bootcamp, Heather Downing
12:00 – 12:45
Quality in the Age of AI, Thomas Steirer
Building impactful collaborative software for critical domains, Catalina Dobre, Mihaela Gheorghe
From News to Sustainability Insights: How Pre-Trained Language Models are Leading the Way, Nina Lazar
12:45 – 14:00
Enjoy your lunch!
14:00 – 14:45
The Fuller Stack, Kevlin Henney
15:00 – 15:45
The Way of the Modular Monolith, Victor Rentea
Enabling Microservice Success, Sarah Wells
How to Make Better Modernization Decisions, Indu Alagarsamy
16:00 – 16:45
Plain Text, Dylan Beattie
Actors can rule your DDD world, Hannes Lowette
Calculemus–The Phantasmagorical Journey to Software and AI, Dino Esposito
17:00 – 17:45
Ask Us Anything!, Michael Feathers, Heather Downing, Diana Montalion, Kevlin Henney
18:00 – 19:00
19:00 – 20:00
20:00 – ⁺₊☾⁺
Get the Codecamp app
It’s hard to make predictions in the AI space. Things are moving too fast. It is clear that AI will change entire industries in the next few years — it is changing software development already. In this keynote, Michael Feathers will take a look forward at areas of high impact and low impact and what these mean for the nature of our work.
As the relational complexity of software increases, we need, more than ever, smart architecture. Domain-aligned, team-decoupling, cohesiveness-driving, constantly evolving architecture has a massive positive impact. To design systems, we need to evolve the role of “architect” away from the dualistic most-experienced implementor vs ivory tower strategist.
Architecture is a technology-agnostic skillset. You practice it regardless of which tools or programming language you work with. Architecture is a solitary, intra-group, and inter-group activity. We practice it within the human system, when we collaboratively design patterns and relationships, empower decision making and construct cross-functional feedback loops.
In this talk, we explore:
“What is an architectural decision?” (The answers might surprise you.)
How do we work effectively individually, intra-team, and inter-team to make them?
What is the “advice process” and what has it taught us?
What goes wrong (all the time) and what to do about it.
Recent research summarised in the book points to a set of practices that lead to high software development organisation performance. Simultaneously, research from the Santa Fe institute on Complex Adaptive Systems over the last 20 years seems to point to a grand unified theory of organisational design. So have we cracked it? Do we now have the answer to the question: how do we create and scale high performing software and organisations? In this talk, James explores the relationships between team structure, software architecture and the emergent phenomenon of complexity science.
Do you build things that can be hacked? Want to lower those odds?
Join us to learn the basics of security vulnerabilities and evasive coding manoeuvres that can make your software more secure, every time.
Geared for developers of all skill levels, this code-centric talk will present code samples and essential fundamentals that apply to every language.
Machine Learning and AI are changing the way we think of processes, systems and developing software. But what about quality? What about testing?
If you were forced to pick, who would you rather “replace” by an AI: a coder or a tester? And why?
As you can see, Thomas Steirer has a lot of questions on the topic. In this talk, these questions (and more) will help outline possible paths forward in shaping quality in a future where AI is commonplace, not only in the systems we build but also in the process of building them.
Have you ever wondered what it takes to develop a solution similar to Google Docs and then build on top of it with extra layers of security and functionality?
During the planning phase of a military operation, there are multiple text documents that need to be updated simultaneously by multiple users. At the same time, there is a requirement to provide security in air-gapped deployments.
As such, we needed to develop our own solution that follows our high standards for security, performance and quality.
Within our presentation, we will be describing our embedded solution based on advanced operational transformation algorithms which allows real-time secure collaborative editing, as well as several challenges that we have faced during development and how we managed to overcome each of them.
Looking for sustainability insights in today’s fast-paced news cycle can feel like searching for a needle in a haystack. But with the help of artificial intelligence, finding the stories that matter has never been easier. In this talk, we’ll explore how large language models can sift through mountains of news articles, identifying key themes, trends, and patterns that help us stay on top of sustainability research.
How full is your stack? The stack many developers are aware of is often quite shallow. The term ‘full-stack developer’ is typically used to refer to someone who works on both the front end and the back end of a web-fronted application. It assumes a particular kind of system that falls within one region of the architectural landscape and is associated with a narrow range of programming languages and infrastructure. Most of the technical stack is commodified and abstracted away. And, most of the time, developers can safely ignore the world of systems programming — middleware development, database implementation, TCP/IP programming, device driver development, compiler writing, etc. — as well as the physical and mathematical reality that underpins the whole stack.
But not all of the time. Sometimes the bits and the bytes break through — remember Meltdown and Spectre? Sometimes we hit the limits of our software and our hardware. Sometimes we hit the limits of the universe.
The microservices honeymoon is over – a team is merging nano-services back into a more manageable solution. Meanwhile, a larger team is adding one more feature to their legacy monolith aka macro-service, trying to find ways to break down its complexity. What both teams need is to learn how to progressively transition a monolithical codebase into decoupled modules in tiny baby steps, reflecting on the selected boundaries and enforcing them along the way. This talk will walk you through the key steps to move towards a Modular Monolith, aka Modulith. You will hear about Bounded Contexts, breaking data structures, internal/external module APIs, choreography vs orchestration, events, transactions, and 6 ways to fix cyclic dependencies between modules. Finally, extracting such a module into a microservice becomes a trivial task. But, like some of my clients, you may be so happy with your codebase that you would choose NOT to take that dangerous step towards microservices.
Microservices can be a very effective approach to speeding up delivery of value to your organisation and to your customers. If you get them right.
If you don’t, then microservices are just something that makes everything you do more complicated, from working out where things are going wrong to upgrading the same dependency in tens or hundreds of services.
Sarah will draw on ten years of experience building and operating microservices at the Financial Times to talk about:
• what it means to be “successful” with your architecture and technology choices. Can you move fast? Understand what is happening in production? Avoid having to start again?
• what you need in place to make microservices work, from technology maturity and leadership support through to platform engineering and observability
• where we go next with microservices: what are the new tools and approaches that will help us get the most out of them?
When attempting to modernize an existing system, you need to build up an understanding of how the business works and the complexities of the existing system in order to answer questions such as:
It often involves working with different teams, different services that fulfil the capability to the user and understanding the current state so we have a place to start.
In this talk, I’ll share with you some of the methods I’ve been using such as Service Blueprints, Wardley Mapping, Architecture/Product Decision Tracking Framework to get buy-in collaboratively.
Software is complicated. Machine learning, microservice architectures, message queues… every few months there’s another revolutionary idea to consider, another framework to learn. And underneath so many of these amazing ideas and abstractions is text. When you work in software, you spend your life working with text. Some of those text files are source code, some are configuration files, some of them are documentation. Editors, revision control systems, programming languages – everything from C# and HTML to Git and VS Code is based on the idea of “plain text files”. But… what if I told you there’s no such thing?
When we say something is a “plain text file”, we’re relying on a huge number of assumptions – about operating systems, editors, file formats, language, culture, history… and, most of the time, that’s OK. But when it goes wrong, “plain text” can lead to some of the weirdest bugs you’ve ever seen. Why is there Chinese in the SQL event logs? Why is the city of Aarhus in the wrong place? And why does Magnus Mårtensson always have trouble getting into the USA? Join Dylan Beattie for a fascinating look into the hidden world of text files – from the history of mechanical teletypes to encodings, collations and code pages. We’ll look at some memorable bugs, some golden rules for working with plain text – and we’ll even find out the story behind the mysterious phrase “pike matchbox” and what it has to do with driving in the Soviet Union.
Have you considered using an actor model to build an event based CQRS system? Why not? Actors and DDD are a match made in heaven!
When developers learn about DDD, they tend to find a way to work the principles into their codebase. After a while, they may end up with some form of event sourcing or CQRS. But often times, the possibilities of using an actor model, such as Akka.NET, are overlooked.
In this talk I will show you to all the things you need to know if you want to build such a system using .NET 6 and Akka.NET. Expect to see a lot of code!
An elementary knowledge of DDD principles is required to attend this session.
When there are disputes among persons, we can simply say: “Calculemus”, without further ado, to see who is right. Written in 1685, this popular sentence from Leibniz sets the beginning of the era that ended up with software. The presentation is a (short) phantasmagorical journey from the Middle Age to our AI days across the changes in mathematical logic to replicate human reasoning. All we got, though, has been software as a waste product. Now AI is back but can we expect at some point to say again “Let’s calculate” to see who is right?