
20 years of Getting Things Done
Reflections and practical tips from 20 years using Getting Things Done, plus a short workshop plan for leaders who want actionable routines.

Reflections and practical tips from 20 years using Getting Things Done, plus a short workshop plan for leaders who want actionable routines.

Discover why traditional motivation techniques can backfire in tech teams and how leaders can foster intrinsic motivation through autonomy, mastery, and purpose. Learn actionable strategies to empower your team and boost engagement, based on insights from Daniel Pink’s “Drive.”
](https://gagor.pro/2025/08/harvard-negotiation-model/images/cover.webp)
Practical guide to the Harvard Negotiation Model — the four principles of principled negotiation, how to use BATNA, responses to common hard-ball tactics, and actionable tips for reaching win‑win agreements in leadership and teams.
](https://gagor.pro/2025/01/efficient-dockerfile-templating-for-complex-build-scenarios/images/cover.webp)
Why even consider templating Dockerfiles? Dockerfiles revolutionized the industry with their simplicity. Each instruction creates a new layer in the image, which is automatically cached. This process integrates well with SCM, where you “commit” the results of one stage and move forward with other changes. The process can be easily parameterized with ARG instructions, similar to ENV but provided during the build. This allows for creating highly flexible builds. For most users, this is more than sufficient. However, there’s a notable exception: Docker base images. ...
](https://gagor.pro/2024/05/fix-cannot-rebase-onto-multiple-branches-error-once-and-for-all/images/cover.webp)
A Guide to using git pull --rebase effectively Using git pull --rebase as your default merge strategy offers several benefits, particularly in maintaining a clean and linear commit history, which can simplify collaboration and code review. However, you may occasionally encounter the error “Cannot rebase onto multiple branches”. This article explains why this happens and provides a solution to make git pull --rebase work seamlessly. Benefits of git pull --rebase Linear History: Rebasing applies your local commits on top of the upstream changes, creating a straight line of commits without unnecessary merge commits. This makes the project history easier to read and understand. ...
](https://gagor.pro/2024/03/best-practices-for-writing-dockerfiles-follow-filesystem-hierarchy-standard/images/cover.webp)
Learn best practices for writing Dockerfiles by following the Filesystem Hierarchy Standard (FHS) to enhance organization and maintainability of your Docker images.
](https://gagor.pro/2024/03/automatic-updates-of-docker-images-with-renovate-bot/images/cover.webp)
Learn how to automate Docker image updates using Renovate Bot, a versatile tool that supports various package managers and custom dependency links.
](https://gagor.pro/2024/02/best-practices-for-patching-and-deprecating-docker-images/images/cover.webp)
Learn the best practices for patching and deprecating Docker images to maintain security and stability in your DevOps workflows.
](https://gagor.pro/2023/04/the-best-way-to-get-nvm-working-in-ci-cd-systems/images/cover.webp)
Learn the best way to get NVM (Node Version Manager) working in CI/CD systems, ensuring seamless Node.js version management in your DevOps workflows.
](https://gagor.pro/2022/09/best-practices-for-writing-dockerfiles-use-volume-for-all-mutable-temporary-file-locations/images/cover.webp)
Learn best practices for writing Dockerfiles by using VOLUME for all mutable, temporary file locations to enhance performance and maintain cleaner images.