unfold_lessunfold_more Java.Next: Keeping Up with Java
- Learn cutting-edge Java features
- Why and how you want to migrate beyond Java 8
As of Java 9 we're getting a major Java release twice a year. Java 11 and beyond are already available, but you're most probably still developing on Java 8. Looking at Oracle's Java 8 roadmap, where public support for Oracle JDK 8 was dropped early 2019, that's not a great place to be. So what's next? In this workshop we'll first look at the new module system in Java and its impact on codebases. Then, we'll examine the new features in Java 9 and 10 such as local-variable type inference with `var`. Of course Java 11 - with an all-new HttpClient API - and later versions won't be forgotten. In this workshop, you'll learn through listening, experiencing demos and live-coding. You'll be coding with new Java features yourself with hands-on labs. Outline: Morning - Introduction to the Java module system - New features in Java 9 - Start of hands-on Afternoon - New features in Java 10 and later - Second part of hands-on - Moving from Java 8 to 11 and beyond: migration and Long-term Support
unfold_lessunfold_more Requirements, User Stories and Backlogs
- What makes a good user story, what makes a bad one
- The difference between requirements and specifications
- How specification by example and acceptance test criteria are used with stories to add detail
- How stories are prioritised, value? risk? business benefit?
In Agile, like traditional software development, work begins with customer requirements. But rather than a large English document most Agile teams work with small User Stories and backlogs. In this workshop we will look at how Agile teams work with User Stores and use multiple backlogs to guide their work. We will look at - User Stories: what makes a good one, what makes a bad one - The difference between requirements and specifications - How specification by example and acceptance test criteria are used with stories to add detail - How stories are prioritised, value? risk? business benefit? - How value can be assigned to stories and value changes Finally we will look at how backlogs can be structured to provide forward planning and visibility. This workshop is highly interactive, participants will get to write stories, critique stories and assign a monetary value to each and every story.
unfold_lessunfold_more Half-day workshop on visual thinking
- Understand how to improve your handwriting
- Build your visual vocabulary of icons - simple drawings that convey a complex meaning
- Learn and know how to apply major visual structures to solve the most common collaboration problems
- Have fun!
Join this in-depth 4 hour workshop to get a visual thinking toolkit to communicate effectively with the use of simple images and diagrams to tackle challenging professional situations, align your stakeholders and team members, and make fast and impactful decisions. The workshop is tailored to the needs of people working with technology in their daily professional activity.
unfold_lessunfold_more Getting started with Threat Modeling
- You will learn how to identify weaknesses in your design
- You will learn how to model the system in a way that helps identify issues
Security companies estimate that 50% of security issues are the result of problems in the system design. Such weaknesses cannot be found by automated tools. Threat modeling is the process of analysing your system and trying to identify weaknesses in design and missing security controls. This talk will introduce you to threat modeling and explain some of the techniques you can use to identify those threats in your systems. This workshop will help you get started with threat modeling. We will work in groups and create a threat model for a fictitious system. We will create a diagram, find threats, and discuss how to mitigate the threats. No previous threat modeling knowledge is required to participate. Outline: - Introduction to threat modeling - Practical modeling exercise - Review and discussion - Threat discovery theory - Threat discovery exercise - Review and discussion - Threat mitigation exercise - Review and discussion - Good practices and wrap up
unfold_lessunfold_more Azure Kubernetes
- Master the basic and advanced topics on Kubernetes and Azure Kubernetes Service
- Acquire in-depth understanding of deploying a multi-container app to the cloud
- Learn to use Helm, Azure Monitor, Horizontal Pod Autoscaler, Azure Key Vault, and the Cluster Autoscaler
- Build CI/CD pipelines with Azure DevOps and Container Registry
In this workshop, you’ll master the basic and more advanced topics required to deploy a multi-container application to Kubernetes on Azure Kubernetes Service (AKS). Some of the things you’ll be going through: - Kubernetes deployments, services and ingress - Deploying MongoDB using Helm - Azure Monitor for Containers, Horizontal Pod Autoscaler and the Cluster Autoscaler - Building CI/CD pipelines using Azure DevOps and Azure Container Registry - Scaling using Virtual Nodes, setting up SSL/TLS for your deployments, using Azure Key Vault for secrets
unfold_lessunfold_more Kubernetes AppOps with Istio
- Learn about application operations with Istio, the open-source service mesh for Kubernetes.
- You will get a hands-on experience in connecting, securing, controlling and observing your first service mesh.
- Learn how to deploy an app to your Kubernetes Cluster (on IKS) with Istio installed.
You are running your Kubernetes clusters and looking for ways to improve and make your developers faster, better while keeping customers happy! Here's an opportunity to learn about application operations with Istio, the open-source service mesh for Kubernetes. Whether you're maintaining your own Kubernetes environment, using RedHat OCP on-prem or running services like EKS, AKS, GKE, IKS on cloud, here's an introduction to get you started. Get hands-on experience in connecting, securing, controlling and observing your first service mesh! We will cover how-to: - Deploy an app to your Kubernetes Cluster (on IKS) with Istio installed - Use metrics, logging and tracing to observe the application’s microservices - Perform traffic management, such as A/B tests and canary deployments - Secure your service mesh - Enforce policies for your microservices Pre-reqs: Good understanding of Kubernetes and deploying containers An IBM Cloud account, https://cloud.ibm.com/registration Your own laptop to do the lab
unfold_lessunfold_more Socio-Technical Modeling as a Practice
- Why team, process, and technical spaces should not be treated as independent
- How to use Field Theory, Actor Network Theory, and Conway's Law to make better decisions
The team, process, and technical spaces continue to evolve in our industry; however, we treat them as independent. In this keynote, Michael Feathers will discuss ways that we can use the insights of Kurt Lewin's Field Theory and Bruno Latour's Actor Network Theory, along with Conway's Law, to make better architectural and organizational decisions.
unfold_lessunfold_more Functional Programming in Kotlin
- Learning about FP
- Benefits of using Kotlin for FP
In this talk we'll explain the basics of functional programming, where it fits in with the Object Orientation paradigm and how we can use functional programming in our every day work. We’ll cover important concepts functional programming such as: Lambdas, Higher Order Functions, Partial Functions, Monads and more, and see how we can apply these in a series of functional patterns to cut down our codebase and at the same time make sure we keep it maintainable.
unfold_lessunfold_more Evolution from #NoProjects to Continuous Digital
- Problems wit the project model
- Why digital demands a continuous approach
Once upon a time there was IT, and IT departments had projects. Projects were always a bad fit for software development but somehow we made them work. As IT became Agile the damage caused by the project model became obvious and #NoProjects emerged to help teams go beyond projects. Today growth businesses are digital. Technology is the business and the business is technology. Projects end but do you want your business to end? Or do you want it to grow? Growing a digital business means growing software technology. In this presentation Allan Kelly will look at how #NoProjects came about, how it evolved into Continuous Digital and why it is the future of management.
unfold_lessunfold_more GitOps in action
- How to use infrastructure as code and GitOps
- Why GitOps will help you manage you system
Nowadays development teams change applications faster and more frequent than ever before. More companies and teams move towards the DevOps way of working to be able to handle the increased development speed. GitOps is a flavour of the DevOps practice where operations and infrastructure changes are made through pull-requests. Any developer can then do production infrastructure changes as long as they can open a pull-request. Git becomes the single source of truth for everything. GitOps require us to declare our entire infrastructure and configuration in code, using tools like Terraform, CloudFormation, Puppet, Chef, among many others. When everything exists as code in Git, you get all the benefits that come with Git. Everything is versioned controlled, have a history, and changes are easy to track. In this session we will discuss the core concepts and benefits of practicing GitOps. How and what to think about, things to avoid, pitfalls, and more. We’ll end with a GitOps in action demo.
unfold_lessunfold_more Improving with C# 8.0
- You will discover how Null Reference Exceptions is (almost) eliminated with Nullable Reference Types
- You will learn how to write more readable and less error prone code when adapting to the pattern matching changes and switch expressions
- How to write more powerful code with the changes in C# 8.0
- How asynchronous streams change the way we work with streams of data
In this session we will look at features introduced in C# 8.0, and focus on how it makes us write better and more powerful applications. You will learn how the language features have changed, or been added from the previous iteration of C# (7.0), and how this changes the way we look at building our software.
unfold_lessunfold_more Automate All The Things!
- You will learn how to develop a more efficient and enjoyable development pipeline for your team
- You will understand how you can enforce code formatting, styling conventions, and best practices for your team
- You will see how automation can improve the code review process and overall code quality
- You will discover how to improve product quality through automated testing, releases, and issue tracking
Mobile moves fast, and so do you. To meet your deadlines, you want to build the right thing, at the right time; every time. Your continuous integration pipeline allows you to do this, but can it do more? - How can you enforce coding formatting, styling conventions, and best practices? - Do you build everything on every commit? Do you have a daily build or customize your build per branch? - What do you record and analyze? Are your tests passing? Do your screens look correct? Is your apk getting too large? - How do you distribute your apk for testing and release? - How do you track, record, and notify quickly when issues arise? In this talk, you'll what tools are available at every step of the continuous integration pipeline; allowing you to automate as much as possible and dedicate your time to what matters most.
unfold_lessunfold_more Social Implications of Bias in Machine Learning
- How our datasets and algorithms share societies historical social biases.
- Why this could cause results to be inaccurate and further exaggerate existing discrimination.
- How we can assess the impact and change this from a risk into a powerful solution.
The adoption of Machine Learning in decision making has amplified the risk of socially-biased outcomes.Anyone (not just data scientists) working on ML tools holds immense power over shaping the future of our world. However, we can use this power for good and train models that help to drive positive social change sooner. This talk will provide context for this issue, explore real-world examples and discuss ideas for potential solutions. Together let's discover: - How our datasets and algorithms share societies historical social biases. - Why this could cause results to be inaccurate and further exaggerate existing discrimination. - How we can assess the impact and change this from a risk into a powerful solution.
unfold_lessunfold_more Learning in Continuous Experimentation: How we figure out what to build and how to build it right
- Learn about our customer hypothesis driven framework
- Learn strategies to validate your customer assumptions and determine what to build
- Hear behind-the-scene stories from the Visual Studio product team
Customer obsession and experimentation are at the core of the way we develop our tools. In this session, you'll hear how the Visual Studio team researches customer needs and translates those into testable solutions. You'll get to hear some of the pitfalls we encountered along our journey, as well as best practices we've learned.
- Test-First Mechanics and their reasons
- TDD is not about testing. It is about Development.
- Design ideas and refactoring.
unfold_lessunfold_more Every other week reteaming - a case study
- Feature teams is not the only option. Neither is component teams.
- Reteaming is really hard, but practice and good tools help.
We had strong, independent component teams. Most of us were happy, many felt productive. However, ever larger cracks appeared in our service along the platform boundaries. Our culture and our processess effectively stopped every cross-team effort. Enter: an agile coach with a crazy idea. This is the true story of how a group of 30 developers started moving the knowledge to the work. This is the story of how we struggled with doubt, anxiety, group psychology and strong opinions. This is also the story of how we found common goals, new friends and new courage.
unfold_lessunfold_more Web Components are your Framework's Best Friend
- Why & how of web components
- Portability — using web components in frameworks and vice-versa
- Pure players, and do we need frameworks at all?
Write your datepicker in React, use it in VueJS or even Angular. Let us take a look at how close we are to achieving this dream! And does that mean you don’t really need a framework? In this session, we'll swiftly walk through the what, why & how of web components. After that, we'll explore portability, i.e. how easy it is to use web components in your favourite frameworks, and how simple each framework makes it to convert its own proprietary components into univeral web components. We'll conclude by looking at the biggest pure players in the field and a discussion whether frameworks are needed at all.
unfold_lessunfold_more You have a security problem - your users
- You will learn what a credential stuffing attack is
- You will learn some best practices for communicating security issues to your users
Account Takeover (ATO) is an emerging security problem where an attacker gains unauthorized access to consumer accounts online, and either re-sells them or exploits the account for financial or informational gain. The most common ATO method is one called credential stuffing, where the attacker purchases cheap lists of compromised usernames and passwords on the dark web, and runs the list on login endpoints of popular websites for successful hits. This method is usually done via botnets and across distributed IPs at scale in short time frames, and can be very successful due to the fact that many people reuse their passwords across different services. With new regulations like GDPR, we're seeing a shift in responsibility toward data owners to keep user accounts and data safe. Companies can no longer put the burden of security on the user by enforcing multi factor authentication and elaborate password schemes, and expect to stay compliant and safe from attacks. Learn the anatomy and evolution of credential stuffing attacks, and why simple IP rate limiting rules no longer work to protect users.
unfold_lessunfold_more Intro to Kotlin Multiplatform
- How Kotlin targets more than the JVM
- What the "Multiplatform" plugin is and how it works
- How to get started writing shared code for the JVM, Web, and Native platforms
- Where the platform is and where it's going in the near future.
unfold_lessunfold_more Refactoring to CQRS
- What is CQRS?
- Why we would want CQRS?
- What we in and what we lose get when switching mindset?
- How you can start today with this approach?
Code reflects the way we think, but not necessarily the way it is used. Our programming patterns reflect the simplistic nature of acquiring and changing resources, but in certain cases it doesn't map properly to how the software is used. In this session we will introduce CQRS and explain how our code will now reflect a slightly different paradigm - one more powerful and a better match for how we interact with the software. We will explore how testing is simplified, what is its relation to DDD and how it will affect our overall architecture.
unfold_lessunfold_more Flow, microservices and scale
- Grand unified theory of organisational design
- How to create and scale high performing organisations and architectures
Recent research summarised in the book Accelerate points to a set of practices that lead to high software development organisation performance. Simultaneously, research from the Santa Fe institute on Complex Adaptive Systems over the last 20 years seems to point to a grand unified theory of organisational design. So have we cracked it? Do we now have the answer to the question: how do we create and scale high performing organisations and architectures? In this talk, James explores this research and takes a look at the surprising links between the practices we use every day, Elephants, Microservices and Amazon.
unfold_lessunfold_more Keeping Up with Java
- Learn about new features in Java in versions since Java 8
- See tools and features in action
- Learn what it means to migrate beyond Java 8
It seems like keeping up to date with Java nowadays is an enormous task. Gone is the era of big, delayed Java releases that span years. We're now getting a new major release every six months. What's up with that? You're probably still developing on Java 8, even though Java 13 is already available. Join this session to get an overview of what's new in Java since Java 8. We'll give an overview of the module system (Java 9), the local-variable type inference feature (Java 10) and the new HttpClient API (Java 11). Expect lots of advice on how to get from Java 8 to Java 11. It's time to embrace the newfound agility of the Java platform!
unfold_lessunfold_more Testing in Production
- You will learn how to safely test in production
- You will also learn why its better than testing in a staging environment
- You will learn how to mitigate risk of testing in production
- You will learn how to shift your company's testing culture
Testing in production is the only way to know that your software is working right now in production. It not only increases developer confidence in the code but also development velocity because you will spend less time fixing bugs and more time building new products. This approach provides an increased accuracy of test results, faster test execution time due to elimination of bad data, and you will have higher confidence before releases because you already know that your features will work before you launch. I will talk about the way to run tests in the production environment of a system, how to do it without disrupting real end users, and how to exclude testing data from data and analytics. I will also talk about the tools that help in this process, the benefits of testing in production, why the pros outweigh the cons, and why it's more reliable.
unfold_lessunfold_more How to Hack OAuth
- You will learn what problems OAuth solves, and what it does not solve.
- You'll learn the parts of OAuth that provide hackers an opportunity to attack the flow.
- You'll have a better understanding of some real-world OAuth hacks that happened in the past.
OAuth is the foundation of most of modern online security, used everywhere from signing in to mobile apps, to protecting your bank accounts. Despite its ubiquity, it is still often difficult to implement safely and securely, especially in today's landscape, which is dramatically different from the world of online security as it existed when OAuth was initially created. This talk will explore several real-world OAuth hacks that affected major providers like Twitter, Facebook and Google. I'll share the details of how each specific attack happened, as well as what they could have done to prevent it. Some of these attacks exploited technical flaws in the system, and some exploited the easier to hack, squishier component in the middle: people.
unfold_lessunfold_more Agile Leadership and HR in a Nutshell
- You will understand how Agile looks when implemented in the business
- You will learn how to talk to managers and HR about organizational change
- You will understand why the business seem to be so ignorant about agile
- You will learn some strategies to be the change you want to see
The presentation will cover what Leaders and HR managers need to be aware of when adjusting Ways of Working to the new paradigm of employee driven organizations (self-management) and how to make people go in a certain direction without using formal power. In an agile organization it is more about making it possible for teams to self organize in an agile reality, unleashing human potential and optimizing for performance in a complex and agile world. You unleash human potential by knowing your employees deeply and taking time to understand what would make them go in the direction that you want them to go in, because THEY want to go in that direction. Leadership practices needs to be adjusted to the new paradigm of employee-driven organisations and it will be more about creating prerequisites for innovation in infrastructure, culture, processes and systems, than providing strict rules & policies and ticking off compliance with the same. Motivating employees becomes possible with less control, transparent visualization, trust and continuous improvement, together with a deep knowledge of what makes each and every employee tick. Items from the presentation: • Agile Leadership & HR – what is it? • Human theory X and Y • Self organizing teams for optimal performance and engagement • Motivation – how discovering inner motives can help you drive performance and create Psychological Safety • Agile performance, learning, recruitment and compensation – what is the difference from traditional HR processes? • Agile, learning and Psychological Safety – what do they have in common?
unfold_lessunfold_more AI + AR = SuperPowers!
- How to find faces with an AR headset, such as HoloLens or Magic Leap
- How to identify the face using cloud services
- How to design an experience that mimics the Terminator-sight.
Do you remember the name of every person you've ever met? Where you've left your keys? Would you like to? What if face recognition and an Augmented Reality headset could give you this ability? This inspiring talk will show you the key ingredients of developing an application that integrates Augmented Reality with on-device and cloud AI algorithms to recognize faces and objects. Imagine looking at a colleague, and the device immediately showing you their profile or last Facebook post so you can pretend to remember what's going on in their lives!
unfold_lessunfold_more Full Stack Web in F#
- You will learn to write end-to-end web applications using F#
- You will see how to write front-end code in an easily maintainable way
- You will explore benefits of sharing code between server and client side
During this talk you'll learn what SAFE Stack stands for. You'll see how to create web applications in F# on both client and server side. Following a simple Model-View-Update pattern that was inspired by Elm language you'll discover that it's fairly easy to create rich clients. On the server side we'll build the solution on top ASP.NET Core. Starting with some theory, we'll move to a practical example with live coding to develop the app from scratch.
unfold_lessunfold_more The Pipeline Driven Organization — Enabling True Continuous Delivery at Scale
- Why DevOps Adoptions fail at large enterprises
- What does "pipeline driven" mean and how it enables continuous delivery
- Getting Dev, Test, Security Ops and Compliance on board
- Skills needed in continuous delivery based organization
A Pipeline Driven Organization is operating around the idea that automated pipelines make the important IT decisions such as: - When is it OK to deploy a new version? - Is a feature working? - When and how to deploy a new environment - When to rollback (or forward) a new version - Are we compliant and secure? - Is the code releasable? - Are the infrastructure changes OK? In traditional organizations, even though automated pipelines may exist, they do not make the important & continuous IT decisions. Humans do. In a pipeline driven organization, experts from various categories of work spend much of their time teaching and learning from other people, and teaching the pipelines how to make proper decisions (using automated specialized tests). In this way they can trust the pipeline enough to let it make the decisions instead
unfold_lessunfold_more Mission Impossible: The Product Owner
- Understand the conficts inherent in the product owner role
- Undestand how product owners can share their work
- See the warning signs of an overloaded product owner
- HOw to avoid product owner burn out
Have you ever worked with an excellent product owner? One who had enough time to be with the team, visit customers, analyse the market, talk to UXD, marketing and upper management? Worked at a sustainable pace and still had time for their kids? A product owner who could tell the team what to do without impinging their autonomy? A product owner who could write user stories and roadmaps, do story and impact mapping, define the details of acceptance criteria and the big picture of product strategy? One who can design experiments and MVPs, refine the backlog, set priorities, understand a CfD, calculate weighted lead time, cost of delay and still tell you when it will be done? In short: Do we ask too much of product owners? Is the role set up to fail? In this presentation Allan Kelly will look at some of the problems Product Owners face... and try to make some useful suggestions.
unfold_lessunfold_more What's In A Model?
- Appreciate and understand better when to respect the DRY principle and when to break it.
- Learn the difference between a data model, a view model, a message model, a domain model and when to use which.
- How to use C# more extensively, when and why you should throw exceptions, when to use object initializers, when to use constructors and much more.
- How to better structure your code and experience what Clean Code actually means.
If you know the Model-View-Controller pattern, have you ever questioned why Microsoft's defaults encourage you to group everything by their type? Models here, Views there and Controllers over there. If grouping by type is such a good idea, why aren't we grouping all Strings, Integers and Booleans together as well? Perhaps there's a better way? This talk will give you ideas for how to structure your applications differently and doing it in a way that will make you more proficient in your programming language all the while being able to more clearly represent and model the real world in code. This may sound basic, but at its core, this is all very hard, since modelling is hard. And modelling is hard because it is essentially about distilling the real world into code and the real world has absolutely no interest in being modeled. The real world is complex and chaotic, so we need all the tools we can muster to bring it into order. This talk will give you a few of these tools.
unfold_lessunfold_more Jenkins X: Progressive Delivery for Kubernetes
- You will learn how "Progressive Delivery" can increase quality and reduce issues on deployments
- You will learn how to run end to end automated Canary deployments on Kubernetes using Jenkins X
- You will see how Jenkins X can automate the source code to production flow on Kubernetes
Jenkins X is an open source CI/CD platform for Kubernetes based on Jenkins. It runs on Kubernetes and transparently uses on demand containers to run build agents and jobs, and isolate job execution. It enables CI/CD-as-code using Jenkins Pipelines and automated deployments of commits and pull requests using Skaffold, Helm and other popular open source tools. Progressive Delivery is the next step after Continuous Delivery, where new versions are deployed to a subset of users and are evaluated in terms of correctness and performance before rolling them to the totality of the users and rolled back if not matching some key metrics. Canary deployments is one of the techniques in Progressive Delivery, used in companies like Facebook to roll out new versions gradually. But good news! you don't need to be Facebook to take advantage of it. We will demo how to use Jenkins X on a Kubernetes cluster for fully automated Progressive Delivery with Canary deployments and rollbacks.
unfold_lessunfold_more On Track with Apache Kafka: Building a Streaming ETL solution with Rail Data
- Apache Kafka as a common platform for data infrastructure
- Kafka powering both real-time analytics and event-driven apps
- Ingesting data from both message queues (ActiveMQ, Kafka Connect) and static sources (S3, REST)
- Wrangle data into a form for streaming to analytics (Elasticsearch, Neo4j)
As data engineers, we frequently need to build scalable systems working with data from a variety of sources and with various ingest rates, sizes, and formats. This talk takes an in-depth look at how Apache Kafka can be used to provide a common platform on which to build data infrastructure driving both real-time analytics as well as event-driven applications. Using a public feed of railway data, it will show how to ingest data from message queues such as ActiveMQ with Kafka Connect, as well as from static sources such as S3 and REST endpoints. We’ll then see how to wrangle the data into a form useful for streaming to analytics in tools such as Elasticsearch and Neo4j. If you’re wondering how to build your next scalable data platform, how to reconcile the impedance mismatch between stream and batch, and how to wrangle streams of data—this talk is for you!
unfold_lessunfold_more Building an ARt Gallery in the Browser
- Imagine walking through a virtual world with art from all the great masters hanging on the wall. Now, imagine hanging all the great masters art in YOUR gallery/living room with AR. In this talk, we’ll walk through the steps to build both
- We'll look at AR/VR available today
- We'll look at the WebXR spec that is in pre-alpha, and what is coming in the future.
- you'll see where web AR is today, and where is is going to be in a year or so.
The world of virtual reality allows us to build new 3D interactive spaces that we can fill with anything we want - like the art of the great Renaissance masters. More into Cubism? With a quick click - now the gallery is full of a completely different genre. With new AR features, we can actually build the gallery in our own space - and just as easily swap out the art - all in our browser! In this talk, we’ll walk through the steps to build a virtual ARt gallery, with web technology available today, but also take a peek at the new WebXR technology that is coming to our browsers soon!
unfold_lessunfold_more Kotlin Multiplatform Library Development
- Learn the basics of library development for Kotlin Multiplatform.
- How to pick platforms to deploy to and how to configure multiple source sets.
- How to approach wrapping existing platform libraries and writing from scratch.
- Where and how to deploy libraries.
One of the most important parts of any software ecosystem is the community support and library development. Kotlin as a platform is certainly no exception. For developers looking to get involved in the open-source world, this is a great time do jump in. While simple libraries are fairly straightforward, there are many details involved in implementing significant libraries. Where to use expect/actual? How to wrap existing libraries? How do handle testing, CI, publishing, etc. There's a lot you need to know, and the platform is changing fast.
unfold_lessunfold_more How shit works: Time
- Caveats and deficiencies of commonly used time representations
- Useful timely tools and practices
This talk breaks the mould to take a hard look at one of the most commonly used, and at least as commonly misunderstood, elements in software engineering: time. Time is so fundamental to the way humans experience reality that we don't normally give it a second thought, but it's just as fundamental to software systems. Without a correct model for working with time BAD THINGS HAPPEN: data is persisted out of order, exceptions occur where they shouldn't be possible, and production systems blow up. We'll cover the various common representations of time, acknowledge their caveats and deficiencies, and hopefully learn a few new tools and practices along the way.
unfold_lessunfold_more Being the best or being good: Can we still build technology for the right reasons?
- Understand various perspectives on IoT, such as safety, security, or consumer rights
- Investigate consumer studies of IoT
- Explore our duties as technologists to do better
Sometimes we put the internet where it doesn't belong—refrigerators, lightbulbs, cars, etc.—or does it? When the consumer-grade IoT started to become commonplace, we innovated rapidly, perhaps without asking what could go wrong. This talk will explore IoT from a variety of perspectives, including safety, security, consumer rights, digital and physical freedom, and moral standards, often with a radical and boundary-pushing lens. Revisiting her previous work on the IoT ethics regarding the incredible potential benefits and harms of IoT technology, Emily will take you through an emotional rollercoaster case studies of IoT technology, and explore our duties as technologists to do better.
unfold_lessunfold_more Lean Start-Up for Refugees or How we introduced Agile to the Non-Profit Sector
- You will gain ideas on how to best mix elements of Kanban, Scrum, Lean Start-Up, Management 3.0., Design Thinking to make this world a better place
- You will learn what environment is needed for radical innovation to take place even in the least expected situations
- You will understand the necessity and potential impact of an agile mindset outside of the business world
Between 2015 and 2016, over 130,000 asylum seekers requested asylum in Austria - taking the country of 8.7 million people by surprise. As politicians were reluctant to act, civil society jumped in and founded hundreds of grassroots initiatives intended to alleviate the integration process into Austrian society. However, seeing as there was no central coordination, high language barriers and little marketing budget, there was a missing link between the thousands of refugees and the surplus of offers by civil society. This is where radical innovation was needed and “I am Refugee” stepped in - our non-political, online platform that holistically depicts the user journey of a refugee on his path to integration in Austrian society. This talk will show you how we used elements of the Lean Start-Up to go from domain name to wireframes to a registered society and an up-and-running website within just 4 months. How we built a story map around the integration journey of a refugee. How we gained and integrated our users’ feedback to pivot and grow our product portfolio. How the agile elements of a strong vision, transparency, team work, iterations and pull principle are the best mechanisms for managing and leading an intercultural team of volunteers. How we dealt with our diverse variety of impediments ranging from governmental funding to right-wing trolls. And you will hear about how our culturally-adapted and yet solution-focused coaching approach makes our product range more than unique. This talk will not only show you how Agile methods are great for starting an innovative initiative in a low-to zero-budget sector, it will also show you how you can use Agile to make a difference in this world.
unfold_lessunfold_more Python for .net developers
- You will learn Python
- You will also see some AI basics
AI and Machine Learning are hot. But most of the samples and applications are written in Python. And you are a .net developer, very well versed in C# and/or VB.Net. So, you go out looking for those rare samples and documentation written for you in C#. And there are none. But don't worry: there is help! Python is actually not that hard to learn, once you know where to start and where to go. The first step is to attend this session, where Dennis will teach you all you need to know to get started in Python. We will cover the language, the syntax, the quirks and how to use it. So don't fear the Python, but embrace it and increase your toolset!
unfold_lessunfold_more Hacking Humans : Social Engineering Techniques and How to Protect Against Them
- You will learn about different types of social engineering attacks.
- You will learn the process an attacker goes through to mount a social engineering attack.
- You will learn about different manipulation techniques.
- You will learn how to protect against a social engineering attack.
Social engineering is one of the biggest threats to our organizations as attackers use manipulation techniques to coerce people into revealing secrets about our companies to allow attackers to gain access to critical systems. In this talk, we will look at some of the techniques used in social engineering and look at how to guard yourself against them. We will cover subjects like pre-texting, elicitation and body language as techniques for manipulating people.
unfold_lessunfold_more Smarten up your pipeline and reduce test execution time
- Learn new types of tests helping you better balance test execution time and accuracy.
- Learn how to continuously test in feature branching model.
- Learn how to configure open source coverage analysis tools to generate per test coverage.
- Learn how to release test impact analysis solution safely. What it means to TestOps really. Treating test infrastructure as production.
Automated tests are vital in guarding us from introducing regressions into our products. Tests aren’t just sugar and cream. They come with a cost. Execution time. Tests Impact Analysis determines how relevant tests are. Help you reduce execution time to minimum focusing only on the tests that matter. I will talk about our journey of adopting the technique in a product safety guarded by over 50k automated tests. I will share with you the challenges we faced and how we solved them. What kind of improvements we were hoping for and how we reduced execution time of all tests, including WebDriver by 30%. Also what we learnt from the experiment and what are our plans for the future. I will show you how you can have Test Impact Analysis in your project using open source tools and what kind of strategy you’d follow to have it safely running in your pipeline. You will learn how we built our operational muscles as we were introducing Test Impact Analysis to pipeline.
unfold_lessunfold_more Modern development in traditional retail.
- You will get an insight in how we work as a digital retailer, using a modern technology stack
- You will also learn about the journey we have went through, going from a traditional IT department to a product-oriented organisation
IKEA will spill the beans on how they are transforming to a modern digital retailer using modern ways of developing and running their Digital products.
unfold_lessunfold_more A reasonable guide to security practices
- An intro level aka which is what you should all be doing
- An extra level of security which can do once you get conformtable
- A third level which is for high risk computing and need of failsafes
- The what to do if you are paranoid about security
A rational guide to security based on what I have seen, what I do myself and practices I wish I did but might have to do now because I wrote a talk about it. Every day we see data breaches, every day we see people losing money, private data and other valuable things. How can we stop it, what can you do in your every day computing that will help you with your security posture. This talk attempts to show you in rational steps, beginning with the easy all the way up to things like separate machines for different tasks levels of security.
unfold_lessunfold_more The Changing Face of ETL: Event-Driven Architectures for Data Engineers
- Learn about the power of events and unbounded data
- Find out why streaming is not just for real-time applications—it’s for everyone
- Understand where a streaming platform fits in an analytic architecture
- Discover how event-driven architectures can enable greater scalability and flexibility of systems both now and in the future
Data integration in architectures built on static, update-in-place datastores inevitably end up with pathologically high degrees of coupling and poor scalability. This has been the standard practice for decades, as we attempt to build data pipelines on top of databases that do a poor job modeling the fundamental objects that drive our businesses and systems: events. Events form a powerful primitive on which to build systems for developers and data engineers alike. Developers benefit from the asynchronous communication that events enable between services, and data engineers benefit from the integration capabilities. In this talk, we’ll discuss the concepts of events and their ability to unify architectures in a powerful way. We’ll see how stream processing makes sense in both a microservices and ETL environment, and why analytics, data integration and ETL fit naturally into a streaming world. The talk will include an example of the concepts in practice using Apache Kafka.
- Infrastructure as code is key, because configuration of cloud-native services are part of the solution
- How BDD can be used to write re-usable test instructions
- to write tests that behave like real users (retry if failed multiple times) instead of programming shortcuts, because this will give better information to system design
- to use “real” test doubles backed by queues to monitor outcome of test cases
unfold_lessunfold_more The Good, The Bad, The Ugly: Technology in the Refugee Aid Movement
- Learn how refugee aid groups currently incorporate technology.
- Identify the challenges of building software NGOs, from the aggrevating to the zany.
- Review ethical considerations of technology that impacts migrants.
- Discover how to help, and what NOT to do.
Working in the European refugee aid movement for the past year has been a real eye-opener. Technology has the power to significantly help their efforts, but it can cause more harm to be done if the ethics and impact aren't properly considered. We will start by reviewing the tools that aid groups currently use, and surprising situations where they can't or won't use software to solve a problem. With that in mind we'll look at what it takes to introduce new software tools to the field successfully. Finally, we'll discuss ethical considerations of technology that impacts migrants and outline specific, actionable steps that we can all take to improve on the current situation.
unfold_lessunfold_more Introduction to Ktor
- Learning about Ktor and the possibilities it offers
- Understanding the benefits of Ktor over other frameworks
unfold_lessunfold_more IoT is fun with MicroPython
- Super easy entry to embedded programming
- Lot's of interactive demonstrations!
MicroPython is a Python implementation for embedded processors. It provides you with a subset of Python 3 features including numeric types, strings, tuples, lists, dictionaries and classes. Large parts of the Python standard library have also been ported. This session will give an introduction to MicroPython, discuss how it differs from traditional CPython, and how to get up and running with coding yourself.
unfold_lessunfold_more The Tricks of Game Programming in a Pure Functional Language
- How to make a game in a functional language
- The magical tricks of game programming
- Be inspired to create something yourself
- The depts of Elm
Do you want to play your own levels in Boulder Dash? Well, you actually can! And I can tell you how it is made. This combination of gaming, functional programming, and a nip of nostalgia will give us an interesting and addictive result where you can unleash all your creativity. In this talk, we will discuss how you can apply the tricks of game programming to make a funny game in Elm. As kind of a fun experiment, I recreated the game Boulder Dash with my love of game programming to better learn Elm. The experiment got “a bit out of hand” and the game turned more into a game engine. Not only can we play Boulder Dash, but we can also watch the Game of Life and solve the challenge of day 15 of the Advent of Code 2018. Because why not? I would like to share my enthusiasm for the project and share how things are done. How are some challenges solved functionally? And how can you create your own games using JSON? The goal is to inspire people and to also make something funny.
unfold_lessunfold_more Psychotherapy for Code
- Identify the gap between what most code looks like and what our brain actually prefers.
- Navigate large, complex codebases through powerful visualizations.
- Learn why code complexity goes far beyond code.
Psychotherapy is about building awareness and understanding, which leads to healthier habits. In this interdisciplinary session we do the same for software development by taking both technical and social factors into account. Our therapy starts with why it is so hard to write good code. We explore ways of building mental maps of large-scale codebases, and dig deeper to reflect on the gap between what most code looks like and what our brain actually prefers. Turning to cognitive psychology and learning theory, we explore alternative approaches that are better aligned with our strengths and weaknesses as humans. From here we explore the social dynamics of software such as collaboration, communication, and group decisions. We learn why code complexity goes far beyond code, look at common pitfalls for team work, and how to avoid them. Our conversations will result in actionable and specific take-aways that we can apply in our day jobs. So listen: your code wants to talk.
unfold_lessunfold_more We Killed These Things With Fire: economics, society and system design
- The architectural patterns that are "best practices" are influenced heavily by social economic factors
- They are also cyclical in nature!
- This talk will inspire skepticism in one-size fits all best practices and encourage people to maintain legacy systems when the context still fits.
The first reaction to a legacy system is typically "kill it with fire", but what if you're actually spending millions of dollars and man hours replacing a functioning system with a less efficient solution? This talk explores the social and economic factors that led systems being designed the way they were, how shifts in those factors cause these patterns to fall out of fashion, and how some of them are coming back in a different format today. Understanding the reasons why something seemed like a good idea at the time is key to modernizing complex legacy systems.
unfold_lessunfold_more The Story of why we migrate to gRPC and how we go about it
- Why we (Spotify) felt compelled to replace our RPC framework with gRPC, what kind of issues we hope to solve and how we go about rolling out gRPC across our fleet of services.
- How do you get 200 autonomous engineering teams to align on something as fundamental and cross-cutting as a new RPC framework? How do you roll-out gRPC at scale whit minimal disruption to both the organization and to the end-user?
- Advanced gRPC concepts such as interceptors, deadlines, and effective schema management.
At Spotify, we have historically built services based on our own proprietary messaging protocol and framework. Last year we finally kicked off the daunting multi-year task of migrating everything to gRPC. Migrating over 1000 services to gRPC poses interesting challenges, many of them are not only technical in nature: they boil down to questions of engineering culture and leadership at scale: How do you get 200 autonomous engineering teams to align on something as fundamental and cross-cutting as a new RPC framework? How do you roll-out gRPC at scale whit minimal disruption to both the organization and to the end-user? This presentation will address these questions alongside more technical discussions of advanced gRPC concepts such as interceptors, deadlines, and effective schema management and how they are essential in large distributed systems.
unfold_lessunfold_more Kotlin DSL in under an hour
- Learn how to create type-safe and statically typed DSLs in Kotlin.
- Uncover the language features that makes DSL creation possible.
As Kotlin programming language is getting more popular, the creators of the libraries are starting to provide Kotlin API for their frameworks. The number of libraries that provide a nice little DSL grows constantly. The session introduces you to some of those libraries and explains, how Kotlin makes creating the DSL so simple. Lambdas, extension methods, lambdas with the receiver, and other syntactic sugar make it easy to implement DSL in Kotlin. In a live coding demo, we will create a simple DSL for the existing Java classes that could be used from a Kotlin code.
unfold_lessunfold_more Everyone can Data! - A Practical Data Science Intro
- After this talk you will be confident that also you can have a side project in Data Science!
- You will learn the basics you need to start your Data Science hobby (with lots of links!)
- You will get to know different Data Science domains, and will get several ideas for your first Data Science project :)
Ever wondered what this "data science" talk is all about? Well, wonder no more! In this intro talk, we will overview some basic concepts in data science, and learn how we can all implement them in super cool projects of our own. Let's visit helpful online resources, throw project ideas in the air, and pave the path for inspiration and perspiration :)
unfold_lessunfold_more Increase your .NET Productivity with Visual Studio 2019
- How to collaborate effectively with your teams in Visual Studio
- How to standardize your code and quickly clean it up
- Navigation and refactoring improvements for .NET/C#
Enabling developers to be productive, collaborate effectively, and support any kind of app development has always been at the core of Microsoft’s vision. In this demo-heavy session, we’ll cover what’s new in Visual Studio 2019 including code cleanup, collaborating with Live Share, new .NET refactorings, AI-assisted development with Intellicode, and so much more! By the end of this session, you’ll be able to use the latest and greatest in Visual Studio 2019 to enhance your developer productivity.
unfold_lessunfold_more Fast and Beautiful: Modern Image Delivery Techniques
- Optimizing images saves tons of data, and will speed up the delivery of your content.
- We'll look at the state of images on the web today, and how optimization affects load time
- We'll talk a bit about animated GIFs and how they should be optimized.
- You'll come away with a good understanding of the state of images today - and how optimize the images on your website or mobile app.
The average mobile website page weight is ~50% images. Toss in the complication of thousands of differently sized screens, and it might appear that efficient delivery of images to every device is an impossible task. But all is not lost! In this talk, we’ll examine strategies to send the perfect image to every device, ensuring a fast, beautiful rendering of your content. We’ll look at progressive images, placeholder images, lazy loading and other techniques and real world examples that will improve the usability of your site or app. Attendees will come away with an understand of the current ‘state of the art’ for optimizing visual content on the web.
unfold_lessunfold_more Test Automation without Assertions
- Learn why GUI testautomation doesn´t work very well today,
- What other paradigmns work better and why.
- What open source tools can be used with that paradigm.
GUI test automation is broken — because regression testing is not testing, but version control of the behaviour of the software. Gradually, an insight is gaining ground in the testing world: Test automation without assertions works better! Whether Approvals Test, Jest (Facebook, Open Source) or recheck (retest, Open Source) - the number of tools that work according to the approach of Golden Master Testing / Characterization Testing / Approval Testing is constantly increasing. This approach promises more robust tests with less effort for creation and maintenance, while all the while testing much more completely. What this means, which different tools are available (mostly Open Source), and where the strengths and weaknesses of this approach lie, will be explained in this presentation. Don't miss the next trend in test automation...
unfold_lessunfold_more Building smarter solutions with machine learning, from magic to reality
- We’ll see how to transform or extract information from text, image, audio & video with the latest ML APIs
- We'll also see how to train a custom ML model with AutoML techniques, without any knowledge in AI
“Any sufficiently advanced technology is indistinguishable from magic.” — Arthur C Clarke Well, machine learning can look like magic, but we don't need to be data scientists or ML researchers to develop with ML. Let's check this out... So, what about making our solutions smarter without any knowledge in AI? In this session, we’ll see how to transform or extract information from text, image, audio & video with the latest ML APIs, how to train an AutoML custom model, and we’ll be active players of a live demo. Don't put your smartphone on airplane mode!
unfold_lessunfold_more Inclusive Architecture — Building a Sustainable Dev Team through the PAMstack
- What comprises an inclusive architecture?
- We'll talk about the PAMstack - process, abstractions, and mentorship as a way to build a sustainable dev team
- How to apply the PAMstack to your company
We are all too familiar with projects and companies that only seem to be able to support senior developers, but this can get expensive, unsustainable, and your team can begin to look very myopic. Teams begin groupthink, ideas become stale, and it can be difficult to reinvigorate the growing sense of mundane development. It doesn't have to be this way. In fact, creating an inclusive architecture can help development go faster and become more cost effective. It's not difficult to begin adjusting your sails and beginning to create an architecture that is inclusive in nature to support junior developers, project managers, and designers. No application is too critical, complicated, or obscure to be able to achieve this. We'll talk through frameworks, tools, abstractions, and simple steps that can help you start building inclusively. We will also talk through how you can build a corresponding culture that allows inclusivity on your team, and why this is so critical to your business. We'll walk through processes you can incorporate, team roles, and how you can build a better template for the future of your business.
unfold_lessunfold_more Is DevOps Still Relevant In A Cloud Native World? (Enterprise Edition)
- Principles and practical advice for designing cloud native platforms in the enterprise
- Principles for architecting cloud native systems
With the increasing trend towards abstracting away infrastructure into platforms, has DevOps become obsolete? Jez thinks not, and in this talk he’ll take an evidence-based approach to the design and implementation of compute platforms and the applications that live in them, based on DevOps principles and practices. He'll also discuss how security changes in the cloud-native paradigm, and effective organizational structures and processes for managing a diverse portfolio of applications.
unfold_lessunfold_more How Eyetracking can be Beginning of the End of Privacy
- New hardware and its dangers
- Eyetracking ethics
How Eyetracking can be beginning of the end of privacy
unfold_lessunfold_more Conflict resolution
- You will understand how Git merges really work and why they fail
- You will gain an understanding of concurrent updates and different ways of modelling them
- You'll understand what your other data systems are doing for you to keep you safe from data loss
How is a Git branch like a database transaction? Git, like a database, is designed to let multiple clients concurrently edit a set of records -- the files in your project. Despite their apparent differences, they both solve a similar fundamental problem: with concurrent edits, how do you avoid two people unknowingly overwriting one another's updates? In this talk, we'll look at what happens during a Git merge, what causes conflicts to happen, and how Git prevents users in a distributed network from losing each other's changes. We'll learn how this relates to the broader theory of concurrent editing in distributed systems, providing a deeper understanding of many other data systems beyond version control.
- What is the Blazor framework
- What is WebAssembly
- How does .NET run in the browser
- How to start a new client-side Blazor project.
unfold_lessunfold_more Inside a hacker’s mind: Apache Struts, Serverless, and, Stored XSS Zero-day
- Attendees will gain in depth knowledge of the latest vulnerabilities.
- Attendees will understand the methods of prevention and remediation of these vulnerabilities through practical scenarios and code demos.
- Different security perspectives will be shared with the attendees as the concept of cyber-security from an overhead cost to a business enabler is as much a technical change as it is a cultural one.
- Attendees will be able to incorporate change in their work/personal projects using the resources shared in the talk.
The aim of this talk is to introduce the audience to latest critical vulnerabilities. The first half of the talk will cover the two most critical vulnerabilities in platforms previously unfathomable, i.e. vulnerabilities in Apache Struts and Serverless Architectures with examples/demos of exploits and its effects. The second half will delve deeper into the Stored XSS Zero-day, a vulnerability that allowed hackers to compromise 70,000 websites in March 2019. One wonder's about XSS, is it that big of a deal? This talk will enable the audience to answer this question and discover if their/their company’s website is vulnerable to XSS by taking them on a journey of exploring all types of XSS: Stored, Reflective, DOM with real life scenarios, code demos, the effects of exploitation, and recommended prevention/remediation processes. In the end, resources will be shared as the concept of security from an overhead cost to a business enabler is as much a technical change as it is a cultural one.
unfold_lessunfold_more The Unreasonable Effectiveness of Monads
- Structured abstractions give us an ability to easily reason about -- and reuse -- our code
- The related abstractions in the functor tower (functors, applicative, selectives, and monads)
- Monads in particular are popular in some circles because they hit a sweet spot for many programming use cases
- These are practical and can start being used today in (most) modern langauges
Much ink has been spilled on what a monad is, but why do people care? As an abstraction, monads hit a sweet spot between being very general while letting the developer retain a lot of control, but this is often hand-waved over. In this talk explores the foundations of this useful abstraction (bootstrapping up from the familiar map function), and what it means for everyday programming tasks, code reuse, testing, and overall code architecture. Examples will be given in both strongly typed (Haskell) and weak/unityped (Elixir) languages.
unfold_lessunfold_more Introduction to Threat Modeling
- You will learn how to identify weaknesses in your design
- You will learn how to model the system in a way that helps identify issues
Security companies estimate that 50% of security issues are the result of problems in the system design. Such weaknesses cannot be found by automated tools. Threat modeling is the process of analysing your system and try to identify weaknesses in design and missing security controls. This talk will introduce you to threat modeling and explain some of the techniques you can use to identify those threaty threats in your systems.
unfold_lessunfold_more 100,000 Orange Stickies Later
- Different recipes fitting different contexts, audiences and stakeholders
- Turning human behaviour into software design hints, Bounded Contexts as emergent properties of business storytelling-
- Dynamics of collaborative modelling in Process Design and Software Modelling scenarios.
- Globally: more significant software addressing the right problem, a shorter path from problem highlighting to the possible software solution.
It started as a tool for discovering Aggregates, then became a teaching tool for the DDD-illiterates. Now EventStorming is a platform for collaborative modeling whose depth spans from business and organizational design to implementation-level software design. In this talk, you’ll see how different recipes can be leveraged for different goals and different audiences. And how those weird human brains behave, when we take them in unexplored places.
unfold_lessunfold_more Microservices: A retrospective
- What are some of the less-than-obvious challenges in adopting microservices?
- What skills and knowledge are necessary to really get your money's worth out of a microservice-based architecture?
- Which distributed system rabbit holes are useful to go down, and how deep should you go?
SOA has been around for decades, and its latest iteration - microservices - for a while now. Just five years ago microservices were hip, dominating the agenda at conferences; now we almost take them for granted. With microservice-focused conference talks losing steam, the time is ripe to consider what we, as an industry, can learn from the microservice disruption; more importantly, we have a golden opportunity to consider what we have yet to learn! In this talk I'll analyse the lessons hammered into us as we've adopted microservices, and take a hard look at the challenges I believe we still struggle with as an industry. If you're not doing microservices you'll leave the room knowing where the pains will come from; if you are, you will leave with ideas and leads on mitigating these pains.
unfold_lessunfold_more Measuring Performance - Quantifying the Work of a Scrum Master
- Learn about how to quantify the work of a scrum master
- Dos and Don’ts when working with metrics
- Learn how Scrum Masters may prioritise their work to deliver the best value
Agile evangelists typically tell companies that each of their teams needs a Scrum Master. However, we rarely show proof of their added value to the teams. Could it be that 18 years after the Agile Manifesto, we still do not know how to measure the performance of a Scrum Master? In this talk, we will look at metrics for each of the three aspects of a Scrum Master role: Facilitator, Servant Leader and Change Agent. I will provide Scrum Masters with practical tips on how to continuously measure themselves and use that as an argument for pay raises in their performance reviews and a larger lever in the change process. While metrics are often seen as negative, we will have a look at the Do‘s and Don’ts of using them and why Scrum Masters should actually be eager for their companies to introduce metrics. Come and join me for a different view on this controversial topic.
unfold_lessunfold_more Elixir & Phoenix – Fast, Concurrent and Explicit
- What are Elixir and Phoenix? What makes them standout among programming languages and frameworks?
- Why would I want to use Functional Programming, what are the benefits and why does it work so well for the web?
- How capable is Erlang (Whatsapp example) performance and reliability wise and why would I consider it for a project?
- How does explicitness help in system design?
Elixir and Phoenix are known for their speed, but that’s far from their only benefit. Elixir isn’t just a fast Ruby and Phoenix isn’t just Rails for Elixir. Through pattern matching, immutable data structures and new idioms your programs can not only become faster but more understandable and maintainable. This talk will take a look at what’s great, what you might miss and augment it with production experience and advice.
unfold_lessunfold_more Getting Started with AndroidX Test
- You will learn how to get started with the new AndroidX Test
- You will learn what pain points AndroidX solves
- You will learn how you can run your tests with both a device or Robolectric.
Testing on Android is slowly becoming more approachable. With AndroidX Test, you can use a single test API to run your instrumentation tests either on your mobile device, or on your computer using Robolectric. This is great, so how do you start? In this talk you’ll learn how to use AndroidX Test and Espresso to get started writing Integration tests for your app.
unfold_lessunfold_more Blockchain and cryptocurrencies - a deep dive
- Deep-dive into the details of how blockchains work
- Cryptographic algorithms and incentives used to make the blockchain networks secure
- Various threats to blockchain security
- Development frameworks used to work with blockchain technology
After the monumental decline of Bitcoin from $20,000 to the current value of $4,100 - the question still on everyone's mind is whether Bitcoin, or any cryptocurrency for that matter, ever had any potential to transform the way we see the future of money. The core fundamentals of blockchain and Bitcoin haven't changed and is continuing to make headway into making us see that the future of money is going to be driven by technology. In this talk, we'll take a deep dive into blockchain and cryptocurrency technology and the single-most key aspect when we have to rely on technology to manage our money: Security. We'll look at the various pieces of the puzzle like the cryptographic algorithms and incentives that make our wallets and blockchain networks secure. We'll also touch upon a few tools and frameworks available for developers to start building applications using blockchain.
unfold_lessunfold_more Eventually, time will kill your data processing
- You will learn a multitude of ways that time causes problems in data processing.
- You will also learn how to avoid data loss caused by timing issues in data collection.
- You will learn how to mitigate time-related issues in batch processing pipelines with the aid of workflow orchestration.
- You will also learn the tradeoffs involved in handling timing issues in stream processing.
Race conditions and intermittent failures, daylight savings time, time zones, leap seconds, overload conditions - time is a factor in many of the most annoying problems in computer systems. Data engineering is not exempt from problems caused by time, but also has a slew of unique problems. In this presentation, we will enumerate the time-related problems that we have seen cause trouble in data processing system components, including data collection, batch processing, workflow orchestration, and stream processing. We will also provide a handful of tools and tricks to avoid timing issues in data processing systems.
unfold_lessunfold_more Diversity of Thought: The Key to Innovation
- What are the key aspects of diversity that improve team performance?
- Team members and Managers will learn concrete actions they can take to harvest the benefits of diversity of thought.
- Attendees will learn how to manage diversity tension--a natural element of diverse teams that is poorly understood and managed.
- What types of questions encourage team members to volunteer their best ideas?
Everyone wants to be more innovative and creative. Studies show that useful new ideas emerge when individuals with different perspectives and cognitive strengths can work productively together. Hiring for diversity is only the first step. Unless a team of diverse people can cope with the natural tension that emerges when people see things differently, organizations will not be able to harvest the benefits of diversity. Another factor that limits the benefits of diversity of thought is that leaders often do not understand how their behavior and the comments they make can stifle diversity of thought. If you demand courage from your different thinkers, you will not benefit from many of their best ideas. This session will be practical in nature and attendees will walk away with ideas they can implement immediately.
unfold_lessunfold_more RXJS - OPERATOR, WHAT’S YOUR REAL WORLD USE CASE? IMPORTANT OPERATORS IN RXJS EXPLAINED
- Learn different operators and how to use them.
- Real world use cases and common anti-patterns
- Variations of operators and when you should use which one
- How you can best utilize RxJS!
Are you overthinking RxJS? Overwhelmed by the ~70 operators available to you? Confused by the docs and need someone to explain to you what on earth the differences between all the -maps are? Are you using that operator right? What operator should you actually be using? How do other people use RxJS operators? This talk covers walks through lamens terms definitions and real world use cases for some of the most important operators out there so you can effectively maximize your use of RxJS and get clarity on what RxJS is doing in your application.
unfold_lessunfold_more Observability of distributed systems
- Participants will leave with a good grasp of observability—what it is, how it works, and what it can be used for.
- This understanding will apply to challenges of both simple systems and multi-service architecture.
Operating distributed systems is hard, not only because of their inherent complexity of the number of components and their distribution but also because the unpredictability of their failures modes: it is plenty of unknown unknowns. We are left with an imperative to build systems that can be debugged, armed with evidence instead of conjecture. Observability is the practice of understanding the internal state of a system via knowledge of its external outputs. In this talk, we will discuss practices, benefits, and opportunities. We’ll also explore observability as a part of the development process.
unfold_lessunfold_more Psyched about Outcomes
- • Focusing on Measurable Business Outcomes allows us to consider what we do as well as how we do it
- • Use Outcomes over Outputs to drive the quality pathway - make yourself VISIBLE
- • There’s always more than one solution to a problem
A while ago I asked a question on Twitter “If you have a well thought out design, clean code, wonderful testing and painless deployment but the feature ends up never being used because the user didn’t want or need it in the first place, is that a quality feature?” I got interesting responses. We are very focused on how we deliver quality but maybe we need to spend more time looking at what we deliver. I have changed how I deliver quality; I now look at measurable business outcomes and OKRs and this is helping me to align my efforts with strategic business initiatives. It’s helping me to select what to do next, to make quality engineering improvements visible and tangible; to reduce waste and to understand how my team is helping my organisation to meet its objectives. Discovering the power of outcomes over outputs has provided me with a missing piece of the puzzle for me on my journey – figuring out how to align what I do with business drivers and what to do next! I’m psyched !! I would love to share some of these techniques through an interactive and colourful talk including a case study on how we’re using Mobius to deliver outcomes. It’s FUN!
unfold_lessunfold_more Dependency injection for Kotlin apps with Koin
- Simple dependency injection with for Kotlin apps
- Latest features about Koin 2.0 & more
Koin (https://insert-koin.io) is a pragmatic dependency injection framework for Kotlin developers. Let's see how it will make your life easier thanks to the power of Kotlin language: from basics for Kotlin apps to the setup of Android architecture's components and Ktor web components, without forgetting the testing part. At the menu also, the presentation of the new 2.0 release and some advanced APIs!
unfold_lessunfold_more From Caesar Cipher To Quantum Cryptography
- How cryptography evolved into what it is today
- What is a ciper
- How to encrypt and secure sensitive data
- What exactly is a private/public key pair
Humans of all times have used codes and ciphers. Some of the greatest wars in history have been won thanks to good encryption, or lost due to great cryptographers. Even if we don’t think about it, encryption and cryptography are a big part of our lives, now that https is the defacto standard for the web. While most modern developers want to ensure that their data is secured, most of them don’t understand how the data is encrypted or how cryptography works. During this talk, the attendees will understand where ciphers come from by going through a journey in the history of cryptography. With examples from the Caesar cipher all the way to quantum cryptography, the speaker will explain in simple terms how cryptography evolved into what it is today and how it should be used to secure user data.
unfold_lessunfold_more The engine of successful companies — engaged and motivated teams
- You will learn a powerful model that can help you understand why people behave in a certain way. You can use the model in order to develop your leadership capability, but also to become a better team member.
- You will learn how and why motivation and engagement is created within teams and individuals.
There has always been a constant search for the Holy Grail within the field of operational excellence. Last year we adopted the new method! This year we are implementing the latest tools! Next year we will integrate a crisp and ground-breaking technique. In this constant quest to become “better” we often forget about what the true source of extraordinary productivity comes from – engaged employees. In this lecture Niklas will talk about motivation and why it happens. He will talk about how to develop a winning culture where employees continuously build and reinforce each other.
unfold_lessunfold_more Modern WebApp Vulnerabilities
- You will learn about newer types of vulnerabilities
- You will increase your security awareness
With the emerging popularity of bug bounty programs, lesser known and even brand new vulnerability classes are gaining popularity. This talk will give a walk-though of some of these vulnerabilities, how they occur in modern web applications and how they can be found and fixed.
unfold_lessunfold_more Doing .NET in that other cloud
- You will learn how to develop and deploy .NET code in AWS
- You will also see how to publish a serverless web app publicly on the Internet
If you are working with .NET, cloud is typically synonymous with Azure. But there are other clouds out there! It turns out that serverless .NET core in AWS is not only possible, but actually a pretty nice experience. I will show you, hands on, how it can be done. You will see how to get an ASP.NET Core web site to run in the AWS serverless environment, integrating with services for data storage and user authentication.
unfold_lessunfold_more Architecture panel with James Lewis, Marianne Bellotti, and Tomer Gabel
- Current state of architecture
- Future of architecture
Architecture discussion panel with James Lewis (ThoughtWorks), Marianne Bellotti (Auth0), and Tomer Gabel (WeWork).
unfold_lessunfold_more Recommendations at scale with Elastic Search
- You will learn how to employ elastic search for recommendations
- You will understand why search engines are good for recommendations at scale
- You will be introduced to the factors that make a recommendations engine a good one.
Elastic Search is, you know, for search… but in recent years it is no longer only for search. we use Elastic Search to power our main recommendation and discovery experiences, to allow our shoppers to discover interesting and exciting new products. In this talk, I will show how we use the power of ElasticSearch to create a personalized experience at scale. Find out how you can utilize ElasticSearch to create production grade ML capabilities such as recommender systems, personalized feeds, text classification and even personalized search!
unfold_lessunfold_more Customize Your App with MLKit
- You can customize your app with Machine Learning
- Google's MLKit allows you to add machine learning to your app easily
- You will have the knowledge you need to start using MLKit
- You will also have the tools to easily create your own models
The best app is one that's customized for your user, and machine learning is one of the best ways to accomplish this. Machine learning can seem like a daunting topic, but Google's MLKit makes it easy. In this talk, we'll go over how you can make use of this tool in your own mobile applications, with special attention to the new Smart Reply and Language Detection. We'll also cover how you can easily create your very own custom models with Auto ML Vision Edge. You'll leave with an understanding of the tools needed to use machine learning in your apps.
unfold_lessunfold_more A Universal "Hostless" Substrate for a Post-Serverless Future
- There has been a 60-year progression of server archetecture, and there is one final phase left
- There have been recent advances in cryptography, distributed systems, and web infrastructure
- It is possible can store data and run computation *anywhere*, even on untrusted machines
- Remove the concept of "local development", "production", and "deployment" entirely
The last 60 years has seen the rise and fall of several models of computing: mainframes, private server, shared hosting, containers, and serverless (to name a few). We have one final phase left: "hostless" or universal apps. By leveraging technologies like secure multiparty compute, the content-addressable web, blockchain, and the rise of Wasm, we are seeing the beginnings of a future liberated from specialized providers, acting on a distributed substrate of store and compute. With all this in place, users fully control their own data (and it never touches your servers), deployment is as simple as setting a flag on your local environment, and developers maintain zero infrastructure. Come learn about what is being built today for the next wave of computing, how we evolve past the serverless paradigm, and how it can make life simpler for developers and end users!
unfold_lessunfold_more So You Want to Be a Change Agent: A Survival Guide
- The first priority of a change agent is to make their idea someone else's idea.
- Organizations resist theological change so determine whether your new idea will be viewed as heresy.
- To survive as a change agent, you must learn to be comfortable with being uncomfortable.
- Find a way to market your idea as something consistent with what the organization already values.
Learn the key survival skills of a successful change agent.
unfold_lessunfold_more Developing for Everyone
- Real life examples of accessible interfaces
- Best accessibility practices
- Using screen readers for accessibility testing
How well do you know your users? Imagine a person who can't see, use a mouse, or someone who can't differentiate between colors. Is your site convenient for them? Will they consider coming back? Web development, just like business, is always about users. More specifically, it's about them wanting to come back. We will start by looking at the reasons for building inclusive interfaces backed by stats. You will learn to develop accessible websites with little effort, test them using tools such as screen readers, and automate accessibility testing to remain productive. You will understand useful patterns supported by real-life experience gathered while building inclusive components e.g. charts, notifications, and drag-&-drop elements.
unfold_lessunfold_more Real-Time Architecture and Practices for Modern ASP.NET Core Web Applications
- You will learn patterns for building real-time ASP.NET Core web applications
- You will have a better understanding of potential scalability issues when using WebSockets, Server-Sent Events, SignalR, and Web Push Notifications
One of my talks is a low-level talk about real-time technologies in ASP.NET Core. This is not that talk, it's rather its continuation. This talk focuses on patterns, architecture, and solving scalability problems when building real-time web applications based on ASP.NET Core stack. It aims at showing you how to design great real-time applications for both on-premise and cloud.
unfold_lessunfold_more All our aggregates are wrong
- Basics of vertical slice service architecture
- Strategies for decomposing services into slices
- How services can communicate effectively
- Techniques for combining data from multiple services into a single ViewModel
It always starts well. At first glance the requirements seem straightforward, and implementation proceeds without hiccups. Then the requirements start to get more complex, and you find yourself in a predicament, introducing technical shortcuts that smell for the sake of delivering the new feature on schedule. In this talk, we’ll analyze what appears to be a straightforward e-commerce shopping cart. We’ll then go ahead and add a few more use-cases that make it more complex and see how it can negatively impact the overall design. Finally, we’ll focus our attention to the business needs of these requirements and see how it can shed light on the correct approach to designing the feature. Walk away with a new understanding on how to take requirements apart to build the right software.
unfold_lessunfold_more Live Coding Kotlin/Native Snake
- Snake game
This is a live coding session in which the classic snake game will be coded live from scratch. You will see how to build Kotlin/Native projects, use C libraries from Kotlin/Native, do memory management, native UI, unit testing and, of course, some of the standard Kotlin features.
unfold_lessunfold_more Smarter Home Automation without the Cloud
- You'll learn how to create a home automation system that runs entirely without cloud services
- You'll learn some tips for adding additional context-aware inputs to your home automation setup
Most off-the shelf home automation systems rely on cloud services, and are limited to simple rules like "turn on this light when there is motion". It's extremely limiting, and usually results in failures in more complicated settings like when multiple people live at a house, or if you don't have a regular 9-5 schedule. These cloud-enabled devices also fail when your internet connection is down. In this talk we'll look at how to set up a home automation system that runs entirely locally, and takes into account additional context-aware inputs so that you don't accidentally turn on the lights in the middle of the night.
unfold_lessunfold_more Escher in Elm: Picture combinators and recursive fish
- Learn to love functional concepts like composition and recursion.
- Appreciate the power and elegance of abstractions that compose.
- Become friends with Elm, a functional programming language for the browser.
This is a live coding session based on a classic 1982 paper by Peter Henderson. Although the paper is old, the ideas in it remain fresh, practical and relevant to software development today. It demonstrates the power and beauty of functional abstraction and composition. Following in Henderson's footsteps, I will show the decomposition and reconstruction of Escher's woodcutting "Square Limit", a beautiful recursive tessellation of interleaving fish, using functional programming. To do so, I will define a small set of functions that operate on pictures - transforming them and composing them into more complex pictures. With these functions implemented, I will create a replica of Escher's Square Limit as an SVG. I will use Elm as the implementation language, because Elm is simple, friendly and runs in the browser.
unfold_lessunfold_more The Secrets of High Performing Technology Organizations
- How to measure the performance of software teams
- The capabilities that drive performance, and how to implement them
How can we apply technology to drive business value? For years, we've been told that the performance of software delivery teams doesn't matter―that it can't provide a competitive advantage to our companies. Through six years of groundbreaking research, the DORA team set out to find a way to measure software delivery performance―and what drives it―using rigorous statistical methods. This talk presents the findings of that research, including how to measure the performance of software teams, what capabilities organizations should invest in to drive higher performance, and how software leaders can apply these findings in their own organizations.
unfold_lessunfold_more Human + Machine Learning
- You will learn how to identify and plan for bias in Machine Learning applications
- You will learn about how to implement a series of specific steps in any software projects to understand how the data in your systems.
As we use Machine Learning in our software - we need to understand the impact on what we build. The Design team at Google has created a framework named Human-Centered Machine Learning (HCML) to help us focus and guide that understanding. I will introduce this concept and show how you can use it in your development process. I will show how HCML can be used to answer important questions like: Is ML right for this problem? What unique solution does ML provide? Are we using the right information to train our system? What is the impact of wrong results? Just like with the web and mobile revolutions, ML will force us to consider new possibilities for every experience we build. We must stay grounded in human needs while solving them in unique ways. HCML provides techniques to help us accomplish this.
unfold_lessunfold_more Giving Clarity to LINQ Queries by Extending Expressions
- What are Expression Trees
- What .NET libraries use Expression Trees
- How does Entity Framework generate queries
- How can I leverage Expressions in my code
In this session we’ll learn about .Net Expression trees by discovering how they work and applying the knowledge to LINQ using the pipes and filters pattern. LINQ and Entity Framework are both commonly used in the .Net ecosystem, but even well-written applications can have LINQ queries that are difficult to understand. Because LINQ is so flexible, it can be written in ways that fail to communicate the developer’s intent. Well-written LINQ should be so clear as to be self-documenting. To write clear LINQ, it helps to understand the details of a few LINQ components that improve LINQ’s readability. We’ll be learning how to use a pipe and filter pattern to make LINQ queries easier to comprehend. We will take a deep dive into expression trees to understand how they work, and how to manipulate them for maximum re-usability.
unfold_lessunfold_more Web panel with Doug Sillars, Shawn Wang, and Tracy Lee
- Current state of the web
- Future state of the web
Web panel with Doug Sillars, Shawn “swyx” Wang (Netlify), and Tracy Lee (This Dot Labs).
unfold_lessunfold_more The psychology of communicating online
- You will learn what psychology can tell us about how people communicate online
- You will understand what looking at real-life online communication can tell us about the way users interact with technology
This session will explore what psychology can tell us about online communication. It will address some of the key psychological theories as applied to online communication, and discuss how psychology might explain certain behaviours. It will also show how we can use in-depth methods of analysis to explore how users choose to engage with online communication platforms. In particular, it will focus on the ways in which they make use of the various technological features to manage the potential challenges of interacting online.
- You will be inspired by the application of machine learning to artistic wearables
- You will be inspired by the application of wearables to challenge one's own emotion responses.
unfold_lessunfold_more XXSS: Exotic Cross-Site Scripting vectors
- You will learn about the different attack mechanisms behind XSS and what makes each of them dangerous.
- You will discover why avoiding script injection is not enough, as an attacker might hurt your users by injecting HTML, CSS or malicious images.
- You'll get a glimpse into the weird ways browsers might open up themselves for attacks by trying to be helpful.
- The talk will help you reevaluate what you consider user input through the example of blind XSS.
XSS is one of the most well known attacks on the web, perhaps second only to SQL injection. While the general idea behind it is relatively simple, due to the colorfulness of the web and the quirks of the browsers it has a surprising depth to it. In this talk we'll journey deep down the rabbit hole of XSS attacks and take a look at all the weird ways malicious inputs may hurt our users, from the non-JS based injections (CSS, HTML, image) through mXSS, up to blind XSS.
unfold_lessunfold_more Defining Operational Excellence
- Instead of over-focusing on different concepts, methods and tools, you will understand the founding principles of operational excellence. This will help you to develop a long-term operations strategy.
- You will understand a concept called "the efficiency paradox", which will in turn help you to understand what true efficiency is.
Management concepts like lean, agile, lean start-up, design thinking, etc. are currently being spread all over the world. Every year a new concept is being launched, with a new trendy name, in a new attractive and promising packaging. As a result, there are today a variety of concepts, with different origin and purpose, competing for attention. The confusion is enormous. Companies ask themselves what concept to rely on? What is best for us? How shall we achieve strategic consistency and congruence in this mess? In this lecture, Niklas Modig will share his latest insights regarding how to clean up the “management concepts closet”. Niklas has during 20 years been studying a variety of concepts and been able to identify a few principles that all concepts have in common. He argues that it is much more probable to deliver sustainable extraordinary performance if a company long-term follows a few principles of operational excellence than short-term relying on one particular concept.
unfold_lessunfold_more Evening stand up comedy with Jen Brister
- Bold Sketches
- Surreal ideas
Sit back and enjoy!
unfold_lessunfold_more Everybody lies
- People lie to surveys.
- People are honest on Google and other internet data sources.
- The internet has the potential to revolutionize the social sciences.
Seth Stephens-Davidowitz will study what Google searches, and other internet data, can tell us about what people really think. He will discuss topics such as racism, sexism, abortion, child abuse, and sexuality.
unfold_lessunfold_more Common Component Decomposition Pitfalls (And How To Avoid Them!)
- Learn common pitfalls of component-based frameworks
- Learn strategies to find balance between too small components and monolithic ones
- Learn ways to help teach others how to size components properly
The popularity of component-based frameworks has led to a Goldilocks problem for many web development teams. Some teams have too many components, filling their code base with files and components that don't have a clear purpose. Other teams have too few components, and the ones they have are monoliths containing way too much logic and becoming impossible to change. In this talk, we'll discuss some common pitfalls and strategies for making sure that the components you have in your system are just right.
unfold_lessunfold_more Business Agility in practice - an introduction to Beyond Budegting
- Understand the problems with traditional managament from a corporate perspective
- Understand the Beyond Budgeting model and the link to Agile
- Exciting case stories
Business Agility in practice - an introduction to Beyond Budgeting - The problems with traditional management, including budgeting - The Beyond Budgeting principles and companies on the journey - Equinor’s "Ambition to Action" model; - redefining performance - dynamic and relative with a holistic performance evaluation - dynamic forecasting and resource allocation and no traditional budgets - from calendar-driven to event-driven; a more self-regulating management model
unfold_lessunfold_more From YAML to TypeScript: Developer’s View on Cloud Automation
- Understand better what Infrastructure-as-Service means for cloud services
- Identify existing tools for Infrastructure-as-Service
- Learn the benefits of using real programming languages for infrastructure definition
Modern cloud applications consist of many moving parts, so they are hard to manage without employing Infrastructure as Code approach. Traditionally, tools like CloudFormation, ARM templates and Terraform employ text-based formats, which tend to be tedious, repetitive and difficult to reuse. What if instead of configuration files you could use TypeScript? See how you can bring your favorite developer tools like code completion, types, components, and abstractions to cloud infrastructure definition.
unfold_lessunfold_more Breaking changes
- Why SemVer is not a technical tool, but a tool for signalling intent and setting expectations
- How following SemVer can accidentally break people's apps and how to avoid it
unfold_lessunfold_more Security features to consider in .Net Core 3
- Security practice for .net core 3
- Learn to make more secure software in .net core 3
How to prevent attacks like cross-site scripting, cross-site request forgery, open redirect and sql injection on your site? How do you handle cookies in a secure manners? What are the strongest hashing and encryption algorithms available? What more to think about? The questions are many so let’s solve as many as we can in 60 minutes and raise your security knowledge in the .net space.
unfold_lessunfold_more Back and Beyond: A Reflection on Modern Testing
- Examples of how Modern Testing Principles have worked in the software industry
- The biggest complaints and worries about Modern Testing and what they mean for you
- Examples of roles for testers on teams executing Modern Testing Principles
- Four takeaways is a lot for a 40 minute talk!
Alan Page and Brent Jensen have been talking about what they call, "Modern Testing" (which is really just an approach for creating quality software, and isn't so much about testing) for several years. They introduced the Modern Testing Principles (moderntesting.org) two years ago, and since then, they've discovered team after team who are following those principles, improving quality, and achieving results in their organizations. In this session, Alan Page will share stories of how Modern Testing has been adopted, what has worked (and not worked), and share examples of what this means for all of us, no matter where we are on our Modern Testing journey.
unfold_lessunfold_more Introduction to Face Processing with Computer Vision
- Overview of the main tasks related to face processing (detection, recognition, etc.) and their significance
- Review of computer imagery and its impact on machine learning
- Overview of some computer vision / machine learning methods to tackle face processing
- Prototyping two practical examples building on the contents of the talk (Facebook Photos, Snapchat Filters)
Ever wonder how Facebook’s facial recognition or Snapchat’s filters work? Faces are a fundamental piece of photography, and building applications around them has never been easier with open-source libraries and pre-trained models. In this talk, we’ll help you understand some of the computer vision and machine learning techniques behind these applications. Then, we’ll use this knowledge to develop our own prototypes to tackle tasks such as face detection (e.g. digital cameras), recognition (e.g. Facebook Photos), classification (e.g. identifying emotions), manipulation (e.g. Snapchat filters), and more.
unfold_lessunfold_more Let's (not) get rid of all the managers!
- What management is all about and why it is still important
- How you can fall to the dark side of management
- 6 things you can do to be a great manager
Are you a manager in a world that increasingly wishes you didn’t exist? The positional power structure of traditional management is at odds with an agile approach. But, don’t despair... there’s hope! Fortunately, it is possible to do your job well and have your team want to hug you instead of fire you. Come and learn how to transform your role away from its command and control roots and be a valuable member of an agile team.
unfold_lessunfold_more Container Evolution - from single container to applications at scale
- Get to understand the working of a container
- Understand the need for container orchestration
- Get some Do's and Don'ts of microservice development
Many tried or at least heard of the benefits of Linux containers. Docker has become the de facto standard. However, innovation moves quickly and tools like Kubernetes and Istio appeared addressing the problem of container and application orchestration at scale. What do you know about these tools? In this presentation, we will talk about various tools of the container world, what they do and how they relate to each other. How can individual developers use them and how can they be used to build next-generation applications. There will be a mix of theory and background information, practical tips and some demos. After the talk, you will hopefully know where the container evolution is heading and whether it is worth to tag along.
unfold_lessunfold_more Striving towards more productive development workflows
- How to remove manual, repetitive tasks and be more productive
- How to minimize turnaround and waiting times while developing
- Which state-of-the-art tools are out there for modern enterprise Java development
- How to balance between developing, testing, and verifying locally before our code gets checked into version control
We developers love writing code, discussing and constructing perfect solutions. However, we very much dislike manual, repetitive tasks, and especially waiting for slow executions such as re-compilations, builds, and slow tests. Our daily coding work involves a lot of these productivity blockers that make our work less enjoyable. What are the state-of-the-art techniques and tools that enable us to spend more time on the beautiful side of coding? This session shows which approaches and technologies support teams in crafting more productive workflows. Besides what has proven itself in projects, we’ll have a look at build tools, IDE features, testing best practices, and state-of-the-art solutions of building and hot-reloading of applications. We’ll furthermore see how to keep a healthy balance between building and verifying applications locally versus in Continuous Delivery pipelines only. In this live-demo-driven session we’ll see how close we can come to a perfectly effective workflow.
unfold_lessunfold_more The Rise of JAMStack
- You will learn about the historical context of developer focus and product differentiation moving from backend to frontend
- You will be able to explain the problems with serverful architecture
- You will have a better understanding of the growing startup and open source ecosystem building around the JAMstack
- You will be able to explain what exactly the fuss is about the JAMstack
unfold_lessunfold_more Engineering data quality
- We will describe the different ways in which technical systems can cause data quality to deteriorate.
- You will learn how to test and monitor data quality in production.
- We will also describe the tradeoffs involved in data quality, delivery latency, and availability.
- You will learn architectural patterns and data engineering methods for improving data quality.
Garbage in, garbage out - we have all heard about the importance of data quality. Having high quality data is essential for all types of use cases, whether it is reporting, anomaly detection, or for avoiding bias in machine learning applications. But where does high quality data come from? How can one assess data quality, improve quality if necessary, and prevent bad quality from slipping in? Obtaining good data quality involves several engineering challenges. In this presentation, we will go through tools and strategies that help us measure, monitor, and improve data quality. We will enumerate factors that can cause data collection and data processing to cause data quality issues, and we will show how to use engineering to detect and mitigate data quality problems.
unfold_lessunfold_more What the game industry taught me about performance
- Multiple specific techniques for CPU performance optimizations in C#.
- Better understanding of CPU architecture and how hardware and code interacts.
- Understand why performance is relevant in the world of mobile devices and cloud computing.
- Insight into game development practices.
Modern games push the hardware to its limits. In this talk we look at some of the techniques used in games and how these ideas map to the world of .NET development. We look at how code interacts with hardware and how we can make simple changes to boost the performance of CPU bound code.
unfold_lessunfold_more Handling Dark Mode on Android and iOS
- You will learn why implementing Dark correctly is important for accessibility and usability
- Understand the design implications of implementing a dark UI
- Learn specific details about how iOS and Android handle dark mode system-wide, so you can implement these standards in your applications.
- See how Material Theming makes implementing Dark Mode easy on Android
The new versions of Android and iOS support system-wide Dark Mode. Users will this is supported by the apps they use,, and apps that don't support it will quickly look "out of style". This presentation will highlight some important aspects of implementing application design. Supporting dark mode is not as simple as just switching white to black. There are many important details to implement, to ensure your app is accessible and useable. I will show how I leveraged the Material design system to implement this in a project, and highlight some important learnings from my experience.
unfold_lessunfold_more Dealing with eventual consistency
- You'll learn what eventual consistency actually means. Both in UI and in business processes
- You'll learn how to trick the user when you need to deal with eventual consistency
- You'll not longer be afraid of eventual consistency and can explain to your business stakeholders it's not a scary thing
As software architects we want to make our systems more performant, maintainable, understandable, or any other thing-able. We use infrastructure like Azure Service Bus or Service Fabric. Maybe we'll introduce patterns like CQRS and Event Sourcing. Many of these choices introduce eventual consistency, but users expect immediate consistency. They don't want to wait for eventually. They expect feedback now. There are, however, ways to work around this. So what exactly is eventual consistency and how can we make it work? In this session, we'll have a look at different patterns, both in the user interface and the back end, that give our users immediate feedback even though the back-end system is not. We'll discuss how to solve the complexity of dealing with eventual consistency, without sacrificing decomposability or performance.
unfold_lessunfold_more Own your speed
- You will learn how Spotify supports engineers to become cross-skilled learners.
- You will learn about our journey, the challenges and success stories when Spotify explored a new approach to cross-skilled learning.
- You will learn the most critical steps for a senior engineer towards cross-skilled learning.
- You will get advice on how to structure your department to support cross-skill learning.
The purpose of this session is to share how Spotify supports engineers to become more cross-skilled learners. I will share the individual and organizational challenges Spotify identified on our way towards this goal. In the talk I will share our journey, the challenges and success stories when Spotify explored a new approach to cross-skilled learning. At Spotify we have identified some critical steps that helps a senior engineer to pursue this path. Finally, I will also explain how Spotify has changed our organization to support and grow cross-skilled learning. I hope to inspire you to take one first step in this direction too!
unfold_lessunfold_more Visual thinking – simplify complex
- Visual thinking is the new way of learning and working we knew about all along.
- One does not need artist skills to use visual thinking effectively.
- Visual thinking is the way to think and communicate to simplify complexity and be more impactful.
- You, the technology people, have the knowledge and skills to improve the way people think and communicate.
Are you tired of words and words that only confuse? Join this session to learn how to create impactful presentations and be able to create easy to understand explanations for complex concepts with just simple drawings. In this session Yuri will explain, visually, what role does visual thinking play today and how people around the world and coming from different walks of life use it to improve the way they work and communicate. The audience will explore the simplicity behind the visual thinking techniques to learn about their accessibility to all people, regardless of their artistic training and drawing skills. The conversation will continue to take the audience through some of the most common cases where software developers can find visual thinking handy. And finally Yuri will bring up the technological challenge that inhibits the widespread use of visual thinking practices. Subscribe to the master class where Yuri teaches the essential tricks to become an effective visual thinker!
unfold_lessunfold_more Maximizing performance with GraalVM
- You will learn what GraalVM is and what can it offer you as a high-performance polyglot runtime.
- You'll learn to understand for which code patterns GraalVM JIT compiler works best.
- You'll understand what are GraalVM native images and how do they improve startup and memory usage of your apps.
- You'll learn how to write a polyglot application without performance overhead for using multiple languages.
unfold_lessunfold_more The Gordian Knot
- Can't really separate architecture from culture, and organisation.
- An actionable definition of culture that leaves no alibis to keep the status quo.
- Ouch! One more responsibility for software people, well... no one was doin' it anyway.
- It's not you, it's not your team, it's not your company. It's repeatable patterns all over the place: some technological choices will inevitably lead to some human behaviour.
Some companies are going “full DevOps” and apparently releasing at the speed of light. Other companies are still struggling with estimations and slowly thinking about going microservices. Other are happy with their monolith, but struggling with recruiting. We’re all developers, but we’re not doing the same job. The line connecting a problem to its solution is relatively straight in some organizations and incredibly convoluted in some hours. Processes, Software architectures, and Organization are not separate concerns, neither are orthogonal. Pretending to fix one thing without touching others is a losing battle. We’re part of the problem. Our software is part of the problem. We can be part of the solution too.
unfold_lessunfold_more Building mobile app core features in the spirit of DevOps
- Learn about different technologies for building core features for native multi app development
- Learn how to architecture the code so that it can be used as core feature in several apps
- Understand how Minimum Loveable Feature development helps you to build the “right” thing
- See if we actually can build a live video streaming app in five minutes
Join us for a session with live coding! Will we be able to build a live video streaming mobile app in 5 minutes? Beside live coding, we will also discuss how we at Axis work with feature development in our Android and iOS apps in the spirit of DevOps. Historically Axis used to have a separate code base for each application but as the number of apps grew we moved to a common native code base building each core feature as separate component. Today each component is monitored and continuously improved based on customer feedback and analytics data. If you want to: - Learn about different technologies for building core features for native multi app development - Learn how to architecture the code so that it can be used as core feature in several apps - Understand how Minimum Loveable Feature development helps you to build the “right” thing - See if we actually can build a live video streaming app in five minutes Then come and join our session! Kind Regards Nils and Vladimir
unfold_lessunfold_more Applied Machine Learning Playbook: From Idea to Production
- How and when to introduce machine learning to your product (including how to validate MVPs quickly)
- How to collect and manage ever-evolving datasets
- How to measure, evaluate, and iterate on your progress
- How to maintain models as they get stale
Agile, Scrum, Lean… We have plenty of methodologies for traditional software development. But how do we tackle applied machine learning problems? Machine learning presents a new set of challenges for practitioners. How do we introduce ML in a product? Prototype and validate an MVP quickly? Collect and manage ever-evolving datasets? Measure, evaluate, and iterate on our progress? Maintain models as they get stale? These are some of the many questions professionals are facing in this field. This talk will cover methodologies, real-world best practices, and lessons learned for the applied ML life cycle.
unfold_lessunfold_more Modern Enterprise Java from the ground up
- How to build up modern Enterprise Java
- How to use tools such as Maven or Docker effectively
- What best practices are there for modern enterprise development
- How productive the choice of enterprise Java can be for backend projects
Java Enterprise has come a long way. Let’s not focus on the old days, but modern approaches on how to do enterprise applications. Where do we start? What technologies, tools, and approaches are a good choice for our applications and what allows us to effectively implement business logic and to deliver value to our users? In this session, we’ll have a look at modern Enterprise Java projects, best practices, tools such as Maven, Docker, 12-factor apps, and more. We’ll see which enterprise technologies to choose from between Java EE, Jakarta EE, and MicroProfile, to fulfill the needs of our projects, how to design our projects and build effective development and deployment workflows. This session is aimed at both developers who are just starting out with Enterprise Java, as well as engineers who have seen the days of J2EE and who are wondering what the modern EE world looks like.
unfold_lessunfold_more Shift Your Leadership
- That influencing organizational culture is easier than it appears.
- That anyone can begin to influence the organization they work in.
How micro-moments, small tweaks and even a single word can shift your perspective and your organization towards agile ways of working without anyone’s permission. For most leaders, embarking on an agile transformation is a daunting prospect fraught with resistance, conflict, risk and likely failure. Pete shares his experiences and stories from the roads less traveled by leaders who shifted themself and their organizations towards agile ways of working through these simple, yet impactful, hacks.
unfold_lessunfold_more API Management, Meet Event Management
- You will learn about Event-Driven development and why you should use it
- You will learn about the emerging AsyncAPI open source spec
- Event-driven architecture enables richer, more responsive applications
- New “event management” tools make it easy to develop and deploy events at enterprise scale
Wonder why API-centric request/reply interactions are still so popular despite the obvious advantages of event-driven architecture? It’s because API management tools like portals, catalogs and gateways make it really easy to create, deploy and optimize RESTful applications across the enterprise. I’ll explain why companies that want to embrace EDA need that same simplicity, and how lessons learned in the API space are fast-tracking the introduction of tools that’ll let developers and architects collaboratively define, discover and manage event-based applications and interactions.
unfold_lessunfold_more Advent of Code: Behind the Scenes
- What makes a good programming puzzle?
- How many people participate in Advent of Code (and who are they)?
- What does it take to run Advent of Code?
Advent of Code is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as a speed contest, interview prep, company training, university coursework, practice problems, or to challenge each other. In this talk, the creator of Advent of Code will give a behind-the-scenes look at what it takes to run a month-long programming event for over 200,000 people.
unfold_lessunfold_more Micro Frontends - A microservice approach to the modern web
- What are micro-frontends?
- What are pros and cons?
- How to successfully implement micro-frontends?
- Do we really need them?
The web is changing every day and it’s so hard to follow and implement all the new and fancy stuff that is being built. Cool new frameworks, libraries, methodologies and new approaches to solving problems. Usually is not that easy to deprecate some old technology and migrate to the new one. There are not many developers that still want to work with Angular 1 or Backbone and moving to something new is becoming necessary. If this sounds familiar to you, then this talk is for you! There is an innovative way to migrate from the old technology, to change the applications step by step and to implement all new things that the cool kids are using. This is the story of Micro Frontends, a microservice approach to the modern web, the story that will change the way you look and develop your apps!
unfold_lessunfold_more Don't Take It Personally
- How to better identify situations where you may be personalizing
- Ways to reorient thinking back to objectified view vs personalized view
- How to improve communication to avoid negatively received feedback
Receiving feedback can be tough. It can be hard to remember that it is meant to help improve work going forward, not to point out current flaws. It can be incredibly easy to take feedback or comments personally in the workplace, but what is the impact when we do so? When we personalize situations we tend to lose sight of the bigger picture. It becomes easier to focus in on minute details and not look at the overall context in which the feedback is being given. The impacts of this lower level of focus can result in wasted time from; chasing the wrong issues, laying blame, making up excuses, refusing to ask for help, and ultimately avoiding discussions around the root cause and ways to improve. This talk will draw on experiences and examples of situations such as; testing debriefs bug discovery, and inter team projects and discuss tactics for each on staying objective and productive. When we look at feedback and comments objectively, our teams become stronger as a result.
unfold_lessunfold_more Lessons learned from running a cryptocurrency exchange
- You will have a better understanding of how blockchain and cryptocurrencies work
- You will also delve deep into the fundamentals of blockchain security (e.g, cryptographic security, multi-signature etc..)
- You will learn about the core components required to build a cryptocurrency product like an Exchange
- You will see why blockchain and cryptocurrencies have the potential to transform how we live our lives
Technology has transformed many industries in the past decade. Numerous Internet services have made traditional businesses like the Post Office, newspapers, video renting service, television networks and radio stations obsolete. Only such players with the vision and the ability to recognize the need to transform their businesses by embracing these technologies have stayed on and flourished. In this age when technology is continuing to transform several industries, "money" as we know it is being transformed by blockchain and cryptocurrency technology and it is time for us to embrace this new technology or be left behind. In my talk, you'll get a better understanding of how blockchain and cryptocurrencies work, the potential of technology to transform the way we live our lives. I'll also be talking about building the core components any crypto service, the fundamentals of wallet security and how to run a technology-based business embracing in this emerging field.
unfold_lessunfold_more Debunking the Myth: Extending Cyberpsychology Beyond Freud
- You will learn what we do in cyberpsychology
- What types of psychology we look at in online behaviour
- Learn not to reduce online psychology to a single theory
Cyberpsychology has become one of the fastest growing areas of psychology in the last 10 – 15 years. It draws on traditional areas of psychology to help understand online and connected behaviour. It has evolved from a psychology around human computer interactions, which was very much focused on how people use technology, the benefits and costs, advantages and disadvantages of interacting with certain types of technology. Cyberpsychology has extended this to incorporate how we perceive, interpret, think and feel about our online interactions. It also considers both the online and offline impacts of our interconnected acts on our psyche, wellbeing and behaviours. Interactions that cyberpsychologists explore can range from helping people to date better online, to avoid falling victim to the worst of online dating scams, and from using online tools to enhance one’s social existence to becoming overly reliant on online interactions to the detriment of an offline social circle. Cyberpsychologists focus on the Internet and any technology or applications used for any type of interconnected behaviour as a tool. It serves as something to use to achieve a goal, usually a goal motivated by underlying psychological motives. When non-psychologists think of psychology, they usually think of Freud and outdated theoretical applications to human behaviour. In this talk, I will outline how our work as cybersociologists could not be further from this perception. I will consider the role of different areas of psychology in helping us understand the array of online behaviours we experience in our everyday lives. In doing so, I will focus on a number of different behaviours, including criminal activities, online socialising and online shopping to illustrate a need to look beyond Freudian theory to a more inclusive psychological approach to thinking of the end user when designing technology.