DeveloperWeek Europe 2021 DeveloperWeek Europe 2021

Workshop Stage 2

Join on Hopin

Tuesday, April 27, 2021

Practical Smart Devices - from Theory to Prototype
Chris Harrold
Chris Harrold
Temenos, Developer Relations Director

Smart devices form the bedrock of our connected world, and yet they can be a daunting place to get started. Building practical devices requires a multi-disciplinary set of skills and basic knowledge that may seem like an arcane art, but with a proper grounding in fundamentals you can build prototype smart devices with ease. In this session participants will be given a crash course in Electronics and Electrical Engineering concepts that are the foundational knowledge of all smart devices. After the sessions, participants will be able to apply the concepts to building their own prototype smart devices, and expand on those skills with additional projects that they can build.

Welcoming the Quantum Era with Azure Quantum
Vyron Vasileiadis
Vyron Vasileiadis
ATCOM, Software Engineer

Harnessing the unique behavior of quantum physics and applying it to computing, quantum computers introduce new concepts to traditional programming methods such as superposition, entanglement, and quantum interference.

Microsoft, having a clear mindset towards the coming quantum era, is partnering with quantum hardware companies to provide developers with cloud access to quantum hardware.

Leveraging the Azure Quantum platform and the Q# language, developers are now able to explore quantum algorithms and run their quantum programs on different types of quantum hardware.

In this session, we will explore Azure Quantum’s capabilities and run a Q# quantum application on a real quantum computer.

It's Compose O'Clock on Android
Márton Braun
Márton Braun
Stream, Android Developer Advocate & Engineer

Jetpack Compose is changing how UI is being built on Android. This new toolkit is replacing the now 10-year-old, somewhat tedious View system with a declarative, functional approach, and promises to simplify and speed up UI development.

This is happening at the same time as Flutter continuously gaining popularity, and iOS getting its own declarative UI APIs with SwiftUI.

This session explains what Jetpack Compose is, and then shows a quick example of interesting UI with it, based on this blog post

Mobile Apps User Acquisition - the Role of Marketers in an Automated World
Margaret Kuleta
Margaret Kuleta
Google, Mobile Growth Lead

With Mobile on track to contribute to 72% of global e-commerce sales by 2021, Apps are playing a pivotal role for both user acquisition but also retention and engagement. Come learn how to make the most out of your Mobile App by leveraging Mobile Apps Promotion solutions and strategies. The session will cover the role of Apps within the E-Commerce industry, best practices and success stories from some of our partners as well as product roadmap

From Event Streaming to Event Sourcing
Gerard Klijs
Gerard Klijs
Open Web, Software Engineer / Developer Advocate

Kafka is great, but it's not well suited for event sourcing.
For streaming events Kafka is a great solution which is scalable and easy to use. But for event sourcing it's not a perfect fit. One of the things we can't get from Kafka is quickly getting all items with the same id. Which is something event stored as made for. This means it's not easy to quickly rehydrate an aggregate.

In an event sourcing architecture often CQRS is applies. To easily handle queries, some intelligent message distribution is needed, which is also something which is not available with the Kafka api.

I will explore these problems and offer some solutions by building a few things onto Kafka instead of sending and receiving the messages directly from Kafka.

Journey from VPS to Cloud
Miro Michalicka
Miro Michalicka
Jobiqo, DevOps engineer

At Jobiqo we are building flexible job board software and smart matching technology to enable media brands and organizations to engage talent with job sites. Until recently we were relying solely on managed VPS. In this session, I will talk about the process we undertook while migrating to the cloud.
At the end of this session, attendees will be able to list the pros and cons between managed VPS and cloud hosting. They will also be able to compare different cloud providers and they will be able to evaluate the performance of their cloud.

Michael Westergaard
Michael Westergaard
Open Circle Solutions, Senior Consultant

Monolithic applications have been shunned for years now, and micro-services is one of the architectures trying to replace them.

Micro-services suffer from two central problems: 1) they easily become an unmanageable soup of individually versioned components that are hard to manage and continually version, and 2) the paradigm does not really deal with user interfaces.

Micro-GUIs try to resolve the second issue, but the technology is still in the infancy.

Instead, we propose to use micro-applications. It is individual applications that work together to achieve a single goal. Micro-applications are size-wise closer to micro-services, but are self-contained in the sense that they come with data-layer and user-interface (as applicable), reducing the pain of tracing a function point between many different micro-services and allowing internal unpublished interfaces (e.g., keeping services used solely for the GUI private), reducing problem 1, and explicitly splits up the user-interface into blocks, handling problem 2.

Micro-applications allow each application to use its own paradigms and frameworks, allowing freedom in selecting not only technologies but even suppliers, yet tie everything together using a robust single-sign on solution, presenting a single experience to the end-user.

In this talk, we present the architecture in more detail and outline some of our experiences with using the paradigm at multiple customers, as well as a driving architecture for modernization of existing applications and entire landscapes.

The talk is not technical and presents all prerequisites; it is an advantage but not a prerequisite to have felt the pain of altering a 5 years untouched monolith or having to do a wide-sweeping change in a micro-service landscape.

