VP of Developer Advocacy @ JetBrains
The Silver Bullet Syndrome
We love our silver bullets don’t we? Constantly chasing the dream that the next big thing will solve all our past problems. It doesn’t matter if it’s a language, framework, platform or library, we’re out there chasing it. Why? Well because it’s going to solve our needs, it’s going to solve the business needs. Well supposedly it will. And how much is it going to cost? Not that much, especially if we’re not the ones paying the bills. It’s about time we look at the hard facts and ask those difficult questions. Are we really looking for a silver bullet? Why are we constantly riding the technology bandwagon? Where is the churn going to take us? And at what cost?
Chief Architect @ Headspring, Microsoft MVP, Creator of AutoMapper
Effective Microservice Communication and Conversation Patterns
Orchestration or Choreography? Sagas or process manager? REST, RPC or Events? Are we just making this all up as we go along? Once we move away from a single process to many services and processes, we immediately hit the problem that our services need to communicate with each other. The architect mandated REST! But then nothing worked in production. Then came events! And nothing ever completed. In this talk we'll look at the problem from a holistic perspective - take the fundamental property of autonomy for any microservice-based architecture, and design how services should communicate so that they can still achieve their purpose in the world. We'll cover basic communication patterns, where we run into problems with them, and how advanced conversational patterns can help. Finally, we'll look at some real-world scenarios for designing complex coordination and where conversation patterns can retain our autonomy and loose coupling.
Senior Software Engineer @ GitHub, Creator @ exercism.io, Co-author of 99 Bottles of OOP
Refactoring with Exuberance
When is it okay to build an orbital laser to destroy an ant-hill? Many cry "overkill" when design principles are applied to trivial problems. And for good reason: in the context of work, excessive embellishment gets us into trouble. Complexity costs us time and money. This talk explores how stepping outside of the realm of work and applying outrageous engineering practices to toy problems can deepen our understanding of the trade-offs that we make. Comically simple problems provide the perfect ground for developing actionable heuristics which can be applied to those monstrous complexities that we face in the real world.
Senior Software Engineer @ Wycomco, OSS contributor
Things Every Developer Needs to Know About Database Indexing
This talk dives deep into a topic that I believe developers don't know enough about: database indexing. There are four sections to this talk: - What's an index? * How to create an index? * Understanding the execution plan * Common pitfalls What's an index In the first part we will learn what an index actually is. And we're talking data structures. How is an index actually represented internally and what are the implications of that. This is important because it makes certain characteristics of indexes much easier to understand.
Principal Technologist @ VMWare, Trainer @ Bottega IT Minds, DZone's Most-Valuable Blogger
Testing Done Right
Software Craftsman, Co-Founder, Developer @ Codeborne
The World Needs Full-Stack Craftspeople
Developers and IT people in general tend to specialize and become narrowly skilled. In the past there was always the conflict of DB developers vs application developers, or DBA vs developers vs testers. Nowadays developers split even more into front-end/back-end/Android/iOS/whatever else. This leads to inflated teams, inefficient communication, lack of each developer's responsibility, low team's truck factor, and inability to solve production/design problems once and for all instead of applying patches here and there. The term "full-stack" is often applied to developers being responsible for all aspects of their work, but XP/craftsmanship practices go further — we should also take our communication, requirements, operations, testing, etc. under control. True сraftsmen can be an order of magnitude more efficient than narrowly skilled developers. They not only write code, but solve problems. Surely you want to be one. Let's break it down and see why it works.
Founder and Developer @ CodeScene, Author of Your Code as a Crime Scene
Prioritizing Technical Debt as if Time and Money Matters
Many codebases contain code that is overly complicated, hard to understand, and hence expensive to change and evolve. Prioritizing technical debt is a hard problem as modern systems might have millions of lines of code and multiple development teams -- no-one has a holistic overview. In addition, there's always a trade-off between improving existing code versus adding new features so we need to use our time wisely. So what if we could mine the collective intelligence of all contributing programmers, and start to make decisions based on information from how the organization actually works with the code? In this presentation you'll see how easily obtained version-control data let us uncover the behavior and patterns of the development organization. This language-neutral approach lets you prioritize the parts of your system that benefit the most from improvements, so that you can balance short- and long-term goals guided by data. The specific examples are from real-world codebases like Android, the Linux Kernel, .Net Core Runtime, and more. This new perspective on software development will change how you view code.
Certainly Uncertain: Predicting Delivery Dates
As soon as you become a team lead or manager, you immediately become responsible for making vague things certain. When you have no idea what exactly shall be done, you are asked how much it costs and how long it will take. When you give an estimate and commit to delivering to your promise, scope creeps and enjoy estimation hell again. In this talk, you will learn how to estimate without screwing things up. I will be as practical as possible and will share the real Excel-spreadsheet that implements a simple statistical model of project estimation so you can use it for your projects the next day.
Elixir Mentor, Author of Elixir in Action, OSS contributor
The Soul of Erlang and Elixir
Whether you're developing a small web site or a large-scale distributed system, Erlang and Elixir are great tools for building server-side systems. Both languages can help you start quickly and deal with highly complex problems at a large scale. This talk aims to explain what makes Erlang and Elixir suitable for such tasks. We'll look past the syntax and the ecosystem, focusing instead on the concurrency model of these languages. Combining a bit of high-level theory and a couple of demos, we'll examine some important properties of Erlang/Elixir concurrency, with a special emphasis on why these properties are very relevant when building highly available systems. The talk targets experienced backend developers, but no knowledge of Erlang or Elixir is required. You will walk away from the talk with a better understanding of what distinguishes Erlang and Elixir from the rest of the pack, and why these languages are very compelling choices to power your next software system.
Developer Advocate @ MongoDB, ex-Technology Evangelist @ Atlassian
The Effective Developer
We’re agile, we’re doing DevOps, we work in cross-functional teams, and we use the latest developer pipeline tooling. With all those methodologies and technologies we should be highly effective, right? Probably not. Most of us still struggle with balancing coding speed and quality, working on the stuff that really makes a difference, and feeling constantly stressed by all the things we should learn. Effective developers don't just write clean, simple, and robust code. They also have a strong understanding of the entire development process and the problem that needs to be solved. They take time to learn, practice, and play. Learn how those developers build effective coding habits, use automations whenever needed, reserve time for deep work, and much more. You’ll walk away from this talk with lots of ideas on how to work smarter, not harder.
Senior Developer Advocate @ Octa, Microsoft MVP
Leadership Guide for the Reluctant Leader
Regardless of the technology you know, regardless of the job title you have, you have amazing potential to impact your workplace, community, and beyond. In this talk, I’ll share a few candid stories of my career failures… I mean… learning opportunities. We’ll start by debunking the myth that leadership == management. Next, we’ll talk about some the attributes, behaviors and skills of good leaders. Last, we’ll cover some practical steps and resources to accelerate your journey. You’ll walk away with some essential leadership skills I believe anyone can develop, and a good dose of encouragement to be more awesome!
Trainer, Consultant @ Bottega IT Minds, OSS contributor
Functional Domain Modeling – How to Make Your Architecture Scream
We might have heard that Domain Driven Design is Object Oriented done right. Is it, however, always true? Thinking of business processes as workflows and pipelines lets us map our problems into the concepts of functional programming, thus bringing our code to another level. During this session we will apply bits of functional programming into our Java application, discussing their impact, including security, testability, readability, and more.
We all have an opportunity every day to make a postive impact on folks around us. These are often called "soft skills," but they can be some of the hardest to learn! We could call them "people skills," "essential skills," or "core skills." But, how about "SKILLS OF AWESOMENESS?" Yes, what we all need is more ways we can be awesome to each other, and awesome together.
| David Neal
Senior Developer Advocate @ Octa, Microsoft MVP, #1 Speaker of 2019
Through a series of practical exercises, we will discover and discuss the most important and relevant topics you want to cover, so that you can get the most value out of this workshop!
Most of us have been working with some kind of legacy systems with lots of technical debt. How do we improve the codebase without The Big Rewrite and avoid creating yet another spaghetti monster? That’s what this workshop is about.
In this workshop, we will work together on a legacy system. We will approach the problem by creating a new, clean, and truly object-oriented model with modularity, cohesion, and testability in mind. We will introduce the model into the existing application in a secure manner, leaving ourselves an option to withdraw changes at any point in time. Fully automated tests will make sure that both models produce consistent results. EventStorming will help us set priorities right and understand the business impact of our changes.
Finally, we’ll get a solid, clean, and object-oriented code aligned with the company's goals and agile software development best practices.
| Bartłomiej Słota
Trainer, Consultant @ Bottega IT Minds, OSS contributor
In this workshop, I’ll take you through 3 different architecture styles. We will design a non-trivial system and find out the strengths and weaknesses of each approach. We will discuss the typical design errors, problems and solutions. We will finally learn how to create a hybrid solution, and how what to optimize our architecture for.
During this workshop we will be working with a C4 model. If you don’t know it, do not worry, it’s simple enough to master in 15 minutes. This workshop is technology agnostic, but we will focus on the backend architecture and services.
Surprising as it is, this workshop can also help Product Owners and Managers to communicate with their teams. At least that’s the experience we’ve had so far.
| Jakub Nabrdalik
Solution Architect, Developer and Mentor at Bottega IT Minds, ex-Head of Software Development @ 4Finance
This practical workshop will equip you with necessary skills for accomplishing more, with less stress and efforts, and bring you closer to the work-life balance on a win-win basis. After the training, you will know how to achieve more at work and personal life simultaneously (instead of conventional view: “one at the expense of another”).
NEW in 2020: How should one handle vague/unclear/huge projects? How to get into individual brainstorming mode and think unthinkable?
NEW in 2020: Distinguishing between good and bad procrastination and the practical session of group de-procrastination.
More than 50% of workshop time is devoted to practice, exercises and discussions. The workshop offers concrete, ready-to-use improvement recipes for daily work.
Want to increase your company's visibility?
Become a sponsor