Stoic self-review: two months later

Self-review

At the end of last year, I became interested in Stoic philosophy and found something in it that attracted me a lot – above all, the values it follows. In all humility: stoicism is not an end to be achieved in itself, it is a process, it is a path in which one strives for some form of perfection. I still have a long way to go, or to put it more accurately, this road will never end.

Interested in a lot of advice, I decided to try one of the Stoic exercises, often called a self-review, an examination of conscience, or a self-assessment. It is based on answering a pre-prepared set of questions to yourself every morning – all in written form. An example of such a diary is the Meditations of Marcus Aurelius, Roman emperor and one of the biggest Stoic philosophers. I’ve been doing it for more than two months now, and I decided to share my impressions because I think exercise has significantly changed my perspective on many things – it has changed me personally. There are some of my observations based on these two months:

I couldn’t focus

Beginning was difficult. I did not except that, because I had no problems with writing a lot of articles, news or even this blog. I started to write more during high school, and it was not an issue also but this time it was different. I suspect it because of specific topic: we have to write not about something we think about some items or based on other info, but make… yeah, self-review and “deep observation”. It was like my first attempts with meditation. Every second was so long and difficult, there were a lot of distractors in my mind and I did not know, what should I wrote. It was changed after few days, do not exactly when, but I think after just a week, I felt much better, it was fluent and smooth – completely as if my mind was already ready to put thoughts on paper.

Analog instead of digital?

I am a minimalist and really prefer to have less items than more – of course it does not mean, that I move “less items” above comfort & productivity, but in most cases, both are not in conflict. In effect, I read mostly ebooks (or listen to audiobooks), use digital to-do and notes app. Planned to use digital form for this self-review, but it did not work. It generated too many distractors, so I decided to move to analog form i.e. just simple paper notes and black pen. In the beginning, it was difficult, because I realized… I’ve become unaccustomed to handwriting! Yes, in last few years, my handwriting was only about some small notes, but nothing big, not full page or two in just few minutes. My handwriting has never been pretty, but this time it was really nightmarish – I wrote as if I was distracted, in a big hurry somewhere, unable to collect my thoughts. It was very strange and a bit “frustrating”, but fortunately gone after a few days. Of course, it is a clear signal for me, that I should handwrite more often because it will improve my ability to focus.

Awareness and benefits

The most question: what benefits my morning self-review has brought me? I think it is awareness, a lot of awareness. It may sound strange, but I think I am better prepared for everything. I have already used to have to-do list prepared the day before, but it is a completely different story. Creating list is one item, think more about it allows me to be prepared mentally for some turbulences. For example, I know, I will need to drive someone – just quick note about “small traffic jam is possible, I should not be nervous waiting, but just think about something pleasant” – and it works during day. You can prepare for a lot of items at the same time. Unexpected problems? A lot of noise from co-workers? Maybe technical issues? In effect of that, nothing is a real obstacle, it is just a temporary and opportunity to do something different.

I ask myself about what is dependent on me and what not, and it is a second gamechanger – in reality, we can not control most of items and this training emphatically makes us aware of it. It does not matter we should not do anything. For example, I have no influence on whether someone at the meeting will understand me and my needs, but I can do everything possible to make it easier so that communication is as good as possible. The final item, self-review is like checking milestones on our personal objectives. I know what I did wrong in last days, so I can improve some areas.

Distractions

Have to write few items about that: such self-review worked fine for my only if I really focused on that. What does it mean? In my case, it is about spend some time alone, without other people (even my small daughter), without any music or enabled electronic near me – so I always try to do that before I start my computer and addle into a whirlwind of work. For me it doesn’t matter I will write self-review before or after breakfast and morning tea (btw. I do not drink coffee). Mentioned that, because saw some opinions, it’s better to do that after, with some more energy because it is required definitely also for mental work.

Next steps

I will continue that

First of all, I decided to continue that. It requires just 10-15 minutes every day and it is much better to spend them on such self-review, than on something unnecessary in my situation (for example even quick look into social media). I have still a lot of things to improve, but it is an important step, especially from a self-awareness perspective.

Add more questions.

I consider adding more questions to morning self-review. There is nothing like “ready to use list”, because everyone must think about what is important and how can handle these items. Of course, there are some items which can be used by almost everyone, some examples:

  • What awaits me today?
  • What is dependent on me and what is not?
  • What is the most important, what can wait?
  • How can I improve my wellbeing, physical and mental condition?
  • If there is something big and stressful, what is the worst scenario and how should I handle that?

