logo

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

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

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

it's a must-see.

    

Inspiring Talks Day I, 10 Dec

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
Jimmy Bogard
us flag Jimmy Bogard
Chief Architect @ Headspring, Microsoft MVP, Creator of AutoMapper
Katrina Owen
us flag Katrina Owen
Senior Software Engineer @ GitHub, Creator @ exercism.io, Co-author of 99 Bottles of OOP
Sandro Mancuso
gb flag Sandro Mancuso
Software Craftsman and Founder @ Codurance, Author of The Software Craftsman
Jakub Pilimon
pl flag Jakub Pilimon
Principal Technologist @ VMWare, Trainer @ ‎Bottega IT Minds, DZone's Most-Valuable Blogger
Anton Keks
ee flag Anton Keks
Software Craftsman, Co-Founder, Developer @ Codeborne
Adam Tornhill
se flag Adam Tornhill
Founder and Developer @ CodeScene, Author of Your Code as a Crime Scene
Maxim Dorofeev
ru flag Maxim Dorofeev
Founder @ mnogosdelal.ru, ex-Head of IT @ Kaspersky Lab, Author of Jedi Techniques
Venkat Subramaniam
us flag Venkat Subramaniam
J.B. Rainsberger
ca flag J.B. Rainsberger
Software Coach, Mentor and Consultant, TDD Trainer tdd.training
David Neal
us flag David Neal
Senior Developer Advocate @ Octa, Microsoft MVP
Bartłomiej Słota
pl flag Bartłomiej Słota
Trainer, Consultant @ Bottega IT Minds, OSS contributor
Saša Jurić
hr flag Saša Jurić
Elixir Mentor, Author of Elixir in Action, OSS contributor
Bert Jan Schrijver
nl flag Bert Jan Schrijver
CTO @ OpenValue, Netherlands JUG Lead
Kai Sassnowski
de flag Kai Sassnowski
Senior Software Engineer @ Wycomco, OSS contributor
Jakub Nabrdalik
pl flag Jakub Nabrdalik
Solution Architect, Developer and Mentor at Bottega IT Minds, ex-Head of Software Development @ 4Finance
Sven Peters
de flag Sven Peters
Developer Advocate @ MongoDB, ex-Technology Evangelist @ Atlassian
Hadi Hariri
es flag Hadi Hariri
VP of Developer Advocacy @ JetBrains
1 Track
2 Track
3 Track
8:00
Registration and Coffee
9:00
Conference Opening
9:15
Kevlin Henney
Decremental Development

#simplicity #yagni #architecture
10:10
Coffee Break
10:30
Jimmy Bogard
Effective Microservice Communication and Conversation Patterns

#architecture #microservices #protocols
10:30
Katrina Owen
One Small Step

#coding #clean code #refactoring
10:30
Sandro Mancuso
Rights and Responsibilities of a Delivery Team

#agility #software delivery #work organization
11:20
Coffee Break
11:40
Jakub Pilimon
Unit Testing Done Right

#automated testing #best practices #live coding
11:40
Anton Keks
The World Needs Full-Stack Craftspeople

#professionalism #extreme programming #career
11:40
Adam Tornhill
Prioritizing Technical Debt as if Time and Money Matters

#strategic refactoring #technical debt #code analysis
12:30
Long Break
13:40
Maxim Dorofeev
Certainly Uncertain: Predicting Delivery Dates

#estimation #planning #handling deadlines
13:40
Venkat Subramaniam
Qualities of a Highly Effective Architect

#career advice #architect's skills #soft skills
13:40
J.B. Rainsberger
Integrated Tests Are A Scam

#testing #test-driven-development #software design
14:30
Coffee Break
14:50
David Neal
Leadership Guide for the Reluctant Leader

#leadership #soft skills #people
14:50
Bartłomiej Słota
How to Make Your Architecture Scream with Functional Domain Modeling

#clean code #domain-driven design #java examples
14:50
Saša Jurić
The Soul of Erlang and Elixir

#distributed systems #fault tolerance #live demo
15:40
Coffee Break
16:00
Bert Jan Schrijver
Mastering the Linux Command Line

#no slides #live show #tips&tricks
16:00
Kai Sassnowski
Things Every Developer Needs to Know About Database Indexing

#databases #internals #deep-dive
16:00
Jakub Nabrdalik
User Stories Considered Harmful

#behavior-driven development #understanding requirements
16:50
Coffee Break
17:10
Sven Peters
The Effective Developer

#effectiveness #productivity #deep work
17:10
Hadi Hariri
The Silver Bullet Syndrome

#programmer's life #trends #technical decisions
17:10
amazing talk pending
18:00
Coffee Break
18:20
amazing talk pending
19:10
Final Words
19:30
Beer Afterparty
speaker headshot

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

Decremental Development

