Bookmarks tagged with #sw-architecture.
Show all
Show all
Bootstrapping a Frameworkless PHP Application
A single bootstrap file. A PSR-11 container. No fullstack framework required.
Saved
on: 2026-05-05
Laws of Software Engineering
A collection of principles and patterns that shape software systems, teams, and decisions.
Saved
on: 2026-04-21
Reinventing Payment: From One Table to DDD
How I evolved a PHP payment system from a single table to channels, state machines, and hexagonal architecture. Real code, real trade-offs.
Saved
on: 2026-04-15
S3 Files and the changing face of S3
Andy Warfield writes about the hard-won lessons dealing with data friction that lead to S3 Files
Saved
on: 2026-04-08
Nobody knows how the whole system works
One of the surprising (at least to me) consequences of the fall of Twitter is the rise of LinkedIn as a social media site. I saw some interesting posts I wanted to call attention to: First, Simon W…
Saved
on: 2026-02-09
The challenges of soft delete
Exploring alternatives to the archived_at column pattern: triggers, application events, and WAL-based change data capture.
Saved
on: 2026-01-21
Share Nothing — Do Everything
The title of this article was used as the subtitle for the pthreads extension.
Saved
on: 2025-12-10
Your URL Is Your State
A deep dive into how thoughtful URL design can enhance usability, shareability, and performance. Learn what state belongs in URLs, common pitfalls to avoid, and practical patterns for modern web apps.
Saved
on: 2025-11-03
HATEOAS for Haunted Houses
A case-study in using Hypermedia as the Engine of Application State (HATEOAS) architecture to build a flexible control system for a local haunted house on a tight delivery schedule.
Saved
on: 2025-10-11
Use One Big Server
A lot of ink is spent on the "monoliths vs. microservices" debate, but the real issue behind
this debate is about whether distributed system …
Saved
on: 2025-09-01
Everything I know about good system design
I see a lot of bad system design advice. One classic is the LinkedIn-optimized “bet you never heard of queues” style of post, presumably aimed at people who are…
Saved
on: 2025-08-17
takaakit/uml-diagram-for-ddd-example-in-evans-book
UML diagram for the DDD example—a cargo shipping system—from Eric Evans' book - takaakit/uml-diagram-for-ddd-example-in-evans-book
Saved
on: 2025-04-19
Meta’s Hyperscale Infrastructure: Overview and Insights
Saved
on: 2025-02-11
Ideas from "A Philosophy of Software Design"
Almost a month ago, I created a telegram channel with the goal of reading tech books consistently, and sharing summaries of them.This week, I have finished reading the first book - “A Philosophy of So
Saved
on: 2024-12-22
Design Token-Based UI Architecture
Describing established patterns for organizing design tokens and practical approaches for automation
Saved
on: 2024-12-18
Netflix’s Distributed Counter Abstraction
In our previous blog post, we introduced Netflix’s TimeSeries Abstraction, a distributed service designed to store and query large volumes of temporal event data with low millisecond latencies…
Saved
on: 2024-11-14
Practices of Reliable Software Design
Saved
on: 2024-10-09
Serialization is the Secret - Zach Daniel
If a value mutates in the forest with no one to see it, does it really mutate?
Saved
on: 2024-10-02
Continuous reinvention: A brief history of block storage at AWS | All Thing
Marc Olson, a long-time Amazonian, discusses the evolution of EBS, highlighting hard-won lessons in queueing theory, the importance of comprehensive instrumentation, and the value of incrementalism versus radical changes. It's an insightful look at how one of AWS’s foundational services has evolved to meet the needs of our customers.
Saved
on: 2024-08-22
UI = f(statesⁿ)
“UI is a function of state” is a pretty popular saying in the front-end world. In context (pun intended), that’s typically referring to application or component state. I thought I’d pull that thread a little further and explore all the states that can effect the UI layer…
Saved
on: 2024-02-17
3 Signs Your Project is Becoming Legacy - Arrays Creep
In [the first post](/blog/3-signs-your-project-is-becoming-legacy-and-how-to-avoid-them), we looked at the long-term effects of our decisions. Turning a legacy project into a fresh one is a matter of the "just do it" approach.
But there are 3 things we should take with care even if our project seems outside the legacy project category. First of those are arrays.
Saved
on: 2024-01-09
10 Tips For Building SSR/HDA applications
In this guide, Carson Gross provides ten practical tips to help developers transition from Single Page Applications (SPAs) to Server-Side Rendering and Hypermedia-Driven Applications, focusing on essential mindset shifts and architectural advantages.
Saved
on: 2023-12-22
Stop building databases
Join me as we take a look at common application data patterns, and how they relate to the inner-workings of databases. In this post, we discuss data caching, indexing, optimistic mutations, and recursive cache invalidation. We will see how life might be easier if we could just use a frontend optimized database like SQLSync instead.
Saved
on: 2023-12-02
Retries – An interactive study of common retry methods – Encore Blog
Visually explore different methods of retrying requests to learn why some methods are dangerous and what the best practice is.
Saved
on: 2023-11-23
Goodbye integers. Hello UUIDs!
Exploring the tradeoffs of different database indexes; from sequential integers, randomly generated UUIDs, to time-based identifiers and the latest & greatest UUIDv7
Saved
on: 2023-10-02
Graceful behavior at capacity
Suppose we’ve got a service. We’ll gloss over the details for now, but let’s stipulate that it accepts requests from the outside world, and takes some action in response. Maybe those requests are HTTP requests, or RPCs, or just incoming packets to be routed at the network layer. We can get more specific later.
What can we say about its performance?
All we know is that it receives requests, and that it acts on them.
Saved
on: 2023-08-10
What we talk about when we talk about System Design
Early in my research career, I had a chance to work with some of the best system researchers1 in the world on a number of really interesting system designs. One of the enjoyable aspects of research was the particular process used by researchers (particularly in the SOSP/OSDI community) to come up with novel yet practical designs. This design process can be characterized as “fighting complexity with abstraction”: in any complex environment, how do you corral that complexity into cleanly defined boxes (or more technically, abstractions) and then divide functionality across these boxes? This sounds like hyperbole, but I’ve been quite lucky when it comes to mentors; put together, my advisors at Cornell and colleagues at the now-defunct MSR Silicon Valley lab were responsible for inventing much of modern distributed computing over a span of five decades, but that’s a topic for another post. ↩
Saved
on: 2023-07-22
Two Kinds of Legacy Code Upgrade
I often speak with project owners or CTOs, who ask for help with legacy project upgrades. They typically want something like "upgrade to PHP 8.0" or "upgrade to Symfony 5.4". There are two ways to do that.
Which one is the best for you? Let's ask the important question first.
Saved
on: 2023-07-15
Browsertech Digest: Figma is a File Editor
Hey folks, welcome to the digest! Today’s issue is about a pain point developers encounter when shipping desktop-class apps to the browser. File editors and...
Saved
on: 2023-07-13
karanpratapsingh/system-design: Learn how to design systems at scale and pr
Learn how to design systems at scale and prepare for system design interviews - karanpratapsingh/system-design
Saved
on: 2023-07-05
Modern CSS For Dynamic Component-Based Architecture
Explore modern project architecture, theming, responsive layouts, and component design. Learn to improve code organization, dig into layout techniques, and review real-world, context-aware components that use cutting-edge CSS techniques.
Saved
on: 2023-06-18
Anything can be a message queue if you use it wrongly enough
Saved
on: 2023-06-05
Conquering Legacy Code: Embrace the Strangler Fig Pattern for Seamless Software Migration
In the software development world, legacy code is inevitable. As technology evolves and user needs change, 99% of software engineers will encounter legacy code in their careers. Many developers, however, feel overwhelmed when faced with the task of updating or migrating a legacy system. Fear not, for we have a solution: the Strangler Fig pattern.
Saved
on: 2023-05-11
Entertainment
We create and provide access to world-class entertainment through Amazon Originals, Prime Video, Audible, Amazon Games, Twitch, Amazon Music, Prime Gaming, and more. Amazon’s digital entertainment products enable customers to access the latest apps and games, stream or download movies, TV shows,…
Saved
on: 2023-05-04
Refactoring Legacy Code with the Strangler Fig Pattern
There are strategies for reducing the size and responsibilities of large objects. Here’s one that worked for us at Shopify, an all-in-one commerce platform supporting over 1M merchants across the globe.
Saved
on: 2023-04-20
Modelling Busines Processes in Laravel - Laravel News
As developers, we often map business processes to digital processes, from sending an email to something quite complex. Let's look at how we can clean this up.
Saved
on: 2023-03-25
How Discord Stores Trillions of Messages
Engineer Bo Ingram shares insight into how Discord shoulders its traffic and provides a platform for our users to communicate.
Saved
on: 2023-03-08
Legacy Software Systems: How to Live with Aging Software Architecture?
Your guide to legacy software systems. How a software developer can be a good repairman when working on legacy software? Find our examples and experts' tips!
Saved
on: 2023-03-06
Four Ways to Build Web Apps
Intro This is my opinionated list of four approaches to building websites and web applications. Publicly hosted on the internet, serving HTML, CSS, JavaScript, images, etc over HTTP.
#1: Hugo Static Sites + Progressive Web Apps Static websites are boring. Vendors rarely talk about them because the margins are miniscule compared to flashy, compute-heavy services. It is seen as a table stakes offering. Though they have received more attention during the “JAM Stack” trend, my position is that they are still underappreciated and underutilized.
Saved
on: 2023-02-21
What does POSIX conformance/compliance mean in the distributed systems worl
Answer (1 of 4): When I hear people refer to POSIX, they almost always mean the "File and Directory Operations" portion of the standard(s). Then again, I'm a filesystem developer. If I worked on schedulers (for example) I might hear more about different sections, but I'll try to stick with the ...
Saved
on: 2023-02-08
How to keep your legacy PHP project working with minimal efforts
I hope this article can be helpful for PHP-based website owners, but also it can be quoted in a conversation between a PHP developer and a client. So, what is the point? Extremely outdated but…
Tags:
#sw-architecture
Saved
on: 2022-11-11
37signals Dev — Vanilla Rails is plenty
A common critique of Rails is that it encourages a poor separation of concerns. That when things get serious, you need an alternative that brings the missing pieces. We disagree.
Tags:
#sw-architecture
Saved
on: 2022-11-10
Modeling a scalable fantasy football database with Amazon DynamoDB | AWS Da
Today’s online games generate more data than ever and have request rates that reach millions per second. For these data-intensive games, it’s important for developers to select a database that delivers consistent low latency at any scale and has throughput elasticity to accommodate spikes in traffic without costly overprovisioning during low activity periods. This is […]
Saved
on: 2022-10-03
Good design means it's easy-to-change — Matthias Noback - Blog
Software development seems to be about change: the business changes and we need to reflect those changes, so the requirements or specifications change, frameworks and libraries change, so we have to change our integrations with them, etc. Changing the code base accordingly is often quite painful, because we made it resistant to change in many ways.
Code that resists change I find that not every developer notices the “pain level” of a change. As an example, I consider it very painful if I can’t rename a class, or change its namespace. One reason could be that some classes aren’t auto-loaded with Composer, but are still manually loaded with require statements. Another reason could be that the framework expects the class to have a certain name, be in a certain namespace, and so on. This may be something you personally don’t consider painful, since you can avert the pain by simply not considering to rename or move classes.
Saved
on: 2022-09-28
Patterns.dev - Modern Web App Design Patterns
Learn JavaScript design and performance patterns for building more powerful web applications.
Saved
on: 2022-09-06
Redis Explained
A deep technical dive into all things Redis. Covering various Redis topologies, data persistence and process forking.
Saved
on: 2022-08-16
Strategies for decreasing the number of queries in a Laravel app - Freek Va
Oh Dear is all-in-one solution to monitor your site that my buddy Mattias Geniar and I have created. It can monitoring uptime, certificates, broken links, scheduled jobs, and much more.
Under the hood, Oh Dear is a large Laravel application that performs many queries all of the time. To power future features, we've recently changed our database structure and refactored some pieces in our code base. We increased performance by decreasing the number of queries.
In this blog post, we'd like to to share some techniques that might be helpfull to increase the performance of your Laravel app too.
Saved
on: 2022-08-16
How Validus Built a Bloomberg Real-Time Market Data Integration on AWS in a
The increase in market uncertainty over the last couple of years has demonstrated the need for market participants to have a dynamic view of the risks and impacts due to market moves on their portfolios. This post explores how Validus, a leading independent technology-enabled financial services firm, built a Bloomberg real-time market data integration using serverless managed services on AWS.
Tags:
#sw-architecture
Saved
on: 2022-08-16
SPA Alternative
In this essay, Carson Gross explores alternatives to Single Page Applications (SPAs), advocating for an 'HTML-Centric' development approach. He highlights the drawbacks of SPA complexity and the benefits of embracing HTML as the core medium for web development, offering a simpler, more efficient way to build applications without sacrificing interactivity. Carson discusses how tools like htmx enhance HTML's capabilities and encourages developers to reconsider the dominant SPA paradigm with technical bravery.
Saved
on: 2022-07-20
Story Points Revisited
This is RonJeffries.com, the combination of new articles, XProgramming, SameElephant, and perhaps even some new items never before contemplated.
Copyright © 1998-forever Ronald E Jeffries
Saved
on: 2022-07-10
Spotify’s Failed #SquadGoals
“The Spotify model” got a bunch of companies talking like Taylor Swift about startup culture, but four former Spotify employees reveal the truth: its eponymous way of working failed before it scaled.
Saved
on: 2022-07-10
Changing tires at 100mph: A guide to zero downtime migrations | Kiran Rao
As a backend developer at a mobile app company, a common task was migrating a database schema.This could be to improve query performance, change column ...
Saved
on: 2022-05-05
abseil / Software Engineering at Google
An open-source collection of core C++ library code
Saved
on: 2022-05-02
Top Laracon Conference Presentations
Laracon is an ongoing series of conferences and events about the Laravel software development framework. We use Laravel pretty heavily at Icehouse Ventures because it powers our Investor Portal. I’ve learned a lot over the years from the various Laracon conference recordings. The topics range from basic coding best-practises to advanced systems architecture, database design, … Continue reading Top Laracon Conference Presentations
Saved
on: 2022-03-18
How To Build Maintainable PHP Applications
Have you struggled with the system because it was hard to change?
Have you wanted to upgrade Framework or PHP version, however it required…
Tags:
#sw-architecture
Saved
on: 2022-01-02
Symfony Demo meets Modular, Microservice-ready Architecture : r/PHP
Saved
on: 2021-12-09
Why is Excalidraw so fucking good?
The product factors that make it work so so well
Tags:
#sw-architecture
Saved
on: 2021-11-05
How to design in every language at once | by Canva Engineering | Oct, 2021
The technology that powers Continuous Localization at Canva.
Tags:
#sw-architecture
Saved
on: 2021-10-22
How Livewire works (a deep dive) | Caleb Porzio
The experience of using Livewire seems magical. It’s as if your front-end HTML can call your PHP code and everything just works.
A...
Saved
on: 2021-10-13
Running in Production Podcast and Interviews
A site where folks talk about running small and large web apps in production. Topics include tech stacks and DevOps / deployment tips.
Saved
on: 2021-09-23
Where do types come from? — Matthias Noback - Blog
In essence, everything is a string.
Well, you can always go one layer deeper and find out what a string really is, but for web apps I work on, both input data and output data are strings. The input is an HTTP request, which is a plain-text message that gets passed to the web server, the PHP server, the framework, and finally a user-land controller. The output is an HTTP response, which is also a plain-text message that gets passed to the client. If my app needs the database to load or store some data, that data too is in its initial form a string. It needs to be deserialized into objects to do something and later be serialized into strings so we can store the results.
Saved
on: 2021-09-15
Building a serverless email delivery service on AWS | by Joakim Wånggren |
Using AWS Lambda and other AWS services to build a cost efficient, highly available email formatting and delivery service with event tracking. Creating email layouts is hell on earth. Manually…
Saved
on: 2021-09-02
Building a serverless GIF generator with AWS Lambda: Part 1 | AWS Compute B
Many video streaming services show GIF animations in the frontend when users fast forward and rewind throughout a video. This helps customers see a preview and makes the user interface more intuitive. Generating these GIF files is a compute-intensive operation that becomes more challenging to scale when there are many videos. Over a typical 2-hour […]
Saved
on: 2021-08-31
Design Patterns in JavaScript - DEV Community
Saved
on: 2021-08-28
Ask HN: Companies of one, what is your tech stack? | Hacker News
Saved
on: 2021-08-26
The 5-hour CDN
You can build a functional CDN on an 8-year-old laptop while you're sitting at a coffee shop. Here's what a CDN you put together in five hours might look like.
Tags:
#sw-architecture
Saved
on: 2021-08-04
Michael Dyrynda | Building an app to scale on Laravel Vapor
Tags:
#sw-architecture
Saved
on: 2021-07-29
An Elixir Adoption Success Story
How a team that was new to Elixir over-delivered a big project in just three months.
Saved
on: 2021-06-30
Making Instagram.com faster: Part 1 | by Glenn Conner | Instagram Engineeri
In recent years, instagram.com has seen a lot of changes — we’ve launched stories, filters, creation tools, notifications, and direct messaging as well as myriad other features and enhancements…
Saved
on: 2021-06-07
What it means to run a monolith on AWS Lambda
A stable software development model combined with the elasticity of serverless solutions.
Saved
on: 2021-05-31
The data model behind Notion's flexibility
Notion’s data model enables the product’s most foundational component: blocks. Through blocks, we allow users more flexibility over their information.
Saved
on: 2021-05-19
Testing your controllers when you have a decoupled core — Matthias Noback -
A lot can happen in 9 years. Back then I was still advocating that you should unit-test your controllers and that setter injection is very helpful when replacing controller dependencies with test doubles. I’ve changed my mind: constructor injection is the right way for any service object, including controllers. And controllers shouldn’t be unit tested, because:
Those unit tests tend to be a one-to-one copy of the controller code itself. There is no healthy distance between the test and the implementation. Controllers need some form of integrated testing, because by zooming in on the class-level, you don’t know if the controller will behave well when the application is actually used. Is the routing configuration correct? Can the framework resolve all of the controller’s arguments? Will dependencies be injected properly? And so on. The alternative I mentioned in 2012 is to write functional tests for your controller. But this is not preferable in the end. These tests are slow and fragile, because you end up invoking much more code than just the domain logic.
Saved
on: 2021-03-02
A monorepo approach to larger modules in Laravel and Lambda
The mindset of modularized applications applied to monoliths.
Saved
on: 2021-03-01
Talk review: Thomas Pierrain at DDD Africa — Matthias Noback - Blog
As a rather unusual pastime for the Saturday night I attended the third Domain-Driven Design Africa online meetup. Thomas Pierrain a.k.a. use case driven spoke about his adaptation of Hexagonal architecture. “It’s not by the book,” as he said, but it solves a lot of the issues he encountered over the years. I’ll try to summarize his approach here, but I recommend watching the full talk as well.
Hexagonal architecture Hexagonal architecture makes a distinction between the use cases of an application, and how they are connected to their surrounding infrastructure. Domain logic is represented by pure code (in the FP sense of the word), surrounded by a set of adapters that expose the use cases of the application to actual users and connect the application to databases, messages queues, and so on.
Saved
on: 2021-02-23
Live Coding 12-Factor App
Emily Jiang performs live coding of building 12-factor microservices using MicroProfile programming mode and gets them running Open Liberty and Quarkus.
Saved
on: 2020-12-20
fabric Resources Hub
Access a wealth of omnichannel retail resources in fabric's library. Find guides, case studies, and white papers to help you optimize your order management and customer experience.
Tags:
#sw-architecture
Saved
on: 2020-12-09
An alternative way to organize the Laravel directory structure // Stefan Ba
In this article, I would like to show you an alternative way to organize your Laravel directory structure. I think the default structure is fine for the most projects. But when it comes down to larger projects I was looking for a different structure.
Saved
on: 2020-12-02
How Go helped save HealthCare.gov featuring Paul Smith, CTO of Ad Hoc (Go Time #154)
Paul Smith (from "Obama's Trauma Team") tells us the tale of how Go played a big role in the rescuing and rebuilding of the HealthCare.gov website. Along the way we learn what the original team did wrong, how the rescue team kept it afloat during huge traffic spikes, and what they've done since to rebuild it to serve t...
Saved
on: 2020-11-10
Maya Shavin: How I Built My Website
A Cloudinary senior front-end developer recounts how she rebuilt her Jamstack website with Nuxt, Tailwind CSS, Cloudinary, and Vercel.
Tags:
#sw-architecture
Saved
on: 2020-10-27
ORMless; a Memento-like pattern for object persistence — Matthias Noback -
Something that always bothers me: persistence (the user interface too, but that’s a different topic ;)). Having objects in memory is nice, but when the application shuts down (and for PHP this is after every request-response cycle), you have to persist them somehow. By the way, I think we’ve all forever been annoyed by persistence, since there’s an awful lot of software solutions related to object persistence: different types of databases, different types of ORMs, etc.
Tags:
#sw-architecture
Saved
on: 2020-10-13
Components, Patterns and Sh*t It’s Hard to Deal With
Marco Cedaro identifies some ideas they tried and discusses the way they approached componentization.
Saved
on: 2020-09-14
A simple recipe for framework decoupling — Matthias Noback - Blog
If you want to write applications that are maintainable in the long run, you have to decouple from your framework, ORM, HTTP client, etc. because your application will outlive all of them.
Three simple rules To accomplish framework decoupling you only have to follow these simple rules:
All services should get all their dependencies and configuration values injected as constructor arguments. When a dependency uses IO, you have to introduce an abstraction for it. Other types of objects shouldn’t have service responsibilities. Contextual information should always be passed as method arguments. Explanations Rule 1 Following rule 1 ensures that you’ll never fetch a service ad hoc, e.g. by using Container::get(UserRepository::class). This is needed for framework decoupling because the global static facility that returns the service for you is by definition framework-specific. The same is true for fetching configuration values (e.g. Config::get('email.default_sender')).
Saved
on: 2020-09-12
Violating the Dependency rule — Matthias Noback - Blog
I write about design rules a lot, but I sometimes forget to:
Mention that these rules can’t always be applied, Describe when that would be the case, and Add examples of situations where the rule really doesn’t matter. The rules should work in most cases, but sometimes need to be “violated”. Which is too strong a word anyway. When someone points out to me that I violated a rule, I’m like: Wow! I violated the rule? I’m so sorry! Let’s fix this immediately. Whereas in practice it should be more like: Yeah, I know that rule, but it makes more sense to follow that other rule here, because […]. In other words, pointing out that a certain rule has been violated should not be a sufficient reason to adhere to that rule. My favorite example is “But that violates SRP!” (Single Responsibility Principle). Whoops, I wouldn’t want to do that! Or would I?
Saved
on: 2020-09-08
A decoupled PHP architecture inspired by the Clean Architecture | by Joe Sa
This article would not be possible without the help of Rodrigo Jardim da Fonseca, Edison Junior, and Lemuel Roberto. Disclaimer: I feel like I should address that the architecture I’m about to…
Tags:
#sw-architecture
Saved
on: 2020-09-04
Legacy to Laravel: How to Modernize an Aging PHP Application | Tighten
Many of our clients have legacy PHP apps and want to move to Laravel. We’re often asked "should we rewrite or refactor?" While full rewrites are appealing, they’re also risky. Here’s our approach to gradually refactoring legacy code that lets you start using Laravel right away.
Saved
on: 2020-09-02
Blog @ Codonomics: Multi-tenant Architectures
Multi-tenancy Application Deployment Architecture could be modeled in 4 broad ways: Separate Apps & Separate Databases Sha...
Tags:
#sw-architecture
Saved
on: 2020-08-31
https://mbird.biz/writing/do-i-need-kubernetes.html
Saved
on: 2020-08-17
Design Docs at Google
One of the key elements of Google's software engineering culture is the use of design docs for defining software designs. These are...
Tags:
#sw-architecture
Saved
on: 2020-07-23
Building Cloudflare TV from scratch
Cloudflare TV is a 24x7 TV channel taking you behind-the-scenes and let’s you hear directly from the builders working on your favorite Cloudflare products.
Tags:
#sw-architecture
Saved
on: 2020-07-08
Clean architecture, building software that lasts - Coders Opinion
When building software we sometimes need to build it in a way so it will last for years. Some projects I’ve worked on used software that was running for almost 10 years. Within these 10 years, the software had experienced many changes. For example language changes, framework changes, libraries that need to be replaced, and many more. When this is the case, software needs to be built in a way to account for those many changes with little impact.
Tags:
#sw-architecture
Saved
on: 2020-07-03
How to create a Monorepo from Existing Repositories in 7 Steps | Tomas Votr
Saved
on: 2020-07-02
Embedded Rules of Thumb
26 April 2018 by Phillip Johnston • Last updated 10 June 2021You may call them guidelines, heuristics, or rules of thumb. No matter, the purpose is the same: to provide a reasonable approximation of the truth. These rules of thumb can help guide your understanding of the systems you work on, focus you toward the … Continue reading "Embedded Rules of Thumb"
Saved
on: 2020-06-01