Engineering

Newsletter

From Andreas' Desk

A bi-weekly letter from our CEO Andreas Creten for SaaS leaders and CTOs: what we see in audits, AI engineering and the companies we work with.

You're in — check your inbox to confirm.

From our SaaS audits

What we find inside SaaS companies

Patterns from the technical due diligences we run for investors and boards.

See the audit findings

Mocking external systems in e2e tests

Struggling with a legacy codebase? We used Playwright to automate QA, reducing bugs. By mocking external APIs like Google Maps, we ensured seamless testing. Learn our implementation with Laravel and Playwright for reliable results.

Embracing brownfield projects & legacy code in SaaS

Balancing innovation with stability is key in managing SaaS legacy code. You explore phased implementations, leveraging existing assets, and continuous learning to maximize legacy code potential. Ideal for tech leads and founders.

Understanding and managing technical debt and legacy code: a guide for founders

Discover effective strategies for managing technical debt and legacy code in software development. This comprehensive guide for founders explores the causes, impacts, and solutions to maintain sustainable growth and high-quality code.

Backups. How much is enough?

Google Cloud's data loss incident highlights the need for robust backups. Regular backups and storing snapshots are crucial. Practicing data restoration every 6-12 months ensures readiness. Adapt strategies as systems evolve to manage data loss risks effectively.

Why don't you look at the codebase?

When auditing software companies, we don't only look at the codebase. The value of an audit lies in understanding the broader context of the company. By interviewing, we uncover the real issues.

“Fake” e2e tests with react-testing-library

How to run fake e2e tests using react-testing-librabry? Here's a quick tutorial on how to speed up your feedback loop when working in front end applications.

Building a React Native/Flutter app is more than coding

Explore the essentials of cross-platform mobile app development. Learn about design, feature parity, performance, and user experience across iOS and Android with insights on React Native and Flutter. Optimize your development process with key tips on app stores and integration.

PHP lied to me

We discuss the challenges of using PHPStan at its strictest level for type checking, particularly with 'mixed' types. It explores solutions like using strval() and creating custom functions, but ultimately, the author opts to lower PHPStan's strictness due to complexity, ending with mixed feelings.

Automating malware scanning on uploaded files

Implementing a malware scan for file uploads using ClamAV on DigitalOcean, this post details setting up a pragmatic solution despite infrastructure limitations. It covers the initial approach, technical setup, challenges, and potential improvements for a secure file-handling system.

Don't become a code review bottleneck

Transform code reviews from a bottleneck to a team effort. Balance quality and productivity by engaging everyone in reviews, automating minor checks, and fostering a culture of code quality. Make your reviews sustainable now.

The command pattern in Laravel

This post delves into the Command Bus pattern, highlighting its use in software architectures and Laravel implementation. It covers commands as user actions, command handlers, and the Command Bus for execution, emphasizing the pattern's role in simplifying and maintaining code structure and logic.

Full-Stack vs. Specialized Developers: what does your SaaS startup need?

Explore the dilemma between hiring full-stack versus specialized developers in SaaS. Understand when to choose versatility or deep expertise for your project's success.

What is the difference between hybrid, native, and cross-platform applications?

Explore the distinctions and advantages of native, hybrid, and cross-platform mobile apps to make an informed choice for your business. Understand the impact on performance, user experience, security, and development costs to select the right technology stack for your mobile app project.

What to do when your team can't deploy continuously?

The software release journey is transformative. While CI/CD excels in fast-paced environments, it's not a universal fit. Discover alternatives to deploying continuously, balancing innovation with meticulous care.

Value objects vs DTOs

Value objects are a common occurrence in domain driven design but are they always the best choice? In this article we’ll dive into a real situation where we consider the usage of a data transfer object.

Subscribe