Less is more. Less is also more effort. Is it worth it? We keep talking about incremental development, but we don't talk enough about decremental development. When we talk about refactoring, we often speak optimistically and vaguely about improving code and cleaner code. In the real world the main activity of any significant clean-up is throwing out and reducing. The less code you have, the less you will have to optimise, to secure, to debug, to rework, etc.; the more of a codebase you will be able to fit in your head and understand and reason about. What can you remove? Dead code, speculative generalisations and needless abstractions. What can you reduce? Accidental complexity, verbosity and first-draft thinking now that we know better. Welcome to the world of decremental development.

speaker headshot

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.

speaker headshot

Senior Software Engineer @ GitHub, Creator @ exercism.io, Co-author of 99 Bottles of OOP

One Small Step

Refactoring sometimes devolves into an appalling mess. You're chasing a broken test suite, and every change just makes it worse. An even more insidious antipattern is the slow, perfectly controlled process culminating in dreadful design. This talk presents an end-to-end refactoring that demonstrates simple strategies to avoid such misadventures.

speaker headshot

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

Rights and Responsibilities of a Delivery Team

There is still a lot of frustration in software projects. Micro management, lack of autonomy, lack of trust, time pressure, personality clashes and lack of motivation are, among many, reasons for a general feeling of dissatisfaction. Behind all that there is an expectation mismatch between business, delivery teams, and individuals. This talk focus on the rights and responsibilities a delivery team should have in order to reduce frictions and increase the chances of a successful collaboration.

speaker headshot

Principal Technologist @ VMWare, Trainer @ ‎Bottega IT Minds, DZone's Most-Valuable Blogger

Unit Testing Done Right

Coming soon...

speaker headshot

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.

speaker headshot

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.

speaker headshot

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

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 you 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.

Qualities of a Highly Effective Architect

Many developers aspire to become architects. Some of us serve currently as architects while the rest of us may hope to become one some day. We all have worked with architects, some good, and some that could be better. What are the traits of a good architect? What are the skills and qualities we should pick to become a very good one? Come to this presentation to learn about things that can make that journey to be a successful architect a pleasant one.

speaker headshot

Software Coach, Mentor and Consultant, TDD Trainer tdd.training

Integrated Tests Are A Scam

Integrated tests are a scam. You’re probably writing 2-5% of the integrated tests you need to test thoroughly. You’re probably duplicating unit tests all over the place. Your integrated tests probably duplicate each other all over the place. When an integrated test fails, who knows what’s broken? Integrated tests probably do you more harm than good. Learn the two-pronged attack that solves the problem: collaboration tests and contract tests.

speaker headshot

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!

speaker headshot

Trainer, Consultant @ Bottega IT Minds, OSS contributor

How to Make Your Architecture Scream with Functional Domain Modeling

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.

speaker headshot

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.

speaker headshot

CTO @ OpenValue, Netherlands JUG Lead

Mastering the Linux Command Line

TLDR: I'll show you everything you need to know about the Linux command line as a developer.

speaker headshot

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.

speaker headshot

Solution Architect, Developer and Mentor at Bottega IT Minds, ex-Head of Software Development @ 4Finance

User Stories Considered Harmful

Long time ago there was a role of a business analyst, who would discover and gather client requirements, then together with a system analysts, write them down. Next, they would meet an architect, where they would analyze the impact of those requirements on the architecture, and impact of architecture on business opportunities. This collaboration would provide new ideas for the business, but most of all, would create the analysis that went to developers. Then there were eXtreme Programming (XP). Then came Scrum and Kanban with Scrum Masters and Product Owners. Neither of them had any experience with XP, but since they loathed the old world, they have fired all the system and business analysts. And so, two working methods of requirement analysis were replaced by a single ineffective meeting called “grooming”, where a seven plus/minus three people, without any preparation, try to estimate something that nobody took time to understand. I’d like to show you how we came to this point, why the current situation puts developers in jail, and how to solve this madness.

speaker headshot

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.

speaker headshot

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?

Power Workshops Day II, 11 Dec

Our instructors are here to deliver full-day workshops from 9:00 to 18:00. Choose one that you like more:

{ 1/7 } Leadership Guide for the Reluctant Leader (limited seats)

leadership teamwork mentoring

Course description

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.

The workshop is led by David Neal; David is #1 speaker of 2019.

Instructor

speaker headshot David Neal
Senior Developer Advocate @ Octa, Microsoft MVP

What you’ll learn:

  • Why leadership and awesomeness skills matter to everyone
  • How to become a better leader
  • How to run effective meetings
  • How to deal with conflict and find consensus
  • How to get better at listening and communication
  • How to encourage and motivate others

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!

Book

{ 2/7 } From Legacy to Solid Code (limited seats)

clean code refactoring legacy code event storming

Course description

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.

This workshops uses Java as a reference language; if your primary language is not Java – you're still very welcome, as we'll be working in pairs.

Instructor

speaker headshot Bartłomiej Słota
Trainer, Consultant @ Bottega IT Minds, OSS contributor

What you'll learn:

  • Why do we refactor, when do we do it, and where
  • What are the pros and cons of small-steps refactoring compared to blue-green refactoring?
  • How EventStorming can help us create the new model
  • How to split logical modules from the existing codebase
  • How and when to refactor towards DDD
  • How to test your legacy code and identify seams
  • How to be sure that the new code works exactly like the old one
  • How to securely withdraw changes when something goes bad
