Kaivalya Apte
thegeeknarrator.bsky.social
Kaivalya Apte
@thegeeknarrator.bsky.social
Podcaster, Youtuber @TheGeekNarrator
(https://youtube.com/@thegeeknarrator?si=yN0zWNDAScJKv_QZ), Staff Platform Engineer @Personio
Haha I have the same story.. so much thinking, too little writing 😅
October 5, 2025 at 3:07 PM
Planning a write up?
October 5, 2025 at 11:28 AM
I never thought about usage of my face and voice for training tbh. And I don’t think I can control that too much.

Part of the job I guess.
July 4, 2025 at 7:16 AM
Thanks @qianli.dev

Challenges faced:

- Remote recording is sometimes challenging, but these days there are many tools like Riverside, Descript make it really easy.

- Not getting demotivated is a challenge. But ultimately you start enjoying the process and engagement becomes a side effect.
July 4, 2025 at 7:14 AM
👏 thanks
June 16, 2025 at 7:10 PM
Agreed. Payments are really complicated and defining the states in a simple post like this is impossible. 😅 it was totally a simplistic model to share the idea of thinking in terms of state.
June 16, 2025 at 3:35 PM
Absolutely. Cannot agree more
June 15, 2025 at 4:44 PM
Reposted by Kaivalya Apte
Another advantage to designing systems as state machines: automated testing and even verification becomes dramatically easier.
June 15, 2025 at 4:02 PM
You're not just writing code. You're orchestrating state transitions at every level - aggregating them, filtering them, transforming them into something users can consume.

Follow @thegeeknarrator.bsky.social if you are interested in databases, distributed systems and software engineering tips.
June 15, 2025 at 8:33 AM
Everything is a state machine - from Netflix's video player (LOADING → PLAYING → PAUSED → ERROR) to your payment processing (PENDING → AUTHORIZED → SETTLED → FAILED).

Even your individual functions have states. Even the bits in memory have states (0 or 1).
June 15, 2025 at 8:33 AM
Then, do the following and find more states:

Think about what happens when things fail
Think about user actions that can happen simultaneously
Think about external events and timeouts
June 15, 2025 at 8:33 AM
Modelling your system explicitly is the bottom line.

How do you know you are modelling the right states?

Try to find:
"boolean flags scattered everywhere"
"nested if-else chains"
"this should never happen" comments
"works-on-my-machine" bugs
"race-condition" issues
"impossible-to-reproduce" errors
June 15, 2025 at 8:33 AM
It can help you create a simple model of your system that you can prototype and test.

In my experience it brings predictable behaviour and keeps away impossible system states.
June 15, 2025 at 8:33 AM
When you do this, in my experience you pretty much end up being on the right track and make good progress.
June 14, 2025 at 11:59 AM
But it will take practice and you will find yourself stuck, which is completely normal.

Then, do the following and find more questions:

- Thinking about evidences or ways of testing for your findings
- Think about alternative perspectives
- Think about consequences and implications
June 14, 2025 at 11:59 AM
How do you know you are asking the right questions?

Try to find
- “assumptions”
- “stereotypes”
- “dogmas”
- “because-someone-said-so”,
- “because-its-written-in-a-book”
- “its-obvious”

kinda statements and challenge them. When you try to challenge them you pretty much ask the right questions.
June 14, 2025 at 11:59 AM
It takes a lot of thinking and practice and may also feel unproductive at the beginning (although it’s fun).

In my experience it brings creative solutions and keeps away unnecessary complexity.

Asking the right and enough questions is the bottom line.
June 14, 2025 at 11:59 AM
I have had an even better experience with Gemini though. Did you try that?
June 14, 2025 at 11:56 AM