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.

2022 Recap. 2023 Plan.

`Year recap has already become a good tradition for me (check 2020 and 2021 recap posts). This habit allows for summarising the last 365 days and creating a solid plan for next year. Additionally, last year a received a few quite complementary feedbacks (undeserved but very appreciated ☺️) from people who said my recap/plans posts helped them to create their own to-do list.

Well, before I go into details about progress and plans, it is worth underlining, that my whole blueprint for the current year was deprioritized on Feb 24, when russia started its terroristic and occupational war against my homeland – Ukraine (you can read more about that in one of my recent posts). I would never forget that day and how it changed my world perception. Since then, the main priorities are to ensure my family in Ukraine has everything it needs to endure this tough time and provide Ukrainian defenders as much aid as I can to increase their safety and ability to protect my homeland against russian occupational army. If you would like to join me in this crucial aim, you could find a list of the biggest Ukrainian Fundations for different purposes here – saveukraine.org. Every penny matters!

2022’s plans progress

Health

  • Do 48 gym sessions (~1 per week)?️‍♂️ – 100%due to Strava, I’ve done about 16 workouts + 32 swims.
  • Run at least 100 runs with a minimum of 600km distance and take part in a race ?‍♂️ – 100%due to Strava, I’ve done 100 runs with a total distance of 645 km + 3 races.

Professional & Personal Development

  • Receive AWS Certified Solutions Architect certificate ? – 100% (cert link)
  • Receive a Professional Scrum Product Owner certificate ? – 0% – I rescheduled that 10+ times since January, but just a few days ago, it became so clear to me, that if you postpone something so many times, then maybe it is not a really what you want to achieve.
  • Solve 48 HackerRank problems (~ 1 per week) ?‍? – 100% (in fact more than 100%, as some of the problems have been solved multiple times in different ways)
  • Learn at least 1 new programming language or fundamental framework ? – 0% – I improved by Java a bit, but that improvement is far from my minimum “learn” threshold.
  • Have at least 100 “active days” in my GitHub account ?89% – at some point, I focused less on committing something “finished” to my Github account and more just creating tiny proof of concepts.

Leisure

  • Hike to Gerlach peak ⛰ – didn’t have a chance to do that this year, but hopefully the next year will be more conducive.
  • Do glider flight ✈️ 100% – that was one of the most positive and emotional moments in a whole year. I highly recommend that to everyone who likes a feeling of freedom and a tiny dose of adrenaline.
  • Visit 1 new country ?100% (visited 1 new country I’ve never been to before –Greece)
  • Complete First Aid Course ⛑ – 100%this course has been finished at the beginning of February, and at that point, I didn’t know how handy those skills could be in a future reality.
  • Add a 1 new board game to the home collection ?100% – new game “Teotihuacan: City of Gods” added to my collection.

Miscellaneous

  1. Post at least 12 new posts in the blog (~ 1 per month) ? – 16% – I added only 2 posts. Also, it became clear to me that adding a target of post amount per year does not work for me, as it just creates redundant pressure, which was not the essential idea of this blog.
  2. Donate at least 1.5 liters of blood (3 times) ? – 133% – 1.8 liters of blood (4 times) have been donated in 2022.

Summarise:

  • 67% (10/15) – Fully completed targets
  • 6% (1/15) – Progressed well, but not completed
  • 27% (4/15) – Have not been started or progress is negligible

So, looks like last year’s baseline of 60% has been met, which is a good thing. What is even more strange, is that I’m really happy that I have not fulfilled 100% of my goals for this year, as otherwise, it would mean sacrificing flexibility over just marking something as done without recap if this goal is still relevant.

Nevertheless, my baseline for next year will remain at a level of 60%, I also would consider something as “done” if it has >= 80% completing progress.

“Out of targets achievements of 2022”

In addition to the planned achievements described above, there are a few things I’ve managed to do and am happy to share with you:

  1. In addition to regular foundation donations, with the priceless support of my friends, we’ve managed to raise funds, buy and send a few parcels to Ukrainian defenders on the frontline.

2. Finished 2 motorcycle courses: “Precision Motorcycle Riding L1” and “ADV Basic”. Both of them helped me as a newbie rider to create a bit less danger on public roads for myself and other people.

3. I’ve managed to pass the IELTS English exam for level 7.0 (C1), so hopefully, communication with me in English became a bit less painful this year ?

Plans for 2023

I’m certain that next year will be challenging for me in a few different ways, but I’m also absolutely sure it will also bring a lot of happy moments and unforgettable memories. Life is always looking for balance and looking back at 2022, damn, next year has to be so freaking exceptionally good!

My list for next year contains a few fixed points, and a few new things:

Health

  1. Do 48 workout (or other non-running activity) sessions (~1 per week)?️‍♂️
  2. Run at least 100 runs with a minimum of 600km distance and take part in at least 1 race ?‍♂️

Professional & Personal Development

  1. Receive Microsoft Certified: Azure Developer Associate certificate as min and Microsoft Certified: Azure Solutions Architect Expert certificate as max ?
  2. Improve soft skills (completing a course or attending communication/leadership community meetups) ?️
  3. Solve 48 LeetCode problems (~ 1 per week) ?‍?
  4. Read at least 8 books ?
  5. Visit at least 1 tech conference or tech meetup ?
  6. Have at least 48 “active days” in my GitHub account ?
  7. Invest 20% more money than in 2022 ?
  8. 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) ?
  9. Create small regular fortnight tracking reports summarising progress and main events. ?
  10. Improve my finance and investment awareness (read min 1 investment-related book) ?

Leisure

  1. Hike to Gerlach peak ⛰
  2. Do at least 1 “adrenaline rush activity” ?
  3. Travel outside of Poland on a motorcycle adventure trip ?️
  4. Complete Winter Mountain Tourist course ?
  5. Add a 1 new board game to the home collection ?

Miscellaneous

  1. Make at least 12 contributions to nonprofit orgs (~ 1 per month) ❤️‍?
  2. Donate at least 1.5 liters of blood (3 times) ?

Final thoughts

My last year’s “Final thoughts” section was dedicated to COVID and my hope to “get back to normality”. Today, a year later, the word “normality” means something completely different from what it used to mean. Nevertheless, I wish you all the best in the New Year, good physical and mental health, fulfillment of your own plans for next year, and a lot of smiles! P.S. Don’t forget to support each other, it is absolutely vital in a current tough and complex world!

Happy New 2023 Year!

P.P.S. A few highlight photos from 2022.