Simone Magnaschi
Senior Full Stack Web Dev
Bookmarks tagged with #programming.
Show all

Building Maintainable PHP Applications: Over-engineering vs under-engineeri

Overengineering (or over-engineering) is the act of designing a product or providing a solution to a problem in an elaborate or complicated manner, where a simpler solution can be demonstrated to exist with the same efficiency and effectiveness as that of the original design.
Tags: #programming
Saved on: 2023-12-31

Building a Better PHP Project: What Tools Should I Not Miss?

I've just been handed a PHP project that's a bit of a blank slate – no static analysis, linters, coding standards, or tests have been used so far. N
Saved on: 2023-12-15

(11) A Philosophy of Software Design | John Ousterhout | Talks at Google -

John Ousterhout, Professor of Computer Science at Stanford University, discusses complex techniques on how to become a more confident coder. John is excited to announce that he just published the first edition of a new book on software design, based on material from a software design class he has b
Saved on: 2023-10-25

The Grug Brained Developer

Introduction this collection of thoughts on software development gathered by grug brain developer grug brain developer not so smart, but grug brain developer program many long year and learn some things although mostly still confused grug brain developer try collect learns into small, easily digesti
Tags: #programming
Saved on: 2023-10-25

Base64 Encoding, Explained

When you're programming, it's easy to get by with a superficial understanding of many things. You can easily fool yourself by thinking that you are programming when you are blindly copy + pasting code from Stack Overflow or some random article you stumbled upon.
Tags: #programming
Saved on: 2023-10-23

Write more "useless" software

After my last blog post about Hurl, someone asked me, and I quote: "... why?" The simple answer is "for the joke." But the longer answer is that useless software1 is a fantastic way to explore and experience the joy of computing. Play is an important part of exploration and joy.
Tags: #programming
Saved on: 2023-10-19

Choose Boring Technology

This is the spoken word version of my essay, Choose Boring Technology. I have largely come to terms with it and the reality that I will never escape its popularity. Here are my other talks, my website, and some Medium posts.
Tags: #programming
Saved on: 2023-10-02

PodRocket - A web development podcast from LogRocket - HTMX with Carson Gro

HTMX has become increasingly popular in the web dev community, so we sat down with creator Carson Gross to talk about what HTMX is, why developers should use it, and what’s on the horizon for the tool. We want to hear from you! We want to know what you love and hate about the podcast.
Tags: #programming
Saved on: 2023-09-22

Inside New Query Engine of MongoDB

MongoDB has recently released a new query engine coming in version 7.0. I was one of the people working on this engine during my 2 years in MongoDB and I would like to share some technical details about it.
Saved on: 2023-09-21

Free for Developers

Saved on: 2023-09-18

What I Have Changed My Mind About in Software Development

Lately I have been thinking about what I have changed my mind about in software development. Here are the things I came up with: Self-documenting code. I used to think that the names of the classes, methods and variables should be enough to understand what the program does.
Tags: #programming
Saved on: 2023-09-11

Design Patterns in PHP 8 Series' Articles - DEV Community

View Design Patterns in PHP 8 Series' Articles on DEV Community 👩‍💻👨‍💻
Saved on: 2023-09-08

Commit Mono. Neutral programming typeface.

Click to focus page. Commit Mono is an anonymous and neutral coding font focused on creating a better reading experience.
Saved on: 2023-09-07

Benefits of separating core code from infrastructure code

When it comes to software design and software architecture, there are many theoretical approaches with fancy acronyms (like SOLID, CUPID, DDD, hexagonal architecture, clean architecture, …).
Tags: #programming
Saved on: 2023-09-01

Hypermedia Systems

For web developers frustrated with the complexity of modern practice, those looking to brush up on web fundamentals, web development shops looking to bring their apps to mobile, and any workaday programmer looking for an introduction to hypermedia and REST.
Saved on: 2023-08-18

htmx ~ Locality of Behaviour (LoB)

Locality of Behaviour (LoB) "The primary feature for easy maintenance is locality: Locality is that characteristic of source code that enables a programmer to understand that source by looking at only a small portion of it.
Saved on: 2023-08-16

Testing without mocking frameworks.

