End-to-End Testing Web Apps: The Painless Way
A guide to painless end-to-end testing for web apps using Docker and Playwright, avoiding complex setups and paid services.
Michael Lynch – Developer, Indie Founder and Technical Writer Michael Lynch shares honest and detailed stories from his journey as a software engineer and indie founder. His blog covers topics like building sustainable businesses, code reviews, software craftsmanship, and lessons learned from running and selling his own startup, TinyPilot. Each post reflects a mix of engineering precision and real-world experience, written with clarity and humor. Readers can find tutorials, retrospectives, and essays that go beyond code to explore motivation, productivity, and the human side of software development. This blog is a must-read for developers, indie hackers, and anyone who enjoys thoughtful writing about technology and entrepreneurship.
146 articles from this blog
A guide to painless end-to-end testing for web apps using Docker and Playwright, avoiding complex setups and paid services.
A speaker's reflections on PyTexas 2019, summarizing key talks on feature flag management and using mypy with ORMs.
A software engineer reflects on his first year running a solo software company, covering finances, outsourcing lessons, and project breakdowns.
Learn how to retrofit legacy apps for Google Cloud Storage using Docker and gcsfuse without modifying application source code.
Explores why skilled developers write poor unit tests by misapplying production code principles, arguing test code should prioritize clarity over abstraction.
A developer's cautionary tale about building an MVP too late, using a recipe ingredient parsing service as a case study.
Final part of a series on refactoring a legacy Python library, focusing on safe code rehabilitation techniques and tooling.
A developer's fifth-month retrospective on launching their product, Zestful, but still struggling to acquire initial customers.
Part two of a series on resurrecting a legacy library, focusing on adding CI and end-to-end tests to stabilize the codebase.
A developer recounts the process of reviving a deprecated open-source Python library for parsing recipe ingredients, detailing the challenges of legacy code.
A developer's retrospective on the mistake of shipping a product too late, with insights from their fourth month working on Zestful.
A former Google engineer shares his experiences and lessons learned after quitting to start his own single-person software company.
A follow-up on leaving Google and an introduction to Space Duck, a new blog focused on decentralized storage and cryptocurrency technology.
A software developer explains their reasons for leaving Google, detailing the company's promotion process and their career reflections.
A developer shares a cautionary tale about the pitfalls of outsourcing an MVP, using a personal project as an example of what can go wrong.
A blame-free postmortem analysis of the challenges and delays in integrating Sia decentralized storage with the Minio S3-compatible file server.
A guide on improving code review communication and avoiding conflict, based on a real-world example of a failed review process.
A guide to improving code reviews by focusing on constructive communication and empathy, treating it as a social process rather than just a technical one.
Learn to build a low-cost, self-hosted cloud storage app using Sia and Nextcloud, offering a cheaper alternative to Dropbox or Google Drive.
A developer's journey building GreenPiThumb, an open-source Raspberry Pi bot that automates houseplant watering using JavaScript and AngularJS.