<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Lessons on Tachera W Sasi, Backend &amp; Infra Engineer (Go, Self-Hosted, Observability)</title><link>https://tacherasasi.github.io/tags/lessons/</link><description>Recent content in Lessons on Tachera W Sasi, Backend &amp; Infra Engineer (Go, Self-Hosted, Observability)</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Wed, 07 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tacherasasi.github.io/tags/lessons/index.xml" rel="self" type="application/rss+xml"/><item><title>What Basketball Taught Me About Software Engineering</title><link>https://tacherasasi.github.io/posts/what-basketball-taught-me-about-software-engineering-efe47f5d7391/</link><pubDate>Wed, 07 Oct 2026 00:00:00 +0000</pubDate><guid>https://tacherasasi.github.io/posts/what-basketball-taught-me-about-software-engineering-efe47f5d7391/</guid><description>&lt;h2 id="tags-tachera-software-engineering-programming"&gt;&amp;mdash;2&amp;quot;
tags: [&amp;ldquo;tachera&amp;rdquo;, &amp;ldquo;software-engineering&amp;rdquo;, &amp;ldquo;programming&amp;rdquo;]&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://cdn-images-1.medium.com/max/1024/1*DCG16BUYEmXkRWpGPwEn6w.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;I’ve been playing basketball for about five years, and I’ve been programming for about the same amount of time. I started basketball back in school because I wanted something physical to do. I wasn’t trying to become a professional. I just wanted to get good enough to enjoy playing.&lt;/p&gt;
&lt;p&gt;Five years later, I’m still doing exactly that.&lt;/p&gt;
&lt;p&gt;And somewhere along the way, I started noticing that the way I play basketball has a lot in common with the way I approach software engineering.&lt;/p&gt;
&lt;p&gt;I’m not about to tell you that basketball is a metaphor for life and then put a picture of Michael Jordan underneath it.&lt;/p&gt;
&lt;p&gt;These are just things I’ve actually noticed.&lt;/p&gt;
&lt;h3 id="im-61-and-apparently-im-supposed-to-be-a-bigman"&gt;I’m 6'1&amp;quot;, and apparently I’m supposed to be a big man&lt;/h3&gt;
&lt;p&gt;At 6'1&amp;quot;, people sometimes assume I should be playing forward, grabbing rebounds and doing all the tall-person activities. I don’t particularly care. I like playing point guard. I like having the ball, controlling the pace, finding my teammates, and, probably more than I should admit, dribbling the hell out of the ball.&lt;/p&gt;
&lt;p&gt;Give me the ball.&lt;/p&gt;
&lt;p&gt;I’ll figure something out.&lt;/p&gt;
&lt;p&gt;I pass a lot too. If my teammate has a better shot, I’ll give them the ball. There isn’t much point in forcing a difficult shot just because I happen to be holding the ball.&lt;/p&gt;
&lt;p&gt;That part translates pretty directly into programming.&lt;/p&gt;
&lt;p&gt;As a point guard, you’re constantly reading the court: who’s open, who’s about to cut, who’s defending badly, and whether I should just embarrass this guy for a second.&lt;/p&gt;
&lt;p&gt;Programming is the same, minus the embarrassing part.&lt;/p&gt;
&lt;p&gt;Most of it isn’t typing. It’s deciding where a responsibility should live, whether something actually needs another abstraction, whether a problem belongs in the frontend or backend, and whether the thing you’re looking at is actually the bug or just the thing that’s easiest to see.&lt;/p&gt;
&lt;p&gt;The code comes after the thinking.&lt;/p&gt;
&lt;h3 id="disclaimer-i-talktrash"&gt;Disclaimer: I talk trash&lt;/h3&gt;
&lt;p&gt;I enjoy trash talking.&lt;/p&gt;
&lt;p&gt;Not because I’m angry. I just think it makes the game more fun.&lt;/p&gt;
&lt;p&gt;I’ll tell someone they’re not getting past me. They’ll tell me I’m not scoring. I’ll tell them they’re wrong. Then they’ll try to prove me wrong.&lt;/p&gt;
&lt;p&gt;Perfect.&lt;/p&gt;
&lt;p&gt;That’s exactly what I want.&lt;/p&gt;
&lt;p&gt;I actually like when someone comes at me seriously. I don’t want someone defending me at 60%. If we’re playing, come at me with everything you’ve got.&lt;/p&gt;
&lt;p&gt;Otherwise, what’s the point?&lt;/p&gt;
&lt;p&gt;There is also a funny switch that happens when I’m playing casually.&lt;/p&gt;
&lt;p&gt;Sometimes I’m quiet. I’m barely trying. I’m just messing around, enjoying the game.&lt;/p&gt;
&lt;p&gt;Then someone starts talking.&lt;/p&gt;
&lt;p&gt;And suddenly:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Oh. So we’re playing for real now.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now I have a personal project.&lt;/p&gt;
&lt;p&gt;For the next fifteen minutes, my entire purpose is to put buckets on this person.&lt;/p&gt;
&lt;p&gt;It’s not particularly mature.&lt;/p&gt;
&lt;p&gt;It is, however, extremely effective at making the game interesting.&lt;/p&gt;
&lt;p&gt;And honestly, I think there’s a useful engineering equivalent to this.&lt;/p&gt;
&lt;p&gt;I like problems that fight back.&lt;/p&gt;
&lt;p&gt;Give me something where the answer isn’t obvious. Give me a system I don’t understand. Give me a weird bug. Give me something that makes me go down three layers of abstraction just to figure out why something is happening.&lt;/p&gt;
&lt;p&gt;Easy problems are nice.&lt;/p&gt;
&lt;p&gt;The difficult ones are usually where I actually learn something.&lt;/p&gt;
&lt;h3 id="sometimes-i-play-shooting-guard-and-say-absolutely-nothing"&gt;Sometimes I play shooting guard and say absolutely nothing&lt;/h3&gt;
&lt;p&gt;When I’m not playing point guard, I’ll sometimes play shooting guard.&lt;/p&gt;
&lt;p&gt;And I’m much quieter.&lt;/p&gt;
&lt;p&gt;I’ll move, find space, defend, shoot, and let the point guard run the game.&lt;/p&gt;
&lt;p&gt;I actually enjoy that too.&lt;/p&gt;
&lt;p&gt;Because being useful doesn’t always mean being the person holding the ball.&lt;/p&gt;
&lt;p&gt;That’s something I’ve had to learn in software as well.&lt;/p&gt;
&lt;p&gt;You don’t always need to be the person making the decision. Sometimes someone else understands the problem better. Sometimes another engineer has more context. Sometimes the best thing you can do is take the task, do it properly, and let someone else run the play.&lt;/p&gt;
&lt;p&gt;There is no prize for touching every part of the codebase.&lt;/p&gt;
&lt;p&gt;I’ve learned that the hard way.&lt;/p&gt;
&lt;h3 id="court-vision-is-basically-systemsthinking"&gt;Court vision is basically systems thinking&lt;/h3&gt;
&lt;p&gt;The better I got at basketball, the less I focused on just the person directly in front of me.&lt;/p&gt;
&lt;p&gt;You start seeing the whole court.&lt;/p&gt;
&lt;p&gt;If I drive left, what happens to the defender behind me?&lt;/p&gt;
&lt;p&gt;If someone helps, who’s open?&lt;/p&gt;
&lt;p&gt;If I pass here, what does that create two seconds later?&lt;/p&gt;
&lt;p&gt;You’re not just reacting to what’s happening.&lt;/p&gt;
&lt;p&gt;You’re trying to understand what happens next.&lt;/p&gt;
&lt;p&gt;That’s pretty much how I’ve started thinking about software.&lt;/p&gt;
&lt;p&gt;A request isn’t just a request.&lt;/p&gt;
&lt;p&gt;It touches an API, which touches a database, which might trigger another service, which might put something on a queue, which might eventually affect something completely different.&lt;/p&gt;
&lt;p&gt;Change one thing and something three layers away might suddenly start behaving strangely.&lt;/p&gt;
&lt;p&gt;This is why I enjoy systems work.&lt;/p&gt;
&lt;p&gt;The interesting part isn’t always the individual component.&lt;/p&gt;
&lt;p&gt;It’s understanding how everything interacts.&lt;/p&gt;
&lt;h3 id="you-will-getcooked"&gt;You will get cooked&lt;/h3&gt;
&lt;p&gt;Basketball has a very efficient way of reminding you that you’re not as good as you thought you were.&lt;/p&gt;
&lt;p&gt;Someone will cross you.&lt;/p&gt;
&lt;p&gt;Someone will hit a shot over you.&lt;/p&gt;
&lt;p&gt;Someone will get around you so cleanly that you briefly consider changing careers.&lt;/p&gt;
&lt;p&gt;It happens.&lt;/p&gt;
&lt;p&gt;You can’t spend the next ten minutes thinking about the possession you just lost.&lt;/p&gt;
&lt;p&gt;The game is still going.&lt;/p&gt;
&lt;p&gt;Programming is the same.&lt;/p&gt;
&lt;p&gt;You’ll write terrible code.&lt;/p&gt;
&lt;p&gt;You’ll make an architectural decision that seemed brilliant at the time and looks completely insane six months later.&lt;/p&gt;
&lt;p&gt;You’ll deploy something broken.&lt;/p&gt;
&lt;p&gt;You’ll spend four hours debugging a problem only to discover that the issue was one character.&lt;/p&gt;
&lt;p&gt;And yes, sometimes that character is a missing !.&lt;/p&gt;
&lt;p&gt;You fix it.&lt;/p&gt;
&lt;p&gt;You stare at the screen for a while.&lt;/p&gt;
&lt;p&gt;You question your entire career.&lt;/p&gt;
&lt;p&gt;Then you keep going.&lt;/p&gt;
&lt;p&gt;That’s part of getting better.&lt;/p&gt;
&lt;h3 id="practice-isnt-supposed-to-feel-impressive"&gt;Practice isn’t supposed to feel impressive&lt;/h3&gt;
&lt;p&gt;I practice basketball because I want to be good enough to enjoy playing.&lt;/p&gt;
&lt;p&gt;That’s really it.&lt;/p&gt;
&lt;p&gt;I don’t want to go pro. I don’t have some secret NBA dream I’m hiding from everyone.&lt;/p&gt;
&lt;p&gt;I just like being good at something I enjoy.&lt;/p&gt;
&lt;p&gt;The better my handle gets, the more fun the game becomes. The better I shoot, the more options I have. The better I understand the court, the more comfortable I become making decisions.&lt;/p&gt;
&lt;p&gt;Programming works the same way for me.&lt;/p&gt;
&lt;p&gt;I don’t want to learn Rust because I need to collect another language.&lt;/p&gt;
&lt;p&gt;I don’t want to learn Zig because it looks good on a CV.&lt;/p&gt;
&lt;p&gt;I don’t want to understand operating systems because somebody told me I should.&lt;/p&gt;
&lt;p&gt;I want to get better because understanding more makes building things more enjoyable.&lt;/p&gt;
&lt;p&gt;That’s why I keep going lower.&lt;/p&gt;
&lt;p&gt;Web apps led me to backend systems.&lt;/p&gt;
&lt;p&gt;Backend systems led me to infrastructure.&lt;/p&gt;
&lt;p&gt;Infrastructure led me closer to the operating system.&lt;/p&gt;
&lt;p&gt;And eventually I found myself writing very low-level code in Zig and thinking:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wait, so what exactly is the computer doing here?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Apparently I had opened another rabbit hole.&lt;/p&gt;
&lt;h3 id="you-dont-have-to-take-everything-seriously-to-take-it-seriously"&gt;You don’t have to take everything seriously to take it seriously&lt;/h3&gt;
&lt;p&gt;This is probably the biggest thing basketball has reinforced for me.&lt;/p&gt;
&lt;p&gt;I can talk trash, laugh during a game, mess around, try some ridiculous dribble move, and still genuinely care about getting better.&lt;/p&gt;
&lt;p&gt;Those things aren’t contradictory.&lt;/p&gt;
&lt;p&gt;I think programming can be the same.&lt;/p&gt;
&lt;p&gt;I can spend an afternoon writing serious infrastructure software and then spend the evening building some completely unnecessary terminal tool because I thought it would be funny.&lt;/p&gt;
&lt;p&gt;I can care deeply about writing good software without treating every bug like a personal attack.&lt;/p&gt;
&lt;p&gt;I can want to become a better engineer without turning programming into my entire identity.&lt;/p&gt;
&lt;p&gt;The point isn’t to make everything serious.&lt;/p&gt;
&lt;p&gt;It’s to care about what you’re doing while you’re doing it.&lt;/p&gt;
&lt;h3 id="the-part-i-didntexpect"&gt;The part I didn’t expect&lt;/h3&gt;
&lt;p&gt;When I started playing basketball, I wasn’t thinking about any of this.&lt;/p&gt;
&lt;p&gt;I just wanted something physical to do.&lt;/p&gt;
&lt;p&gt;When I started programming, I wasn’t thinking about systems engineering, infrastructure, compilers, operating systems, or any of the other rabbit holes I’ve somehow ended up in.&lt;/p&gt;
&lt;p&gt;I just wanted to build things.&lt;/p&gt;
&lt;p&gt;Five years later, I’m still doing both.&lt;/p&gt;
&lt;p&gt;I’m still trying to get better at basketball because it’s fun.&lt;/p&gt;
&lt;p&gt;I’m still trying to get better at programming because building things is fun.&lt;/p&gt;
&lt;p&gt;And both have taught me that getting better doesn’t mean you stop making mistakes.&lt;/p&gt;
&lt;p&gt;It means you start recovering from them faster.&lt;/p&gt;
&lt;p&gt;You see more of the court.&lt;/p&gt;
&lt;p&gt;You recognize patterns earlier.&lt;/p&gt;
&lt;p&gt;You make better decisions.&lt;/p&gt;
&lt;p&gt;You know when to pass.&lt;/p&gt;
&lt;p&gt;You know when to take the shot.&lt;/p&gt;
&lt;p&gt;And sometimes, someone starts talking trash and you suddenly remember that you can actually play.&lt;/p&gt;
&lt;p&gt;That’s between me and them.&lt;/p&gt;
&lt;h3 id="here-is-a-video-of-me-playing-ball"&gt;&lt;strong&gt;Here is a video of me playing ball: &lt;a href="https://vt.tiktok.com/ZSbVEET2J/"&gt;https://vt.tiktok.com/ZSbVEET2J/&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://medium.com/_/stat?event=post.clientViewed&amp;amp;referrerSource=full_rss&amp;amp;postId=efe47f5d7391" alt=""&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://medium.com/@tacherasasi/what-basketball-taught-me-about-software-engineering-efe47f5d7391?source=rss-9a41d7ec29fb------2"&gt;Medium&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>