logo

DevTernity is the top 3 international software development conference in Europe.

We focus on the core skills paramount to your success – code design, software architecture and leadership.

Start preparing for the role of software architect, engineering leader or CTO today.

it's a must-see.

    

Inspiring Talks Day I, 1 Dec 2017

No Agile bullshit bingo and marketing talks permitted. See for yourself:

Kevlin Henney
gb flag Kevlin Henney
Consultant, Trainer, Writer, Editor of 97 Things Every Programmer Should Know
Yegor Bugayenko
us flag Yegor Bugayenko
CEO @ Zerocracy, Author of Elegant Objects, Creator of eXtremely Distributed Software Development
Uwe Friedrichsen
de flag Uwe Friedrichsen
CTO @ Codecentric, Fellow, Speaker, Nerd, Consultant
Nic Jackson
gb flag Nic Jackson
Developer Advocate @ Hashicorp, author of Building Microservices in Go
Ian Cooper
gb flag Ian Cooper
Lead Application Architect @ Huddle, Founder of the London .NET user group
Guillaume Laforge
fr flag Guillaume Laforge
Developer Advocate @ Google Cloud Platform, Groovy Language Lead
Aviran Mordo
il flag Aviran Mordo
Head of Engineering @ WIX
Evelina Gabasova
gb flag Evelina Gabasova
Machine Learning Researcher, PhD @ University of Cambridge, Microsoft MVP
Nikolas Burk
de flag Nikolas Burk
iOS developer, GraphQL enthusiast & educator
Paul Stack
gb flag Paul Stack
Software Engineer @ Joyent, ex-Software Engineer @ HashiCorp
Jakub Nabrdalik
pl flag Jakub Nabrdalik
Team Leader & Senior Software Engineer @ Allegro Group
Felix Müller
de flag Felix Müller
Software Architect @ Zalando
Kief Morris
gb flag Kief Morris
Cloud Technology Architect at ThoughtWorks, author of Infrastructure as Code
Roy Osherove
il flag Roy Osherove
DevOps Process Lead & Continuous Delivery Architect @ Dell EMC, author of Elastic Leadership, The Art of Unit Testing
Jakub Pilimon
pl flag Jakub Pilimon
Software Developer, Trainer @ ‎Bottega IT Minds, DZone's Most-Valuable Blogger
Raj Singh
gb flag Raj Singh
Technical Lead @ Equal Experts, AWS Certified Solutions Architect
Maxim Dorofeev
ru flag Maxim Dorofeev
Founder @ mnogosdelal.ru, ex-Head of IT @ Kaspersky Lab, author of Jedi Techniques
Amir Chaudhry
gb flag Amir Chaudhry
Member of Technical Staff @ Docker Inc.
Christian Wenz
de flag Christian Wenz
Consultant, Trainer @ Pluralsight, Microsoft MVP
Sandro Mancuso
gb flag Sandro Mancuso
Software Craftsman and Founder @ Codurance, author of The Software Craftsman
1 Track
2 Track
3 Track
8:00
Registration and Coffee
9:00
Conference Opening
9:15
Kevlin Henney
The Error of Our Ways

#opening keynote #general programming #software issues
10:10
Coffee Break
10:30
Yegor Bugayenko
How Much Do You Cost?

#career #salary #cv #self-development
10:30
Uwe Friedrichsen
The 7 Quests of Resilient Software Design

#resilience #distributed systems #patterns
10:30
Nic Jackson
Nomad: Scheduling Applications at Scale

#docker #containers #workload management
11:20
Coffee Break
11:40
Ian Cooper
TDD, Where Did It All Go Wrong

#better testing #bdd #clean code #refactoring
11:40
Guillaume Laforge
Machine Intelligence at Google Scale: Vision/Speech

#deep learning #tensorflow #live demo
11:40
Aviran Mordo
Journey from Monolith to Microservices and DevOps by WIX

#case study #software architecture #organisation scalability
12:30
Lunch Break
13:40
Evelina Gabasova
Exploring StackOverflow Data with Machine Learning

#unique insights #machine learning #f sharp
13:40
Nikolas Burk
REST in Peace - Modern API Design with GraphQL

#api #react #live demo
13:40
Paul Stack
An Introduction to Chaos Engineering

#distributed systems #stress testing #simian army
14:30
Coffee Break
14:50
Jakub Nabrdalik
Mid-sized Building Blocks & Hexagonal Architecture

#code organisation #layering #java
14:50
Felix Müller
Scaling Architecture @ Zalando

