November 18, 2024 Opinion No comments
November 18, 2024 Opinion No comments
In the past I wrote a few posts on learning, specifically this one, where I talk about the learning pyramid in which teaching someone has the highest retention rate followed by practicing what was learned, followed by other methods of learning (visual, audio, reading). I also have a quick overview of a book “Learn Better” in which the key premise is that learning is a skill you can teach yourself to be better at.
Not long ago I was also asked if I have a learning system. I don’t. In fact, I clearly remember how inefficient I was at learning in university by trying to memorize some mathematical proofs instead of properly understanding them and recreating when needed.
So what a good “learning system” could look like?
I think a key to good learning is genuine interest in the topic you are trying to learn. Interest could be internal curiosity or simply seeing value in learning something specific. To give few specific examples:
Now, if you are intentional about learning, say for your career, probably the first question you have to ask yourself is “What should I learn?”. These days the amount of information and resources available is just incomprehensible to our brains. As such, being selective and strategic is important. Think what would make most sense to learn in your specific situation so that there is purpose and value for you.
The highest retention of knowledge is when you teach someone or immediately practice what you have learned. I always like to think about learning as neural pathways in your brain, when you consume new information you stimulate only one direction of storing the information, but when you practice something or try to teach someone you stimulate and reinforce the retrieval direction from the storage.
If I had to create a learning system, I would prioritize practicing as much as possible. The fastest way to learn might be to learn “on the job”, but if this is not possible, the next best thing might be to set SMART goals (you know the drill).
One issue that comes up with learning something is sticking to the plan. Consistency is hard, it really is. For myself, I found that accountability, periodization, and re-inspiration are the best ways to stay on course. This weekly blog post writing is part of accountability I have. I try to re-remind myself why I’m learning something and also trying to get inspired by other folks.
So what does my learning system look like?
What would your learning system look like?
November 11, 2024 Career No comments
Recently I have been asked what career growth means to be? Without hesitation I shared that it’s two things: first, expanding the skill set, and second, advancement in position (at least in the corporate world). In this post, I want to expand my answer and also share a story or two.
In my opinion, skill development is the foundation for other types of growth. Skills make you more capable, adaptable and valuable in your role and industry. Almost all of the soft skills are transferable to new environments. As for technical skills, the majority are also transferable unless they are very specific to the company you work for (*). Something that might not transfer very well could be team- or org-specific knowledge.
Your skills, knowledge, and hard work is something that allows you to increase the scope of responsibility, gain professional recognition, trust, and as a natural consequence you advance in position, make financial progress and hopefully achieve personal fulfillment.
After answering the question, the person I was talking to shared a Chinese Bamboo Tree story (**), where we can compare someone’s growth to how bamboo grows. There is no visible growth for the first 4-5 years, which is because bamboo is expanding its root system and then in one season bamboo grows very rapidly. This is a very strong parable and I have successfully used it at work when a colleague of mine was seeking career advice.
If you stay at the same role, level, or team for quite some time it doesn’t necessarily mean you are not growing, you could be expanding your root system before you get promoted to that next level. As long as you feel you are learning new things, becoming stronger in your skills, expanding your work network, delivering some things you are definitely growing.
To extend on this analogy of plant growth, I was thinking about uprooting: you work for 2-4 years in a company, you made sizable contributions, got your promo, and slowly started to become more and more valuable and then you transplant yourself to another company. What happens to your roots? Do they survive?
I have seen people who were the first “plant” to a field and were able to grow to be the biggest of the plants, I have also seen people who had good roots but stayed in shadows for too long and stagnated, and others who transplanted themselves so often they could not grow enough on each iteration.
I was asking myself, what kind of plant am I? Google is my 5th workplace and I cannot stop wondering what I would have become if I stayed in any of the companies or countries I left behind. Looking back it seems I made the right decisions as I was able to grow to a bigger and well rewarded plant with a very diverse root system, but I have never become a really big one. Maybe I’m yet to see my real growth, who knows.
What kind of plant are you? What are your thoughts?
(*) Some of my fellow Googlers sometimes joke that we become unhirable outside because of the uniqueness of tools we use and the scale of problems we are solving.
(**) Technically bamboo isn’t a tree and belongs to the grass family. Some species of Bamboo might indeed take 5 years to grow underground before emerging above ground but this isn’t universal or common to all species. Additionally I searched for the origins of this story and it doesn’t appear like it exists in Chinese folklore. It appears this parable was popularized by western culture in modern motivational literature.
November 2, 2024 Opinion, Success No comments
Everything in life happens for the first time (and last time for that matter), but some things don’t happen at all. First kiss, first job, first home, first kid, first gray hair. Success isn’t guaranteed and failure isn’t unavoidable.
There is this martial arts dojo next to where I live. I used to walk past it and see people practice. I never did any martial arts so it was very intimidating and uncomfortable to sign up there. Everyone appeared many levels above me, and true I would get punched in the face during sparrings. Year and a half past that I have fun and feel super comfortable during our light fights. Outside of the gym this gives a psychological sense of security (it is a false sense to some degree, though, but the effect is there).
I have never been to any sauna until maybe 30 years old. I always thought of saunas as some weird place where completely naked people sweat, so it was very uncomfortable to go to sauna at first. Now I can easily outsit many people there. I love saunas.
On one of my recent work trips there was a junior engineer on our team who would strike up a conversation with everyone, literary. It was amazing for me to observe this person: while buying coffee he would chat with a barista, he would join a random group of colleagues to chat about whatever. I mean, I have seen many extraverted people, but this was another level, so I followed his example and pushed myself to talk to strangers. On the flight back I started talking to a person next to me and had a great pleasurable chat that killed the entire flight’s time. This is because I pushed myself into discomfort, not because it was natural to me.
Being in a senior position at work requires stepping outside of comfort and talking to a lot of people I see for the first time. I have been observing how other leaders are doing this. I found that for myself I need to imitate what they are doing. The behavior appears to have common and fairly simple patterns: being respectful, thanking people for what they do, catching the essence of the message, speaking but also giving others opportunity to talk, etc. Topic for another discussion, but pushing yourself to be more like a leader makes you a leader.
You need to sign-up to give that presentation at work, you need to have that uncomfortable discussion, you need to pick that daunting project, you need to step outside of your comfort zone and embrace the challenge. Growth only happens when you stretch beyond what you already know or what feels safe. Biggest successes in life come from risk taking and discomfort! (yes, there is a chance you will fail, otherwise it won’t be a risk).
This blog post is mainly a short self-reminder about the importance of embracing uncertainty and intentionally stepping into the discomfort territory. Do it – you will emerge stronger on the way out.
I signed up to showcase my rock climbing hobby at work during DEI&B fair next week. This is a bit uncomfortable, let’s see how it goes. More to come…
October 27, 2024 Book Reviews No comments
This blog post is just my quick notes and takeaways on three books I finished listening to or reading in the last month or two. There is no other reason for these thee books to be bundled into single post other than my convinience and trying to make this relatively short.
The book’s title itself is a reminder: we have roughly 4,000 weeks to live, a limited and precious resource. Some quick notes:
I’m glad I did an exercise of writing about deep work on my blog before finishing the book as it game me an opportunity to compare my thoughts before and after. I always used read/listen to books from beginning till the end; this time around I skipped first half, which explained why deep work is important and intentionally went to second part on how to achieve deep work; this is kind of stepping over myself but also because I’m convinced that deep work is key to performance. I’ve been intentionally applying what I learned from the book – this is often hard, as I need to push myself to wake early, but those 3 hours I get early in the morning are really-really super productive.
Some key learnings, recommendations from the book, not mandatorily applicable to everyone, and not in any particular order:
This is a book on athletic performance targeting sport coaches I picked from a library. I consider myself a recreational athlete (running, rock climbing, kickboxing, gym) and wanted to learn a bit of theory behing athletic performance. Some the the points below are just things I noted for myself and might be personal takeaways:
October 19, 2024 Opinion, RandomThoughts No comments
I estimate I’ve been to 10k (*) meetings in my career (holy smokes) and I’ve never written a blog post on meetings, so here it is. There are tons of recommendations online on effective meetings, things like having an agenda and setting goals for the meeting, inviting only necessary attendees, etc. In this post I would like to highlight just a few things that I think I might be doing differently and I will bring them in light of what I don’t like about the meetings :)
Let’s start with this: I really don’t like when people call for a meeting and don’t provide even a line of context or agenda. First of all this doesn’t give me or others means to properly prepare for the meeting. Effectively by not providing context or agenda the organizer is robbing themselves of a chance that some attendees will have more to contribute to the meeting. Additionally there is a good chance the meeting will be hijacked. In my view not having an agenda shows a grain of disrespect because the organizer demonstrates that this isn’t something important to them either.
Another thing I don’t like about meetings is when there is not a single output artifact. After such a meeting, I’m asking myself “What was I doing here?” Lately I started solving this problem by just starting to take notes in meetings independently of my role in the meeting. If no one is presenting their screen I will just silently start sharing mine with notes being taken. I’ve been thanked on multiple occasions for notes that appeared out of nowhere. I’ve also been complimented for keeping the best track record of 1:1 or other discussions where I play a more active role.
Oh, I also don’t like long or “that could have been an email” meetings. You know, those where all the useful information has been shared and discussed in the first 5-10 minutes and then people just chat about related topics and say they need time to think about it and respond, meaning that if it was an email the course of action would have been the same.
Oh, how about the “fill the void” where you feel like there is pressure to say something? In these kinds of meetings those who like to speak a lot take pleasure in just speaking and speaking and those who don’t like speaking secretly cannot wait for the meeting to be over.
Unquestionably we need to meet at work. The purpose of meetings is to add value, help arrive at decisions and drive progress. The things that frustrate me the most, like a lack of agenda, no clear outcomes, and unnecessarily long discussions, are often avoidable with just a bit of effort and intentionality. By always preparing an agenda, ensuring there are actionable takeaways, and taking control when needed (even as a participant), you can influence the flow and value of a meeting.
(*) 16 years x 52 weeks x [5(early career) – 20(later career)] meetings/week = [4k – 16k]
October 13, 2024 Investing No comments
“What goes up will go down” is just such a fundamental and universal concept you can apply to anything: physics, emotions, life, financials. In this post I want to have a bit of a technology view on this and also try to understand if we can ever predict and catch the “up” wave. Do you wish you had invested in NVIDIA in early 2023? I definitely wish so.
First of all let’s have a look at some of the promising technologies from the past that rode on hype and then declined in their popularity:
Potentially we can generalize abovementioned technology trends into three categories of downfall:
Now, where am I going with all of this? I’m trying to ask myself a question: is it possible to guess for any new technology if it is going to disappear, get reduced to a niche use, or will endure beyond our lifetime? Additionally is it possible to catch the “up” wave and ride it until the peak?
Let’s take the case of NVIDIA. If AI is a gold rush, NVIDIA is selling shovels. I found an article from 2019 arguing that NVIDIA will supras Apple in market cap, the argument states that the AI market will grow to 15T$ and that the computer is switching to GPU which logically makes sense.
Here are some recommendations for my future self to be on the lookout:
Do you have any thoughts on the topic? What is that big thing you missed, you think you could have caught?
October 6, 2024 Opinion, RandomThoughts No comments
I am guilty of wasting 2-3 hours daily on social media platforms and at times even more. That stuff is addictive. In this post I want to share my thoughts on the use of social media, how it changed for me (I drastically reduced its usage), and conclude with some key considerations.
To summarize: I’ve significantly reduced my time on social media, keeping only those platforms that offer clear value. The rest either distract me or negatively impact my well-being, so I’ve cut them out. Reevaluating one’s own usage of these platforms is a useful exercise to understand where the time goes and what can be done to regain control.
September 28, 2024 HowTo, Opinion No comments
If you are in a knowledge job, do yourself a favor and document everything as if your activities and thoughts were relentlessly producing logs similarly to a production server. Make it a habit and develop it so it becomes second nature. Offload cognitive burden to your computer, you don’t need and won’t be able to hold all of that information in your brain.
Let me give some of my personal examples and then follow up with how this was useful to me and others.
We all have 1:1 meetings: with our managers, peers, other stakeholders. I have a running doc for each individual person and take notes of every work conversation. For every person I create a go-link (something like go/person-andriy). This helps in 3 different ways:
I extended this practice of storing topics for conversations into my personal life. I’m usually not documenting conversations themselves as they happen over coffee or walk and it would have been super weird to type during those. At the same time those docs work as a quick refresher and I found that in most cases this hugely enriches my conversations.
Cross-reference! cross-reference! When writing documents we obviously reference the sources of information, but a step further is to also do it in reverse (if possible). This helps connect the information and traverse it in any direction. So, if there was a strategy created based on a dozen of discussions with multiple teams, adding a link to that strategy to each discussion’s document will help each team relate to what that discussion has led to.
A new practice I picked at Google is to capture “Landed Impact” in the design document after the actual launch. A design document would normally have effort justification, which often includes expected impact, but then “Landed Impact” would capture what actually happened. And I keep adding to that section. As a very specific example, I finished a project that reduces the monetary impact of outages a couple of years ago, and relatively recently there was an outage that would have cost us a lot more money if that project wasn’t done. I simply went to that old doc and documented this more recent impact. Why spend effort on this? Here we go:
Presence of good artifacts makes a huge and oftentimes decisive difference to the outcomes of performance reviews and promo discussions. Think about the promotion process, you cannot even imagine how the presence of solid artifacts is important. With the artifacts in place people don’t have questions, they are like “here is the impact, here is leadership, this is influence, SOLID case”. Instead if artifacts are sloppy it becomes hard to drive conclusions from them, people are like “scope of work is unclear, impact might not be for the next level”. With good artifacts you are offloading cognitive load not just for yourself but for others, you make their decision process easier and they also feel like their responsibility is taken care of.
Do you know those dreadful situations when a project is axed? This could be in your control (you didn’t find enough impact in work) or outside of your control (reorgs made this part of thing irrelevant, it is too late to market). Are a few months of your effort all waste? Nope, if you documented the learnings, basically you have your retrospective and learnings document ready. You hand it over to leadership and they can use it as a clear case of work being done. A quick failure is also ok as long as there is learning from it and how do you know if there was learning if there is nothing in the end?
Does tooling matter? Well, someone could argue that it doesn’t as long as it does the job, but I’m yet to find any tool that works as well as Google docs: it is accessible everywhere you log in, searchable, shareable, collaborative. Works well at work and works well for personal things. Even this blog post originated in a Google Doc. And, yes, I tried other tools.
Same as the introduction: do yourself a favor and document everything as if your activities and thoughts were relentlessly producing logs. Offload cognitive overhead to docs and make your brain busy with now.
September 22, 2024 Debugging, HowTo No comments
This is original content by Andriy Buday.
I just wanted to document a few different strategies for debugging and root-causing issues that have worked for me in the past, with examples. Two things about this post: it isn’t an attempt to provide a holistic view on debugging, mainly because there are plenty of articles out there. Also, I recently tried using an LLM with a relatively simple prompt, and it generated quite an impressive summary. Instead, I wanted to share a few examples and just a few approaches I like. I have two or three favorite strategies for debugging:
In my experience, if something worked and then stopped more likely than not a change was introduced recently, this is why there is a concept of “change management”. Simply looking at anything that changed at the same time when the problem appeared helps. Steps:
Sometimes an error message could give a straightforward path to identifying an issue. Happy scenario could look like this: you find the error message in the codebase, open the file change history and right there you see a problematic change. But things aren’t always as straightforward.
Because a symptom can be at the end of a long chain of events I don’t always focus just on the clues from the symptom, but rather advise to look at anything unusual starting at the same time.
As an example, I was involved in root causing an issue where our server jobs were crashing and could not startup after the crash. After looking through logs it seemed something made them not able to load a piece of configuration data, so we looked at stack traces of the crash but it wasn’t bringing us any closer to solving the issue. Instead, by looking at logs at healthy servers we noticed non-critical warnings and inconsistency in configuration. These two things seemed unrelated but they started appearing around the same time, so by looking at logs at healthy servers we identified the fix.
As another example, a colleague of mine was investigating an issue when an API was crashing at specific type of requests, by looking at the changes to the API he couldn’t see any changes around the time of when this started happening. I suggested we expand our search, and see if other clients of this API had any changes and what we found was that someone updated all of the clients of the API at the timestamp of when we started to see the issue, but they forgot to update our client.
My next best favorite approach to debugging is reduction in the universe of possibilities. What can be better than halving it every time?
I found this approach to be the best when debugging a bunch of recently written code. If this is the code you have locally, you can simply split it into smaller chunks (like commenting out half of a function). If you pulled recent changes by other engineers, a strategy could be to sync to a version midway between your original base and the most recent changes. I have applied this so many times it feels natural.
As an example, we perform huge number of experimentation at Google, occasionally these experiments cause issues, starting from server crashes or impact on revenue in which case automatic systems normally kick in and disable culprit experiments, but sometimes things are more subtle and a culprit has be found semi-manually in a new batch of experiments, in which case we apply bisection strategy.
Yeah, you’ve read that right, google it after you finish with this post. Rubber duck debugging is a technique of articulating your problem to someone else, explaining what research has been done so far and what you are solving. Oftentimes, this results in an “aha” moment and a realization where the problem is. Since you don’t need too much involvement from another party other than listening, you can just talk to an actual rubber duck.
As a story, I once told about rubber duck debugging to a manager of a team of consultants with whom I worked, the next day he bought all of us rubber ducks. It was a very nice gesture.
But a bit more seriously, there is a lot of merit to this strategy. I have joined dozens of small calls with other engineers where they tried to debug a problem and when after explaining the issue to me and myself just asking them simple “why?”, “give me more details” questions at some point they realized where the problem was. All of this without me even understanding their code or what they are doing.
As I mentioned, I didn’t attempt to write a holistic overview of debugging strategies. Other things that worked for me were: using debugger (obviously), profilers, other tools, stack tracing top to bottom and bottom to top, logging more things, etc, etc. There simply are so many ways to diagnosing and root causing a problem and not all strategies are equally applicable.
What else worked great for you?
September 15, 2024 Opinion No comments
This post is original content by Andriy Buday.
NOTE: I wanted to gather my thoughts on the topic of “deep work” before going through the book “Deep Work” which I just picked and started listening to.
When and where are you the most productive? Does it ever happen to you that in a few hyper-focused hours you can complete as much as in a few days of ordinary pace work? Do you think it is possible to make these hyper-focused hours happen regularly every day?
In the past I could be really focused on simpler, somewhat repetitive work. I remember I once had to add some extra data to our database and pull it through all layers and get into the frontend. Typically in that project this would take a week or so, but because I did this so many times one evening of hyper-focused work was enough and the PM who requested this was super surprised “you are very quick” with big eyes. Occasionally this looked like I was an overly competitive person. I remember at my first job I got an assignment to create some medical forms. I was maybe 2-3x faster in creating them compared to a more tenured person. I didn’t compete, it was just focused and fun work to me. This type of work is something you can grind through if you have a looming deadline.
But what about the work when more deeper thinking is required? It’s normally harder or next to impossible to bluntly grind through. It’s different in a way that any distraction derails the train of thought. Imagine, you are writing a design document, and you need a bit of extra info, so you search for that info, and a few dozen browser tabs away you realize you no longer remember what you were looking for and what you are doing on this particular page and that now it’s time for your meeting on another topic. I see deep work as periods of intense uninterrupted focus when I can make major progress on something hard to do.
For me ideal stretches of focused time are always longer than 30min and shorter than 3 hours. I found that getting into the deep work requires “warming up”, pretty much like in sport activities. After that, maintaining intensity is easier but never lasts longer than 4 hours, after which productivity goes down rapidly.
There is limited mental capacity available on any day for deep work. I imagine it as a capped reservoir. The only way to have it full is to be well rested (proper sleep night before, healthy body and mind). Working in focused mode is like directing the flow to harvest energy on what you need. Distractions are like huge leaks that take time to fix. The reservoir is very hard to expand, but you can train to make use of the flow much faster without the lag time, so instead of requiring 30 min to get into the focus you might train to shorten this time.
Another aspect of focused work for me is the surrounding environment. I am working on creating routines. Say, to write blog posts I decided to do them in a bubble tea place each time after dropping off my kids for karate classes. I know I have an hour of active work and there will be very little time during the week to get most of it done, and then one more stretch of work early on Saturday or Sunday morning. This post is written in three one hour sittings.
Going through social media feeds on mobile phones is an obvious time and attention killer. But even something that is more important and you have to do has detrimental effects. For instance, just 4-5 meetings are normally enough to exhaust mental capacity for any deep work on that day, especially if they are spread throughout the day. Or, say, replying to messages from your boss is something important, but again if it comes in the middle of your deep work on, say, writing an important doc you lose your attention and will have to get into the flow of writing again. Small things often go a long way to reduce distractions, things like putting the phone away, having a clean work desk, using full screen mode, etc, whatever works for you.
A “cheat code” appears to get those 3 hours of work before any meetings. I know it is a cliche to say “wake up at 5AM and get most work done before others wake up”. I found this to be true, except it doesn’t work for me mainly because at 5AM I’m a zombie and not a human (maybe if I was a robot it would have worked ;) ). This works though if I go to bed at 9PM, which is super difficult as even my kids laugh at me when I mention going to bed this early.
I mentioned deadlines at the beginning and I think they are a very important motivating aspect for actually getting into the deep work. A caveat that comes with deadlines is that often they are perceived as something far in the future so we tend to procrastinate until its too late. Thus, something that works better are shorter cycles. For me, weekly cadence seems to be the best, both in my personal life and at work. For projects that I drive at work I usually establish a weekly cadence of planning/commitments. I have written about setting up challenges with friends and I’ve been doing this in one or the other form since 2016.