magnASCII.io Simone Magnaschi
Senior Full Stack Web Dev
Bookmarks tagged with #sw-architecture.
Show all

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…
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.
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

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.
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…
Saved on: 2022-01-02

Why is Excalidraw so fucking good?

The product factors that make it work so so well
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.
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

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.
Saved on: 2021-08-04

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

Ce2

Saved on: 2020-12-09

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.
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

If not SPAs, What?

Trends trends trends!
Saved on: 2020-10-29

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.
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.
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…
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...
Saved on: 2020-08-31

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...
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.
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.
Saved on: 2020-07-03

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

AWS Gurus, Battle Tested Processes, On Your Team

Trek10 specializes in leveraging the best tools and AWS managed services to design, build, and support cutting-edge solutions for our clients.
Saved on: 2020-05-06

Patterns for Managing Source Code Branches

Mainline, Feature Branching, Continuous Integration, Release Branch and a clutch of other handy patterns.
Saved on: 2020-04-29

Deploys at Slack

Deploys require a careful balance of speed and reliability. At Slack, we value quick iteration, fast feedback loops, and responsiveness to customer feedback. We also have hundreds of engineers who are trying to be as productive as possible. Keeping to these values while growing as a company means continual refinement of our deployment system. We…
Saved on: 2020-04-09

Ready for changes with Hexagonal Architecture - Netflix TechBlog

A story on how we leveraged Hexagonal Architecture principles to be prepared for changes in the Netflix Studio ecosystem.
Saved on: 2020-03-12

You don't want quality time, you want garbage time

This isn't the tech you're looking for, robots in equity research, and quality time
Saved on: 2020-03-10

Behind the scenes of Flare (or How to structure big Laravel applications) -

At Laracon AU, I gave a talk on how you can structure a big Laravel application. The codebases of both Flare and Oh Dear served as examples. By watching this talk you'll gain some valuable insights that could be applicable to your projects as well. Enjoy!
Saved on: 2020-03-07

Domain Logic and SQL

A long-form article entitled: "Domain Logic and SQL"
Saved on: 2020-02-21

justinamiller/SoftwareArchitect: Path to a Software Architect

Path to a Software Architect
Saved on: 2020-01-19

Deploy your side-projects at scale for basically nothing - Google Cloud Run

Google Cloud Run is the perfect deployment system for all your side projects. It is dirt cheap, fully managed serverless and scalable.
Saved on: 2020-01-12

Talk write-up: "How to build a PaaS for 1500 engineers"

This article is based on a presentation I gave as part ofAdevintaTalks in Barcelona on November 2019.I’m experimenting with this format: I went through the s...
Saved on: 2020-01-10

Keep your source code SIMPLE - Kevin Goslar - Medium

As software developers we are fortunate to have many useful best practices for productive and fun coding like the SOLID principles, GRASP patterns, or STUPID anti-patterns. These principles are…
Saved on: 2019-11-10

PHP: Patterns and Principles

An upcoming book by Brent Roose
Saved on: 2019-10-21

Software Architecture is Overrated, Clear and Simple Design is Underrated