#case study #enterprise architecture #radical agility
14:50
Kief Morris
Implementing Infrastructure as Code

#devops #automation #patterns
15:40
Coffee Break
16:00
Roy Osherove
Team Leadership in the Age of Agile

#team leadership #self-organisation #soft skills
16:00
Jakub Pilimon
Refactoring to Event-Sourcing – No Slides, Just Code

#java #ddd #cqrs #live-coding
16:00
Raj Singh
Using AWS Lambda and Azure Functions to Develop Serverless Apps

#serverless #architecture #live demo
16:50
Coffee Break
17:10
Maxim Dorofeev
Jedi Techniques of Personal Effectiveness

#productivity #getting things done #smarter working
17:10
Amir Chaudhry
Docker Under the Hood

#docker #linuxkit #technical
17:10
Christian Wenz
Web Application Security Risks: A Look at OWASP Top Ten 2017

#web #security #hacking #attack examples
18:00
Coffee Break
18:20
Sandro Mancuso
The Long Road

#closing keynote #software craftsmanship #career development
19:10
Final Words
19:30
Beer Afterparty
* We'll do our best to keep everything as planned, but please note that schedule may be a subject to change.
speaker headshot

gb flag Kevlin Henney

Consultant, Trainer, Writer, Editor of 97 Things Every Programmer Should Know

The Error of Our Ways

What happens when things break? What happens when software fails? We regard it as a normal and personal inconvenience when apps crash or servers become unavailable, but what are the implications beyond the individual user? Is software reliability simply a business decision or does it have economic, social and cultural consequences? What are the moral and practical implications for software developers? And when we talk of 'systems', are we part of the 'system'? What about the bugs on our side of the keyboard? In this talk we will explore examples of failures in software and its application, and how they affect us at different scales, from user to society.

speaker headshot

us flag Yegor Bugayenko

CEO @ Zerocracy, Author of Elegant Objects, Creator of eXtremely Distributed Software Development

How Much Do You Cost?

We all want to make more money, being programmers, senior programmers, architects. How to get more money doing the same amount of work and spending the same amount of time is always a big question. There are a number of key points, which you have to pay attention to if you want to boost your profile as a software engineer and increase your salary or your hourly rate. At the presentation we will go through all of them, illustrated by practical examples and real CVs I’ve been getting over the last five years from over 300 programmers.

speaker headshot

de flag Uwe Friedrichsen

CTO @ Codecentric, Fellow, Speaker, Nerd, Consultant

The 7 Quests of Resilient Software Design

Resilient software design is around for some years meanwhile. Still, there seems to be a mismatch between popularity and progress - while patterns and libraries are quite well known for a while, only little progress in terms of creating better robust applications seems to be made. In this session we will examine the probably biggest obstacles and pitfalls on our way towards creating resilient systems. You will learn what they are, how you identify them and what you can do about it. After all, it is still a long way to become a resilient software designer...

speaker headshot

gb flag Nic Jackson

Developer Advocate @ Hashicorp, author of Building Microservices in Go

Nomad: Scheduling Applications at Scale

Tools like Docker and rkt make it easier than ever to package and distribute applications. Unfortunately, not all organizations have the luxury of being able to package their applications in a container runtime. Many organizations have virtualized workloads that cannot be easily containerized, such as applications that require full hardware isolation or virtual appliances. On the opposite end of the spectrum, some organizations deploy workloads that are already static binaries such as Go applications or Java applications that only rely on the JVM. These types of applications do not benefit from containerization as they are already self-contained. To address the growing heterogeneity of workloads, HashiCorp created Nomad – a globally aware, distributed scheduler and cluster manager. Nomad is designed to handle many types of workloads, on a variety of operating systems, at massive scale. Nomad empowers developers to specify jobs and tasks using a high-level specification in a plain-text file. Nomad accepts the job specification, parses the information, determines which compatible hosts have available resources, and then automatically manages the placement, healing, and scaling of the application. By placing multiple applications per host, Nomad maximizes resource utilization and dramatically reduces infrastructure costs. The flexibility of Nomad’s design brings the benefits of a scheduled application workflow to organizations with heterogeneous workloads and operating systems. This talk will discuss the pros and cons of running in a scheduled environment and includes a series of live demos to supplement the learning experience.

speaker headshot

gb flag Ian Cooper

Lead Application Architect @ Huddle, Founder of the London .NET user group

TDD, Where Did It All Go Wrong

