December 21, 2025 YearPlanReport No comments
December 21, 2025 YearPlanReport No comments
“Plans are useless, but planning is indispensable” is probably one of my favorite quotes about planning. This is to mean that things are rarely going exactly as planned, but the value of going through the exercise of planning is so great because it prepares you for many possible scenarios, it makes you think about the problem more holistically with the end in mind and spread over time.
The new year is coming soon and I am working on my next new year resolution. I’ve been doing those since 2011 (yup, that’s about 14 years). I’m often obsessed with creating annual plans and meticulously following them. Oftentimes this brings me the results. I think the reason why I ended up at Meta in the US was because it was on my “Career Strategy” document and I did plan for it, I did put some work behind that. Other years I’ve built some habits like doing exercises often or finally made myself wake up early in the morning after many years of struggle. So, yes, I do see very and very tangible results of my annual plannings.
Now, where can this go wrong? You can have a perfect plan and execution but if your direction is wrong you end up in the wrong place. The way to think about this is in mathematical vectors, vectors have both a direction and a velocity. Too much velocity off course and you are further away than steady slow pace but in the right direction. This is both applicable to projects at work, like writing perfect code for a feature that no user cares about, or personal life, like pushing to buy a big house to only realize later in life you missed out on experiences in life.
As I write my next annual plan I am trying to be more deliberate about the direction. Yes, I will still have my spreadsheet and my habit trackers, I can’t help it. But I think this time around I will be placing more emphasis on long term goals and if my plans bring me there and also challenging the plans some some proper checks, like:
Being honest with answering these questions might be challenging, but that’s the right thing to do. I encourage people to do planning for all of the aspects of their life. The mental exercise of understanding your constraints and resources is indispensable. Just going through that exercise might reveal something you didn’t realize earlier and even if things won’t go as you planned, you would know to do a better job next time and succeed next time around. Give it a try.
December 14, 2025 Book Reviews, Opinion, Personal No comments
I needed a reminder today that things sometimes get tough. It is important to understand that everybody ‘fights their own demons’ and you are not alone. Everyone around is struggling, sometimes you see this, but most of the time you don’t.
To be brutally honest, I’m a big overthinker. I go through all possible and impossible scenarios in my head. This often leads to me spending too much time on some problem, almost getting to the state of paralysis, but sometimes this does pay off. I remember years ago, I worked on a migration of a service, I simply could not get to sleep before checking each and every edge case. The thing worked perfectly, but how much mental capacity it had consumed was probably overboard.
Even the most successful founders and people around have similar struggles. I just finished reading “Build: An Unorthodox Guide to Making Things Worth Making” by Tony Fadell, creator of iPod and Nest. I’m bringing it in this context because there are chapters on personal growth, struggles of building something, making mistakes, learning from those mistakes, and rising again after making those mistakes. Fadell doesn’t pretend the anxiety and stress aren’t there. Instead, he offers a framework for navigating the chaos. Here are some takeaways:
One of the chapters in the book talks about the difference between ‘working hard’ and ‘killing yourself’, one coming from passion and being driven to build great things, and another coming from fear (being terrified of what happens if you don’t work hard). I found for myself that I do like to work hard, but also need to be honest about the source of that drive. If passion that’s sustainable, if fear then it is not.
Fadell talks about his time at General Magic as a spectacular failure that taught him everything. It reminded me that my ‘overthinking’ is really just fear of being wrong. I am often fixated on avoiding mistakes, but the only people who do nothing make no mistakes. Failure is just data for the next iteration.
My paralysis usually comes when I’m looking for data that doesn’t exist. The book simply says that sometimes data isn’t there (yet) and it is ok to bet on your intuition and just move (“just do it” as Nike’s slogan says). Overthinking without data or with made up data is just spinning wheels and wasting energy.
The author argues that any meaningful project will have a ‘Crisis’ point. I realized that in my career I had so many projects where it really felt that things were about to fall apart only to find a way to still ship things in the end. Stress during those times is normal, it is just part of the process. If you had zero stress, then it is likely you were not pushing yourself or your team outside of the comfort zone.\
There are so many other great chapters in the book, like “Why Storytelling”, “Assholes”, “Heartbeats and Handcuffs”, “How to spot a great idea”, and so many more, but one lesson I’m taking from the book today is that the path of success and growth is always hard, often filled with failures, stress, and hard work. If you are driven by passion and wanting to make a difference, then push for this, but if your hard work is coming purely from fear, it might be a good time to take a break and see what you can learn.
December 7, 2025 Career No comments
In sports, no matter how elite the athlete is, they always have a coach. Even absolute world champions have someone who will critique their form, strategize with them about the next event, encourage and push them when they are tired. Yet, in software engineering, I often see people don’t get any help and just try to power through their own career. Imagine, that you can ‘test run’ your career decision, run A/B test on it, and then make the best decision to be deployed to production. This is essentially what mentorship is about.
There are always people who have been there before. There is someone who went through the same promotion, joined the company you are considering joining, works in the domain you are interested in, built a startup, or is simply in a similar situation. You want to talk to them and learn from them. You will benefit from leveraging their experience. Instead of doing your own O(n) you can learn about optimized O(1) approaches right away.
Yes, absolutely. Make them and quickly recover, at the same time there is only so much of this life. You can live a lifetime and not make enough mistakes, and some of them are painful, especially if they are ‘one way door decisions’. So I say: make mistakes naturally while learning how to avoid them and knowing about the mistakes and lessons of others. Other people’s experience is so much cheaper to learn from than making costly mistakes on your own. I think the room for making mistakes is infinite, so, maybe, make them when it is more of ‘two way door decisions’ but get as much advice as possible for irreversible decisions.
Let’s say you are interested in some particular tool or technology and you know of a person who is voice in that field, say for AI that would be Andrew Ng or Andrej Karpathy. You probably won’t get 1:1 with Andrew Ng, but what you can do is find people who report to them or work with them, who appear on the same white papers as them and get in touch with those people. You can also be very specific when you reach out asking about a very specific part of their work and offering something in return. And I am not talking nonsense – I personally had small exchanges with major bloggers (back then) and with authors of some tech tools, books. What I’m saying is that people are more accessible and open than you might think. This requires high effort, but the ROI on a single response can be career-defining.
Although it might seem you are asking for someone’s time like if it was their charity to you, but that is not the case. There are multiple reasons why they will be interested in helping.
One of the mentors I had once said that finding a good mentor is a bit like dating. Not everybody ‘clicks’ even if they seem to be the right fit on paper. In my opinion you need to have a session or two with them to understand. If you are in a big company there are official channels to establish mentorship and I encourage you to try it out. If you are looking for a mentor outside, it might be a bit weird to ask someone ‘Will you be my mentor?’ (sounds almost like a marriage proposal on a first date), but instead you probably want to ask for specific advice on some topic, share your own thoughts on the topic of their interest and build the relationship naturally. Oftentimes for mentorship to be effective you don’t have an official ‘mentorship’ label, and it can just be occasional lunch.
In my opinion, a good mentor will be asking you questions that make you think a lot. They would challenge your thought process. Give new perspectives. Good mentors give you better questions than the ones you come up with.
Treat the first session like a system design interview. Have requirements and constraints in mind. Explain the goals of ‘design’, give some timeframes. For example: “I want to learn how to deal with ambiguity, and this is the situation I’m in …, my goal is to close this ‘gap’ for my next promo by x”.
Follow up! Yes – that’s the best advice I have. After each meeting with your mentor, make sure to follow up on the action items. It does multiple things: you are not wasting their or your own time; you are showing respect to your mentor; you are building discipline in yourself. Going to your mentor with the generic “How do I grow?” The question is a bit discouraging. Your mentor will have to put a smart face on and give you a generic answer. Who needs that? Go with very specific questions, create action items, report back on them, put work in. Close the loop!
I like being accountable and keeping people accountable. As such for my mentorships I keep a list of Action Items and generally strictly follow up on them. This isn’t the only valid approach. Some people find value in more casual and relaxed ‘coffee chat’ conversations.
I think getting more perspectives is always healthy. You need one person who is technically better than you, one who is politically savvier, and one who understands your personal values. There is, obviously, a limit to how many mentorships you can handle. Personally I have 1 or 2 mentors at any given time and besides them I have some network connections that work a bit like mentorships where I learn from them, even though there is no label ‘mentor’.
Sometimes you outgrow a mentorship relationship. Let’s say you reached the goal you wanted to achieve. If you have mentorship within the bounds of a company, this is super easy to do, just tie it to the performance review cycle, thank them, leave them good feedback they can use in their perf review and move on. It is fair, a good mentor wants you to outgrow them, it’s awin-win.
If the mentorship is outside of a company, then it is more likely to have natural evolution. Never ‘ghost’ your mentor. Instead give it a logical conclusion, thank them, mention switching to more of ‘ad-hoc’ sessions instead.
You cannot really A/B test your entire life and career. If there are ways to move faster and learn from others then I would say mentorship is definitely one of such ways and you should leverage it. Whether you are looking for a mentor or are ready to be one, remember: we grow faster when we grow together.
P.S. This post is a ‘Thank You!’ to my current and past mentors as well as my self-reminder to leverage this even more in my life for other areas, such as my sports, personal growth, building ideas, etc.
November 29, 2025 AI, Personal No comments

