Time, the Silent Exploit: The Unseen Enemy in Every Codebase
Provably Correct, Secure, and Leakage-Free Systems: From Application Specification to Circuit-Level Implementation — Thesis Defense
K2 is a new verification approach and framework that enables developers to build hardware security modules (HSMs) with high assurance through formal verification.
You Don't Know Undo/Redo
Look at the gif below. It shows a proof-of-concept implementation of collaborative undo-redo,...
The Silent Crisis in Open Source: When Maintainers Walk Away
Maintainer transitions can create a lot of challenges. That's why open source support through proactive measures like knowledge transfer and community engagement is so important.
New JavaScript Set methods | MDN Blog
New JavaScript Set methods are landing across browsers. Learn about sets, how you can use these methods to compare different sets, create new sets with specific properties, and more.
bliki: Value Object
Value objects are compared using only the values of their properties, having no conceptual identity
Modelling quantities - an exercise in designing value objects
Closing remarks
Primitive Obsession
Discover Primitive Obsession in code: recognize symptoms, understand implications, and learn effective fixes with value objects.
How to Annul Promises in JavaScript
Creating Cancelable Tasks in JavaScript with Promise.withResolvers and AbortController
RPC vs REST - Difference Between API Architectures - AWS
What's the Difference Between RPC and Rest? How to Use RPC and Rest with AWS.
What is fault tolerance, and how to build fault-tolerant systems
Fault tolerance describes a system's ability to remain operational during errors, power outages, and other types of faults. How can you build a system that does that?
ACID Databases – Atomicity, Consistency, Isolation & Durability Explained
ACID stands for Atomicity, Consistency, Isolation and Durability. These are four key properties that most database management systems (DBMS) offer as guarantees when handling transactions. Most popular DBMS like MySQL [https://dev.mysql.com/doc/refman/8.0/en/mysql-acid.html], PostgresSQL [https://www.postgresql.org/about/] and Oracle [https://docs.oracle.com/cd/F51125_01/docs.85/SDS%20PI/acid-compliant-transactions.html#GUID-ECB79D66-46DE-4F48-93DC-8677E7BB44EF] have ACID guarantees out of the
Testing my website for visual regressions with Playwright snapshot tests
Making changes to websites is tricky, because even small changes may lead to visual regressions in the page layout. For example, changing a bit of CSS to fix something somewhere may blow up in a completely different place. I could just click around and make sure everything looks okay, but that is boring and error-prone. What if I told you that there is a way to make sure that every pixel on your site is perfect, staying just they way you intended it to be?
How to Split Rails Routes? - FastRuby.io | Rails Upgrade Service
Sometimes your Rails routes file can be out of control, too complex, or too big. A few strategies to better organize your controllers and routes.
The Python Paradox
The Log: What every software engineer should know about real-time data's unifying abstraction
I joined LinkedIn about six years ago at a particularly interesting time. We were just beginning to run up against the limits of our monolithic, centralized database and needed to start the transition to a portfolio of specialized distributed systems. This has been an interesting experience: we buil
TDD: Writing Testable Code
Writing testable code is a vital skill in software engineering. Let’s explore practical advice, strategies, and tactics for writing more testable code, unlocking the benefits of modularity…
The Wrong Abstraction — Sandi Metz
I've been thinking about the consequences of the "wrong abstraction." My RailsConf 2014 "all the little things" talk included a section where I asserted: duplication is far cheaper than the wrong abstraction And in the summary, I went on to advise:
Mike McQuaid on 15 years of Homebrew
This week we’re talking to Mike McQuaid, project leader and longest tenured maintainer of Homebrew, a...
Driving architectural decisions with a simple decentralized framework
This week’s issue gives you a decentralized framework for driving architectural decisions using simple practices, supporting a high-documentation / low-meeting culture. So, let’s dive in. Postman's VS Code Extension (Sponsored) Postbot is now available across Postman with enhanced capabilities! The latest refresh of Postbot now offers a consistent, conversational interface available to you across your workspace. Learn how you can leverage Postbot throughout Postman to get contextual assistance.
The C4 model for visualising software architecture
Documenting Software Architectures
The Architects Choice
Going from 0 to 1: How to write better unit tests when there are none
When I joined Graphite, there were almost no tests in the entire codebase. Out of the team of five engineers, three had previously worked at Meta — and had internalized the poor testing culture practiced there.
What makes a good REST API? - Apitally Blog
Opinionated best practices for building user-friendly and robust REST APIs.
Don’t Refactor Like Uncle Bob. Please
“Clean Code” has garnered a bit of notoriety despite coining an endearing term we use in coding conversations. This book from 2008 is a compilation of principles and studies that “…
How to Use Engineering Metrics 📊
Let’s analyze the various types of metrics and how to design a minimum viable process to use them for good.
AHA Programming 💡
The dangers of DRY, the web of WET, the awesomeness of AHA.
Fair Source
CSS in React Server Components
You can’t make an omelette without cracking a few eggs, and when the core React team unveiled their vision for the future of React, some of my favourite libraries got scrambled 😅. In this blog post, we’re going to explore the compatibility issues between React Server Components and CSS-in-JS libraries like styled-components. You’ll understand what the issue is, what the options are, and what’s on the horizon.
Async Ruby on Rails
Ruby and Rails have several features to make your code more performant using async programming. Here’s a list of these tools and how to use them.