Since Kent Beck wrote the book on TDD in 2002 a lot of words have been dedicated to the subject. But many of them propogated misunderstandings of Kent's original rules so that TDD practice bears little resemblance to Kent's original ideas. Key misunderstandings around what do I test, what is a unit test, and what is the 'public interface' have led to test suites that are brittle, hard to read, and do not support easy refactoring. In this talk we re-discover Kent's original proposition, discover where key misunderstandings occured and look at a better approach to TDD that supports sofware development instead of impeding it. Be prepared from some sacred cows to be slaughtered and fewer but better tests to be written.

speaker headshot

fr flag Guillaume Laforge

Developer Advocate @ Google Cloud Platform, Groovy Language Lead

Machine Intelligence at Google Scale: Vision/Speech

The biggest challenge of Deep Learning technology is the scalability. As long as using single GPU server, you have to wait for hours or days to get the result of your work. This doesn't scale for production service, so you need a Distributed Training on the cloud eventually. Google has been building infrastructure for training the large scale neural network on the cloud for years, and now started to share the technology with external developers. In this session, we will introduce new pre-trained ML services such as Cloud Vision API and Speech API that works without any training. Also, we will look how TensorFlow and Cloud Machine Learning will accelerate custom model training for 10x - 40x with Google's distributed training infrastructure.

speaker headshot

il flag Aviran Mordo

Head of Engineering @ WIX

Journey from Monolith to Microservices and DevOps by WIX

Wix.com started the journey toward DevOps and a microservices solution about 5 years ago when we switched from a monolithic application to a microservices-based system—a transition that took two full years to complete, with many lessons learned along the way. Today, Wix successfully operates over 200 microservices on a battle-tested production environment. In this talk, we will cover why Continuous Delivery and DevOps are important requirements for microservices, discuss guidelines for a good microservice architecture, explain why YAGNI and KISS are important and how operational concerns (DevOps) affect the design of a microservices architecture, as well as give some recommendations on the best way to transition from a monolithic to a microservices architecture.

speaker headshot

gb flag Evelina Gabasova

Machine Learning Researcher, PhD @ University of Cambridge, Microsoft MVP

Exploring StackOverflow Data with Machine Learning

When you’re stuck while programming - who you gonna call? StackOverflow! It’s an invaluable source of daily help to many. Interestingly, you can also download the entire data dump of StackOverflow and let machine learning loose on the dataset. In the talk I’ll look at what we can learn from the crowdsourced knowledge of developers worldwide. Meanwhile, you will also learn about ideas behind some machine learning algorithms that can give us insights into complex data - and also how does it all relate to cancer research! I will use a combination of statistical computing language R with functional language F# to show how you can easily access and process large-scale data the functional way.

speaker headshot

de flag Nikolas Burk

iOS developer, GraphQL enthusiast & educator

REST in Peace - Modern API Design with GraphQL

GraphQL is riding the hype wave right now. Yet many developers don't understand how they could benefit from it or where it fits into their stack. I'll introduce core concepts and give a practical demo how you can use GraphQL with React & Apollo. I'll also outline major advantages of GraphQL so you can convince your manager and developer friends to use it in your next project.

speaker headshot

gb flag Paul Stack

Software Engineer @ Joyent, ex-Software Engineer @ HashiCorp

An Introduction to Chaos Engineering

Chaos Engineering is methodology that experiments on a distributed system in order to build confidence that the system will work well in production. Essentially, we experiment by trying to break our system to uncover system weakness. In this talk, Paul will cover the basics of Chaos Engineer, give some case studies of companies that currently do this in production and give an introduction to some of the open source tooling that currently exists so that you can maybe try this at your company. Paul will also show that, by following good infrastructure management practices, that you can recover and scale the system when necessary, easily!

speaker headshot

pl flag Jakub Nabrdalik

Team Leader & Senior Software Engineer @ Allegro Group

Mid-sized Building Blocks & Hexagonal Architecture