Disclaimer: I do not promote any of the tooling mentioned in this blog post nor have I used the vast majority of them. All of the text written by me is my personal opinion. All of the text generated by LLM is its creation – I will be explicit where it is LLM and where it is me.
Unlike most posts where I make emphasis on my own experience and writing by myself, this blog post will be assisted with LLM, but in a good way. I want to create a comprehensive AI toolset list to explore for myself. Although it will have some tools very specific to my personal needs (like climbing) I believe you can apply the same approach to get your ideal list. This could have been LinkedIn post “Definite list of AI tools you must use” but I cannot stand those posts. This is just idea on how you can come up with your own list:
Prompt: “Refine this prompt: Perform research on the landscape of currently available LLM products and AI tooling for both professional and personal development for the user profile and wider audience, using referenced examples of already used tooling. User Profile: A Software Engineer at a big tech company in the Seattle area. Family with two kids, sports (climbing, Muay Thai, running), writing blog posts, coding for fun, and wondering about life in general. Researching topics such as: health, finance, 3d printing, writing about tech, coding, taxes, parenting, relationships, career decisions, trip planning, real estate, etc. Reference examples: ChatGPT, Gemini (deep research, chat, image gen), Claude Sonet for coding, locally running small LLMs, trying out different AI startups for intermittent tasks.”
The above text was me. The below text is the proposed research plan by LLM:
(1) Research the current landscape of major LLM products (such as ChatGPT, Gemini, Claude) and emerging AI startups in late 2025, specifically analyzing their capabilities for professional software engineers (coding agents, debugging, architecture design).
(2) Investigate the ecosystem of open-source and locally executable LLMs (compatible with Ollama) and privacy-focused tools suitable for a tech-savvy user running consumer hardware.
(3) Search for specialized AI tooling and applications tailored to the user's specific hobbies and creative interests:
(a) Sports performance analysis for climbing
(b) Sports performance analysis for Muay Thai
(c) Sports performance analysis for running
(d) 3D printing modeling and slicing optimization
(e) Technical blogging and creative writing assistance
(4) Find AI resources and tools assisting life management, covering:
(a) Parenting, education, and kids' activities in the Seattle/Bellevue area
(b) Real estate market trends and housing analysis in Vancouver, BC
(c) Personal finance, tax preparation, and investment tracking in the Seattle/Bellevue area
(5) Explore AI interfaces designed for broad life topics, such as philosophical conversation, relationship coaching, career development planning, and travel logistics.
(6) Synthesize the findings to categorize tools by professional utility versus personal development, comparing them against the user's current stack (ChatGPT, Gemini, Claude, Ollama) to identify gaps and superior alternatives.
I’ve run 4 reports with the above prompt or some variations of it. In the end I got four 20 page documents. After skimming through them it is obvious that either: a) some info is outdated, like recommending Claude Sonet 3.5 when I’m already using 4.5; b) recommendations are too generic; c) some sections were too verbose and some too short for my needs; d) some recommendations are contradictory, for instance using Ollama for privacy and then suggesting some startups that suggest uploading private data to small startups.
One idea I had was to feed all documents into another research specifically asking for summary with bullet points. Unfortunately the result was a 5th document of not better quality. Another approach I took was: “Create a maximum 5 pages summary from the four similar documents. Do bullet points. Keep links to websites. Do NOT do research.” This gave much better results.
So I’ve got approximately what I need. The next step was to iterate a few times on the list. E.g. I asked LLM to add a list of general health and longevity tooling following the same format. Copy-paste, read through, and add more sections. The appendix text in the end is the list by AI, with minor edits from me.
It is obvious that I won’t be trying all of the tooling (that would be crazy) but to do exploration of what’s available and within my area of interest. As an action plan I highlighted some tooling to use and play with below or use more actively:
I believe the AI and LLM tooling landscape is very saturated. There is a tool or a startup for almost anything you can think of. The point is not the specific list but how I arrived at it and how it is tailored to my needs. In this blog post I provided a method at arriving at your own list of AI tooling that is applicable specifically to you.
Alert: wall of text below.
Disclaimer: I am not advertising or promoting any of the tooling below, have no affiliation to any of the companies or products mentioned. The text below is generated by LLM. I only reviewed it.
The technological paradigm has shifted from “Chatbots” (passive Q&A) to “Agents” (active execution). The competitive advantage in 2025 belongs to the “Augmented Architect” who orchestrates specialized AI entities to manage full-stack development, complex financial engineering, and physical performance.
The modern workflow bifurcates into Integrated Agents (living in the IDE) and Headless/Terminal Agents (operating autonomously).
For IP protection and privacy, running models locally on M3/M4 Max chips (Unified Memory) is the standard.
For a Seattle engineer with RSUs and complex taxes, standard budgeting apps are insufficient.
Tools for deep research, interactive learning, and risk-free simulation (Paper Trading).
AI is transitioning from logging data to providing active biomechanical coaching.
The intersection of “Quantified Self” and AI for preventative health and programmable biology.
Bridging the gap between software and physical artifacts.
Tools acting as “Chief of Staff” for the household.
November 23, 2025 AI, Blog, Opinion, Personal No comments
Original content by Andriy Buday
I’ve been asked multiple times about my writing process, how I keep consistency, and why I write blog posts at all. Who in their right mind spends multiple hours weekly to write when there are LLMs that generate the same quality text within a minute? Let me share my secrets and answer these 4 questions:

Image credit: Gemini Nano Banana Pro. I admit the image is cheesy, lol, but it’s also fun.
Over time I confirmed to myself that ‘writing is thinking’ but also unlike speaking or thinking in my head writing is a structured way of thinking. You get the privilege of ‘parking’ some thoughts for further elaboration, you get the privilege to validate your thoughts with external research, you get all the privilege to mold things and shuffle them around, decompose and synthesize again.
Undeniably writing is a skill, but, in my opinion, it is a transferable one. By working on improving my process of writing it becomes easier for me to write documents at work and the easier for me it becomes to write my personal documents (financial planning, goal setting, emails, etc). The more I write the easier it is to overcome that initial ‘hurdle’ of starting a new document. I am a doc producing machine at work: meeting notes – I’ve got it; short design doc – I’ve got it; just documenting my work trip – I’ve got it; producing ‘announcement’ document – I’ve got it. None of it seems daunting. I also wrote a post on “Why documenting everything you do at work matters” believing it is beneficial for your career, especially performance reviews and promos.
Here is a big secret, my dear readers: I’m writing mostly for myself, and I have a strong argument why it is worth my time instead of just prompting LLMs. For the sake of argument, I just kicked-off Gemini’s ‘Deep Research’ on the topic of tech writing, answering 4 questions from above. I’m confident that in ~3 minutes I will have a PhD level research paper on this topic. What do I gain from that research? What do you gain from that LLM research? Well, we become consumers – I can read that research paper and, for sure, that will have many punchy arguments and external pointers to like 100+ websites to learn from, but this trains our “info => brain” path, this does not train our “brain => info synthesis” path. Very specifically, next time when you need to produce new information, your retrieval/producing ‘paths’ in your brain are not trained for that.
Let’s also do some numbers to see the worthiness of this activity:
To be honest, at times it is very challenging to come up with new blog post ideas and even when I have an idea expanding on it is also quite a tedious process. I have a “blog post ideas” document which just sits there in my Google docs. Whenever something crosses my mind I would add it there. Another source of ideas is just some question I would get from someone either at work or in my personal conversations. For instance, this blog post was inspired by a person asking about my writing process as he was struggling a bit with writing some roadmap/design document at work. I hear you. This blog post is for you.
At very early stages I usually start with just pouring thoughts and ideas in raw, unfiltered, and very unstructured ways. This is just the expansion step of my framework of dealing with ambiguity. At this stage focusing on quality, perfection, structure is counter-productive. If this is a technical design document, then some template for structure is usually already given, so that ‘pouring’ thoughts happens in compartments. Then, once I have lots of unstructured thoughts, I do more of research, I try to find key points and rephrase where needed, this is where trimming also happens. At later stages I would use LLMs to help me out, but I am generally against using LLMs for everything, and definitely not using for my blog writing. At work, generating summary or bullet points or initial structure is definitely easier with LLMs, and it would be a mistake not to use it.
Yeah, I do use LLMs – but not for writing or structuring my thoughts but for other purposes. The main one: finding blind spots in my thinking. I have made many profound realizations of missing some key arguments thanks to LLMs, not only that, even in my personal life I came to realize that there are things I perceive simply differently to other people – eye opening. Another use of LLM is to suggest refinements to text, but not so much proof-reading, unless this is obvious typo catches. Honestly, sometimes, I just cannot stand all this ‘sophisticated flowery’ text generated by LLMs. When I see people write ‘significant impact drastically improving leverage of comprehensive coverage of’ – I know it is LLM and it sucks. You can know these are my own words, because LLMs avoids confrontation. Another way I’m using LLM for my writing is coming up with a common theme in my thinking and generating ideas for the best title.
In the light of LLMs I found it to be ever more important to focus on my own experiences, strong opinions, and on building my own personal expertise. That’s the main distinguishing factor. No LLM has my brain or knows my thoughts.
This is another question I get quite often. The answer: Consistency is Hard. The way it works for me is a multi-year habit building. I failed many times and I had to re-start it over and over again until it actually started working in a connected chained manner. The analogy I give is from rock climbing: to climb a mountain you connect multiple single pitch climbs. We get inspired at times (new year resolution, someone inspires you) and then you do a few iterations and then you fail. I say: get inspired more often, on purpose, and then connect into a continuous chain! Get inspired by books, people you admire, your mentors, your super-smart colleagues, someone you love, and last but most importantly, your future self!
Writing is not always just the output, but also the process. I see writing as “gym for the brain”. For sure, LLMs can lift weights for you, but that won’t make your thinking and writing stronger. It is like watching fit and strong people on Instagram and wishing you will be one like them without doing anything. The world is dominated by consumption and in my opinion being able to structure your thoughts and clearly articulate is something that will make you stand out.
Below are some interesting extracts from the 17 page ‘Research Paper’ produced by Gemini on my ‘deep research’ request about technical blow writing and from analysis of the above text:
You mention LLMs generate “flowery” text that sucks. While often true, advanced prompting can mimic style fairly well. Suggestion: Strengthen the argument that the value isn’t the final text, but the struggle to produce it. Even if an LLM wrote a perfect post in your style, it would still be a “waste” because you didn’t do the cognitive lifting to get there. It’s like sending a robot to the gym for you.
Blogging increases an engineer’s “Luck Surface Area.” This concept suggests that the amount of serendipity (job offers, speaking invitations, consulting opportunities, co-founder inquiries) one encounters is directly proportional to the number of people who know what one is doing.
Beyond the internal mechanics of a current employer, blogging functions as a potent “sales aid” for the engineer’s broader career trajectory.2 Recruiters and hiring managers at elite firms increasingly value communication skills as a primary differentiator. According to industry data, a significant majority of recruiters prioritize communication skills, sometimes even above raw technical proficiency, because technical knowledge can be taught, whereas the ability to articulate complex logic is a rarer trait.
The process of writing requires the linearization of thought. Code can be non-linear; it jumps between functions, modules, and asynchronous callbacks. Prose, however, must flow logically from premise to conclusion. This forcing function exposes gaps in understanding. As noted in the analysis of engineering blogging benefits, writing a blog post often reveals that the author does not understand the code as well as they thought they did. This aligns with the “Feynman Technique,” which posits that one does not truly understand a concept until one can explain it in simple terms to a layperson.
However, LLMs struggle with context, nuance, and novelty. They cannot hallucinate genuine experience. They can explain what a circular dependency is, but they cannot explain how it felt to debug one at 3 AM during a Black Friday traffic spike, nor can they navigate the specific political and technical constraints that led to that dependency in the first place.
The value of human writing has shifted from Transfer of Information to Transfer of Experience. The “Small Web” movement is a reaction to this; it is a flight to authenticity. Readers are looking for the “red hot branding iron” of human personality—the idiosyncrasies, the opinions, and even the biases that signal a real person is behind the text.15 As AI content proliferates, the premium on “human-verified” knowledge increases.
Gergely Orosz serves as the gold standard for the modern technical writer. His transition from engineering manager at Uber to full-time writer was built on a specific process 39:
November 16, 2025 Opinion No comments
I was thinking about what makes a software engineer productive. There are so many things that come to mind: enough focused time, right tooling, fundamental knowledge, soft and hard skills, energy, motivation, attitude. So much of everything and you can definitely find arguments online for one or the other being the most critical. In this post I want to argue, what is more critical, but rather want to make a point that generally there are two categories and then suggest some action items in the end based on this. Additionally, I will try to present examples with personal stories.