Over the years, my coding practices have changed a lot. From hacking away until it works to TDD/BDD/DDD and everything in between. One of the biggest changes in my developer career has been when, why, and how I test my code. In particular, my view on mocking frameworks has changed a lot.
Saved on: 2023-03-28

Unit testing tips by examples in PHP

In these times, the benefits of writing unit tests are huge. I think that most of the recently started projects contain any unit tests.
Saved on: 2022-12-21

Steve vs Matt — How two developers approach the same problem | Laravel News

It's very common to see two programmers who code the same feature differently. But it's much less common for those two programmers to see eye-to-eye and remain friendly.
Saved on: 2022-12-21

Hello, Video Codec!

It can't be overstated how crucial video codecs are to the products we use every day. Without them, we wouldn't be able to watch videos on YouTube or meet remotely via Zoom.
Tags: #programming
Saved on: 2022-12-19

quine-relay/QR.rb at master · mame/quine-relay

This is a Ruby program that generates Rust program that generates Scala program that generates ...(through 128 languages in total)... REXX program that generates the original Ruby code again. If you are using Ubuntu 21.04 (Hirsute Hippo), you can perform the following steps.
Saved on: 2022-10-06

Granular interfaces — Sebastian De Deyne

A few weeks ago a spec change for an application we’re working on forced us to refactor part of the codebase. It was food for thought about the flexibility granular interfaces provide, and choosing the right abstraction at the right time.
Tags: #programming
Saved on: 2022-09-06 - Modern Web App Design Patterns is a free book on design patterns and component patterns for building powerful web apps with vanilla JavaScript and React
Saved on: 2022-09-06

GitHub does dotfiles -

Your unofficial guide to dotfiles on GitHub. Why would I want my dotfiles on GitHub?
Saved on: 2022-08-29

The mystery of “when women stopped coding” – the triketora press

NPR did a Planet Money podcast in 2014 posing the mystery of “When Women Stopped Coding”. The writeup online includes a striking graph of the percentages of women in different fields of study, plotted out over the last few decades.
Saved on: 2022-08-27

DDD, Hexagonal, Onion, Clean, CQRS, … How I put it all together – @hgraca

This post is part of The Software Architecture Chronicles, a series of posts about Software Architecture. In them, I write about what I’ve learned about Software Architecture, how I think of it, and how I use that knowledge.
Saved on: 2022-08-17

“Code” 2nd Edition Now Available!

August 7, 2022 Roscoe, N.Y.
Saved on: 2022-08-08

The History of the Web

You have a few options. How much time you got? It’s 1997 and you want to build a website. You have some options.
Saved on: 2022-07-06

Hosting SQLite databases on GitHub Pages or any static ... : Hacker News

ignoramous | parent | context | | on: The Collapsing Quality of A few that come to mind: Hosting SQLite databases on GitHub Pages or any static file hoster How to crawl a quarter billion webpages in 40 hours https://news.ycombinator.
Tags: #programming
Saved on: 2022-06-25

Code vs. No-Code | Jason Morris

There was a conversation on Twitter this week that helped to clarify my thinking about something, and I wanted to share. There is a sort of tension between “code” and “no-code” (sometimes “low-code”) solutions.
Saved on: 2022-06-23

Running PHPStan on max with Laravel | Laravel News

Over the last few years static analysis in PHP, and more specifically Laravel, has become more and more popular. With more people adopting it into their Software Delivery Lifecycle, I thought it would be a good time to write a tutorial on how you can add this to your Laravel project.
Saved on: 2022-06-21

Some Monolog logging best practices

Logging can help to debug massively. Today, we'll go over some of the best practices for logging with Monolog I've learnt over the years. One of the first things that makes reading logs easier is the ability to group the logs together.
Tags: #programming
Saved on: 2022-06-04

How do Video Games Stay in Sync? An Intro to the Fascinating Networking of Real Time Games.

Have you ever wondered how real-time games can keep multiple clients in sync even when there are large latencies between users? How can you see other players reacting to your actions near instantly, in spite of the fact that the communication between your computer and the server is not instant?
Tags: #programming
Saved on: 2022-05-28

Much ado about null | PeakD

Tags: #programming
Saved on: 2022-05-16

Steve Schoger / User Interface Designer

This nifty print-it-yourself poster is a great reference for developers to hang near their workspace. For best results, follow the directions provided below.
Saved on: 2022-04-13