Review after the day

If morning preparation has proved so valuable, why not also introduce an evening summary of the day? It is the second suggestion from stoic approach, but not only. Last time I read about something similar in “Chop wood, carry water” from Joshua Medcalf. Summary of the day can give us a lot of good things. First, it allows to list all good things we did – to not forget about them, to notice them, to remember, even if something was not fine, day was probably still great. We can use it as a reminder of who we want to be and how we want to achieve that. Also, it’s a great opportunity to notice our problems, “absolve yourself” and have the notes ready…. For the next morning to know what to improve in yourself

Why and how you should update your technology stack

Technology Stack

Technology stack is often discussed during planning new projects or during recruitment process, but is often overlooked when it comes to dedicating time and resources to updates – and it is huge mistake, because the consequences can be really serious. I would like to present the reasons why it is worth taking care of the current technology stack in a company that creates and develops software. I would also like to show how the necessary changes can be put into practice. If I can convince even just one person – it will be a success and will contribute to better work of many people, as well as higher quality of the product.

Why technology stack updates are important

Security and clients security

The most important thing is security. Outdated technology stack means vulnerabilities – a lot of them. It is normal, software has gaps, security issues and other problems, nothing is perfect, and it is not possible to create complex applications without issues. But one thing is to know about that, and second to react properly: if we will just ignore this… we will pay a lot. Our clients will be also in danger, so it is crucial not to forget about security. One outdated library can be like an open gate in an ancient city: it does not matter how strong walls you have, because attackers can use just this one gate to break all security stuff.

Even if it is related to internal-only systems, outdated tech stack can be a problem – imagine situation, when someone tries to steal some info from company, or gap in main security features will allow to access internal systems. System or human fault, it does not matter, because the effect will be the same: a lot of issues, even including total destruction of the company due to loss of customer confidence. Would you trust the company yourself if you knew it didn’t care about updates and your valuable information was being processed by outdated systems?

Tech Debt

The tech stack a company uses can also have a significant impact on its technical debt. Technical debt refers to the cost of maintaining and updating older code and systems that are no longer optimal – and for developers, it can be a real nightmare. As technology advances, it’s common for companies to accumulate technical debt as they struggle to keep up with the latest trends and tools.

By upgrading their tech stack, companies can reduce technical debt and ensure that their systems remain up-to-date and efficient. For example, a company that switches to a new programming language or framework can often see significant improvements in their code quality and maintainability, which can reduce the need for ongoing maintenance and updates. Windows has millions of code lines in C, but last time Microsoft decided to move some critical part to Rust. Why? To avoid memory issues, they often cause security problems and controlling that aspect on C or C++ is much harder.

On the other hand, a company that sticks with an outdated tech stack can quickly find themselves buried in technical debt. As their systems become more difficult to maintain and update, their overall productivity can suffer, leading to longer development cycles and slower time-to-market. AGILE? Yes, it’s still possible, but much harder if you need to fight with tech debt.

“It’s not enough to be up to date, you have to be up to tomorrow.”

David Ben-Gurion

Performance & costs

Please do not forget about performance. Why is it important? Lower performance can be a problem on the client side, especially if we talk about classic desktop applications, but right now we have more and more services in the cloud. If we offer backend on our side, within our infrastructure level, every bottleneck will affect not only clients, but also our total costs. Outdated tech stack can require additional machines, additional traffic and of course, additional maintenance time. All of these items mean more money we will spend to make the service available.

Up to date tech stack can resolve many performance issues, because new versions usually provide fixes and improvements – usually, because sometimes updates generate regressions, also moving to additional abstractions layers will add some impact, but in long-term perspective, it will improve stability. If the company will require outsource maintenance of some service, it will be also easier and cheaper if it uses up to date tech stack. Working with old systems may be very difficult and good example is a process of removing Windows XP and then Windows 7 support: a lot of companies decided to use extended long term versions and continue that even EOF – in this situation, migration to new option can be even more expensive.

Easier to hire better employees

Technology is constantly evolving, and companies that fail to keep up with the latest advancements risk losing out on top talent in the recruitment process. Developers are naturally drawn to the latest and greatest tools and technologies, as they are often faster, more efficient, and more flexible than older ones. By upgrading their tech stack, companies can not only improve their overall productivity but also make themselves more attractive to potential hires.

