Webdevelopment blog

Webdevelopment blog

The bullshit of code coverage

A test suite can reach 100% coverage and still charge the wrong shipping fee or take a payment twice. Through boundary cases, misleading mocks and missing requirements, I examine what coverage actually proves. The useful question is not whether the code ran, but whether the tests would catch the mistakes your customers care about.

Continue reading

When a monorepo slows you down

Nx can make builds faster while shared code leaves your team waiting for someone else's priorities. Drawing on my experience, I examine the coordination cost behind a tidy monorepo, the difference between useful reuse and forced abstractions, and how DRY can work against simplicity. The question is whether the architecture helps teams deliver, not just share code.

Continue reading

Security by design in Angular

Security by design in Angular

A route guard and a green pipeline do not stop one customer reading another customer's invoice. Using Angular and a .NET API, I turn a security requirement into server-side ownership checks and tests. Security by design starts with boundaries and evidence, before choosing a scanner.

Continue reading

Building small apps with Swift

A small native app can solve a recurring annoyance better than another oversized platform. Using our Loop apps as examples, I discuss choosing a narrow problem, working with Swift and SwiftUI, and respecting the differences between Mac and iPhone. Distribution, accessibility and support are part of the product too, even when the feature list is deliberately short.

Continue reading

Starting fresh with Angular

A new Angular project is an opportunity to make fewer premature decisions. I work through a practical starting point: one useful vertical slice, clear feature boundaries, deliberate state management and tests that protect real behaviour. The goal is a codebase that can grow with the product, without building an imaginary enterprise platform on day one.

Continue reading

Do we still need Sass and Less?

Native CSS now covers many reasons we once reached for Sass or Less. But runtime variables are not compiler variables, and familiar nesting syntax can behave differently. This January 2026 comparison weighs where a preprocessor still earns its place, with examples and a feature checklist to help you choose based on what your project actually uses.

Continue reading

The bullshit of slow SAST scans

The bullshit of slow SAST scans

A security scan that keeps developers waiting can undermine the workflow it is supposed to protect. I look at feedback time, useful pipeline gates and the cost of noisy results. Faster checks should help teams act on real findings, without quietly removing the security coverage they need.

Continue reading

The bullshit of vibe coding

The bullshit of vibe coding

AI can produce a convincing interface long before the application is safe or maintainable. Behind the polished facade, permissions, failure handling and business rules still need engineering. I examine what vibe coding leaves out, where prototypes help and who owns the code after the demo.

Continue reading

What I've learned from interviewing Junior Developers

After interviewing many junior developers, I have learned that memorising framework trivia rarely makes the strongest impression. I explain what I look for instead: clear reasoning, curiosity, communication and an honest response when you get stuck. With common questions and advice on nerves, this is a look at interviews from the other side of the table.

Continue reading