Do you know why the default scope in Java is package-private? Because that's what designers thought should be the most popular scope. Is that the scope you most often see? Probably not. Somehow Java devs became crazy communists-capitalists, recognising only private and public access, and preferring public everywhere. And so our projects look like a lawn right after snow melts: full of shit laying in public. Hard to put into your head. Hard to reason about. Entanglement instead of encapsulation. People even register every possible class in an IoC container, because FU (nctional) programming, that's why. You wanna find something in my code? Google it. Or how about inheritance? James Gosling asked in 2001 about what he would do differently if he had a chance to recreate Java, said he would probably remove class inheritance. We are in 2016, having lambdas, defaults on interfaces, AOP and other tricks, but young developers still prefer to just add another abstract class to your code. Gonna be fun navigating those seven layers of hell when you read it. Ok, maybe it's not THAT bad, but it's not much better either. The problem of course, is that we all start with tutorials, which cut corners for brevity. And we don't pay attention to those small problems till they hit us hard. Let's see how we can make our situation a little bit better, using Domain Driven Design, package-private scope, sensible packaging structure, and CQRS on microservices. Because it is actually easier, than not doing it. Real life project examples included.

speaker headshot

de flag Felix Müller

Software Architect @ Zalando

Scaling Architecture @ Zalando

Zalando introduced Radical Agility last year: an organizational concept which fosters autonomous teams. By building your organization on autonomous teams, you may wonder how architecture works takes place in such an environment - especially with a separate architecture team. Architecture should not become a bottleneck. In this talk I show, how we try to achieve shared understanding regarding architecture across our organization by facilitating architectural principles and forming guilds. You will hear about our most important guidelines, why we have them and which technical challenges arise by them.

speaker headshot

gb flag Kief Morris

Cloud Technology Architect at ThoughtWorks, author of Infrastructure as Code

Implementing Infrastructure as Code

Infrastructure as Code (IaC) is the "A(utomation)" in the DevOps "CALMS" model. It treats dynamic infrastructure as a software system, which means development tools and agile practices like TDD, CI, and CD can be used. Most development and operations teams are making at least some use of IaC tools such as cloud, Chef, Puppet, Ansible, Terraform, etc. But not many are using them to their full potential. This talk explains some of the core challenges of managing infrastructure in a fully automated way, and shares principles and patterns for addressing them. The talk walks through a number of patterns for implementing IaC tools such as AWS, Chef, Puppet, Ansible, and Terraform, to build a change management pipeline to automatically test and apply configuration to infrastructure. The patterns are not tool-specific, so should be useful for any team using these types of tools. Attendees should come away with an understanding of how concepts such as Continuous Integration (CI), Continuous Delivery (CD), Test Driven Development (TDD) can be applied to infrastructure.

speaker headshot

il flag Roy Osherove

DevOps Process Lead & Continuous Delivery Architect @ Dell EMC, author of Elastic Leadership, The Art of Unit Testing

Team Leadership in the Age of Agile

In this talk Roy explores the three maturity stages of a software team, and how a team leader can adjust their leadership type based on the current phase the team is in. Roy explores common mistakes and techniques team leaders can take to make sure their team gets on the road to craftsmanship and maturity in software development.

speaker headshot

pl flag Jakub Pilimon

Software Developer, Trainer @ ‎Bottega IT Minds, DZone's Most-Valuable Blogger

Refactoring to Event-Sourcing – No Slides, Just Code

Tired of fancy abstractions without actual down to earth implementation? In this talk we will go through some benefits of having event-sourced model on a real example. This is full-time live coding and we will start from a simple Spring Boot based OOP application and turn it upside down with events. Basic knowledge about DDD and/or OOP is welcome!

speaker headshot

gb flag Raj Singh

Technical Lead @ Equal Experts, AWS Certified Solutions Architect

Using AWS Lambda and Azure Functions to Develop Serverless Apps

In this session we will look at how you can develop applications using AWS Lambda and Azure Functions, create a deployment pipeline and monitor your applications written on those two platforms. We will go through real examples of how they are used and share the experience of working with the two technologies in production. The talk will be supported with live demos with tips on setting up a continuous deployment pipeline and working with both technologies.

speaker headshot

ru flag Maxim Dorofeev

Founder @ mnogosdelal.ru, ex-Head of IT @ Kaspersky Lab, author of Jedi Techniques

Jedi Techniques of Personal Effectiveness

During the last ten years (at least) I was deliberately thinking about what makes us productive, creative and gives us the effectiveness. I came to several counter-intuitive conclusions: – we're often late because we're trying to save time. - we're uncertain about some things, because we have too much information. - we're too slow, because we try to do them faster. During my talk I'm going to illustrate this in more details and show how it can be explained from the point of view of modern cognitive science as well as ancient wisdom. And of course the way to become more productive will be shown.

speaker headshot

gb flag Amir Chaudhry

Member of Technical Staff @ Docker Inc.

Docker Under the Hood

