personal
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.
And now I'm learning Rust and Elm
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 Prima as a software engineer and 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.
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.
I'm helping ArcaVita dev teams to improve their skills and awareness on clean code that works, with
I led the team working on several products composing the main payment solution for the largest italian bank.
My team worked on:
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.
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.
As an agile coach I'm supporting Famas in evaluating an agile process for the development of their products.
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.
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.
On GitHub you can find my personal projects, some projects I follow, and several exercises and katas I keep repeating to "sharpen the axe".
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:
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:
I had the pleasure to be interviewed by Vasco Duarte for his podcast, Scrum Master Toolbox Podcast. Here are the five episodes:
Sometimes I tweet. Sometimes I take nice pictures and publish them on Instagram.