Hexagonal architecture and Domain Driven Design | Towards Dev

When we correlate DDD and Architecture, many of us think of Microservices. But this is not the only one implementation for DDD concept. Hexagonal Architecture is also a good candidate for implementing DDD correctly and it is a very good architecture in general described by Robert C.
Saved on: 2022-04-12


As software developers, we always strive for better tools but rarely consider font as such. Yet we spend most of our days looking at screens reading and writing code. Using a wrong font can negatively impact our productivity and lead to bugs.
Saved on: 2022-02-15

Ask HN: Best books on managing software complexity?

Although its ideas are heavily couched in OO terminology, it's changed my ideas about interfaces and exposure to complexity utterly. Not comprehensive, but every programmer should absolutely read it (it's a tiny book after all).
Saved on: 2022-02-06

Five Books that Changed My Career as a Software Engineer

Hi folks, It has been a long time since my last post. It’s time to back to writing, better late than never(or better late than even later).
Saved on: 2021-11-28

Power Fx: Open source now available

We are very excited to announce the preview release of Microsoft Power Fx as open source.  Under the MIT license, you can now freely integrate this Excel-like, low code programming language in your own projects.
Tags: #programming
Saved on: 2021-11-18

The Dependency Injection Paradigm — Matthias Noback : Blog

Paradigm; a nice word that means "a theory or a group of ideas about how something should be done, made, or thought about" (Merriam-Webster). In software development we have them too.
Tags: #programming
Saved on: 2021-11-13

Culture matters

Three major tools that companies have to influence behavior are incentives, process, and culture.
Saved on: 2021-11-09

Recommendations for productivity tools/libraries?

Hi, just curious what are the tools/libraries/techniques/etc that save you the most time developing web apps on a daily basis? Thanks
Saved on: 2021-11-06

Alan Kay on the context and catalysts of personal computing

Alan Kay is a prolific computer scientist often referred to as the “father of personal computers." He's best known for his work on object-oriented programming languages, windowing graphical user interface design (also known as GUIs) and for leading the team that developed Smalltalk.
Saved on: 2021-10-17

20 Things I've Learned in my 20 Years as a Software Engineer - Simple Threa

You’re about to read a blog post with a lot of advice. Learning from those who came before us is instrumental to success, but we often forget an important caveat. Almost all advice is contextual, yet it is rarely delivered with any context.
Saved on: 2021-10-08

Learn How Others Are Running Your Favorite Web Frameworks and Tech Stacks in Production

A podcast where folks talk about running small & large web apps in production. Topics include tech stacks, lessons learned and DevOps / deployment tips. Full stack developer. Author of web development and deployment courses. Technical death metal enthusiast.
Saved on: 2021-09-23

How We Got to LiveView

I'm Chris McCord. I work at and created Phoenix, an Elixir web framework. Phoenix provides features out-of-the-box that are difficult in other languages and frameworks. This is a post about how we created LiveView, our flagship feature.
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.
Saved on: 2021-09-15

My Software Estimation Technique - Jacob Kaplan-Moss

Last time, I explained that, although estimating software project timelines is hard, you should do it anyway. With that background, I want to go into some detail and share the technique I use when I need to develop a project timeline.
Tags: #programming
Saved on: 2021-06-24

Software Estimation Is Hard. Do It Anyway. - Jacob Kaplan-Moss

It’s well-established that estimating software projects is hard. One study by HBR found that one in six IT projects had cost overruns of over 200% and were late by almost 70%. Another study by McKinsey found that IT projects are on average 45% over budget and 7% over schedule.
Tags: #programming
Saved on: 2021-06-24

An incomplete list of skills senior engineers need, beyond coding | by Cami

Enjoy this post? You might like my book, The Manager’s Path, available on Amazon and Safari Online!
Saved on: 2021-06-22

Writing better Regular Expressions in PHP • PHP.Watch

