Software engineer @ Mollie
I’m an Italian (now living in the Netherlands) software engineer, an agile practitioner. I'm interested in Domain Driven Design, Continuous Delivery and Test Driven Development, but also in football and cheese. I'm also a musician, I write sad songs so I can write happy code.
Area of Expertise
You recently started working on a new project, or you have been working on it for a while, and it has undergone many changes due to the contributions of multiple developers. This means that you may not be familiar with how the automated tests were written, or how effective they are.
So, how can you be confident that you won't break anything when you deploy new features to production, or when you refactor that old piece of software that's holding you back? Do you have enough trust in your test suite to rely on the fact that a green CI build means that everything is okay?
There are many tools that provide metrics about your code and tests, such as code coverage and CRAP metrics, but they have their limitations.
In this talk, we will explore ways to evaluate the effectiveness of your test suite, how to improve it, and the benefits of having a robust and comprehensive set of automated tests.
I've performed the talk at a couple of technical conferences and meetup, and I will bring it at a testing conference in Canada in September 23 (KWSQA), it's quite a mature and well received talk.
Some of the code snippets are in PHP, but it's language agnostic and I can easily change examples in any other language if needed.
If your system's resources are always at 100% capacity, you must have a highly efficient system, right? And if your team members are working as hard as they can, at 100% capacity all the time, you should be proud of that, right?
Life, and especially software engineering, is full of counterintuitive truths. The relationship between efficiency and effectiveness is one such example: the answer to both questions is a resounding no.
In this talk, we will explore how a development team is similar to a queue system, and how we can use queue theory to reduce the time it takes to deliver new features to production, and ultimately create a more effective team.
The talk will revolve around the theory of queues applied to development teams, and some principles taken from "Principles of Product Development Flow".
Are you struggling to figure out the right balance of unit tests, integration tests, and e2e tests in your PHP projects? Look no further! This talk aims to make some clarity in the different types of tests and when to use them. We'll explore the importance of unit tests (and what a unit really is), and when to rely on broader integration or e2e tests for testing the behaviour of bigger chunks of your application. We'll also cover the different test shapes, such as the pyramid and trophy, and what kind of development experience they might lead you to.
Attendees will leave with less confusion about the benefits and limitations of each test type and how to use them to effectively improve the quality of their software.
I will start with defining the different level of tests, then diving into the different test strategies and what they are best for, with benefits and tradeoffs. I'll also bring very simple code examples, but not live coding.
Continuous delivery, deployment, integration: a lot of buzzwords of our times start with "continuous". But do they really exist in real life? Or is this just fantasy? In this session, I will demonstrate the reality and significance of CI/CD by sharing the story of how we implemented "continuous stuff" in the projects I have worked on. It's a story about tests, pipelines, automation, and feature toggles, but more importantly, it's about changing mindsets.
We will discuss each of the stages - coding, testing, deploying (and delivering) - and we will find out (spoiler alert!) why the journey towards continuous delivery is valuable even if you never reach the destination.
Software engineer @ Mollie