Docker is a platform that helps developers and ops teams to build, ship and run their applications. It's a complex system made up of a number of components, many of which are open-sourced under the Moby Project umbrella. This talk looks in detail at one of these components, LinuxKit, which is an open-source toolkit for building custom, minimal, and immutable Linux distributions. Docker uses LinuxKit to create the minimal host OS (a container OS) which ships as part of the Docker Desktop editions — in active use by developers all over the world. We will go through how LinuxKit is put together and demo how to use it to build your own, customised container OS within minutes — without compromising on security or usability. This talk will also cover announcements made at DockerCon and how LinuxKit enabled those features and integrations.

speaker headshot

de flag Christian Wenz

Consultant, Trainer @ Pluralsight, Microsoft MVP

Web Application Security Risks: A Look at OWASP Top Ten 2017

Since 2003, the Open Web Application Security Project curates a list of the top ten secuity risks for web applications. The 2017 edition of the list proved to be a major challenge. Originally scheduled for 2016, a first release candidate came out in mid-2017, just to be retracted later. If all goes according to (the new) plan, the final version of the list will see the light of day a few days before the conference. What is still relevant in web application security, which attacks are getting rare, and which new threats are coming up on the horizon? Attend this session to find out!

speaker headshot

gb flag Sandro Mancuso

Software Craftsman and Founder @ Codurance, author of The Software Craftsman

The Long Road

Choosing the next career step in such a diverse and fast-paced industry is not an easy task. But when it comes to our careers, there is no right or wrong. Or there is? How do we know? In this talk we will be talking about different career choices, how can we choose good companies to work for, what we can learn from interviews and selection processes, when should we look for a new job, and how to change our working environment.

Power Workshops Day II, 2 Dec 2017

Our instructors are here to deliver full-day workshops. Go beyond theory with industry experts:

9:00 – 18:00 Patterns and Anti-Patterns of Enterprise DevOps (limited seats)

DevOps is the implementation of continuous delivery and agile concepts across the organization, focusing on pipelines as the main building blocks for delivery value internally and to the customer.

But getting to that state is complicated because it requires several facets of work: People, process and tools. In large organizations, we have the added complexity. In large organizations, we have the added complexity of:
  • Multiple dependencies and sub systems
  • Multiple teams, groups, business units with competing interests
  • Varying degrees of agility, culture, tools, technologies and processes
  • Security, compliance and policy gates
In this workshop, we will discuss main patterns and anti-patterns for adopting and implementing DevOps pipelines throughout the organization, that scale:
  • Defining DevOps and Enterprise DevOps Pipelines
  • Defining Current Challenges & Pain points
  • Continuous Integration vs Continuous Delivery
  • Enterprise vs small scale DevOps challenges
  • Software defined everything
  • Value Streaming (intro, exercises, bottlenecks, anti-patterns & root causes)
  • Infrastructure as Code
  • Ephemeral Environments
  • Pipelines
  • Parent pipelines and child pipelines
  • Adoption (proofs of value, templating, patterns & anti-patterns, planning)

Instructor

speaker headshot Roy Osherove
DevOps Process Lead & Continuous Delivery Architect @ Dell EMC, author of Elastic Leadership, The Art of Unit Testing

DevOps is the implementation of continuous delivery and agile concepts across the organization, focusing on pipelines as the main building blocks for delivery value internally and to the customer.

But getting to that state is complicated because it requires several facets of work: People, process and tools. In large organizations, we have the added complexity. In large organizations, we have the added complexity of:
  • Multiple dependencies and sub systems
  • Multiple teams, groups, business units with competing interests
  • Varying degrees of agility, culture, tools, technologies and processes
  • Security, compliance and policy gates
In this workshop, we will discuss main patterns and anti-patterns for adopting and implementing DevOps pipelines throughout the organization, that scale:
  • Defining DevOps and Enterprise DevOps Pipelines
  • Defining Current Challenges & Pain points
  • Continuous Integration vs Continuous Delivery
  • Enterprise vs small scale DevOps challenges
  • Software defined everything
  • Value Streaming (intro, exercises, bottlenecks, anti-patterns & root causes)
  • Infrastructure as Code
  • Ephemeral Environments
  • Pipelines
  • Parent pipelines and child pipelines
  • Adoption (proofs of value, templating, patterns & anti-patterns, planning)
Book

9:00 – 18:00 Agile Architecture (limited seats)