In the highly competitive tech industry, developers are constantly on the lookout for new and exciting opportunities. By offering a cutting-edge tech stack, companies can stand out from their competitors and appeal to the best and brightest in the industry. This can be especially important when it comes to hiring top-tier developers who have their pick of job offers. By demonstrating a commitment to staying ahead of the curve, companies can position themselves as leaders in their field and attract the most talented candidates.

In addition to attracting top talent, upgrading your tech stack can also help to retain existing employees. Developers are more likely to stay with a company that uses modern, up-to-date tools and technologies, as they want to work with the latest and greatest resources available. By investing in tech stack, you can show your team that you value their skills and are committed to helping them succeed. This can lead to a more engaged and motivated workforce, which in turn can drive better results and improve your overall bottom line.

No zombie projects

The last but not the least. If company takes care about upgraded, there are no zombie projects on their flow. Zombie project is a type of project, when we planned something, added to our backlog, but there was always something more important… It is like a zombie: it is dead, but can always move, hit us and generate a lot of issues when we will not have any time to fix them. Outdated, but still working software is a natural candidate to be zombie. For developers, it can be difficult to argue that updates are necessary, especially if company is under pressure and must deliver a lot of new functional changes.

How to update the technology stack

Monitor upgrades & vulnerabilities

First step to handle outdated tech stack is to have proper knowledge about that – it is required to monitor used libraries, new versions and important upgrades. Some tools like npm, yarn or composer offers very easy way to get all info about possible upgrades. Maybe not all of them will be possible to do at the same time, the knowledge about gaps is the most important item.

Plan, allocate time

When you have information about all outdated solutions, there is a time to plan next actions: check dependencies, check what should be changed to make codebase compatible with new solutions, plan all tasks. An important step is to define clear deadlines for these tasks. If there is no such information, these upgrades will be transferred into zombie items and will make themselves known at the least expected moment as mentioned in paragraphs above.

Implement upgrades

Finally, it is time to transfer goals into reality. It may be time consuming, but remember, it is worth it. Make backups, if change can break important systems, make that in iterations i.e., replace old solutions step by step, use a lot of internal, and also A/B tests on the users’ side.

Repeat & automate

The most important thing: doing that once will not help us. It should be part of the standard process; company should have clear updates policy to be proactive and avoid issues on eleventh hour.

There will be never the best time

I’m writing that on Friday evening, day before my second 100 km ultramarathon. Decided to write that because… yeah, I have some thoughts. It is because of weather and my general impressions: many things should be different, especially mentioned weather – according to forecasts from two, days before, there should be a bit cloudy, but not difficult day. Unfortunately, there was a rain: two hours with a lot of rain and there is a lot of mud around, so looks like tomorrow I will have a bit more demanding situation.

But not only weather is important. It is also because of my condition and many other factors. I trained before this second ultramarathon, but there was no opportunity to train in the mountains – or I’ve just forgot about that. Second item is about shoes. I bought Mizuno Mujin few months ago, for this and one more event, but unfortunately, had a lot of blisters with them (strange, because did not have such issues with other Mizuno shoes). In result, I bought new shoes… with zero drop… one week before ultramarathon. And then ran with them three times, overall, something over 40 kilometers – no issues with blisters, but that zero drop and different structure… ouch, it was a painful experience. Result? I decided to use my older Mizuno Daichi. Maybe not perfect, but I trust them, and they should be fine.

It is not a good time

Overall, it is not the best moment for that ultramarathon. I prepared everything yesterday and today, but still think, it was possible to prepare everything in the better way… and it is not true! The most important thing: in such situations, there will be never the best moment to do something. It is like a training. You can train a lot, every day, you can check all details, you can ensure all items one hundred times, but you will be never 100% confident, that everything will be fine. The same applies to most of thinks in our lives: you will be never prepared to be a parent, to look for a new job, to start your own business, to make a new course, to try something completely different.

You can give other example from my childhood – I played a lot of games, especially real time strategies like Age of Empires, Total Annihilation or Supreme Commander. I never felt enough prepared, so it was something like: first, build huge base, really HUGE and a lot of defensive structures to be sure, I’m prepared for enemy attacks. Then, build also HUGE army and finally, destroy enemy in something like gigantic rush. It was fine, but had always one big drawback: time, it required a lot of time for… completely unnecessary things. I decided to take a risk when I was let’s say 90%+ confident I will be successful.

Missed opportunities