Book

{ 3/7 } Modular Monoliths, Distributed, and Event-Driven Systems (limited seats)

backend architecture microservices modularity

Course description

In this workshop, I’ll take you through three different styles of enterprise service architecture: modular monoliths, distributed synchronous systems, and event-driven systems. Together, we will design a non-trivial backend system and find out the strengths and weaknesses of each architectural approach. We will discuss the typical mistakes and problems developers face during service architecture design and how to solve them. You will learn how to choose the best architecture style for your project, and how to design hybrid solutions, leveraging the best parts of each architecture style.

This workshop covers fundamental concepts, relevant to all programming platforms and languages; developers and architects with different backgrounds can attend.

Instructor

speaker headshot Jakub Nabrdalik
Solution Architect, Developer and Mentor at Bottega IT Minds, ex-Head of Software Development @ 4Finance

What you'll learn:

  • Understanding the main styles of service and backend architecture
  • Microservies or monoliths? Is there a middle ground?
  • How to improve monoliths with modularity; Intro to Modular Monoliths
  • How and when to split the system into services with REST/RPC
  • How and when to become event-driven and fully async
  • How to design non-trivial backend and service architecture
  • How to avoid common errors in designing backend and service architectures
  • How to use C4 model to communicate your architecture
  • ...and much more!
Book

{ 4/7 } Advanced Jedi Techniques (limited seats)

productivity getting things done smarter working

Course description

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 2021: How should one handle vague/unclear/huge projects? How to get into individual brainstorming mode and think unthinkable?

NEW in 2021: Distinguishing between good and bad procrastination and the practical session of group de-procrastination.

Instructor

speaker headshot Maxim Dorofeev
Founder @ mnogosdelal.ru, ex-Head of IT @ Kaspersky Lab, Author of Jedi Techniques

In practical and entertaining way, you will learn:

  • How do our minds work? Daniel Kahneman’s and Tim Urban’s models.
  • What does instant gratification monkey do in my head and how to tame it?
  • How cognitive biases affect our day-to-day work?
  • The concept of limited Mindfuel and how to save it
  • Why some TODO lists don't work and how to make TODOs work
  • Methods of “Magic fairy” and “Rational flaneur”
  • How to succeed in a highly uncertain environment
  • How technology hijacks our minds and how to prevеnt it
  • How to deal with commitments under tight deadlines and high uncertainty
  • ...and much more!

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.

Book

{ 5/7 } Agile Architecture (limited seats)

agility architecture

Course description

This a new, re-designed edition of the course (2021).

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.

Instructor

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

What's inside?

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!
Book

{ 6/7 } Crafting Code (limited seats)

FEW TICKETS LEFT  clean-code tdd refactoring

Course description

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.

Instructor

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

After the training, you will:

  • Know how to write clean code that is easy to understand and maintain
  • Become more proficient in Test-Driven Development: using tests to design and build your code base
  • Focus your tests and production code according to business requirements using Outside-In 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.

Book

{ 7/7 } Evolutionary Design (limited seats)

architecture code design principles code quality

Course description

A good design is critical for success with agile development. That does not mean a big up-front design. The design has to be evolutionary. However, the design you evolve must be extensible and maintainable. After all, you can’t be agile if your design sucks.

In this training, we will address what evolutionary design is, and will delve into principles and practices that can help realize an effective evolutionary design.

Instructor

speaker headshot Venkat Subramaniam

What's inside?

  • Why Evolutionary?
  • How to create Evolutionary Architecture?
  • Refactoring design and architecture
  • Code Quality and its impact on Evolutionary Design
  • Good coding practices for Evolutionary Design
  • Test-Driven Design
  • Engineering practices to succeed in Evolutionary Design
  • ...and much more!

The course has a good balance of interactive lectures and hands-on exercises. The attendees are expected to pair-up and work on the lab exercises.

Book

Tickets

This is a 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
Gold Sponsor (since 2015)

Do you believe that face-to-face interaction is the best way to learn? We believe it, too. At DevChampions, we offer the highest quality training for software developers. We specialize, but are not limited to engineering practices, software architecture, automation and soft skills.



Silver Sponsor logo
Silver Sponsor (since 2019)

Partner logo
Partner (since 2019)

Partner logo
Partner (since 2019)

Partner logo
Partner (since 2019)

Partner logo
Partner (since 2019)

Partner logo
Partner (since 2019)

Partner logo
Partner (since 2019)

Partner logo
Partner (since 2019)


Want to boost your company's visibility?

Become a sponsor

Venue

The National Library of Latvia also known as Castle of Light is a stunning national cultural institution, that plays an important role in the development of Latvia's information society, research, and education.

With a stunning view on Riga Old Town and river Daugava, Castle of Light is designed from scratch specifically for unforgettable choral, chamber, and acoustic music experience, and is a perfect location for DevTernity.

The National Library of Latvia, Mukusalas street 3, Riga, Latvia

Get directions