From our SaaS audits
What we find inside SaaS companies
Patterns from the technical due diligences we run for investors and boards.
Newsletter
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.
From our SaaS audits
Patterns from the technical due diligences we run for investors and boards.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.