Conference day
June 13, 2019
-
Registration
-
IntroductionIntroduction
-
KeynoteShowing the world the power of high-end technology and sustainable energy
Who thinks of solar racing, thinks of Nuna. The solar car that students from the TU Delft build. In the past eleven races, we managed to win nine in an extremely strong field. Leaving universities like MIT, Stanford and Cambridge far behind us. How do me manage to do this?
Who we are;
The Vattenfall Solar Team consists of sixteen ambitious students every year. We quit our studies for a year and a half and we commit more than full-time to building our own solar car from scratch. Organizational, creative, technical, theoretical and practical skills are combined into a car and a world-class team, our Nuna.What do we do and how do we do it?
The Vattenfall Solar Team races in the Bridgestone World Solar Challenge in Australia and in the Sasol Solar Challenge in South Africa. Our goal is to show the world the power of high-end technology and sustainable energy. At the start of our story, we have created, together with the first Dutchman in space, the eighth winning factors. These winning factors together, make the success of our team. -
Parallel SessionsIt's not the size of your data, it's how you use it
Last year was about the cloud. About going to the cloud, going cloud native, and having fun while doing that. While we do answer questions like "what's the best cloud solution for our chosen architecture?", we often don't answer questions like:
- "What's the best architecture for our use case?"
- "How can we make optimal use of cloud solutions?"
This talk discusses data structures, data storage, algorithms and possibilities. There will be plenty of examples, with special attention to scalability and how data flows through a system.
Bottom-up SRE - Making an informed decision between tech-dept and innovationSRE (Site Reliability Engineering) is hot, and for good reason; it provides actionable solutions to universal engineering and operations problems, help us streamline innovation, and bridge the gaps between business, development and operations in a single go.
There are many good ideas that come with Site Reliability Engineering, but what can YOU, as a member of a SCRUM team, start doing today, from SRE, that will make your life better and your team more effective.
Specifically, we'll focus on SLI's, SLO's, Error budgets, SLA's, and blameless postmortems.Agile... we are not there yet! Let's get there with well rounded product teamsAgile enables us to move away from the classical waterfall approaches, allowing more ownership and autonomy for the teams building products. This leads to higher velocity on building our products.
However, we are not there yet! We still have (hidden) "small waterfalls"! Products are defined by "business teams" (a.k.a.: "Business") and then implemented by "technical teams" (a.k.a.: "IT"). The result? Under-optimal agility and products flawed by design!
This talk is a call for action to stop these small waterfalls. I will focus on two specific points. First, teams must increase their technical leadership and safeguard the technical vision and design of their products. Second, the team working on the product must act as a single unit (not "Business" and "IT", but "Product Team"). Product Team owns the whole vision and design for the product. These are two essential elements to build what I call "well rounded product teams", which is key to achieve the true ambitions of Agile.
Surviving the Kubernetes Jungle"Using Kubernetes is as easy as launching a Docker container, right?" If you've ever used Kubernetes beyond the odd experiment, you know that statement to be untrue. Deploying your first full-fledged application on Kubernetes can be a frustrating experience; lots of documentation to read, new concepts to learn, things to take into account. But we’re here to help! From the team that got you into this Kubernetes mess, here’s Surviving the Kubernetes Jungle.
During this basic training, illustrated by live demo’s, we will teach you the basic concepts and explain them in context, so you know how to
kubectl apply (-f)
them. We’ll focus on workflow subjects that’ll improve your day to day life when working with k8s, so you’ll have the right tools to emerge out of the jungle victoriously.Measuring 2.0: Choices to handle 100,000 events per secondMeasuring what happens on the website sounds like a simple enough idea.
Many have done it before, so how hard can it be?
The reality is that it has been much more of a struggle than you may imagine.
When we announced to the BoQS team we expected to have 100,000 events per second, we were told that was about 10 times more than their (then current) maximum capacity.
In this session we will explain the choices that have led to allow us to handle:- > 100,000 events/second
- Support low latency clickstream analysis
- Exactly once processing of data
The lessons we learned here, will be useful in many other projects, so that you can make better choices when designing your next service. Understanding the trade offs between dynamic scaling, event ordering, exactly once guarantees, and reliable state machine processing can be very useful for most projects.
Exploratory Testing like a HackerWhen working at bol.com you're bound to encounter many services you aren't very familiar with. Or even that one service within your OpEx that's still black (box) magic to you. Exploratory testing is a great way to learn about a service, while simultaneously discovering actual defects. While being a very useful test technique, exploratory testing usually comes down to "manual" labor. But that doesn't mean that we can't use tools to our advantage here!
Being a 'security guy' I've come across a lot of hacker tools and scripts, including the hacker community all-time favorite tool: Burp Suite. When experimenting with this tool, I realized this could be used for functional testing as well.
In this session I'll share some personal test challenges and demonstrate with some real-world examples, how an "intercepting proxy", like Burp Suite, can assist you in discovering testcases, and how using visualization techniques on its result-set help you detect anomalies in your software.
Apply the hive mind of your team with Mob programmingUse the collective mind of your team to get work done!
Frustrated by waiting on your teammates to finish your code review? Scared to get someone out of the flow? Or just want to work as a team in a fun and effective way, sharing knowledge efficiently?
My team uses the collective minds of the team, in one flow, with Mob programming. Think of it as pair programming, but with the whole team.
We've done it consistently for months, twice a week, and loving it! You can too!
Life at Onefootball: scary close to fully autonomous teamsWorking on football products might sound like a dream to some, but working with autonomous teams will probably appeal to everybody. This utopia of fully autonomous teams is often described in literature and is chased after by all tech companies. Or heck, just scratch the tech part, its chased after by all companies. Just like bol.com, and just like Onefootball. And I have to say, at Onefootball we are getting scary close.
After working at bol.com for almost 5 years I switched to Onefootball last winter. In this talk I will share my first experiences of working @ Onefootball. How are we organised? What are our ways of working? And how do we try to get this ultimate business agility, making sure we are improving the leading football platform on a daily basis. I will try to point out the good, the bad, but definitely the tough parts as well, and also make some comparisons with 5 years experience at bol.com.
GDPR - after the dust has settledRemember May 2018? Almost everyone was bombarded with requests from companies asking for your permission to use and store your personal data, because the infamous 25th of May was approaching. The day GDPR (in Dutch: AVG) became effective. So what happened after this day? And how did we handle the new regulations at bol.com? Think about, for example, the PII inventory that you now have to keep updated at all times.
We’ll explore life after the 25th of May. So what happened? How did we do? How did other companies do? How many people actually submitted requests for insights, portability and erasure? And how about the marketing opt-ins? Don’t worry, of course some juicy details will be discussed...
Curious to find out more? Then join the session and become the new GDPR-expert!
The shady business of account takeoversOnline marketplaces, guaranteed transactions, online payments, cloud computing, 3rd party tooling, open sourced datasets, distributed networks.
So far, nothing special. Except that this is today’s world of account takeovers. We’ll do a deep-dive with some unique insight in the hustle & bustle, and share with you what we’re doing to stop these fraudsters.Together we’ll try to answer the million dollar question: Is that next login on the shop a nasty hacker or a trustworthy customer?
Your new favorite Kotlin libraries!Since Google I/O 2017, Kotlin has had a kickstart into the major programming languages. It is being pushed as the first language to use for Android development, but it's also a great alternative to Java for web app development. Kotlin has been broadly embraced by the IT community within bol.com, having a lot of its microservices running on it.
This talk will deep dive into different popular Kotlin libraries and frameworks, which you might not have heard of! A great way to get some inspiration for your own work. We'll discuss database and testing libraries, logging and even go a bit into coroutines.
After this talk you anxiously want to try out some new stuff in your Kotlin codebase!
Site Reliability Engineering in PracticeIn 2019 something big happened at bol.com. We were the first to adopt Site Reliability Engineering (SRE) in our way of working at the Webshop.
With over 10 development teams, countless stakeholders and a big infrastructure we've had our share of challenges to overcome: getting a buy-in from Business, generating the right measurements, reporting on our budgets and taking action when we exceed them. Just to name a few.
Getting SRE integrated in our way of working took a bit of effort but we learned about how to deal with percentiles, error budget consequences and stakeholder communication using Service Level Objectives as a driver for all our decisions. And we're here to share this knowledge.
-
Lunch + Lightning talksCare for your coworkers, chat with empathy
You like to be productive? You like to be not distracted?
Of course! And your colleagues like that too!Chat is one of the many distractions we have. But it's also an awesome productivity booster, with all these knowledgeable people who can help you out... as long as you use it effectively.
Care for your coworkers, chat with empathy!
Poor man's data scienceWant to get more insights into your services(OPEX)? Optimize to serve customers better/quicker/faster? Something useful for business and interesting for you? Do you want to change the life of our customers in a positive way?
Without using Python, Machine Learning, Neural Networks, or Artificial Intelligence — using simple command line tools like
grep
andsed
instead — we did the data science to collect the insights we wanted, within the hour!
Let me show you how.Top 10 reasons why being a Software Engineer is the greatest job in the worldAn unapologetically enthusiastic talk about why being a software engineer is the best of the best of the best.
I have a freaking amazing job that handles super amazing challenges while I work with totally awesome people.
This talk is me sharing my excitement about all this awesomeness and a small deep dive into what makes it so awesome and what we can do to keep it awesome and perhaps make it even better.
Separating Deployment from ReleaseDid you ever consider the difference between a Deployment and a Release? In most current day scenarios they mean the same thing, but what if I told you they can be two very different things?
In Webshop we found the need to separate a deployment from a release. And while there are many different ways this can be done we took it to the next level and put it in a service. This allows us to do instant, zero impact releases on running infrastructure.
What exactly is that difference between a Deployment and a Release? Why do over 10 teams use this service in the Webshop domain, daily? What are the benefits of using this service over other solutions, and most importantly: how can you benefit from this?
-
KeynoteInfected with Enthusiasm
How the first ever Prison Escape Real Life Game was created by a community of enthusiastic students, and how it helped form a value and community based entrepreneurial organization.
An activating story about the power of human connections, play and gamemechanics. -
Parallel SessionsThe magic of real-time rendering in games
Modern game engines render almost photo realistic images 60 times per second on €300,- game consoles. Meanwhile, at bol.com, it takes a €10.000 server a whole second to retrieve a customer's stored order information. How do game engines do this? It almost sounds like magic!
Though very impressive, I will show you that game engines definitely do not perform magic. But that they accomplish their goal using deceit and trickery. To prove this I will take on the role of the masked magician, using the game engine I created.
At the end of this talk you will have a high-level understanding of the steps and tricks involved in real-time rendering. You will also have a better understanding of the very parallel, pipelined, approach used in real-time rendering, which will make you think differently about the code you write for bol.com.
How AH.nl manages the Kubernetes ranch as a ServiceAt Albert Heijn, we started with a single Kubernetes cluster in 2017. We cared for it like a pet. It had a name, we constantly looked at its health, we tweaked it, we called it by its name in conversations, it was part of the team! Willie...
Now, 2019, we have multiple Kubernetes cluster, the time to pet them all individually is over!
Rancher gives us Kubernetes-as-a-Service: this enables us to create clusters on-premise, in Azure and different providers in the future.Come join us for the adventures of a Kubernetes cluster at the Albert Heijn ranch. Of course with an awesome live demo!
From junior to medior to senior: improve the quality of your codeAre you a junior or medior back-end developer, looking to make the next step? Are you interested in ways to improve the quality of your code? Then this talk is for you!
Using a bunch of do's and don'ts, common pitfalls and tips we will go through practical examples of what you could do to improve the quality of your code. Most of the points will be focussed on programming languages like Java or Kotlin and back-end systems.
At the end of this talk, you will have seen a number of tips and tricks that you can directly use in your code to improve the quality of your system.
Beyond A/B-testing: How to Optimize AnythingA/B-testing is used by companies like bol.com to test and optimize our web shop. Metrics like click through rate, conversion, engagement and customer satisfaction scores can be optimized using A/B-testing.
By testing different variations, testing them and finally evaluating outcomes we can make better decisions and this makes us perform better.
However, because of the manual steps involved in A/B-testing it is both time consuming and limits you to only test a small number of alternatives, with sub-optimal solutions as a result.In this talk I present a fully automated way of optimizing applications using Black Box Optimization algorithms.
Black Box Optimization is used by tech leaders like Google to fully automatically tune applications and machine learning models. A centralized BBO service makes it easy for everyone to integrate and start experimenting.At the end of the presentation, you know how you can use the power of optimization for your own domain, services and/or models.
Connecting your coffee table to WiFiFor the last couple of years we’ve been hearing a lot about IoTs, home automation, Alexa this, Alexa that, but not many people actually looked into the subject; And it is a pity, because there are loads of things you can tinker about to make your IKEA things great again.
In this talk I would like to bring up one of my recent home projects. That is - a €20 IKEA coffee table. How I added infinity mirror to it, connected to WiFi, and made it subscribe to a message broker and from my phone published colors/patterns to it. I will briefly go over the parts needed and challenges I came across (or rather how little challenges I had in getting it done). My talk will be based on this example, however it's not limited to it.
Bol.com IT community is filled with creative and passionate people. The aim of the talk is to inspire thinkalikes and perhaps even create a community that could share not only ideas but also help each other whether it’s electronic parts or coding knowledge.
From simple to advanced deployments on KubernetesWith the move to the cloud, you've got the power in your hands to make deployments work exactly the way you want, and as simple or as complex as you need.
Kubernetes uses the rolling update deployment strategy by default, but what exactly does that mean? What is needed for zero-downtime deployments? What about alternatives like blue/green deployments, or canary releases.
Let me shine a light on the different deployment strategies, how, and when to use them.
-
Break
-
Parallel SessionsA human's attempt to understand Intelligence
Will machines ever be intelligent enough to take over the world?
To solve complicated problems?
But what is Intelligence?Let's dive into the topic of Intelligence!
Using a bit of history of Artificial Intelligence (AI), philosophy, mathematics, and physics, this talk will make you think deeper on things you might have neglected until now, and discover the wonders of what we as humans possess; Intelligence!Testing, anyone can do it, right?We have slowly but surely switched from the traditional 'waterfall' way of working to the Agile way of working, or at least a large part of the IT world did so. This transition has ensured that the roles of everyone have a different interpretation, including the role of the tester. Often on the work floor a lot of question rise up when we think of the test role, it’s criticized and even under appreciated, because: Testing... anyone can do it, right?
I am feeling hotSometimes when I come into the office people are wearing coats and scarfs while in the afternoon people are complaining that it is too hot. Usually a few days later a maintenance guy brings a visit. He measures the temperature and changes some of the air valves in the ceiling. When leaving instructing everybody not to change the valves. But a few days later people have their coat on again.
What if we approach this a bit more data driven instead of feeling driven. Could there be a pattern? Let’s deploy some IoT devices across the floor(s) that measure the temperature. Put all that data into the Google Cloud and visualise it.
During this talk I will share my journey into the world of IoT and the Google Cloud. From buying my first IoT starter kit and building an initial device on a breadboard to soldering more specialised devices. Writing code for microcontrollers and getting Google’s products setup. And *if all successful* what can we learn about the temperature on our floor.Processing ten million financial transactions per day without being wrongDid you ever stop selling a profitable product because you thought you were making a loss?
Did you pay the same bill multiple times because you forgot to remember you already paid for it?
Did you forget to send a bill because you did not know you were owed money?All of this will happen at bol.com if we lose control of our data. (Some might have already happened, anecdotes may or may not be shared ;-) )
I will show at what lengths we went to gain control of our data, to guarantee our processing does not lose any messages under any failure scenarios and why this had to be a priority for our financial systems. In this talk you will hear about a way to gain insight into your own data so you can prove if data quality should or should not be a priority for you.
Back to trunk - the path of Continuous DeliveryDeploy continuously, move faster. But why? Won't things break? What are the benefits for the teams and their stakeholders? Do those also apply to the "deep" back-end systems?
Here at bol.com, we enjoy lots of team autonomy. We can press the "deploy" button at any moment. Theoretically. Practically, there are non-technical obstacles, like: "testing in progress on staging, the rest of the changes must wait." Every delay adds up to the focus loss, and the pile of undelivered risks is growing fast with every commit.
Let's take a look at the use case of a team that decided to keep its master synced with production. What were the obstacles in the team behavior, testing, monitoring releases? What were the benefits discovered? And whether the business noticed improvements in the idea-to-value velocity?
Micronaut: All or Naught?"Monumental leaps in start up time! Blazing fast throughput! Minimal memory footprint!"
These are the promises of Micronaut, a modern, JVM-based, full-stack framework for building modular, easily testable microservice and serverless applications. But is it all sunshine and dancing unicorns?
What are the Good and the Bad of the framework, from the perspective of a first time user. By reconstructing an existing application using Micronaut, several aspects of the framework will be highlighted and discussed, where the focus is on ease of use, learning curve, and what it means for putting the application into production.
After this talk you can decide for yourself; Micronaut: All or Naught?
Re-design for the cloud: a real life example of horizontal scalingBol.com receives 4.2 million urls to supplier images, each day! Each one of them should be downloaded but can potentially contain malicious content. We have developed a custom proxy server which takes care this, but this process is very resource intensive. It makes it hard to scale on demand in the data center. Luckily we have chosen to go to the cloud!
During this presentation we will show you how we solved this by re-designing the process, making sure we maximize the benefits of the cloud. How we changed the import process from one big "atomic action" to multiple logical units.
This eventually enabled us to on scale on purely what matters: the business logic.Tackling complexity around the heart of your serviceEverything seemed fine at first. Then, complexity happened. We were happily building new features and writing tests was still fun. With every new feature, however, the amount of services we were depending on seemed to grow and slowly we started to feel the pain. Our production code was able to evolve, our tests were not. An increasingly complex test setup started to manifest itself into mock-hell, flaky builds, and an increasing amount of wtf's per minute. Something needed to change.
We went back to the drawing board and thought about writing our tests using the same principle we applied to structure our production code: separating technical and functional concerns through strict boundaries. Combined with a different approach to mocking, we were able to reduce complexity and improve maintainability of our test harness.
Based on the principles and code behind our test harness, I'll provide you with ideas on how to tackle code complexity.
Neo4J: the cool kid on the blockGraph databases like Neo4J are nothing new, but attention is growing lately.
During this talk you will learn how Neo4J is not only changing the database world, but the real world as well. We’ll demonstrate how the technology was instrumental in the toppling of governments in the aftermath of the Panama Papers scandal. In the Adobe case, you’ll learn how it allowed them to transform a crippling 50 node Cassandra solution into a happy-go-lucky 3 node Neo4J set-up.
We’ll show you the simplicity of data modelling and the elegance of the Cypher query language.
And you’ll see how its internal design allows it to traverse billions of connections blazingly fast.To top things off, we will demonstrate how Neo4J has enabled us to create the new Software Parade; how Neo4J allows us to present our IT-landscape in ways that would otherwise have been far more complex - or impossible.
So, if you’re prepared to start thinking about data in a totally different way, come and learn and be amazed.
-
ClosingClosing
-
Borrel