Conference day 1
May 28, 2020
-
"Walk-in"
-
KeynoteOpening
-
Parallel SessionsSuper Mario’s Dive Through The Gitlab Pipelines
Super Mario dives and runs through pipelines to discover new worlds. With Gitlab, your code flows through the Continuous Integration and Continuous Deployment pipelines, to blossom on production and be discovered by its end-users.
What happens under the hood of the Gitlab Pipelines?
Gitlab Pipeline, Job, Runner; how does this all work?
How to debug and optimize these pipelines?Conquer this new world through this Super Mario Gitlab Runner game!
Cutting Complexity with Component-based CodingIn the past, we struggled with reusability of our code in our application. The same business logic was in multiple places, and even though components looked the same for the end-user, their implementations were radically different. This caused a lot of unpredictability, and system-wide changes took a long time implement.
For the past years, we have been rewriting our application to a bottom-up approach. Our main focus is reusability, pushing as much logic down to where it belongs: In the components that make up your application. This has transformed our application from a terror to work in to pure joy!
BigQuery : Deeper DiveIn this talk i'd like to give a technical deepdive of BigQuery. First, we'll visit the internals of the underlying storage system and other components that in the end make BigQuery SQL-like but not quite SQL and then we'll understand why this is such a good model for BigQuery as cloud product. This will help you as developer and end-user because you'll understand the strong points and limitations (quirks?) of BigQuery. After that we'll see how this plays out in real world scenario's and when you are impacted. Time permitting there'll be a section on cost optimization via partitioning and slots opt-in/opt-out policy.
The State of SRESite Reliability Engineering is gaining more and more traction in software organisations all around the world. At bol.com there have been several initiatives mostly driven by individual enthusiasts over the last couple of year.
This year we started a dedicated SRE team.
This talk will cover what we've done to get to this point, what we've done since then and how the SRE team can help you innovate more effectively.
The developers toolset to survive KubernetesHave you ever had issues with your deployments in Kubernetes? yes!
Have you ever asked help for debugging your production issues, related to Kubernetes? yes!
Do you know what for example k9s, stern, podaffinity, replicasets, pods or nodes are? No?
Would you like to be more confident with your daily operations? yes!
Are you going to vote for this talk? YES! ;)This talk shows you the basic tools and knowledge to survive everyday problems or tasks with your Kubernetes resources. It's pragmatic and developer oriented, you will feel confident with your new learned tools and tricks for Kubernetes after this talk!
When your stream doesn't stream very wellSo you want to create a new streaming analysis on top of an existing data stream. You use the data from the test environment to keep the volume manageable. You get the data into Apache Flink and you see raw data coming in. Yet your first attempts at doing a very simple analysis on this data results in … nothing coming out. Then you simply take the raw data and use the advised way to write it to something like HBase ... and it takes 30 minutes for the records to appear in the database.
What is going wrong?
The reality of streaming analytics is that the analytics works great on a continuous and big enough stream. Testing streams are very often “too dry” causing all kinds of basic systems in stream processing frameworks to behave differently from what you want. In this talk I will go into some of the practical problems we ran into while building streaming applications over the last years and show you the solutions to make small experiments actually work.
Cloud on the event horizonThe cloud on the event horizon is about the how cloud can revolutionize our landscape in the near future. It has no direct bearing to our current journey and projects but it will show you how you can run a large scale service-based IT operation in a total different way than we do today. A resilient, scaling landscape where i will briefly touch on most cloud technologies. I'll illustrate this by showing parts of our existing customer journey so that there's not just hot air, but a meaningful relation to our current shop.
Run your own Prometheus, for Fun & ProfitWe haven’t invented time travel, so we can’t show you metrics from five years back that you didn’t store, but we have successfully created a set-up where, with little effort, you can start collecting metrics every tenth of a second, and store them for over a hundred years. And all this, with minimal effort or opex burden.
In the last year, we (Team Insights) have worked on developing a state-of-the-art metrics stack. However, this stack is limited to the constraints of our technical platform. Although convenient at times, a platform product doesn’t allow for the specific implementation that you might want. Perhaps you want your metrics measured each tenth of a second, or you would like to understand year-over-year black-friday performance, going five years back.
We’ll demo this brand-spanking new R2D2-based metrics setup, which will let you run your own metrics stack at minimal opex, but with the flexibility you need to get the correct insights.
-
BreakoutsRun your own Prometheus, for Fun & Profit (continued)
We haven’t invented time travel, so we can’t show you metrics from five years back that you didn’t store, but we have successfully created a set-up where, with little effort, you can start collecting metrics every tenth of a second, and store them for over a hundred years. And all this, with minimal effort or opex burden.
In the last year, we (Team Insights) have worked on developing a state-of-the-art metrics stack. However, this stack is limited to the constraints of our technical platform. Although convenient at times, a platform product doesn’t allow for the specific implementation that you might want. Perhaps you want your metrics measured each tenth of a second, or you would like to understand year-over-year black-friday performance, going five years back.
We’ll demo this brand-spanking new R2D2-based metrics setup, which will let you run your own metrics stack at minimal opex, but with the flexibility you need to get the correct insights.
Career opportunitiesChasing or creating your goals at bol.com how does that work? Discover your personal strengths and learn everything about growth possibilities as an international at bol.com. Also you will be able to share your own ideas, and give feedback on how you are experiencing your career opportunities at bol.com
Run your own Prometheus, for Fun & Profit (continued)Career opportunities (continued) -
Break
-
BreakoutsDealing with Corona Crisis in the Netherlands
Share thoughts and experiences, give feedback on how you think bol.com can help you better in dealing with this situation. Learn what others do to keep the spirit up and lot’s more.
-
Break
-
Parallel SessionsSociotechnical Architecture: co-designing technical & organizational architecture to maximize impact
Traditionally software architecture focuses on designing software systems to provide value to customers. In most organizations there is little emphasis on the design of the organizational structure that will implement and own such technical architecture.
However, in our very competitive and fast moving world this can be a major drawback. We cannot design software systems at high-velocity without considering the organization that will deliver and own them. Architecture must be a co-design activity, considering organizational and software systems aspects. This is what “Sociotechnical Architecture” aims at.
In this talk I am going to show you what Sociotechnical Architecture is; why it is extremely relevant; and will also inspire you with several examples and patterns. My goal is to make clear that we must always consider these two dimensions to be able to maximize our impact and be able to achieve high-velocity on our product development.
From medior to senior to expert: increase the output of yourself and others around youAre you a medior software engineer, looking to make the next step? Are you interested in ways you can be an even more productive engineer or leader of your team? Then this talk is for you!
In this session we are going to look at different aspects of software engineering where you can make a difference, leading to a higher productivity of yourself and the people around you. Aspects like technical excellence, designing solutions, focus on quality and long-term while being pragmatic, leading a team, cooperation, coaching, what's important and what's less important to worry about, sharing knowledge.
At the end of this talk, you will have seen what makes the difference between an expert software engineer and a medior, and what you can do to grow.Finding cracks in the mirror: How AI reveals biases in our present-day societyAlthough we often consider our AI algorithms to be impartial and objective, they still frequently reflect real-world biases. In some cases, this 'algorithmic bias' even ends up amplifying the real-world bias. With machine learning and AI becoming more pervasive in our society, this means that we see more and more examples popping up of algorithms doing the 'wrong' thing. Our own implicit biases are now being exposed, leading to awkward and sometimes outright painful situations. But why do these biases occur in our machine learning models in the first place? In this talk I will dig deeper into this topic, starting from the basic principles of machine learning and giving some examples of where models went horribly wrong. Also, I will give some insight into how we can make algorithms more fair, both from a fundamental and more technical perspective.
Atoms of Confusion; Writing Understandable CodeWhenever we as software engineers read or review code, we need to understand what the code actually does. When writing code, we want to produce beautiful, but also readable code. Atoms of confusion are the smallest pieces of code that cause us to misunderstand what code will actually do. I am here to show you the results of my research on the effects these atoms have on understanding of code, and what perception CS students had on them. 7 atoms are shown to have a significant negative effect on understandability of the code snippets.
Warstories from the WorkfloorThe best way to learn is from making mistakes. The second best way to learn is to look at other people making mistakes, and learn without getting hurt!
I will go through multiple mistakes that hampered our production environment. The focus of this talk is to tell fun and entertaining stories, and to then analyze what went wrong and how they could've been prevented. That way you can learn from our mistakes!
This one weird trick this expert engineer uses to make more impactSoftware engineering is by nature a job for the creative and intellectually curious.
This means that we are intrinsically motivated to improve as much as possible around us, which can easily lead to being overwhelmed or having difficulty where to focus our efforts to make the most impact.
In this lightning talk I will share the one trick I used at bol.com which for the first time in my life made me feel like I truly was having the impact that should come with the promotions my managers kept throwing my way.
Not only that, it also significantly improved my focus, increased the impact of people around me and allowed me to share my privileges with others.
Conference day 2
May 29, 2020
-
Parallel SessionsFrom monitoring hell to heaven, how ah.nl sleeps well at night
When you're responsible for an entire platform, you'll sleep better knowing that your system is humming along nicely. But what if you have a lot of platforms? And new ones coming and going every day? The end goal: if the phone doesn't ring, everything is doing fine!
Join us as we walk through our journey from a growing mess of configurations and problems to an automated monitoring setup with decentralised rule management, and achieved our monitoring nirvana.
Cleared for takeoff: engineering the Webshop deploy and release pipelineThe webshop is one of bol.com's oldest and largest codebases, with 517 contributors overall and 96 in the last 6 months; 160,000 commits; 400 open branches and anywhere between 10 and 40 features released to production per day.
Despite the large size and loads of legacy code, we prevent a lot of critical and emergency level incidents by making use of feature environments, automated tests and a strict release process.
To do so, we needed to take the engineering of the build and deploy cycle in our own hands, and away from the managed Jenkins setup. This allows us to innovate and experiment without breaking production and before we merge into master.
In this talk, I will share how we migrated the webshop's pipelines from custom-crafted Jenkins build scripts to Gitlab CI's pipeline system, without breaking stride or missing a daily deploy.
I will not only focus on the how of the migration, but also on the why, and the, expected and unexpected, benefits Gitlab's tools have given us.
I suck at cooking, but it's not my faultLet us together experience the frustrations of cooking recipes. Before coming up with solutions, we first start with understanding the user, the process and the context. Understanding these will help us in coming up with new solutions that cover all aspects, in judging the solutions that we will come up with and choosing the right solution.
After we understand the frustrations of cooking recipes, I will share how I have applied this pattern to designing solutions for our SWAP and API and why everyone should focus more on understanding before solving.
GraphsI like graphs. Not plots. Networks. The data structure.
Graphs are everywhere, sometimes obvious, sometimes hidden. Therefore, the more you know about them, the better you become at whatever you do! I will discuss many topics that have to do with graphs to convince you why they are such a powerful concept. Topics include AlphaGo, Natural Language Processing, logic, social networks, git, Google search, the Semantic Web and recommender systems.
If you want to learn anything about any of these topics or just hear someone talk about something they love, this talk is for you!"They took our jobs!"Machine learning has already made many professions obsolete. Data scientists keep automating business processes, which causes more and more people to lose their jobs. It seems like we are all threatened to be replaced by machines. Ironically, this includes the data scientists themselves. There are solid advancements in automatic machine learning itself. Is this something they should be afraid of? Are data scientists destroying their own future?
To answer this, we will first have to figure out what data science actually is. What can (and therefore will) be automated and what would likely to remain managed by humans at least in the foreseeable future? Next to these, we will find out whether robots can drink coffee, emotionally argue on what the KPI should be, massage your lovely stakeholders, and many more!Experience the hive mind through Mob ProgrammingAre you fed up with all the design session meetings, marketplaces, review sessions?
Come experience mob programming in this fun collaborative session, solving a simple code challenge (kata).
We will learn to pair, agree even if we disagree, and create clean and sustainable features.
The kata will be implemented in Java using Visual Studio liveshare tool, thus the basic requirements are the use of Chrome as a browser and a Github account.
Experience the hive mind with us!
Creating a paradigm shift for bol.com marketing attributionHow do we verify our marketing budget is used effectively?
As bol.com, we are planning to spend around 90 million euros on digital marketing in 2020. The four main methods for determining marketing efficiency are: incrementality, media-mix modelling, lift studies and attribution. Here we focus on attribution, which provides a way of estimating how much of revenue is being driven by marketing channels and comparing their effectiveness. Currently we use the most widely used attribution model: last click interaction, which assigns all revenue to the last marketing channel which brought the customer to the website.
Our new system based on m2 data, will allow us to test basic attribution models such as: last click interaction, first click, linear etc. and to use the most advanced ML models such as Markov chain attribution, Shapley value and many more.
This will guarantee our digital marketing budget is being used in the most efficient way possible, helping us stay ahead of the competition.Experience the hive mind through Mob Programming (continued)Are you fed up with all the design session meetings, marketplaces, review sessions?
Come experience mob programming in this fun collaborative session, solving a simple code challenge (kata).
We will learn to pair, agree even if we disagree, and create clean and sustainable features.
And we will do it in Kotlin, cause here at bol.com we love it and we can still learn cool features from each other.Experience the hive mind with us!
Making demos great againAs a Data Scientist, I often need to quickly prototype ideas and showcase those projects to the business. Yet, Python scripts are not very visually appealing and powerpoint is not always suitable. And you also don't want to spend weeks setting up that throw-away, unmaintainable Flask application, just for the purpose of showcasing your idea.
Fortunately, there's a solution to all of these problems: Streamlit! Streamlit is an easy to use open-source app framework for Data Science written in Python which allows you to set up an interactive app in MINUTES. Streamlit takes away the pains of worrying about the front-end so you have enough time to worry about the data.
Give your demos and presentations superpowers by incorporating Streamlit into your data science toolkit. If you don't want to waste any more time building buggy and unmaintainable apps for the mere purpose of showcasing your project and want to go from zero to full-fledged demo in minutes, then don't miss this talk.
Experience the hive mind through Mob Programming (continued)Are you fed up with all the design session meetings, marketplaces, review sessions?
Come experience mob programming in this fun collaborative session, solving a simple code challenge (kata).
We will learn to pair, agree even if we disagree, and create clean and sustainable features.
And we will do it in Kotlin, cause here at bol.com we love it and we can still learn cool features from each other.Experience the hive mind with us!
-
Break
-
BreakoutsLanding and onboarding
Some of you came all alone to the Netherlands, others together with their spouse or also brought their children. Or dog. Or cat. Come to this room if you want to share experiences. Also, what bol.com can learn from you to improve their onboarding program.
-
Break
-
BreakoutsFreaky Fun Friday!
Wanna have a good laugh?
Learn all fun facts of the strange Dutch (and other countries) habits? 😂
Are you competitive and do you want to win great prices?
For that, and a lot more, you really want to visit this room!
Bring a bowl of crisps and your favorite drink!Improvising on the edge of developmentLike an Agile Team a group of Improv comedy actors need to work creatively and collaboratively under pressure and uncertainty. They need to be adaptive to input from the audience and fellow players, have good communication skills and share control. Could it be that there is something we can learn from these funny folks.
Applied Improv is a method that has been adopted by various kinds of teams to develop skills needed to respond effectively to complex, uncertain and changing environments. Research in this field has also shown that applying improv principles and practices enhances a team climate for innovation. Such a team climate creates an organic beehive effect where there is a natural flow of ideas, communication and action.
In this workshop you will learn how by practicing Improv principles you can:
- Develop an open and nimble mind
- Improve your collaboration and communication skills
- Have more courage and confidence to embrace the unknown
- Be more playful and creative.
-
Break
-
Parallel SessionsFrom prototype to production. A real-life cloud story
All things start out as ideas or prototypes and R2D2 is no different. In this talk we will give you a glimpse of how bol.com’s self-service cloud provisioning tool came to be and how it is constantly evolving from a proof of concept to a full-on production system. We will share some of the tales of technical battles we have survived while building an infrastructure-as-code tool in an ever-changing technical landscape.
In this session, you will learn what we have done in the past year to improve R2D2. We will dive into technical details and learnings about how to do infrastructure as code, the mistakes we have made and how we are trying to scale R2D2. Whether you hate it or love it or just learned to live with it, this talk is for you.
Functional Programming: λfx.f(f(fx)) reasons to learnImagine that you are all happy developing a new functionality, writing codes and testing, you are happy! You are confident! There's no way that this thing will fail in production, you say to yourself... ohhh how wrong you are, at the first minute in production you get punched in the face with an unexpected runtime exception. THE HORROR! THE SADNESS! You curse your past self for choosing such an annoying area to work, asking if there is a way that you can reduce de suffering of the unexpected errors. Weeeeeell, what if i tell you that you can! In this talk we will learn a little bit on how the functional programming paradigm can help you to write a safer software, with less to none side-effects and natively concurrent safe.
How to work the climbing ladder?"Your job should be your passion” has been repeatedly questioned by work/life-balance "gurus" with the argument that many people haven’t found their passion yet… But what if you have two passions? Can you find the balance then?
I personally gave up trying to find this holy grail. Instead of figuring out where to draw the line, don't draw one at all. Instead of trying to find 30 hours in a single day required to train on a professional level and work full time, do both at the same time!
In other words, a simple recipe for not being good at any of the two endeavors. Or is it? What if I tell you that you can learn more from training than from doing a PhD in mathematics*? What if the time spent in the office can actually make you climb harder than ever before! In this talk, you will learn about universal life (work?) lessons which will help you in the journey of becoming a more balanced human.
*Any possible formulas will be about nutrition, muscle growth, etc, but NOT about mathematics.Iteratively proving (product) ideasA few times last year, while implementing a solution, we were blocked by risks we did not foresee. Some of these risks could be solved, but others proved harder to overcome.
Based on last years’ lessons, we have been testing a new way of working. In this new way of working we go from idea to product, via POC, prototype and MVP. We iterate through the steps, implementing the idea more thoroughly at each step. After each step we try to prove the idea using experiments. This helps us to identify risks in an early stage and prevents surprises in later stages when already heavily invested in a solution.
In this talk I’d like to show how you can start iterating on ideas and prioritise the most feasible solutions. Helping you prevent surprises when there is no way back.
😎💪😊😢😮(The Secret power of Emojis)Humans communicate using much more than language. Our entire bodies are signposts of both conscious and unconscious signals that harbour multi-dimensional communication channels that are vastly more complex and efficient than we can imagine.
However, there is one on-line medium that comes close to this multi-dimensional communication power.
The Emoji.
This talk will dive the depths of opportunity inherent in this medium and will teach you to be a certified master of Emoji so you too can chat with ❤ and communicate with 💪!
Chaos Engineering: Why we should embrace chaosChaos engineering is the practice of doing experiments on your system to gain insights on how it will actually behave. In this talk I'll explain why I think we should do this more and challenge our concept of what makes up a system.
-
KeynoteQuantum Computing & Quantum SoftwareClosing