Earlier this year the book club of our company has studied excellent book:
Martin Kleppmann - Designing Data-Intensive Applications
This is the best book I have read about building complex scalable software systems. 💪
As usually I prepared an overview and mind-map.
Chapter 4:
What is evolvability. Backward and Forward compatibility Approaches to encode data: JSON, XML, and their binary variants Thrift and Protobuf Apache Avro Models of data flow Through databases Through services: REST, SOAP, RPC and the future Through message brokers - when they are better and when they are not Much more details in the mind-map:
Earlier this year the book club of our company has studied excellent book:
Martin Kleppmann - Designing Data-Intensive Applications
This is the best book I have read about building complex scalable software systems. 💪
As usually I prepared an overview and mind-map.
Chapter 3:
Data structures: Log-structured. SSTables / LSM-trees (when we don’t update anything but write to the end). A very cool idea of how to store data.
Earlier this year the book club of our company has studied excellent book:
Martin Kleppmann - Designing Data-Intensive Applications
This is the best book I have read about building complex scalable software systems. 💪
As usually I prepared an overview and mind-map.
Chapter 2:
What is data model. Different relations between the data. Relational, Document, Graph data models. Which one is better and when. Schema-on-write, schema-on-read (schemaless). Data locality.
Earlier this year the book club of our company has studied excellent book:
Martin Kleppmann - Designing Data-Intensive Applications
This is the best book I have read about building complex scalable software systems. 💪
As usually (to better learn) I prepared an overview and mind-map.
Chapter 1:
Building blocks of the apps What is Reliability, Scalability and Maintainability. Examples and definitions. Faults and Failures Performance, Load, Latency and Response Time Operability, Simplicity, Evolvability Why you should randomly kill your servers 😅 How Twitter delivers 12,000 tweets per second to 300,000 readers per second.
Golang FINALLY introduces GENERICS (aka templates, aka type parameters) in release 1.18 (in Feb 2022)
I remember the early 2000s when generics where added to C#, and how they were awaited…
These days Go is my favourite language for writing highly-scalable solutions and generics are the key thing I’ve been waiting for. They should significantly simplify design of the apps in some cases.
My mind map with key things you should know:
Do you use daily standup meetings?
How standard daily standups are organized Everyone (one-by-one) is asked about: yesterday activities, today activities, blockers.
But this approach has common problem: people are not always listen to others! Because the next person thinks what to say when it’s their turn.
There is a better model - “Walking the Board” Discuss every ticket on the board one-by-one. The person who worked on the ticket says a few words, can raise any problems that are immediately addressed.
The book club of our company has chosen a new wonderful book for reading:
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
Fourth part of the book is about principles of combining components into software systems.
This part is more interesting. It contains:
Overview of components history: Relocatability, Linkers Three principles of Component Cohesion REP: The Reuse/Release Equivalence Principle CCP: The Common Closure Principle CRP: The Common Reuse Principle Three principles of Components Coupling ADP: The Acyclic Dependencies Principle SDP: The Stable Dependencies Principle SAP: The Stable Abstractions Principle I especially enjoyed this chapter because of presented metrics that could be used to measure(!
The book club of our company has chosen a new wonderful book for reading:
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
👍
Third part of the book is about SOLID principles
Single Responsibility Principle: A module should be responsible to one, and only one, actor. Open-Closed Principle: A software artifact should be open for extension but closed for modification Liskov Substitution Principle: S is a subtype of T if instead of instance of T we can always use an instance of S Interface Segregation Principle: use interfaces to reduce dependency upon changes Dependency Inversion Principle: avoid dependencies on volatile concrete elements I didn’t learn anything new from here (but I am in software engineering for 20+ years already ;).
When you are starting a new software solution need to select a technology for Frontend. There are currently three leading technologies: Angular, React, and Vue.
But how do you choose from them?
Our team has experience with all of them, but usually the choice is made on the basis “who is available from the team and what they prefer”.
I wanted a deeper Pros and Cons comparison, and I found it in great short Udemy course :
Project Management Institute has published fresh salary survey - 12th edition (2021)
This survey contains salaries of professionals involved into project management activities: from Project Management specialists through three levels of Project Managers to the CEO of an organization.
Many countries were surveyed. And the data can be reviewed in many dimensions, such as years of work experience, educational level, PMP status, gender, industry and many more.
Direct link to the SUMMARY REPORT on PMI website
Today is International Volunteer Day!
Congratulations to all volunteers from all over the world!👋 We make this world a better place. 👍
I am volunteering for Project Management Institute and PMI Moscow since 2010. And I am sure that PMI is the best professional non-commercial organization in the world and it provides the best volunteering opportunities!
My main activities with PMI were:
Work at PMI Moscow board - mostly IT-related stuff and helping colleagues Translation and translation validation of PMI standards, books and PMI exam questions PMI exam development (the most mind-blowing tasks) and validation.
Recently Saxo Bank published their outrageous predictions for 2022 (and beyond). I also watched the clarifications of chief investment officer, Steen Jacobsen. Very brave and honest! 👍
Here’s my quick overview of the main points:
Governments do not have a clear plan for the transition to a green future. So, oil and gas still reign. Meanwhile, many billions will be buried in ESG hype. Facebook is for oldies. TikTok (and/or other new social platforms) will kill it.
The book club of our company has chosen a new wonderful book for reading:
Robert Martin - Clean Architecture - a Craftsman’s Guide to Software Structure and Design
👍
The book is superficial so far. Here’s an overview of the second part:
There are three programming paradigms:
Structured programming - is discipline imposed upon direct transfer of control. Object-oriented programming - is discipline imposed upon indirect transfer of control.