Skip to content
View dan-the-dev's full-sized avatar

Block or report dan-the-dev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
dan-the-dev/README.md

👋 Hi, I'm Dan

Senior Software Engineer · XP advocate · Technical coach — based in Milan 🇮🇹

I build software the Extreme Programming way: small steps, tests first, continuous integration, frequent releases, and a team that keeps getting better. My priority is business success, and I don't think there's a sustainable way to get there without technical excellence: a team that can release constantly, daily, several times a day, without fear.

I've worked in product companies across proptech, food-tech, travel and AI, sometimes as a developer, sometimes as a tech lead, always as the person who pushes for TDD, trunk-based development and shorter feedback loops. Outside the day job, I write and teach about these practices with Learn Agile Practices.


🧭 What I care about

🔁 Agile: values over rituals

Agile for me means working software, short feedback loops and real collaboration, not a calendar full of ceremonies. Small batches, continuous discovery, MVPs and MLPs that you actually learn from, and teams that own the outcome, not just the ticket.

🧪 Extreme Programming: technical excellence as a daily habit

XP is the core of how I work and what I teach.

  • TDD (Red → Green → Refactor) and ATDD to grow behavior from examples
  • Refactoring in baby steps, with Simple Design and Object Calisthenics as compass (object-calisthenics-rules)
  • Pair and ensemble programming as the default way of sharing knowledge
  • Continuous Integration done for real: trunk-based development, commit to main, no long-lived branches
  • Legacy code handled the Feathers way: seams, characterization tests, then change

🌊 Lean: flow over busyness

Stop starting, start finishing. Limit WIP, make the flow visible, cut waste, and forecast with data instead of estimates. Lean thinking is the lens I use to understand why a team is slow, and it's rarely because people aren't working hard enough.

🚀 DevOps & Continuous Delivery: release is a non-event

If deploying is scary, you should do it more often. Automated pipelines, fast and trustworthy test suites, feature flags, observability, and small changes going to production many times a day. You build it, you run it.


⚡ XP Developer Skills: Amplified XP & Product Development

What happens when you take Extreme Programming seriously in the age of AI?

xp-developer-skills is my open-source framework, AMPD (Amplified XP & Product Development): a set of skills and subagents that make AI coding agents (Claude Code, Cursor, Codex, OpenCode…) work inside the same engineering discipline great teams already follow.

The story. It started with small, disconnected experiments: an automatic AI review on every pull request, an n8n workflow that went looking for the cause of a bug as soon as it was opened as an issue, then Cursor's automations on the same issues. Useful, but nothing that came together as a system. Then I tried an existing agentic framework with an instinct close to mine. It was interesting, but it didn't click, so I decided to build my own, from the ground up, tuned to how I actually work.

What made that possible was an archive I'd been keeping since 2012: years of notes on XP, TDD, continuous integration, Lean, DevOps and technical excellence. I started with one skill per action of a normal working day: a bugfix skill that enforces red before green and a minimal diff, a legacy-testing skill built on Michael Feathers' seams and characterization tests, a time-boxed spike skill, refactoring, and TDD and ATDD underneath everything.

At that point it was still a toolbox. The breakthrough came with new-feature and new-increment, when both skills agreed on what an increment is: a slice that can be released to production, tested and deployable, even if no user sees it yet. Once the planner and the implementer shared that unit, the skills started handing work to each other, and the toolbox became an operating model.

How it works today

  • 🗺️ new-feature plans only: it slices a capability into an ordered backlog of increments, confirms the plan with you, then hands off one increment at a time
  • 🧪 new-increment delivers exactly one slice with strict TDD (ATDD only where a real outer seam exists), keeps every project verification step green, squashes to one commit, and stops
  • 🔍 increment-review gives a verdict in about a minute: approved, changes requested (routed to refactoring) or bug found (routed to bugfix)
  • 🧹 refactoring, legacy-refactor, bugfix, spike and tweak each have a clear, bounded role in the loop
  • 🚪 pr-reviewer is the slower, more skeptical gate at merge time: hat discipline, increment scope, test strategy, Object Calisthenics

The principles behind it: amplify, don't bypass · skills over prompts · verify every change · simplicity first · product judgment stays human.

👉 Explore the repo · Manifesto · Install guide


📜 Learn Agile Practices

Learn Agile Practices is my home for continuous improvement and learning for software developers. It's for anyone who wants to become a real agile developer: XP, TDD, pair programming, OOP, CI/CD, Lean and DevOps, explained from practice, not theory.

🎤 Talks

  • Just commit to master, please: what Continuous Integration actually is, and how to really do it · slides
  • Start finishing, stop starting: limit work in progress to maximize outcomes · slides
  • Object Calisthenics: take advantage of OOP essence to improve your TDD feedback loop · slides

📫 How to reach me

LinkedIn X Telegram Newsletter Learn Agile Practices Website Email

Popular repositories Loading

  1. xp-developer-skills xp-developer-skills Public

    A series of skills for AI coding agents to amplify XP practices.

    Python 32 1

  2. kata-skeleton-php kata-skeleton-php Public template

    PHP skeleton for Katas with testing automation

    PHP 3 2

  3. object-calisthenics-rules object-calisthenics-rules Public

    A repo to learn Object Calisthenics rules and see some examples about them in some different languages.

    2

  4. laravel-typescript-transformer-api laravel-typescript-transformer-api Public

    Extension of `spatie/laravel-typescript-transformer` with improvements to work with API Requests and Responses

    PHP 2 1

  5. kata-skeleton-typescript kata-skeleton-typescript Public template

    TypeScript 1 2

  6. kata-skeleton-python kata-skeleton-python Public template

    Skeleton template for Kata in Python

    Python 1