Technical Tutorials

56 posts
Ignoring revisions when using git blame

Ignoring revisions when using git blame

Tired of git blame pointing to useless formatting commits? Learn how to ignore revisions with --ignore-rev or .git-blame-ignore-revs to keep Git history accurate and helpful.

A Rubber Duck’s Guide to Better Engineering: Part 2

A Rubber Duck’s Guide to Better Engineering: Part 2

Professor Quacks is back with five more principles for better engineering: build tools that help, move with healthy urgency, plan wisely, work well with others, and lead by example. These aren’t just coding tips, they’re culture-shaping lessons.

Learning from OSS: configuring your Link component via a Provider (Braid)

Learning from OSS: configuring your Link component via a Provider (Braid)

Learn how SEEK’s Braid Design System uses a linkComponent provider to flexibly support routing across React apps. A great pattern for design systems, and one madewithlove engineers keep coming back to when building scalable front-end libraries.

A Rubber Duck’s Guide to Better Engineering

A Rubber Duck’s Guide to Better Engineering

Professor Quacks reminds us that curiosity, accountability, and good teamwork are the bedrock of great engineering.

Why frontend rewrites are more common than refactors

Why frontend rewrites are more common than refactors

Why do engineering teams keep rewriting frontends? Let’s explore the leadership bias and tech churn that makes refactors feel harder—yet ultimately more sustainable.

🌶️ Why Native PHP shouldn’t exist

🌶️ Why Native PHP shouldn’t exist

Building desktop apps with NativePHP misuses Laravel’s core strengths, creating potential security risks and practical limitations.

Securely Mounting COMPOSER_AUTH Secret in Docker Builds

Securely Mounting COMPOSER_AUTH Secret in Docker Builds

Using ARG or ENV for secrets in Dockerfiles can expose sensitive credentials in your final image. Instead, use Docker BuildKit’s --secret to pass secrets securely at build time. Learn how to protect your Docker builds across CLI, Docker Compose, GitHub Actions, and GCP.

Taming a Python: don't let the snake bite

Taming a Python: don't let the snake bite

Adapting to a new tech stack is all about mindset. Switching from PHP to Python was an eye-opener. Package management confusion, unexpected paradigms, and a lack of encapsulation made for an interesting challenge. Embracing constraints is the secret to growth.

When Symfony event listeners go wild!

When Symfony event listeners go wild!

A simple bug fix can turn into a full-blown debugging adventure - especially when Symfony’s event listeners start misbehaving. 🧐 If your listeners are firing twice (or more), your service configuration might be the culprit. Here’s how we solved a sneaky autoconfiguration.

You’ve successfully subscribed to madewithlove
Welcome back! You’ve successfully signed in.
Great! You’ve successfully signed up.
Success! Your email is updated.
Your link has expired
Success! Check your email for magic link to sign-in.