2024 Recap. 2025 Plan.

It’s yet another year of my recap (it’s already fifth; you can check last year here). Surprisingly, I’ve received comments from a few people this year that my blog and especially recap posts inspired them to do some draft plans for the upcoming year, too; undoubtedly, that was a pure pleasure and motivation for me to hear that. As usual, I highly recommend that you, my dear reader, create a draft plan for some period in the future. Neither should it be the whole year nor in the shape of a public blog – write down a list of things you want to achieve with a clear deadline and regularly check how you are doing to calibrate your course. If you find that helpful (or even suddenly useless), please contact me through this portal or email; I’m keen to hear more about your experience and learnings! If it comes to me, I want to give my credits to Andriy from andriybuday.com/. He inspired me to start my blog in 2020, and I am immensely grateful to him.

Before beginning my review of retro plans, I want to remind you that the Russian aggression in Ukraine continues. Every day, russia’s terrorist attacks claim the lives of Ukrainian civilians while courageous Ukrainian defenders hold the line along a frontline spanning over 1,000 kilometers. I urge you to support Ukraine’s fight to protect its people and freedom. You can find a list of major Ukrainian foundations for various causes at saveukraine.org/donate. Every contribution, no matter how small, makes a difference.

2024’s plans progress

Health

Do 48 workout (or other non-running activity) sessions (~1 per week) – 30%
The initial plan was to do at least one non-running activity, but I lost my grip on that matter after a few weeks and later did just about one training per month, which summed up 13 workouts in total in 2024, so I marked it as not completed.
Run at least 48 runs with a minimum of 300km distance and take part in at least 1 race – 90%
Even though I did more than 48 runs, I’ve not started in a single race. There were a few occasions, but unexpected obstacles popped up every time.
Build a daily mindfulness routine – 0%
I read a book about mindful philosophy and hoped to build a daily routine based on the knowledge I gained. Still, after a few attempts, I gave up due to low motivation and limited understanding of my progress. If I ever want to try again, attending mindfulness classes is my only way.

Professional & Personal Development

Receive a professional certificate which requires passing an exam (AWS, MS, CAPM, etc) – 0%
Even though I started preparation, exam has not been passed yet.
Complete the course for communication or leadership upskill – 100%
Completed “Leadership in 7 Steps” onside workshop with Kamila Slowik
Solve 48 LeetCode/HackerRank problems (~ 1 per week) – 0%
It used to help me to keep my base software engineering “instincts” sharp, but this year, it just disappeared from radars.
Learn 1 new programming language on an advanced level – 20%
There are some gains in Kotlin, but they’re definitely not on an advanced level.
Read at least 8 books (from which at least two on a technical or non-fiction) – 100%
Book of the year due to my personal ranking – Atomic Habits
Visit at least 1 tech conference or tech meetup – 100%
I attended the AWS DynamoDB tech meetup.
Have at least 48 “active days” in my GitHub account – 100%
Invest 15% more money than in 2023 – 120%
I’ve managed to achieve 20% extra in absolute numbers
Add at least 3 new posts on my blog (New Year recap doesn’t count) – 0%
That was probably the last time I’d included such a point in my annual plan. I found a “number” plan counterproductive, as it prioritizes quantity over quality, which is the opposite of what I want this blog to be. So next year, I will put as many (or as few) posts on this blog as I consider topics/thoughts interesting to share, not more, not less.
Improve my finance and investment awareness (read 1 investment-related book/complete the course) – 100%
I subscribed to a few investment newsletters, paid more attention to global market trends, and invested in a new ETF this year.
Limit daily phone screen time to 2 hours – 75%
My daily screen time over the last 12 months has dropped from 3.5 to 2.4 hours, which I consider as good progress, but I’ve not hit the mark yet.

Family

Sign my daughter up for swimming classes – 100%
Done, that’s a big one for me. We’ve started visiting swimming classes together, even though there were a few gaps in time due to childhood illnesses.
Build a weekly routine of reading Ukrainian books for my daughter – 50%
It is kind of a half failure/half success. I’m trying to read my daughter, but it appears that at the end of 1, she doesn’t care about the plot but rather the colors of the pictures. I hope we both will do better next year.
First outside of Poland trip in an increased shape of our family – 300%
We’ve managed to have three trips outside of Poland this year; traveling with a 1-year-old baby is an unforgettable experience

Leisure

Hike to a new mountain peak or try first Via Ferrata – 0%
I overestimated my ability to plan a trip for more than one day. Not completed.

Do at least 1 “adrenaline rush activity” – 0%
I planned paragliding this year, but I failed because of my laziness and unpredictable weather for most of the weekends in the summer.
Spend at least 1 night camping/a tent – 0%
Attend at least 3 concerts/sports events – 33%
It was only one concert (but goddamn good one) I’ve managed to visit this year.
Add a 1 new board game to the home collection – 100%
Even though it was not the best choice of the game this year, our board game library has slightly increased (tip of the year from Ihor aka Captain Obvious – don’t trust “nice box” and read reviews before buying board games)