Image credit: Gemini
These are examples of things where being good enough is usually sufficient to get a great boost in productivity but where pushing for being world-class good only gives smaller diminishing returns and only makes you good in that specific area.
Typing speed. Naive example, but for its simplicity it’s easy to understand. Extremely slow typing speed would slow you down. But the difference between really fast 100wpm and 150wpm is tiny for your productivity as a software engineer. To give a personal flavor, back in my university I trained my typing so I could type fast but then when I was in a sports programming competition (speed matters there), the guy who was a slow typer but a ‘big brain’ easily would beat me on hardest problems.
Tooling familiarity. For example, your IDE. If you get lost on how to use it at all, doing anything even simple is extremely tedious. Remember how frustrating it is to find some simple functionality that should be there right at your fingerprints. I would say this is logarithmic as well, but the curve bends at a much higher elevation compared to typing, so you do need to spend deliberate time to learn core functionality of IDE and your entire productivity will be elevated. Knowing some nice rarely used features probably won’t help too much. Back at my first job, I learned how to be productive with JetBrains ReSharper and could execute large refactorings quickly – this distinguished my productivity from others, but not too much from others who knew these tools as well.
Physical and mental health. Being sick sucks for productivity so it is clear the healthier you are the better your productivity is going to be. The difference between being “generally healthy” and “an elite athlete” on your ability to code is not 10x, lol. My intensive Muay Thai classes don’t help me with my coding at all, but general weekly activities help maintain a healthy baseline that doesn’t make you ‘tired’. Arguably this becomes more important as you age. With age our mental capabilities degrade a bit as well as needs for rest increase.
… there are more …
This is a category I have for things where being better actually makes your productivity be higher, either just linearly or even exponentially, being good is good, being better is much better, and being great makes you 10x.
Fundamental knowledge and understanding. The way I imagine it is that fundamental knowledge is setting the upper limit on your productivity. If you don’t have enough fundamental knowledge it would be hard to break through the “ceiling” and come up with something truly innovative. Yeah, that’s why big tech is chasing those ML PhDs with ludicrous pay as this is what is pushing that most upper boundary limit. That’s why new grads, people who acquired some strong knowledge, are like those big unknowns with huge potential. I know many folks who studied with me, but having had more in-depth knowledge, have achieved greater results sooner.
Consistency. If you are productive consistently, the progress might not be visible immediately but over time it will become apparent and accumulated and it will get you really far. This time I think of this somewhat as linear dependency up to a point, but I also think there is a ‘breaking point’ where this converts into exponential uptrend – there aren’t many people in that space to even compare with you. Imagine someone with great knowledge, but just not consistently utilizing it.
Mental resilience and attitude. Having the right attitude towards dealing with stress, projects, being ‘can handle anything’, being resilient usually sets apart people who get stuck at some point and those who get more done. Resilience is what allows you to tackle a complex, multi-month project without giving up. It’s what allows you to take criticism in a design review and turn it into a better product. This one is arguably hard, but I would also say this psychological factor is huge.
Soft interpersonal skills. If you are a single engineer trying to do something your productivity is capped. Someone who can clearly articulate a technical vision, persuade a team, and mentor others can be that “multiplier” of their impact across the entire organization.
… there are more …
So where am I going with these two buckets of Hurdles vs Levers or whatever we call them? Why does it matter?
IMO it does matter a lot as most engineers spend their time optimizing the wrong thing.
Let’s conclude this as a framework:
What are your thoughts? What obvious examples have I missed? Do you generally agree with this categorization or think there is even a 3rd category?
November 9, 2025 Uncategorized No comments
Have you ever thought about large software systems as organic living organisms? This sounds a bit odd and, maybe, philosophical. Starting with first principles: everything in the world is based on fundamental physical laws. When we think about the organic world we often imagine fuzzy, imprecise, evolving and reproducing things. But when we think about a software program, we often imagine strictly deterministic outputs to given inputs with no typical attributes of living organisms, though on a completely fundamental level both are build with the same basic physical particles and follow same laws. At the level of modelules of even proteins organic world is fairly deterministic similarly to small software systems, but when we get to a system that is built by hundreds of software engineers over a decade that serves millions or billions of requests per day it has more resemblance of a living organism than of that exact deterministic machinery.
I could think of multiple similarities, for instance:
Counterarguments could be things like:
Working for multiple very large companies serving billions of users definitely made me think that large software systems grow beyond human-scale comprehension. Sometimes I think these large systems are organisms and software engineers are part of this organism working on making parts of this organism alive and evolving. Also thinking of an analogy of software engineers looking after a large system as gardeners looking after a living garden. If it’s not looked after properly it becomes messy and bushy.
What does this mean practically? Well, this was just a thought I typed in, so not 100% sure but, maybe, it could mean:
November 2, 2025 3D No comments
Not sure if there is a definition for ‘vibe 3D printing’, but watch me do it, LOL. I bought my daughter a 3D printer for her birthday half a year ago. She prints a bunch of cool stuff from printables.com or does simple models in tinker. Some of the models she is printing are crazy complexity and quality. I was wondering how much 3D printing I can learn/do in just half a day or so. Here we go.
Project: creating custom magnet with topographical map featuring engraved run from STRAVA.
This is the end result:

The context is that I used to go on 10k runs with friends around Burnaby Lake in British Columbia. I no longer live there but my memory of good weekly Sunday runs remains.
First I went to my strava runs and took a screenshot of an actual run. Now, a more correct way would probably be to fetch GPS coordinates either from Garmin or Strava, nevertheless I started with images in a true “vibe mode”.

Now, I only wanted to extract this red line into a 3D object. I expected this to be fairly challenging for someone like me who knows nothing about 3D printing, photoshop or other tooling, so I used Gemini LLM. I convinced LLM to convert this image to just a red line and white background. This took quite a few prompts, but it worked much quicker than it would take me to figure this out in a proper tool. I got this:

Next, I wanted to get a 3D model out of this, the issue is that the image is JPG. I tried some AI software called MeshyAI, but it generated a really bad 3D model, so instead I used a multi-step process. I used some online tool to convert my JPEG into SVG, so I can programmatically work with it (yeah, now GPS coordinates would have been better).
Next, I vibe coded python script to use Blender’s tools to convert SVG to STL (3d printing file).
https://github.com/andriybuday/burnaby_lake/blob/main/svg_to_stl.py In my vibe-coding I also added platform so I can print it right away and validate it looks ok.
So now I got some reasonable 3d printable trail map, which you can see below in OrcaSlicer:

Next, I wanted to take this even further and generate a topological map, potentially with buildings. Turns out there is an add-on “Blender GIS” for Blender software. I had to register at https://opentopography.org/ in order to get an API key for retrieval of topology. This is where things got a bit more complicated. Specifically, I could print buildings but the elevation wasn’t printing.
Next I had to export this into another STL with buildings on top of the topology.

Now that I had different objects prepared, I went to add them to Orca Slicer. The most challenging part with terrain was that it wasn’t printing because it was just a surface floating in the air instead of filled-in mesh, so the technique that worked for me was to assemble Cube and meshed terrain from Blender and then do Mesh binary difference between the two, leaving the bottom part of the Cube that was sliced by the terrain. This is what I got in the model:

Turns out that printing tiny buildings actually doesn’t work too well so I stopped on just using the terrain and the trail. Here are 3 results:

Registered with strava API, then vibe-coded the tool that retrieves GPS coordinates and changes them to SVG. SVG is already importable into Orca slicer and Blender.
Here is the git repo: https://github.com/andriybuday/strava/tree/main/strava-plugin
It would take another day to actually make properly working nice plugin, but next time around I would have some building blocks in place.
Yesterday’s activity on strava: https://www.strava.com/activities/16326534438
Same activity after running my tool and manual overlap with terrain:

I think my conclusion is that building things is cool. In this post I was able to combine wild usage of AI for image augmentation, vibe-coding python to convert SVG to STL, vibe-coding STRAVA integration, and a bunch of googling & LLM-ing to find answers to my questions, and then sitting with my daughter and fighting Mesh boolean operation. Cool stuff.
P.S. Found this tool that almost does what I’ve done here except it doesn’t export the entire terrain: https://gpxtruder.xyz/ Result of exporting of my today’s hike:

October 25, 2025 Personal, Sports 2 comments
I consider myself a bit of a recreational athlete, meaning I do sports for fun and health: rock climbing, Muay Thai, running, and occasionally visiting conventional gyms. In 2021 I worked out 365 days straight and as of now have 2.3K logged activities on Strava with a 140 weeks long streak. I haven’t been like this 9 years ago or earlier, barely doing any activities back then, but over time I realized that health and time are the most valuable assets I have. This post is a few things: self reminder to stay on track, potentially some inspiration for you, and an attempt to drive analogies between athletic performance training and software engineering careers.
There are only three fundamentals in my opinion. Compromising these is the worst thing you can do to your health, not just physical, but also mental performance, yes including your software engineering career.
I am going over sleep again but this time with more practical recommendations if you are targeting greater benefits.
Besides all of the regular recommendations I would like to mention few additional ones:
Optimization comes last. Once you have all of the key ingredients and are consistent only then you can start thinking about all of the niche nitty-gritty optimizations, not before.
Pushing for anything in performance can have negative effects as well. Here are some personal notes (not universally applicable):
Probably the most challenging part of the any of the above levels is consistency. It’s just hard. It’s hard to go on a run when you just don’t enjoy it or when the weather sucks, it is hard to go climbing when the mood isn’t striking, it is hard to find time when you have an intense work schedule. So how do you solve these? I found a few ways that helped me, maybe something would work for you.
Our cognitive performance is inseparable from our physical health. The same principles that build a 10k PR or a V7 climbing grade are the exact same ones that build a high-impact, sustainable engineering career: you need fundamentals, deliberate training, and recovery.
You can’t sprint a marathon, and you can’t sprint a career without burning out. By investing in your physical platform, you are directly investing in your mental output. The return on that investment is a career and a life that is more performant, resilient, and sustainable.
Let me know what you think!
P.S. This post was in part inspired by my personal trainer from Vancouver. Thank you for your recommendations! And now I promise to incorporate compound barbell training once a week back into my routine and will report back after some time! 🫡
October 19, 2025 AI, Opinion No comments
I would like to discuss a dilemma between near science fiction predictions of development of AI and grounded practical applications of AI.