Voice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Xavier Portilla Edo
Xavier Portilla Edo
Voiceflow, Test Automation Engineer

Since 2011 voice assistants have been entering our lives little by little. It wasn't until 2014 that Amazon created the Echo devices with its built-in assistant, Alexa. In 2018 they give us the opportunity for anyone to add functionality through skills, it means to be able to create voice-based applications for the first time.
What are we going to talk about?
In this talk, a totally pioneering architecture in this type of application will be taught: How to deploy an Alexa Skill in Kubernetes environments. From local development with Kind and DevSpace, through the design of a Helm chart of Alexa Skill itself together with the non-relational database MongoDB, to automatic deployment in AKS with Terraform.
What does it bring to the attendees?
The main goal of this talk is, in addition to learning how to develop an Alexa Skill, to teach attendees the different ways to develop and deploy an Alexa Skill. We will investigate all the different types of deployments supported for these voice applications.
Who will be interested on it?
1. Tech leads nuevas arquitecturas están naciendo a partir de la aparición de estas aplicaciones y plataformas. Es una buena oportunidad para aprender sobre este nuevo enfoque.
2. Product managers puede ser una buena oportunidad para poder detectar nuevas funcionalidades/interacciones de un producto.
3. Engineers si eres un amante de las nuevas tecnologías esta es tu charla!

Keywords: Voice, Alexa, Voice Apps, Azure, Kubernetes, Helm, Docker, AKS, Terraform, Voice First, AI.

Bot Framework with ML.NET
Marco Zamana
Marco Zamana
4wardPRO, Head of Software Development

A session where we will discover Bot framework and develop our virtual assistant. A Bot that can train an ML model and make predictions through ML.NET.

Event-Driven Applications: Apache Kafka and Python
Francesco Tisiot
Francesco Tisiot
Aiven, Developer Advocate

Code and data go together like tomato and basil; not many applications work without moving data in some way. As our applications modernise and evolve to become more event-driven, the requirements for data are changing. In this session we will explore Apache Kafka, a data streaming platform, to enable reliable real-time data integration for your applications.

We will look at the types of problems that Kafka is best at solving, and show how to use it in your own applications. Whether you have a new application or are looking to upgrade an existing one, this session includes advice on adding Kafka using the Python libraries and includes code examples (with bonus discussion of pizza toppings) to use.

With Kafka in place, many things are possible so this session also introduces Kafka Connect, a selection of pre-built connectors that you can use to route events between systems and integrate with other tools. This session is recommended for engineers and architects whose applications are ready for next-level data abilities.

Wednesday, April 28, 2021

Software Development Antipatterns
Mustafa Toroman
Mustafa Toroman
Authority Partners, Solution Architect, Azure MVP

In software development, we like to recognize good choices and identify them as patterns. This leads into implementing these patterns as best practices. But as we have good choices, we have bad choices as well. We identify them as antipatterns in order to avoid them in future projects. If you identify them in time, you can avoid them on your next project. Come and check what warning signs you need to look for!

Lean Product Development through SLOs
Josh Armitage
Josh Armitage
Contino, Principal Consultant

How can you strip over-processing out of your value stream?
How can you understand and communicate what "good enough" looks like?
How can you systematically challenge and remove assumptions from you consumers?

In supporting enterprises in DevOps & agile transformations across three continents, I discovered a common theme, stories talk of what is to be enabled, but not how well it needs to perform.

Recently, upon joining a platform team drowning under the weight of their backlog, I experimented with SLOs being the beating heart of our product development flow.

To do this, we:

- Revisited all previous core usecases and determined meaningful SLIs and SLOs
- Made SLOs an inherent part of defining features
- Built a lightweight infrastructure to translate technical changes to business events
- Made a dashboard to transparently broadcast our SLOs
- Made SLOs be the core of conversations with our consumers

By doing this, we:

- Removed assumptions from consumers, driving more meaningful conversations about value
- Created a beachhead for a more data driven culture
- Created a common understanding of what "good enough" looked like
- Became better focused on maximising value delivery, over redundant gold plating of features

You'll learn:

- How to adopt an SLO driven product development flow
- From the mistakes we made along the way
- Tips and tricks for defining SLOs for low frequency usecases
- How to drive more impactful conversations

Do You Really Know Your Team?
Pablo Bouzada
Pablo Bouzada
Plain Concepts, Software Engineer Manager

One of the principles in Agile says: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

As Engineering Manager, Principal Engineer, Tech Lead or whatever your title says, do you know how to motivate individuals? Do you know how to create a safe environment and support each team member? Do you know how let them grow?

In my 10 years managing teams I learn a few things that should help you in order to know, support, and grow your team based on Agile principles, Management 3.0 and other stuff...

How Cisco Embraced a DevOps Culture within Its Network Engineering Team
Stuart Clark
Stuart Clark
Cisco, Network Automation Developer Evangelist