There is nothing wrong with that, except opportunities: because of that, we can lose a lot of opportunities and time, be pursued by competitors. Of course, there is still valid sentence from Richard Branson: “business opportunities are like buses — there’s always another one coming along“, but we can think more about that: what if we will be just even a bit more aggressive? What if we will make next steps when we will be 80% confident? What if 70% or even 60%? Chances are still on our side, of course risk of failure is larger but… we need to fail to learn, to be better in the future. There is second, great quote, this time from Beniamin Franklin: “The man who does things makes many mistakes, but he never makes the biggest mistake of all—doing nothing.” and it’s true. More aggressive approach may be better for us.

Of course, I do not mean, we should not prepare. According to research, people take more risk if they think about profits and less if about losses – even if we talk about exactly the same chances (it’s only about how we how we will describe a given situation. We should have plan B, plan C and even plan D – try to be proactive, try to think about possible issue, but do not be blocked because of them, do not be paralyzed and do not take all the time to just think about “bad options”, because then, it will be not possible to focus on positive aspects and possible gains. We need to find a good balance, and it’s not “one time task”, it’s a process: we need to adjust our approach based on situation, our motivations and all external factors.

One more word

I’ve completed this post after mentioned ultramarathon. Everything was… fine. My result was three hours better (!) than last year at my first ultramarathon, I felt fine and probably it was possible to achieve even better time. Of course, I was tired, but everything was goood, shoes were fine, I tested some new nutrition aspects and they worked perfectly. Of course, there are some items to improve, but it’s normal. This week I have another ultra: longer, more difficult because a lot of ascents and I’m not sure I will be able to finish that… but want to try and check myself again. Looks like it should be possible, it’s close to my borders and it means, it’s great opportunity to make a progress, even if I will fail. Only three weeks between two ultras, it’s not enough to rest, to prepare but, how to say that… no risk, no fun?

Exploring sleep states in Windows

Microsoft Windows has changed considerably in latest years, everything because of changes on devices: we use smaller, more portable computers, we often want more battery life, but we do not want to lose performance or quick operational mode. If we add to these additional changes related to security, everything will become even more complicated and it is the current state of power settings in Windows: they are complex, some are hidden, some are hard to understand, some generate many issues.

Continue reading “Exploring sleep states in Windows”

The Three Gardens of Life

Today I want to write about something different, about the “three gardens” idea presented in “Zyciologia” book by Milosz Brzezinski. This book is extremely interesting, but available only in Polish. I’m not sure why the author did not decide to publish also in other languages, but think it is big loss. This book presents in a simple way the dilemmas with which modern humans are confronted. It includes also a lot of small, but simple tricks “how to live and not go crazy”, but without imposing an ideal solution – because the author makes it clear that there is no such thing.

Ok, but what about is “three gardens” idea? It’s a fundamental part of this book. Imagine you are a gardener and must care for three gardens. These gardens are not ordinary. In theory, they are separated, but during the day you see a lot of connections and influences between them. After the lecture I have to say, I really like this idea, because it allows us to “monitor” these gardens. Let’s check their details.

Work

First garden in work. Yes, your work. There are some people who say that work is not important, but it is not true. In a normal world, work, doing something is just required to live: thanks to work you can earn money, buy food, services, fuel, everything you really need (or even do not need, but you want to have it). On the other side, work cannot be an escape from other responsibilities that await us in life, and a lot of people try to do that.

Home

The second garden is your home and your family. Just one hundred years ago everything was simpler in this garden: man was in the work or at war, wife was at home and care about children. Division of duties was easy and imposed by society. Right now, our homes work in a different way, we mix all roles, both sides can go to work and build career, we also often work from home so it’s even more complicated. In developed and prosperous societies people have great opportunities, but also have to talk more often about emotions – and it is sometimes difficult. When we were busy ensuring our livelihood, there was no time for something like that, no time to change our mind. Now it’s common, but not always good. If we will not talk, won’t be honest, there will be a lot of arguments.

Myself

The latest garden is “myself” and it’s about our passion (or road to discover it if we did not do that already). It is also about our health, our physical and mental condition – we should remember that, if not, we will feel unfulfilled and tired. Just try to focus on all except yourself and after some time listen to friends about their trips, experiences etc. There is a high chance that you will be full of envy.


As I mentioned, all hardens are connected in some way and it means, if you forget about one of them, sooner or later you will see damaging effects also in the other two. If you forget about two of them… sorry, really better not to try. Of course, everyone decides for themselves, but why not care about all three gardens?

Does it require time? Yes of course. Does it require effort? Oh yes, no doubt.

But it’s worth it and that’s the true balance of life.