Miscellaneous

Make at least 12 contributions to nonprofit organizations (~ 1 per month) – 150%
Even though it was not the best choice of the game this year, our board game library has slightly increased (tip of the year from Ihor aka Captain Obvious – don’t trust “nice box” and read reviews before buying board games)
Donate at least 10% more money in 2024 than in 2023 – 150%
Donate at least 1.5 liters of blood (3 times) – 66%
I’ve managed to do it only twice this year; before I became a father, I couldn’t imagine that being 100% healthy and not having a runny nose or cold could be such a challenge, especially when your child brings a new stamp of biological weapon from kindergarten every other week ☢️

Learning from 2024

My biggest finding this year is not to postpone your plans. This could sound trite, but looking back, people usually think about what they’ve done and what they abandoned. We rarely remember reasons for failed plans, such as a dream trip to Iceland, the first parachuting jump, or starting a shared hobby with our kids, as in most cases, these reasons are so minor. The lesson from this finding is to do everything possible to make abandoning hard/impossible. The easiest way is probably to buy a ticket, course, or voucher for your plans in advance; believe me; it will be much harder to find a silly reason to give up on the trip if no one refunds you 2k USD for tickets you’ve already spent 😉

Sum-up

  • 52% (13/25) – Fully completed targets
  • 12% (3/25) – Progressed well, but not completed
  • 36% (9/25) – Have not been started or progress is negligible

I have a mixed feeling about my 52% completion rate, on one side, it’s below my target threshold, but on the other hand, I’m quite surprised I’ve reached such a high level, as this year has been a year of many personal changes for me – my lovely grandpa passed away, I finally got married to my partner after dating for five (!) years, we acquired and moved to a new property, I finally had a chance to meet my grandma the first time since russia started its brutal war against Ukraine.

The following year promises to be even more challenging for me, so I will keep the same 60% completion rate as a target for 2025 and a 75% progress level of treating something as “done.”

Plans for 2025

Health

  • Do 48 workout (or other non-running activity) sessions (~1 per week)
  • Run at least 48 runs with a minimum of 300km distance and take part in at least one race (ideally together with my daughter)
  • Do 5000 pushups/dips (200 per week with some margin to sickness, vacation, or laziness)
  • Increase muscle flexibility to the point when I can firmly touch the floor with my palms on straight legs
  • Keep the weight under 80kg

Professional & Personal Development

  • Complete leadership workshop (preferably not online)
  • Create a publicly accessible pet project with the language/technology I want to learn
  • Read at least eight books (from which at least two are technical or non-fiction) and write a review of at least two of them (primarily for retrospective purposes)
  • Visit at least one tech conference
  • Have at least 48 “active days” in my personal GitHub account
  • Extend Emergency Fund to 9 months’ worth of expenses
  • Adopt a tool for automatic monthly investments

Family

  • Attend pool classes with my daughter at least 20 times
  • Build a weekly routine of reading Ukrainian books for my daughter (again)
  • First outside of Poland trip in an increased shape of our family

Leisure

  • Build a daily reading routine – 300 active reading days
  • Hike to a new mountain peak or try first Via Ferrata
  • Do at least one “adrenaline rush activity”
  • Attend at least two concerts/sports events

Miscellaneous

  • Limit daily phone screen time to 2 hours (spying on kids through baby monitor doesn’t count)
  • Make at least 12 contributions to nonprofit organizations (~ 1 per month)
  • Donate at least 1.5 liters of blood (3 times)
  • Limit time spent on social media (including YouTube) to 1 hour daily

Final thoughts

So many global things have happened this year, undoubtedly bad – war in Ukraine is not over, events in the Middle East are getting very concerning, neutral – breathtaking POTUS election campaign, or good and enjoyable – such as the 2024 Paris Summer Olympics and Euro football championship. In most cases, we don’t directly influence global events. Still, indirectly indeed – by crafting our small world by our beliefs and promoting our values to other people, that’s how human beings transformed the world from an absolute monarchy back in the Middle Ages to democracy and undisputable acceptance of human rights in most parts of our planet today. Just do what is right!

As we enter 2025, I’m filled with hope and excitement for the possibilities ahead. May this year bring you joy, growth, and countless moments of happiness. I also hold a special wish for peace—may the war in Ukraine end, and may we see healing and unity in the year ahead. Here’s to new beginnings and a brighter, more peaceful world for all.

Wishing you all the best in 2025!

P.S. A few highlight photos from 2024

2023 Recap. 2024 Plan.