Network automation was not well practiced or well understood inside our network engineering team, but was sorely needed. We needed to decrease effort and mistakes on daily management tasks by minimizing the direct human interaction with network devices. High on our priority list of goals, was improving network security by recognizing and fixing security vulnerabilities and increasing the network performance.

We started by simplifying daily workflows, baselining our configurations and removing snowflakes. While this can be very labour-intensive at the outset when you’re working on a global scale in a highly critical customer environment, the long-term benefits far outweighed the labour.
Next, we created an inventory file which listed all network devices by type, model, location and IP address - this enabled us to retrieve info about devices and using network programming and automation, allowing us to deploy to all devices, or even a subset of devices (eg. only those in a specific area), depending on what was needed. The benefit to this is we avoided manual configuration and logging into hundreds of different devices to add configuration to each one.
Overcoming these two big challenges set us up for success and enabled us to deploy at a global scale. We lived by the mantra:

“If it’s not repeatable, it’s not automatable. And if it’s not automatable, it’s not scalable.”

So what did we learn? For starters, it can be hard to automate a use case or test in the same way you would if doing it manually. Testing that requires physical movement, for example losing service provider links or hardware failure is also a challenge, as automating something like that is very tricky. We also learned that code reviews are extremely important. Shared code ownership means the entire team can make changes anywhere, at any time.

And what we’re the measurable outcomes?

Faster deployment times - we were able to efficiently push changes to over 300 network devices and audit the configuration of our global network, taking the time to execute from days down to hours.
Removed the fear of large and complex network changes - the accuracy and efficiency with which we were able to deploy at scale, gave business and the leadership more confidence in subsequent large scale network changes and deployments.
Faster feedback on network changes - it allowed us to get reviews on network configuration changes with version control and peer review, treating infrastructure as code (IaC).
Helped with adhering to PSIRT/CSIRT challenging timeframes and security vulnerabilities.

Techniques used:
We started by simplifying daily workflows, baselining our configurations and removing snowflakes. Next, we created an inventory file which listed all network devices by type, model, location and IP address.

Metrics used:
Speed of deployment; speed of feedback on network changes; speed of adherence to PSIRT/CSIRT timeframes; confidence and buy-in from senior leadership on subsequent deployments!

Why We Need Product Management Skills in Application Modernization
Fani Bahar
Fani Bahar
VMware, Product Manager

Product Manager, this is a title that is very hard to explain and most of the time comes with big responsibilities but yet it is easy to overlook. Moreover, in the Application Modernization journey that focuses on modernizing your legacy application.
We are not delivering code or creating a prototype and definitely our job description is NOT attending meetings all day. We believe there are skills and mindset as Product Manager to accelerate the team to be successful in building modern applications. In this talk, I will share why we need product management skills to increase the success in your Application Modernization journey.

Be Future Compatible with AI/ML
Natalie Pistunovich
Natalie Pistunovich
Aerospike, Lead Developer Advocate

In 2020, OpenAI has launched GPT-3, an autoregressive language model that uses deep learning to produce human-like text which was trained on 175 Billion parameters.
In 2021, Google AI has open sourced Switch Transformer, an artificial intelligence language model which was trained on 1.6 Trillion parameters.
How do these developments affect the tech industry?

It’s a safe bet that the state of tech as we know it will change to be AI-driven. This is already affecting a wide range of fields, from meditation apps, through investment robots to the cloud infrastructure. This won’t stop there, as new fields that are being disrupted by tech, like legal-tech, med-tech and others, also have an AI component.

Keeping up with these changes requires changes across all the tech teams - product, software, DevOps, QA, etc. In this talk we will cover the current state of AI and how you can make your product and teams future-compatible.

What the Soviet Space Program Taught Me about Digital Product Development
Dean Schuster
Dean Schuster
Truematter, UX Strategy Expert and Partner

The space race between the USA and USSR was one of the great dramatic stories of the 20th century. Our very industry was born as Washington and Moscow relentlessly competed to master the stars.

For space nuts like me, this fascinating time is utterly compelling. It’s also highly instructive for digital product developers. After all, engineers drove the innovation that pushed us beyond earth. The lessons they learned and processes they created can help us today as we make software, apps, and advanced functionality online.

Of course, the Soviet side of the story tends to be less understood. And that’s exactly what we’ll explore. It’s unbelievable stuff, and a cautionary tale for development teams.

- How differing philosophies of development lead to different processes and results.
- What Soviet imperatives parallel modern development approaches.
- Why the USSR led the space race early, but ultimately failed to reach the moon first.
- What we can learn, adapt, and avoid today from the 20th century Soviet model.

Getting Started with Observability for Chaos Engineering
Shelby Spees
Shelby Spees
Honeycomb, Developer Advocate

How much are you learning from your chaos experiments? How do you know it’s safe to perform them? Learn how to instrument your systems in order to gain confidence and get the most out of chaos, whether you’re injecting it on purpose or it’s already there in your system. This talk explores how Honeycomb’s engineering team leverages high-context telemetry data to measure service heath and risk in order to determine when it’s safe to perform experiments. Attendees will come away with next steps for instrumenting for observability in order to get the most out of their own chaos experiments.