Tutorials

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.

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

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

Why front-end 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

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

Tech stack decisions for AI startups: what you need to know

Selecting the right tech stack is critical for AI startups. Python is essential for data science, but the backend, frontend, and infrastructure choices determine scalability and efficiency. Explore the best tech stack combinations, hosting tools, and ETL solutions to future-proof your AI startup.

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

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!

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.

Even ETL needs a roadmap

ETL (Extract, Transform, Load) is vital for data-heavy businesses but often begins with manual workflows. Companies should identify inefficiencies, prioritise automation, and design a scalable ETL roadmap that integrates human reviews and evolves with business growth.

A company's first steps in AI

Many product companies are eager to leverage tools like ChatGPT. But how do you go from experimenting to running in production? Let's explore choosing the right large language model (LLM) to understand hosting options, ensuring an efficient and sustainable AI implementation.

Caching routes, components and functions with "use cache" in Next.js 15 (canary)

"use cache" is an experimental Next.js 15 Canary feature and may change. In this tutorial, we explore "use cache" for caching, covering fetching and inserting comments with Drizzle to reduce database calls and improve performance while maintaining control.

Instant feedback using the useOptimistic hook in React

Implement optimistic updates in React with the useOptimistic hook for instant UI feedback. This technique enhances user experience by updating the interface immediately while the server processes actions in the background, creating a faster and more responsive app.

Crossing boundaries: Handling data mutations in client components

Discover how to efficiently mutate data in client components using server actions in Next.js. Learn to handle form submissions with React’s evolving hooks like useActionState, eliminate the need for API endpoints, and streamline client-server interactions for faster, more responsive applications.

Subscribe