This is the 4th edition of my annual recap/plan posts (the previous year can be found here) and every time I find it more valuable than before. In my case, that is a chance to sum up accomplishments – both planned and not planned, as well as draw at least the very raw draft of what I would like to do for the next 365 days. If you are reading that post and considering trying to create your plan – just do it and I promise that will become your good tradition as it happened to me.

This year was very exceptional for me from a few perspectives, but undoubtedly the most important highlight is the fact that I became the father of a little beautiful Antonina, which shook my quite quiet daily routine and opened the marvelous world of being a parent.

Before I start my retro plans review, I want to remind you that russian aggression in Ukraine is not over. Russia’s terrorist attacks kill civil people of Ukraine every day and brave Ukrainian defenders fight with occupants on a more than 1000km length frontline.  I encourage you to help Ukraine to defend and protect its people and freedom. You can find a list of the biggest Ukrainian Foundations for different purposes here – saveukraine.org. Every penny matters!

2023’s plans progress

Health

  • Do 48 workout (or other non-running activity) sessions (~1 per week) 15 (5 gyms, 8 swims, 2 rides)
    31%
SwimGymRide

Strava stats 2023
  • Run at least 100 runs with a minimum of 600km distance and participate in at least 1 race 57 runs (384km) + 1 race
    57%

Professional & Personal Development

  • Visit at least 1 tech conference or tech meetup – Eric Evans, 15 Years of Domain Driven Design
    100%
  • Have at least 48 “active days” in my GitHub account 25 days (75 contributions)
    52%
  • Invest 20% more money than in 2022 – invested 30% more than in 2022
    150%
  • Meaningful work-related change (hard to set any specifics upfront, but definitely will be easy to identify as the success/fail in the 2023 retrospective) – this year I officially started the career of a Software Development Manager (even as non officially it has started back in 2022)
    100%
  • Create small regular fortnight tracking reports summarising progress and main events – declined that idea after a few weeks. I was too lazy to check past reports to make any conclusions, so it was useless in my case.
    0%
  • Improve my finance and investment awareness (read min 1 investment-related book) – unfortunately I have neglected that area in 2023.
    0%

Leisure

  • Hike to Gerlach peak – has been postponed to next year (again)
    0%
  • Do at least 1 “adrenaline rush activity” – first diving and skydiving (indoor) in my life
    200%
  • Travel outside of Poland on a motorcycle adventure trip short 1 day trip to south of Slovakia
    100%
  • Complete Winter Mountain Tourist course – done, that probably was the most extreme time in the mountains in my life so far
    100%
  • Add 1 new board game to the home collection – 3 new games in my home collection
    300%

Miscellaneous

  • Make at least 12 contributions to nonprofit organizations (~ 1 per month) – 22 donations (at least those which have been tagged as Donation), mostly to Come Back Alive foundation
    183%
  • Donate at least 1.5 liters of blood (3 times) – 1.8l donated (4 times)
    130%

Learning from 2023

The Pareto principle doesn’t work for things that really matter, that just doesn’t work. That became obvious to me this year in many aspects, but especially in a human being relationship. Important areas of our lives require continuous attention, time, and engagement. Things like family relationships, well-being, and personal life principles do not accept shortcuts.

Summarise:

  • 53% (10/19) – Fully completed targets
  • 16% (3/19) – Progressed well, but not completed
  • 31% (6/19) – Have not been started or progress is negligible

My last year’s baseline was 60%, and unfortunately, I haven’t met this level in 2023. I may use childbirth as a small excuse for not completing as many goals as I planned, but as the old Polish proverb says – “there are important things and more important things”. Apart from that, I do believe that better planning and regular check-ins will help me to have higher results in the next year.

I also will keep the level 60% completion rate as a target for 2024 and a 75% progress level of treating something as “done”

Plans for 2024

Undoubtedly the next year will be even more demanding due to new challenges, especially in terms of planning. Starting from 2023 and for the next at least 18 years my main “project” is my daughter, but that doesn’t mean there is no room for other plans and horizons, just now it will need a bit more forethought.

Health

  1. Do 48 workout (or other non-running activity) sessions (~1 per week)
  2. Run at least 48 runs with a minimum of 300km distance and take part in at least 1 race
  3. Build a daily mindfulness routine

Professional & Personal Development

  1. Receive a professional certificate which requires passing an exam (AWS, MS, CAPM, etc)
  2. Complete the course for communication or leadership upskill.
  3. Solve 48 LeetCode/HackerRank problems (~ 1 per week)
  4. Learn 1 new programming language on an advanced level
  5. Read at least 8 books (from which at least 2 on a technical or non-fiction)
  6. Visit at least 1 tech conference or tech meetup
  7. Have at least 48 “active days” in my GitHub account
  8. Invest 15% more money than in 2023
  9. Add at least 3 new posts on my blog (New Year recap doesn’t count)
  10. Improve my finance and investment awareness (read min 1 investment-related book/finish course/adopt new financial instrument)
  11. Limit daily phone screen time to 2 hours

