last 10% trap
https://deviq.com/antipatterns/last-10percent-trap
https://deviq.com/antipatterns/last-10percent-trap
DevIQ
The Last 10% Trap: A Software Architecture Antipattern | DevIQ
The Last 10% Trap is a software architecture antipattern in which developers underestimate the complexity and effort required to complete the final stages of a software project. As a result, the project's last 10% of development can take a disproportionately…
https://nealford.com/katas/
Architectural Katas are intended as a small-group (3-5 people) exercise, usually as part of a larger group (4-10 groups are ideal), each of whom is doing a different kata. A Moderator keeps track of time, assigns Katas (or allows this website to choose one randomly), and acts as the facilitator for the exercise.
Each group is given a project (in many ways, an RFP–Request For Proposal) that needs development. The project team meets for a while, discovers requirements that aren’t in the orignal proposal by asking questions of the “customer” (the Moderator), discusses technology options that could work, and sketches out a rough vision of what the solution could look like. Then, after they’ve discussed for a while, the project team must present their solution to the other project teams in the room, and answer challenges (in the form of hard-but-fair questions) from the other project teams. Once that challenge phase is done, the room votes on their results, and the next project team takes the floor.
Architectural Katas are intended as a small-group (3-5 people) exercise, usually as part of a larger group (4-10 groups are ideal), each of whom is doing a different kata. A Moderator keeps track of time, assigns Katas (or allows this website to choose one randomly), and acts as the facilitator for the exercise.
Each group is given a project (in many ways, an RFP–Request For Proposal) that needs development. The project team meets for a while, discovers requirements that aren’t in the orignal proposal by asking questions of the “customer” (the Moderator), discusses technology options that could work, and sketches out a rough vision of what the solution could look like. Then, after they’ve discussed for a while, the project team must present their solution to the other project teams in the room, and answer challenges (in the form of hard-but-fair questions) from the other project teams. Once that challenge phase is done, the room votes on their results, and the next project team takes the floor.
https://presentationpatterns.com/
Good book to learn how to create creative, time maniuplative and effective presentations.
Good book to learn how to create creative, time maniuplative and effective presentations.
https://skyzh.github.io/mini-lsm/
In this tutorial, you will learn how to build a simple LSM-Tree storage engine in the Rust programming language.
In this tutorial, you will learn how to build a simple LSM-Tree storage engine in the Rust programming language.
https://martinfowler.com/articles/bottlenecks-of-scaleups/
There is a new series of articles on Martin Fowler's blog titled "Bottlenecks of Scaleup."
It's a collection of articles discussing common problems that startups encounter when scaling up.
It started in March 2022, and each article has been written by different authors.
There is a new series of articles on Martin Fowler's blog titled "Bottlenecks of Scaleup."
It's a collection of articles discussing common problems that startups encounter when scaling up.
It started in March 2022, and each article has been written by different authors.
martinfowler.com
Bottlenecks of Scaleups
Common bottlenecks that prevent startups from scaling as quickly as they should
https://www.atlassian.com/team-playbook/why
Team playbook by Atlassian
Good resource for team working lessons.
Team playbook by Atlassian
Good resource for team working lessons.
Atlassian
At Atlassian, Great Work is Built on Teamwork | Atlassian
We found that hiring great talent and using the right tools wasn’t enough. How we worked together, as a team, made the difference.
https://googleprojectzero.blogspot.com/2020/07/mms-exploit-part-1-introduction-to-qmage.html
good article about finding vulnerabilities by fuzzing on Android
good article about finding vulnerabilities by fuzzing on Android
Blogspot
MMS Exploit Part 1: Introduction to the Samsung Qmage Codec and Remote Attack Surface
Posted by Mateusz Jurczyk, Project Zero This post is the first of a multi-part series capturing my journey from discovering a vulnerable...
Prefer collabration over categorization
Prefer guidance over governance
Prefer Automation to Adhoc verification
Prefer subscriptions to milestones
Prefer evolution to prediction
#software_architecture
Prefer guidance over governance
Prefer Automation to Adhoc verification
Prefer subscriptions to milestones
Prefer evolution to prediction
#software_architecture
predictability is a short term value, and adaptibility is much more charactristict for architectures.
Don't follow the money, follow the things that. you are interested in in your career, in terms of your passions or trend industry.
Colossus - Google File System
Colossus is Google cluster-level file system, successor to the Google File System (GFS).
https://cloud.google.com/blog/products/storage-data-transfer/a-peek-behind-colossus-googles-file-system
Colossus is Google cluster-level file system, successor to the Google File System (GFS).
https://cloud.google.com/blog/products/storage-data-transfer/a-peek-behind-colossus-googles-file-system
Google Cloud Blog
A peek behind Colossus, Google’s file system | Google Cloud Blog
An overview of Colossus, the file system that underpins Google Cloud’s storage offerings.
This article discusses the separation of logs from the state machine itself. As you may know, there is a famous quote in Cloud Data Systems about the 'Disaggregation of compute and storage,' which helps to separate hardware and software. In line with this approach, the author of the article discusses a hypothetical system called S2 (Stream Store), which is equivalent to S3 for logs. The author suggests that 'it may not be hypothetical.' To me, it seems without head and tail, but nevertheless, I have subscribed to the S2 interest form
https://blog.schmizz.net/disaggregated-wal
https://blog.schmizz.net/disaggregated-wal
unofficial blog
The disaggregated write-ahead log
The traditional way replicated systems are architected is to physically co-locate the write-ahead log (WAL) on the nodes where the state is being maintained. Then a consensus protocol like Paxos or Raft is used to make sure the log on each replica ag...
if you guys never heard about Disaggregated Database Systems, I'll refer you to an article with the same name
https://www.cs.purdue.edu/homes/csjgwang/pubs/SIGMOD23_Tutorial_DisaggregatedDB.pdf
https://www.cs.purdue.edu/homes/csjgwang/pubs/SIGMOD23_Tutorial_DisaggregatedDB.pdf
Distributed systems reading list by Fred Hebert, a well-known Software architect in industy, and well-known contributor on Erlang community.
https://ferd.ca/a-distributed-systems-reading-list.html
https://ferd.ca/a-distributed-systems-reading-list.html
ferd.ca
A Distributed Systems Reading List
An old document I surfaced with my quick tour of distributed systems theory fundamentals
The Single Transferable Vote (STV) system is a way of voting in elections that aims to achieve proportional representation. It's like trying to make sure everyone's voice is heard as fairly as possible in deciding who gets elected. Here's a simple way to understand how it works, using a "pizza party" analogy.
Imagine you and your friends are deciding what kind of pizza to order for a party. Everyone has different tastes, so you decide to vote on it, but you want to make sure as many people as possible get something they like.
Everyone Votes for Their Favorites: Each person makes a list of their favorite pizzas in order, from most to least favorite.
Counting the Votes: To decide which pizzas to order, there's a certain number of "pizza spots" available (like seats in an election). A pizza needs a certain number of votes to claim a spot (this is like the quota in STV).
First Choices Counted First: Initially, everyone's first choice is counted. If your top choice pizza gets more votes than it needs to secure a spot, it's definitely being ordered.
Extra Votes Go to Next Favorites: If your favorite pizza gets more votes than it needs, your vote isn't wasted. Instead, it's as if your vote is partly for your top choice and partly for your next favorite, based on how many extra votes the winning pizza got. This way, part of your vote helps decide the next pizza.
No Hope Pizzas Are Out: If a pizza doesn't get enough votes to be in the running, it's out. Then, votes for that pizza go to the next choice on those voters' lists.
Repeat Until All Spots Filled: This process of redistributing votes from winning pizzas with too many votes and from losing pizzas continues until all the pizza spots are filled.
So, STV tries to make sure that the pizzas ordered reflect what the group as a whole likes, not just the most popular choice. It reduces wasted votes and helps more people get at least one of their top choices. In real elections, this means that the elected representatives better reflect the diverse preferences of the voters.
Imagine you and your friends are deciding what kind of pizza to order for a party. Everyone has different tastes, so you decide to vote on it, but you want to make sure as many people as possible get something they like.
Everyone Votes for Their Favorites: Each person makes a list of their favorite pizzas in order, from most to least favorite.
Counting the Votes: To decide which pizzas to order, there's a certain number of "pizza spots" available (like seats in an election). A pizza needs a certain number of votes to claim a spot (this is like the quota in STV).
First Choices Counted First: Initially, everyone's first choice is counted. If your top choice pizza gets more votes than it needs to secure a spot, it's definitely being ordered.
Extra Votes Go to Next Favorites: If your favorite pizza gets more votes than it needs, your vote isn't wasted. Instead, it's as if your vote is partly for your top choice and partly for your next favorite, based on how many extra votes the winning pizza got. This way, part of your vote helps decide the next pizza.
No Hope Pizzas Are Out: If a pizza doesn't get enough votes to be in the running, it's out. Then, votes for that pizza go to the next choice on those voters' lists.
Repeat Until All Spots Filled: This process of redistributing votes from winning pizzas with too many votes and from losing pizzas continues until all the pizza spots are filled.
So, STV tries to make sure that the pizzas ordered reflect what the group as a whole likes, not just the most popular choice. It reduces wasted votes and helps more people get at least one of their top choices. In real elections, this means that the elected representatives better reflect the diverse preferences of the voters.