I had my fair share in designing and building large systems. I've taken part in rewriting Uber's distributed payment systems [https://blog.pragmaticengineer.com/distributed-architecture-concepts-i-have-learned-while-building-payments-systems/] , designing and shipping Skype on Xbox One and open-sourcing RIBs [https://github.com/uber/RIBs], Uber's mobile architecture framework. All of these systems had thorough designs, going through multiple iterations and had lots of whiteboarding and discussio
Saved on: 2019-09-18

The boring technology behind a one-person Internet company

The tech stack of Listen Notes, the best podcast search engine and database.
Saved on: 2019-09-17

Designing very large (JavaScript) applications - Malte Ubl - Medium

This is a mildly edited transcript of my JSConf Australia talk. Watch the whole talk on YouTube. A sequel to this post is available over here. Hello, I used to build very large JavaScript…
Saved on: 2019-09-04

Modern applications at AWS - All Things Distributed

20 years ago Amazon went through a major transformation. Here’s what we learned about building modern applications along the way.
Saved on: 2019-08-29

3 Kinds of Good Tech Debt

What if tech debt wasn’t always an accident, caused by incorrect assumptions and unexpected circumstances? How would you spend a tech debt mortgage?
Saved on: 2019-08-13

Nick Craver - Stack Overflow: How We Do App Caching - 2019 Edition

This is #5 in a very long series of posts on Stack Overflow’s architecture.Previous post (#4): Stack Overflow: How We Do Monitoring - 2018 EditionSo…cachin...
Saved on: 2019-08-07

How we built a serverless architecture with AWS

Our customers go serverless for live locations with HyperTrack. We go serverless for our platform with AWS. In this blog, we give you a peek under the hood and share our learnings.
Saved on: 2019-07-11

Continuous Integration (CI) Explained

Continuous integration enables iterative software development, reduces risks from defects and makes developers highly productive. Summary Continuous Integration (CI) is a development practice where developers regularly merge their code into a central repository. Each merge automatically triggers a build and tests, helping detect and fix issues early. In other words, CI involves committing changes frequently […]
Saved on: 2019-07-05

hgraca/explicit-architecture-php: This repository is a demo of Explicit Arc

This repository is a demo of Explicit Architecture, using the Symfony Demo Application. - hgraca/explicit-architecture-php
Saved on: 2019-06-07

Organizing code into domain modules | Matthieu Napoli

Note: the french version of this article is published on Wizaplace's tech blog. We recently discussed 2 topics seemingly unrelated with my colleagues at Wizaplace: how to organize code? how to organize teams?
Saved on: 2019-04-29

Lessons from 6 software rewrite stories - Herb Caudill - Medium

Almost two decades ago, Joel Spolsky excoriated Netscape for rewriting their codebase in his landmark essay Things You Should Never Do. He concluded that a functioning application should never, ever…
Saved on: 2019-04-11

Give me back my monolith - Craig Kerstiens

It feels like we’re starting to pass the peak of the hype cycle of microservices. It’s no longer multiple times a week we now see a blog post of “How I migrated my monolith to 150 services”. Now I often hear a bit more of the counter: “I don’t hate my monolith, I just care that things stay performant”. We’ve actually seen some migrations from micro-services back to a monolith. When you go from one large application to multiple smaller services there are a number of new things you have to tackle, here is a rundown of all the things that were simple that you now get to re-visit:
Saved on: 2019-03-14

What is Microservice? What is Kubernetes for?

What is a microservice? What is Kubernetes for? In this post, we try to explain microservices, containers and Kubernetes in 10 minutes
Saved on: 2019-03-07

Different kinds of service bus: command bus, service bus and query bus.

Service buses exist in different flavors. This article explains the overall concept of the service bus. Then it shows differences between the command bus, query bus, and event bus.
Saved on: 2019-03-01

Why Config Coding Sucks | Tomas Votruba

Rector and static analysis help us to work with code better, but it also helps us spot new weak-points of our PHP code. One of the biggest evils is *config coding*. **How it can hurt you and how get rid of it**?
Saved on: 2019-02-19

Making a podcast app → assertchris.io

Arimbi189 Battleground Royale adalah permainan bertema perang dinamis yang dikembangkan oleh PG SOFT yang menawarkan pertempuran merebut kemenangan.
Saved on: 2019-01-15

Netflix Play API: Building an Evolutionary Architecture

At QCon SF, Suudhan Rangarajan presented “Netflix Play API: Why We Built an Evolutionary Architecture”. Key takeaways included: services that have a single identity/responsibility are easier to upgrad
Saved on: 2019-01-11

A Beginner's Guide to Scaling to 11 Million+ Users on Amazon's AWS - High Scalability -

How do you scale a system from one user to more than 11 million users? Joel Williams, Amazon Web Services Solutions Architect, gives an excellent talk on just that subject: AWS re:Invent 2015 Scaling Up to Your First 10 Million Users. If you are an advanced AWS user this talk is not for you, but it’s a great way to get started if you are new to AWS, new to the cloud, or if you haven’t kept up with with constant stream of new features Amazon keeps pumping out. As you might expect since this is
Saved on: 2018-12-26

Model View Controller isn't

Maybe the most misunderstood design pattern.
Saved on: 2018-11-24

Modernizing Applications for Kubernetes - DEV Community ?‍??‍?

Introduction Modern stateless applications are built and designed to run in software conta...
Saved on: 2018-10-23

12 Factor CLI Apps – Jeff Dickey – Medium

Set of 12 principles for building CLI apps
Saved on: 2018-10-09

Clean Architecture by Uncle Bob: Summary and review

Clean architecture is the latest book by Uncle Bob. It defines architectural patterns to make software easy to change. In this blog post, I will go through the book summarizing the main concepts and giving my opinion on it. Here is the table of contents: Introduction Code design principles (SOLID) Components principles Architecture principles Setting […]
Saved on: 2018-09-13

The Everybody Poops Rule – Ross Tuck

A discussion of code quality through the magical metaphor of human waste.
Saved on: 2018-08-27
❤️
</>
2025