Engineering

How to pragmatically leverage AI as a startup

If you believe what you see on LinkedIn, startups don't need employees anymore, real founders just have agents building their companies. You write a prompt, fire off the agent, and wait for customers. In reality, you get a vague workflow that produces a mediocre demo at best.

Cloudy with a chance of function calls

In the first of a series exploring infrastructure fundamentals, Brenden addresses the most frequently asked questions about what's really happening under the hood with complex pipelines and AI/data systems, bringing the cloud to life.

Analyse your tables for better performance

I recently encountered a issue with MySQL query performance. A particular query would perform very badly in production, but perform very well in the testing environments.

No designer? No problem with v0

For small teams without a designer, v0 is a game-changer. The cost justifies itself by letting you explore and validate ideas in minutes rather than days.

The stainless steel lesson: why boring technology outlasts shiny frameworks

Shiny frameworks promise magic, but like cheap non-stick pans, they scratch, peel, and end up in the bin. Boring technology, like stainless steel, isn’t sexy, but it lasts for decades if treated well. The lesson? Build for the long haul, not the quick thrill.

The challenges and gotchas of app store releases

The most common mistake in mobile product launches is assuming the app store submission process is routine. It isn’t. From mismatched requirements between Apple and Google to last-minute policy changes, this is where launch plans unravel.

Legacy vs technical debt: how investors can spot hidden risks in software products

What can investors do about legacy code to prevent your startup from failure? What is the difference between legacy and technical debt?

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

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)

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.

Redux is legacy - modern ways to approach state in React

Stuck in Redux boilerplate for a simple React task? You're not alone. Learn how tools like Tanstack Query, nuqs, and react-hook-form help you replace Redux with simpler, more maintainable solutions—backed by madewithlove's engineering expertise.

Fitness for purpose: taking risks with quality

When product teams obsess over perfect quality, they risk standing still, but by embracing a 'fit for purpose' mindset and planning for instability, they can move faster and smarter.

These questions will be answered after technical due diligence

Investing without technical due diligence is like buying a used car without opening the bonnet. This article demystifies the audit process, shares what red flags we look for, and explains why investors should care deeply about code, processes and product.

A Rubber Duck’s Guide to Better Engineering

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

What would it cost to rebuild this software from scratch?

Evaluating the cost of rebuilding software from scratch involves more than counting development hours; it requires recognising the invisible value of user feedback, lessons learned, and embedded experience.

Subscribe