Regular Expressions are powerful, PHP but they are not known to be readable, and more often than not, maintaining a regular expression is not a straight-forward task. PHP uses PCRE (PCRE2 since PHP 7.
Saved on: 2021-06-16

What it means to run a monolith on AWS Lambda

Let’s talk about the elephant monolith in the room. It’s easy to associate monoliths with legacy, weird, outdated, insecure code. A beast developed for decades that nobody wants to touch because they’ll break it and it is impossible to wrap your head around everything.
Saved on: 2021-05-31

The data model behind Notion's flexibility

Today, that information mostly remains siloed across tools. Take cloud-based document editors, where pages are their smallest atomic unit. Information is locked inside of pages and files and folders — that’s reminiscent of how things were done a century ago.
Saved on: 2021-05-19

Hosting SQLite databases on Github Pages

I was writing a tiny website to display statistics of how much sponsored content a Youtube creator has over time when I noticed that I often write a small tool as a website that queries some data from a database and then displays it in a graph, a table, or similar.
Saved on: 2021-05-03

When Objects Are Not Enough

I've been looking up resources on the roots of Object-Oriented Programming - a.k.a. OOP. This journey started because there is a trend in the Laravel community of using Actions, and the saying goes as that's what "Real OOP" is about.
Saved on: 2021-03-05

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.
Saved on: 2021-03-02

Does it belong in the application or domain layer? — Matthias Noback - Blog

Where should it go? If you're one of those people who make a separation between an application and a domain layer in their code base (like I do), then a question you'll often have is: does this service go in the application or in the domain layer? It sometimes makes you wonder if the distinction bet
Tags: #programming
Saved on: 2021-02-25

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.
Saved on: 2021-02-23

Successful refactoring projects - Prepare to stop at any time — Matthias No

A common case of refactoring-gone-wrong is when refactoring becomes a large project in a branch that can never be merged because the refactoring project is never completed.
Tags: #programming
Saved on: 2021-02-17

Should we use a framework? — Matthias Noback - Blog

Since I've been writing a lot about decoupled application development it made sense that one of my readers asked the following question: "Why should we use a framework?" The quick answer is: because you need it. A summary of the reasons: So, yes, you/we need a framework.
Saved on: 2021-02-17

Why I Built Litestream

tl;dr—Despite an exponential increase in computing power, our applications require more machines than ever because of architectural decisions made 25 years ago. You can eliminate much of your complexity and cost by using SQLite & Litestream for your production applications.
Saved on: 2021-02-12

Documentation System

There is a secret that needs to be understood in order to write good software documentation: there isn’t one thing called documentation, there are four. They are: tutorials, how-to guides, technical reference and explanation.
Tags: #programming
Saved on: 2021-02-03

Software development topics I've changed my mind on after 6 years in the industry

Things I've changed my mind on: Things I now believe, which past me would've squabbled with: Typed languages are better when you're working on a team of people with various experience levels Standups are actually useful for keeping an eye on the newbies.
Tags: #programming
Saved on: 2021-01-24

Context switching costs more than we give it credit for. - Thinking Through

When I was a junior engineer, one of the best advice I got from a seasoned principal engineer was to batch things, stack rank them in preferred order (by time, size, impact, or priority), and execute. And, be careful when batching them.
Saved on: 2021-01-18

Gitbar - Il podcast dei developer italiani

Conversazioni sullo sviluppo software fatte davanti a una birra.
Saved on: 2021-01-15

It’s not legacy code — it’s PHP. Vimeo has been using PHP in production… |

In the last year, Vimeo developers have written backend code in lots of languages — PHP, Go, Ruby, Python, NodeJS, Java, C, C++, and a bit of Rust. In 2004, we started with just one: PHP. It was an ideal language for brand-new startups like Vimeo.
Saved on: 2021-01-15

Tools for better programming

Share and discover the latest news about the PHP ecosystem and its community. Please respect r/php's rules. Recently I discovered these tools that have helped me to control the quality of my code.
Saved on: 2021-01-13

Build Your Own Text Editor

Welcome! This is an instruction booklet that shows you how to build a text editor in C. The text editor is antirez’s kilo, with some changes.
Tags: #programming
Saved on: 2021-01-10

Why your team doesn't need to use pull requests

Github introduced the pull request practice, and features to support it, to make it easier for people who run open-source projects to accept contributions from outside their group of trusted committers. Committers are trusted to make changes to the codebase routinely.
Saved on: 2021-01-03

Micro - Micro is a platform for API driven services development

Last month we talked about a new architecture pattern, Netlify for the frontend, Micro for the backend. As the frontend has evolved towards being dominated by the Jamstack, we believe the backend also requires a fundamental shift in it’s design and consumption model.
Tags: #programming
Saved on: 2020-12-22

Live Coding 12-Factor App

Jiang: I'm Emily Jiang. I work for IBM. Actually, I'm based in IBM, UK down in Hursley. I'm the Senior Technical Staff member in IBM. I mainly work on open-source projects, MicroProfile, Open Liberty as an Architect.
Saved on: 2020-12-20

Refactoring Am I Rent Stabilized

Revisiting the code of a five year old project.
Tags: #programming
Saved on: 2020-12-14

A framework for thinking about work

Your product owner comes to you with a request, and suddenly your stomach is tied in knots. There’s something about the request that doesn’t sit right. You blurt out, “well, that’s a lot of work,” because it’s the only thing that comes to mind.
Saved on: 2020-11-19

Voice Driven Development by Emily Shea – Deconstruct

(Editor's note: transcripts don't do talks justice.
Saved on: 2020-11-05

Foundations of Software Engineering

Questions When is a program good enough to ship? Have you built what the customer wanted? Why (and how) does Netflix deliberately and randomly take down its own servers? What can we learn from the Boeing 737 disaster? How did Twitter eradicate the Fail Whale? And what does it have to do with Ruby? H
Tags: #programming
Saved on: 2020-10-31

An Intuition for Lisp Syntax

Every lisp hacker I ever met, myself included, thought that all those brackets in Lisp were off-putting and weird. At first, of course. Soon after we all came to the same epiphany: lisp’s power lies in those brackets! In this essay, we’ll go on a journey to that epiphany.
Tags: #programming
Saved on: 2020-10-26

(5) C Course (The Basics) - YouTube

Learn C++ by building a crossword construction program from scratch. Free and fun! 12 hours of video instruction plus exercises. See
Saved on: 2020-10-23

Casting JSON Columns to Value Objects with Laravel – Jess Archer

Have you ever wanted to access an attribute of an Eloquent model as a value object, similar to how Eloquent lets us work with dates via Carbon? Most value objects have multiple attributes. That's part of what separates them from primitive types like strings and integers.
Saved on: 2020-10-23

Managing technical quality in a codebase.

If there’s one thing that engineers, engineering managers, and technology executives are likely to agree on, it’s that there’s a crisis of technical quality.
Tags: #programming
Saved on: 2020-10-22

Readable Laravel | Spatie

AboutDocs Kruikstraat 22, Box 12 2018 Antwerp, Belgium info@spatie.
Tags: #programming
Saved on: 2020-10-21

Monolith -> Services: Theory & Practice

How can we get from a monolith to micro-services quickly? Can’t answer that question. First, “quickly” is right out the window. You didn’t make this mess in a month; you’re not going to fix it in a month.
Tags: #programming
Saved on: 2020-10-07

Work on what matters | StaffEng

I've taken to using the word "energized" over "impactful." "Impactful" feels company-centric, and while that's important, "energized" is more inwards-looking. Finding energizing work is what has kept me at Stripe for so long, pursuing impactful work. - Michelle Bu
Saved on: 2020-09-25

Lessons interviewing 200 engineers: the perfect process to manage tech deb

As part of the customer development work for our new Stepsize product, I needed to understand the differences between software companies that have their tech debt under control and those that don't.
Saved on: 2020-09-17

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. Following rule 1 ensures that you'll never fetch a service ad hoc, e.g.
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".
Saved on: 2020-09-08

Refactoring PHP - Christoph Rumpel

Refactoring is the process of modifying and restructuring code without changing its functionality. When I first heard about it, I was like: Why would anyone do that? It took some years until I fully understood the concept and that the working code is not always good.
Tags: #programming
Saved on: 2020-09-03

18.S097: Programming with Categories

Summary: In this course we explain how category theory—a branch of mathematics known for its ability to organize the key abstractions that structure much of the mathematical universe—has become useful for writing elegant and maintainable code.
Saved on: 2020-09-03

Dialects in Code: Part 1 - Ross Tuck

For a long time, I’ve been interested in how different folks can use the same programming language in radically different ways. I’ve privately used the term “dialects” to describe these different approaches.
Tags: #programming
Saved on: 2020-08-27