Every system has an architecture, whether accidental or intentional, and regardless of whether it was put in place by a nominated architect or whether it emerged from the decisions and discussions of a team. All too often the focus of what is often described as architecture is centred around a specific set of platform technologies, which forms only one part of the set of concerns an architecture should. And all too often architecture is seen as a separate concern from development process, whereas the two are intertwined — what you build is influenced by how you build it, and vice versa. This course looks at the relationship between Agile processes and good architecture, taking in development process models, architectural styles, requirements techniques, sufficient modelling techniques, design patterns and testing practices. This course includes a number of practical exercises so that attendees can see how the different activities fit together.

The course covers a wide range of topics through a number of practical exercises, with plenty of time dedicated to group discussion:

  • The relationship between development process and architecture
  • The roles and failure modes of testing, modelling and technology platforms
  • Different architectural styles and design patterns
  • How to transform product vision into architecture
  • Future-proofing your architecture, and accounting for uncertainty
  • How to ground your architecture and avoid overdesign
  • ...and much more!

Instructor

speaker headshot Kevlin Henney
Consultant, Trainer, Writer, Author of 97 Things Every Programmer Should Know

Every system has an architecture, whether accidental or intentional, and regardless of whether it was put in place by a nominated architect or whether it emerged from the decisions and discussions of a team. All too often the focus of what is often described as architecture is centred around a specific set of platform technologies, which forms only one part of the set of concerns an architecture should. And all too often architecture is seen as a separate concern from development process, whereas the two are intertwined — what you build is influenced by how you build it, and vice versa. This course looks at the relationship between Agile processes and good architecture, taking in development process models, architectural styles, requirements techniques, sufficient modelling techniques, design patterns and testing practices. This course includes a number of practical exercises so that attendees can see how the different activities fit together.

The course covers a wide range of topics through a number of practical exercises, with plenty of time dedicated to group discussion:

  • The relationship between development process and architecture
  • The roles and failure modes of testing, modelling and technology platforms
  • Different architectural styles and design patterns
  • How to transform product vision into architecture
  • Future-proofing your architecture, and accounting for uncertainty
  • How to ground your architecture and avoid overdesign
  • ...and much more!

9:00 – 18:00 Practical Machine Learning with Functional Programming (limited seats)

Welcome to the 'Practical Machine Learning with Functional Programming' workshop!

This will be a hands-on workshop, so be sure to come with a laptop. You’ll also need to install F# with an editor of your choice. To get that, follow the instructions on http://fsharp.org/ for Mac, Windows or Linux. On Mac, we recommend VS Code or Xamarin Studio; on Windows, we recommend VS Code or Visual Studio.