First of all, it is completely undeniable that AI is changing our lives and will have a transformative effect on the future. We can argue that humanity has lived through many transformative events over and over again: invention of fire, agriculture, writing, electricity, industrialization, information technologies, so AI can be seen as just one more invention on our part. Now, is AI really just one more invention or something that would absolutely change what it is to be a human as we know it? Is this our last invention?
I just finished reading the book “The Singularity is Nearer”. The book is arguing that we will eventually extend the capabilities of our biological brains and go beyond the limits of our organic bodies. At first we would come up with inventions that would greatly extend and improve our lives (reaching “longevity escape velocity” in mid 30s) and that we will build brain-computer interfaces (think of phones now, AR glasses or something of the like next, brain implants next, nanorobots next, with eventual consciousness upload to the information network). As another book “Homo Deus” (my review) argues – we eventually become god-like and gain the ability to control life and environment and Homo Sapiens go extinct. We might eventually lose our carbon-based existence and just become information.
To my way of thinking, while much of that, like nanorobots repairing our bodies, may sound like science fiction, as long as it doesn’t break the laws of physics I’m on board that it can and may happen.
Now, let’s look at some more practical examples.
This same pattern of hitting a practical limit is not just a historical curiosity because I can see it already happening in the world of AI. Let’s have a look at some examples:
My point is that in many individual fields where AI is applicable we will be reaching the some kind of optimal point between theoretical possibility and practical application. In the process we will be seeing major transformations, like the entire sector of jobs associated with driving will be replaced by self-driving vehicles. There is a good chance this could create socio-economic disruptions and ripple effects. Just imagine, some rich “haves” can give their child superpowers while some poor “have nots” could not afford that. But I agree to the point that this is only “in-transite”, because now people in some poor countries can afford a phone that would be multi-billion worth of technology if this was mid last century.
My own predictions are that: