Hi! I'm Pietro 👋
I am a passionate coder, I like to build products that can change the life of people.
I am a coach and a trainer, I feel proud and happy when I can help my teammates get better every day at their jobs.
I am an agile developer, I try to embody the agile and lean principles in my professional life.
I love refactoring, testing and eating an elephant solving big problems one bite at a time, with tiny and safe steps.
My preferred programming languages are Kotlin and Ruby, but the one I know best is Java.
The people I owe the most are Kent Beck, Joe Rainsberger and Martin Fowler 🙏
I suck at drawing, but I like to draw ‘cause I think drawing and visualizing are the best way to understand things.
As a trainer, I held many courses on TDD, clean code, refactoring and taming legacy code.
I currently work for Casavo as a product contributor.
I love agile methods!
I started with eXtreme Programming (XP) in 2002, in the first XP team in Italy.
Then I widened out my experiences with Scrum, Lean and Kanban, which all have great and inspiring principles.
In the end, "being agile" basically boils down to inspect & adapt, work in tiny steps, use short feedback loops, learn constantly and visualize everything. And work together.
Technically speaking in my career I've used Java, Kotlin and Ruby extensively, and a bit of C#. I used Javascript too, mainly on the server side (NodeJS).
But, besides programming languages, I try to learn and use techniques which help me work better, reducing the risks and lowering the stress, in any context I may happen to work: Refactoring, Test-Driven Development, Continuous Integration, Project Automation (and DevOps practices, too) among others.
As a trainer, I held many courses on learning TDD, writing clean code, refactoring and taming legacy code.
I'm also a firmly believer in the power of Visualization, from visualizing the value stream of a production process, and capturing the workflow of a team on a board, to sketching ideas and diagrams.
All those activities, in my experience, helps you and your team building a shared understanding, creating alignment between people and grasping new and unrealized insights and improvement opportunities.
I consider myself a full-stack developer, meaning that I deeply care for the overall outcome of the project efforts, end-to-end, not just that my (or my team's) tasks are in the DONE column in a task board somewhere.
I'm also a conference speaker, because I like to share what I've learned and receive feedback from others about my ideas. And because, after all, I like challenges.
My most recent presentations were about the daily journal practice we use in our teams, improving your hiring process to create a great team, creating a serverless architecture with AWS Lambda and some lessons I learned on continuous delivery on a Java project. It was an honor and a pleasure for me to speak about these topics at Codemotion Berlin, ScanAgile Helsinki, Codemotion Milan, Italian Agile Days, among others.
I previoulsy worked for XPeppers (a Claranet company), where I helped clients to shape their ideas into actual digital products, using agile methods, and more generally any approach that can help a project to thrive and succeed.
Here at XPeppers I put as much effort in developing products as I put in helping my teammates grow, pair-programming with them as much as I can, helping them to progress in their own learning paths, making code katas with them, and sharing the essence of agile methods.
Euleria - E-health Company (from August 2021)
I'm working with Euleria to help them improve their end-to-end product development process, focusing not just on the technical part of the flow, but also on the other parts (discovery, planning, releasing) that are key to the success of every digital company.
Arca Vita - Insurance Company (from September 2020)
I'm helping ArcaVita dev teams to improve their skills and awareness on clean code that works, with
- recurring team-wide code reviews
- training the team on some key practices like refactoring, testing and TDD
- practicing together on code katas
- facilitating team activities like architectural brainstormings or "definition of done"
Mercury Payment Services (then NEXI) - Payment service provider (May 2016 - May 2021)
I led the team working on several products composing the main payment solution for the largest italian bank. My team worked on:
- the payment gateway and its components
- the ACSs (one compliant to protocol 3DS 1.0, the other following the new 3DS 2.0 standard)
Paros - Payment platform for public administrations (July 2014 - April 2016)
As an agile coach, I trained the dev team of the client on the engineering practices of XP, starting from clean code, TDD, refactoring and continuous integration.
Then I worked everyday as an embedded component of the dev team (together with other colleagues from XPeppers), helping them embracing an agile and lean process (mainly Scrum plus technical practices from XP).
The platform is basically a backend developed in Java, publishing an API consumed by a single-page app (AngularJS). We've also developed a backoffice webapp, developed using the Play framework with Java.
The developed architecture uses extensively the CQRS pattern and an Event Sourcing approach, to track all changes of the core application state as a sequence of events.
PhotoVogue - Social network for fashion photographers (April 2016 - June 2016)
As an agile developer, I helped building the backend API for this platform, a social network for fashion photographers, with 150.000 users, 400.000 photos and 3.000 new photos uploaded daily. We used a serverless architecture on AWS Lambda.
Famas System - Intelligent Transportation Systems (March 2016 - October 2017)
As an agile coach I'm supporting Famas in evaluating an agile process for the development of their products.
BeMyEye - Mobile crowdsourcing (May 2016)
As a trainer, I've held a course on the Java language for a team that had to switch their technological stack from PHP to Java and AngularJS. The resources I used (exercises, examples, stuff to read and study) are published on github: https://github.com/xpepper/java-basics
For more detailed project descriptions please look them up on LinkedIn.
- Unit Testing: Principles, Practices, and Patterns by Vladimir Khorikov
- Clean Architecture by Bob Martin
- Get Your Hands Dirty on Clean Architecture by Tom Hombergs
- Remote by Jason Fried
- Mindset: The New Psychology of Success by Carol Dweck
- The Three Signs of a Miserable Job: A Fable for Managers by Patrick M. Lencioni
- Team Guide to Metrics for Business Decisions by Mattia Battiston
- The Nature of Software Development by Ron Jeffries
- Serverless Architectures on AWS by Peter Sbarski
- Fifty Quick Ideas to Improve Your User Stories by Gojko Adzic
- Turn the Ship Around! A True Story of Turning Followers into Leaders by L. David Marquet
- Kanban in Action by Marcus Hammarberg and Joakim Sunden
- Lean Change Management: Innovative Practices For Managing Organizational Change by Jason Little
- Hiring Geeks That Fit by Johanna Rothman
- Becoming a Technical Leader by the great Gerald M. Weinberg
LinkedIn: https://it.linkedin.com/in/pietrodibello
You can find more info about me on my LinkedIn page. There you'll find some of my most relevant experiences, some projects I worked on, several presentations I gave about topics I care. And you can also find some nice photos taken here and there.
GitHub: https://github.com/xpepper
On GitHub you can find my personal projects, some projects I follow, and several exercises and katas I keep repeating to "sharpen the axe".
Writeups, articles and thoughts: https://hackmd.io/@pierodibello
I use to write my notes and collect my learning moments on HackMD.
I also write posts on Medium and on Gist.
I use to create many mindmaps when I study!
Here are some of the lastest mindmaps created:
- CUPID ‒ for joyful coding! Dan North 2021
- Clean Architecture - Component Coupling
- Those pesky pull request reviews
- The Test Pyramid Goes Serverless - what kind of tests help you control the risk of errors and what changes when it comes to serverless
- Microservices Lessons Learned from a startup perspective - Susanne Kaiser
- Surviving to a legacy codebase - How we take back control of legacy codebases
- Rodrigue Schaefer: From monolith to microservices
I keep a youtube channel with my two friends, "le voci del codice" (in italian), where we talk about different topics we find interesting (like clean architecture) or we play coding katas together (like the poker hands kata), to stretch our skills.
You can find some of my slides here:
- http://www.slideshare.net/pierodibello/
- https://speakerdeck.com/pierodibello
- https://slides.com/pierodibello
- Surviving a legacy codebase: tactics and tools - Codemotion Berlin 2018
- Hiring Great People - Agile@Work 2015
- Hiring Great People - KLab 2018
- Crisi del software - nella testa di uno sviluppatore - Intervista a Pietro Di Bello (italian)
I had the pleasure to be interviewed by Vasco Duarte for his podcast, Scrum Master Toolbox Podcast. Here are the five episodes:
- http://scrum-master-toolbox.org/2016/12/podcast/pietro-di-bello-on-the-3-dimensions-of-success/
- http://scrum-master-toolbox.org/2016/12/podcast/pietro-di-bello-on-the-5-problems-every-scrum-master-must-help-the-team-recognize-and-own/
- http://scrum-master-toolbox.org/2016/12/podcast/pietro-di-bello-describes-effective-tools-for-change-management/
- http://scrum-master-toolbox.org/2016/12/podcast/pietro-di-bello-on-the-dynamic-definition-of-success/
- http://scrum-master-toolbox.org/2016/12/podcast/pietro-di-bello-describes-symptoms-of-systemic-problems/
Sometimes I tweet. Sometimes I take nice pictures and publish them on Instagram.
- This is a video recording of the session taken at the Italian Agile Days 2015, in Brescia (in italian).
- This is a video recording of the session taken at the Italian Agile Days 2016, in Pavia (in italian).