If you’re using Atom or VS Code, follow the installation instructions in 'Getting started' on the Ionide page (http://ionide.io/). You'll need to install mono (Mac and Linux) or F# (Windows) and Atom/VS Code itself. Then install the ionide-installer package.

And that’s all, no previous experience with F# or machine learning is needed!

Instructor

speaker headshot Evelina Gabasova
Machine Learning Researcher, PhD @ University of Cambridge

Welcome to the 'Practical Machine Learning with Functional Programming' workshop!

This will be a hands-on workshop, so be sure to come with a laptop. You’ll also need to install F# with an editor of your choice. To get that, follow the instructions on http://fsharp.org/ for Mac, Windows or Linux. On Mac, we recommend VS Code or Xamarin Studio; on Windows, we recommend VS Code or Visual Studio.

If you’re using Atom or VS Code, follow the installation instructions in 'Getting started' on the Ionide page (http://ionide.io/). You'll need to install mono (Mac and Linux) or F# (Windows) and Atom/VS Code itself. Then install the ionide-installer package.

And that’s all, no previous experience with F# or machine learning is needed!

9:00 – 18:00 Resilient Software Design in Theory and Practice (limited seats)

To make the complex, distributed and highly interconnected system landscapes of today robust, responsive and highly available, we need to implement resilience into them at application level. Many patterns for implementing resilience into an application exist. The daunting questions are how to slice (design) an application and which patterns to pick and combine in order to match your specific needs best.

This workshop will address those questions in three parts:

  • In the first part you will learn about the challenges how to design applications in a resilient way, get an overview about the resilience pattern landscape, learn some of the most important patterns and when to apply them.
  • In the second part you will have the opportunity to apply the just learned contents to a real-life case study and design and discuss your own resilient solution.
  • In the last part we will complete the workshop with a peek in some complementing topics, like some advanced patterns, a resilient design cycle and how to introduce the topic into the software development process.

After this workshop, you will have a much deeper understanding how to design a solution that satisfies your specific robustness needs.

Instructor

speaker headshot Uwe Friedrichsen
CTO @ Codecentric, Fellow, Speaker, Nerd, Consultant

To make the complex, distributed and highly interconnected system landscapes of today robust, responsive and highly available, we need to implement resilience into them at application level. Many patterns for implementing resilience into an application exist. The daunting questions are how to slice (design) an application and which patterns to pick and combine in order to match your specific needs best.

This workshop will address those questions in three parts:

  • In the first part you will learn about the challenges how to design applications in a resilient way, get an overview about the resilience pattern landscape, learn some of the most important patterns and when to apply them.
  • In the second part you will have the opportunity to apply the just learned contents to a real-life case study and design and discuss your own resilient solution.
  • In the last part we will complete the workshop with a peek in some complementing topics, like some advanced patterns, a resilient design cycle and how to introduce the topic into the software development process.

After this workshop, you will have a much deeper understanding how to design a solution that satisfies your specific robustness needs.

9:00 – 18:00 Crafting Code (limited seats)

This course is designed to help developers get better at Test-Driven Development and write well-crafted code—code that is clean, testable, maintainable, and an expression of the business domain. The course is entirely hands-on, designed to teach developers practical techniques they can immediately apply to real-world projects.

Software Craftsmanship is at the heart of this course. Throughout, you will learn about the Software Craftsmanship attitude to development and how to apply it to your workplace. Writing Clean Code is difficult. Cleaning existing code, even more so. You should attend if you want to:

  • Write clean code that is easy to understand and maintain
  • Become more proficient in Test-Driven Development (TDD): using tests to design and build your code base
  • Focus your tests and production code according to business requirements using Outside-In TDD (a.k.a. the London School of TDD)
  • Understand design principles that lead to clean code
  • Avoid over-engineering and large rewrites by incrementally evolving your design using tests

Once you have an understanding of the principles at work, we will apply them to Legacy Code to help you gain confidence in improving legacy projects through testing, refactoring and redesigning. The course is fully hands-on and developers will be writing a lot of code.

Instructor

speaker headshot Sandro Mancuso
Software Craftsman and Founder @ Codurance, author of The Software Craftsman

This course is designed to help developers get better at Test-Driven Development and write well-crafted code—code that is clean, testable, maintainable, and an expression of the business domain. The course is entirely hands-on, designed to teach developers practical techniques they can immediately apply to real-world projects.

Software Craftsmanship is at the heart of this course. Throughout, you will learn about the Software Craftsmanship attitude to development and how to apply it to your workplace. Writing Clean Code is difficult. Cleaning existing code, even more so. You should attend if you want to:

  • Write clean code that is easy to understand and maintain
  • Become more proficient in Test-Driven Development (TDD): using tests to design and build your code base
  • Focus your tests and production code according to business requirements using Outside-In TDD (a.k.a. the London School of TDD)
  • Understand design principles that lead to clean code
  • Avoid over-engineering and large rewrites by incrementally evolving your design using tests

Once you have an understanding of the principles at work, we will apply them to Legacy Code to help you gain confidence in improving legacy projects through testing, refactoring and redesigning. The course is fully hands-on and developers will be writing a lot of code.

9:00 – 18:00 Building Event-Sourcing and CQRS Applications with Spring (limited seats)

In this hands-on workshop, together with Jakub you're gonna build a fully featured distributed system from a scratch using Spring Boot and Spring Cloud Stream. During the whole day we will learn:

  • Why's and How's behind Event Sourcing and CQRS
  • How to rewrite a Domain-Driven-Design-like app to event-sourced model with pure Java (almost)
  • How to unit test objects backed by event sourcing
  • How to leverage CQRS to eliminate accidental complexity in our domain model
  • How to build simple Process Managers in a distributed system
  • How to use messaging and Spring Cloud Stream to achieve loose coupling
  • What are Kafka Streams and why they are awesome
  • ...and much more!

Requirements:

  1. Java 8
  2. Maven
  3. Your best IDE

Additional Requirements (not needed, but will help):

  1. Kafka installed on your machine. It is really easy to start: https://kafka.apache.org/quickstart. Can be as docker image.

Before workshop please:

  1. git clone https://gitlab.com/pilloPl/devternity-event-sourcing.git
  2. git clone https://gitlab.com/pilloPl/devternity-event-listener.git
  3. mvn clean install (if does not work please drop me a line at jakub.pilimon@gmail.com)
    1. Instructor

      speaker headshot Jakub Pilimon
      Software Developer, Trainer @ ‎Bottega IT Minds, DZone's Most-Valuable Blogger

In this hands-on workshop, together with Jakub you're gonna build a fully featured distributed system from a scratch using Spring Boot and Spring Cloud Stream. During the whole day we will learn:

  • Why's and How's behind Event Sourcing and CQRS
  • How to rewrite a Domain-Driven-Design-like app to event-sourced model with pure Java (almost)
  • How to unit test objects backed by event sourcing
  • How to leverage CQRS to eliminate accidental complexity in our domain model
  • How to build simple Process Managers in a distributed system
  • How to use messaging and Spring Cloud Stream to achieve loose coupling
  • What are Kafka Streams and why they are awesome
  • ...and much more!

Requirements:

  1. Java 8
  2. Maven
  3. Your best IDE

Additional Requirements (not needed, but will help):

  1. Kafka installed on your machine. It is really easy to start: https://kafka.apache.org/quickstart. Can be as docker image.

Before workshop please:

  1. git clone https://gitlab.com/pilloPl/devternity-event-sourcing.git
  2. git clone https://gitlab.com/pilloPl/devternity-event-listener.git
  3. mvn clean install (if does not work please drop me a line at jakub.pilimon@gmail.com)

9:00 – 18:00 Modern Infrastructure with the HashiStack (limited seats)

This is a comprehensive, engineer led course that covers building infrastructure in an IaC (Infrastructure as Code) fashion, using HashiCorp's Packer and Terraform tools. Topics include:

  • Terraform and Packer syntax, internals, and patterns
  • Creating and accessing compute instances
  • Provisioning resources with Terraform
  • Working with remote state
  • Managing DNS with Terraform
  • Continuous delivery of machine images with Packer
  • Learn how to safely provision and manage infrastructure lifecycle with Terraform and Packer!

Instructor

speaker headshot Paul Stack
Software Engineer @ Joyent, ex-Software Engineer @ HashiCorp

This is a comprehensive, engineer led course that covers building infrastructure in an IaC (Infrastructure as Code) fashion, using HashiCorp's Packer and Terraform tools. Topics include:

  • Terraform and Packer syntax, internals, and patterns
  • Creating and accessing compute instances
  • Provisioning resources with Terraform
  • Working with remote state
  • Managing DNS with Terraform
  • Continuous delivery of machine images with Packer
  • Learn how to safely provision and manage infrastructure lifecycle with Terraform and Packer!

Tickets

This is limited offer. Grab your ticket today.

{{product.name}}
🚀BEST{{product.price}} {{product.price + product.extra}}

BuySold out

Sponsors

We are partnering with amazing companies that have continuous learning and innovation in their DNA:


undefined logo
Platinum Sponsor

Work in Estonia introduces Estonia as an attractive living and working destination to talented potential employees worldwide, particularly in the ICT sector. Come and join the first digital society!



undefined logo
Gold Sponsor

4financeIT is a distributed software house, located in Warsaw, Riga, London, Vilnius and Prague, providing software to the rest of 4finance (15 different countries).

undefined logo
Gold Sponsor

Do you think time and money matter? We at Visma believe so. Therefore we make IT solutions that enable our customers to save both. "Efficiency experts", that's how we like to call ourselves. We achieve that by building international teams of smart minds who enjoy being stretched to their limits. Click on the logo and check if you would like to join us.

undefined logo
Gold Sponsor

Pipedrive is a tool that gets sales teams organized. Pipedrive employs the brightest talent, with over 20 nationalities represented amongst the staff. We believe that it takes great people to deliver a great product.

undefined logo
Gold Sponsor

More than 160 IT Specialists at Intrum Justitia Software Development Centre are developing, supporting and maintaining financial systems for Intrum Justitia Group all over the Europe. Various programming languages, tools and methodologies are used to deliver valuable solutions and make work interesting for each person who joins the team.

undefined logo
Gold Sponsor

In ULabs Riga, part of global company Ubiquiti Networks Inc. producing wireless networking and consumer product, we are always searching the next big thing - we reinvent existing concepts, create smart solutions and drive innovation. Sponsoring DevTernity 2017 we see as taking steps towards this "next big thing" because ideas are born during the interchange of opinions, knowledge, and inspiration. We are proud to be part of evolving and dynamic platform where professionals meet to broaden their horizons and change perspective.



undefined logo

undefined logo

undefined logo

undefined logo

undefined logo

undefined logo


Become a sponsor