Family

  1. Sign my daughter up for swimming classes
  2. Build a weekly routine of reading Ukrainian books for my daughter
  3. First outside of Poland trip in an increased shape of our family

Leisure

  1. Hike to a new mountain peak or try first Via Ferrata
  2. Do at least 1 “adrenaline rush activity”
  3. Spend at least 1 night camping/a tent
  4. Attend at least 3 concerts/sports events
  5. Add a 1 new board game to the home collection

Miscellaneous

  1. Make at least 12 contributions to nonprofit organizations (~ 1 per month)
  2. Donate at least 10% more money in 2024 than in 2023
  3. Donate at least 1.5 liters of blood (3 times)

Final thoughts

We all know that 2023 was not the easiest year for us human beings and the planet as well. A new conflict has started in Gaza, COVID has “resurrected” in some parts of the world, climate changes are even more visible, and looks like global political stability is not as stable as it used to be. Nevertheless, the only way the situation can improve is to start taking steps towards that direction, despite all challenges and obstacles. One that would have the fruit must climb the tree.

I wish you all the best in the New Year, good physical and mental health, prosperity, fulfillment of your plans, and many smiles! I also wish my motherland Ukraine peace and victory in its fight for freedom and the future. I also me to finally be able to visit my motherland and meet my relatives and friends. Let this horrible war end!

Happy New 2024 Year!

P.S. A few highlight photos from 2023

Many faces of the “Consistency”

The word “consistency” is widely used in IT nowadays, especially regarding databases, but what does that really mean? Let’s find out!

Formal definition

In database systems, consistency refers to the requirement that any given database transaction must change affected data only in allowed ways.

Wikipedia (https://en.wikipedia.org/wiki/Consistency_(database_systems))

So basically this concept describes that if you have specific rules about your data (invariants), then every database transaction should preserve those rules – e.g. in a cinema ticket booking system, by creating every successful booking, the number of available tickets should be decremented, but can not drop below zero. Suppose a database transaction starts with valid data according to these rules (invariants) so any changes during the transaction should preserve the validity. Seems to be straightforward, right? Nevertheless, there are a few super confusing, but extremely important acronyms that contain “C” (as consistency) but have very little in common with the formal statement above.

A C I D

The first, but probably the biggest (and oldest) acronym is ACID, which refers to properties of database transactions:

  • A – Atomicity
  • C – Consistency
  • I – Isolation
  • D – Durability

I would rather change that to realistic AI (atomic and isolation), but let’s keep the Durability concept for the next post and focus on C (consistency) here.

So due to Wiki –

Consistency in ACID transactions ensures that a transaction can only bring the database from one consistent state to another, preserving database invariants

The problem with that statement lies in the fact, that the idea of consistency is mostly related to application business logic. That’s the application code’s responsibility to correctly construct the database transaction to preserve invariants. Basically, the database is unable to guarantee consistency (yes, there are some very simple database constraint checks like uniqueness), so if you write bad data (e.g. create a cinema booking but will not reduce the number of available seats), the database will not hold you back! That is up to the application what data is valid, and what is not. So the “C” letter should not belong to the “ACID” acronym.

CL A P

Another example of a misleading acronym is CAP, which refers to a theorem about guarantees in distributed data stores:

  • C – Consistency
  • A – Availability
  • P – Partition tolerance

Yet another example of too many letters in the acronym, as in fact, the network partition is a part of the problem, that will happen without your allowance whether you like it or not. So it rather should be something like “Choose Consistency or Availability in case of Partition”.

So due to Wiki –

Consistency in CAP theorem means that every read receives the most recent write or an error.

That description directly references the concept of Linearizability.

The strict definition of linearizability is quite fuzzy, but the basic idea is that as soon as one client successfully completes a write operation, all clients reading from the database should be able to see the value just written as it was only a single register (even if reality there are multiple replicas/nodes/partitions).

Example of a non-linearizable system

So after John has booked the last seat for the “Men in Black” movie, both Jane and Mike tried to check availability, but both of them saw different results, due to async replication and network delay during the master db change population.

Example of a linearizable system behavior

In the example above, as there is a point in time when Mike’s delete change became visible to John’s read operation, after that all readers should see the same version as John.

Other consistency examples

The word consistency is terribly overloaded across the whole broad IT domains, apart from the example above, you also can find that word in such areas:

Final thoughts

That article was an attempt to underline the problem of people using just the word “consistency” without a clear statement about what exactly they mean, which actually introduces inconsistency into the discussion 🙂

If you are interested to know more about described above, and other faces of consistency, I highly recommend you the book “Designing Data-Intensive Applications” by Martin Kleppmann.