Jury duty letter came addressed to my cat.
Not a mistake. "Felix Martinez" - that's his full name according to his vet records.
My last name. His first name. Somehow he's a registered voter now.
Called the county clerk.
Me: My cat got summoned for jury duty.
Clerk: Is the name correct on the summons?
Me: Yes, but he's a cat.
Clerk: Is Felix Martinez a legal resident of this county?
Me: He's a legal cat.
Clerk: Sir, if the name matches our records, he needs to appear or file an exemption.
Me: He can't file anything. He has paws.
Clerk: You can file on his behalf.
Me: Under what exemption? There's no box for "is a cat."
Clerk: (pause) Check "unable to serve due to medical reasons."
Me: What's the medical reason?
Clerk: He's a cat.
Me: That's not a medical condition.
Clerk: It is if it prevents him from serving.
Sent in the form. Got rejected two weeks later.
"Insufficient documentation. Please provide medical professional's statement."
Took the letter to my vet.
Me: I need you to write that my cat can't do jury duty.
Vet: Why is your cat summoned for jury duty?
Me: Excellent question. No good answer.
Vet: This is the weirdest request I've gotten.
Me: Can you just write that he's medically unfit to serve?
Vet: On what grounds?
Me: He's a cat.
Vet: (started typing) "Patient is unable to serve due to species-related limitations including inability to speak, read, or comprehend legal proceedings."
Me: Perfect.
Sent it in. Got another rejection.
"Summons is mandatory. Failure to appear will result in contempt of court."
My roommate thought this was hilarious.
Roommate: Felix is going to jail.
Me: This is serious.
Roommate: Bring him to court. See what happens.
Decided that was actually the only option left.
Day of jury duty, put Felix in his carrier. Brought the entire paper trail of rejection letters.
Checked in at the courthouse.
Clerk: Name?
Me: Felix Martinez.
Clerk: (looked at the cat carrier) Is that Felix?
Me: Yes.
Clerk: (long stare) He's a cat.
Me: I've been saying that for six weeks.
Clerk: Why didn't you file an exemption?
Me: I filed three. All rejected.
Showed her the letters. She read through them, expression shifting from confusion to disbelief.
Clerk: Someone rejected the veterinary documentation?
Me: Twice.
Clerk: (called her supervisor over) You need to see this.
Supervisor read everything. Looked at Felix. Looked at me.
Supervisor: How did a cat get registered to vote?
Me: You tell me.
Supervisor: This is a data error.
Me: Took you six weeks to figure that out.
They dismissed Felix immediately. Apologized for the inconvenience.
Supervisor: We'll remove him from the voter registry.
Me: Appreciate it.
Supervisor: (pause) Out of curiosity, how would he have voted?
Me: Probably whatever party supports universal treats.
Got a formal apology letter a week later and a voter registration card.
For me this time. Apparently I wasn't registered, but my cat was.
Roommate: Felix committed voter fraud.
Me: Felix committed nothing. He's innocent.
Roommate: That's what they all say.
Felix is sleeping on the jury summons now.
Fitting end to his legal career.
If you're on your way to building a billion dollar company that involves a web app, here are some of my notes on architecting the frontend.
if you don't do this, it's probably fine but one day you'll hire someone to fix it but truly that person could be doing some other higher value thing if you make some key optimizations on day 1
you don't even have to learn anything you're gonna tell your agents to do it anyways!
okay here it goes:
- Make your server code generate a openapi spec which then generates all the relevant client side code. Never do this by hand. Typing backend types instead of generating them should be banned
- You need to make a decision on how the client talks to the backend. rest/graphql works in which case please just use tanstack query. other libraries will look similar but tanstack query truly is goated.
- if you want linear style sync setups or offline mode, think about this HARD and architect it from day 1. Bolting this on later is so tedious.
- People like using plain react router but things have gotten a lot better since then. Try their new framework mode or just even use tanstack router. Use route data loaders.
- If you store a lot of state in query params, make that a first class citizen and make sure its type safe. use nuqs or tanstack query.
- Most apps just need a single state management situation for server state and thats it. If you have other bespoke needs, i have quite like zustand and xstate/store.
- If you have a super interactive app where things come in and out of view, theres a lot of frontend state to maintain, music is playing and what not, lock in and learn xstate. Trust me if you wanna keep ur sanity, you need to model ur frontend as a state machine otherwise you're gonna be deep in useEffect hell
- React compiler is here my friends, the days of useMemo and useCallback are gone. Update your priors accordingly
- Tailwind is easy and fun but makes it really hard to maintain a large app with consistent styling. You need a "agent-first design system/component library" but maybe this is a rant for another day
- Don't be afraid to hack your routing library to fit your needs more closely. A lot of apps have "drawers" to show additional info. You should 100% be able to say "here's a route, make it a drawer" and everything should be handled from there.
- Managing loading and error states using isPending and isError is madness. Lean into Suspense and ErrorBoundary.
- Figuring out a blessed path for websockets and SSE on day 1 i think will pay dividends in the long term if you're building anything AI related.
- If you're building a SPA, don't use next.js. it literally makes no sense. Why would you do this.
- Definitely deploy on Cloudflare or vercel. There are other services but trust, there have weird missing features.
- Assuming you build something people want, the next job is to build the factory so it can efficiently build the thing. Act accordingly.
Tomorrow Armenia goes to polls. One of the candidates hoping to be elected Prime Minister is Artak Sargsyan of Kochari National Revival and Awakening of the Nation Party.
Long time ago, he was in Kenya as Artur Margaryan.
The atrocities that France has committed in West Africa are unspeakable. Why President Ruto is rolling out the red carpet for France in Kenya should concern each and every Kenyan and African out there. This is the beginning of the re-colonialization of Africa verson 2.0.
Game theory proves that people do not act on information. They act on incentives. You can give a person all the data they need to make a better decision, but as soon as that decision threatens their position or costs them something visible, they will try to ignore the data. Before you ever try to convince anyone of anything, map what it costs them to agree. The cost of agreeing is the obstacle, not the argument.
Tumefika almost 1.7M new voters (maybe more). As a result, politicians and interested parties have been trying to get me to work with them. Some offering money, positions and some blackmailing. Some interested parties are fundraising and getting money using my name. The worst is infiltration.
There’s something powerful happening in this country.
Tuko Kadi was never just a slogan. It is a call! A call to a generation that is choosing participation over apathy, values over tribe, and the future over fear. It is young people deciding that their voice matters, and their vote matters, and that Kenya must move beyond the politics that have held us back for decades.
But with any movement that carries hope, there will always be those who try to ride its wave for their own gain.
We have noted, with concern, individuals and groups falsely claiming association with Tuko Kadi to solicit funds and mislead the public. Let’s be clear: this is not who we are. Tuko Kadi is not a fundraising vehicle for opportunists. It is a civic call rooted in integrity, accountability, and collective responsibility.
If you are asked to contribute money in the name of Tuko Kadi, verify first. Question boldly. Protect the movement.
Because this moment belongs to young people. To new leaders. To fresh thinking. To a generation that refuses to inherit broken systems without challenging them.
We are not here to recycle old politics. We are here to redefine it.
And despite the noise, the confusion, and the attempts to dilute it ..... the spirit of this movement is stronger than ever.
You can feel it.
A new consciousness. A new energy. A new Kenya in the making.
This is our moment.
#TukoKadi #NiKokadi
Thika road cost Ksh. 32 Billion and the ripple effect can be felt after all these years, Ruto has borrowed close to Ksh. 5 trillion since he came in office, show me projects worth 5 trillion since Ruto came in office?
Kanye West said this in 2022 on @lexfridman:
Lex: "What do you hope your legacy is?"
Ye: "To be forgotten. There's ego in memory. Who designed the sidewalk? Who designed the water fountain? Who designed the stop sign? Who designed the stop light? These things are so ubiquitous that the person that designed them is forgotten. If it's a good idea, it's a God idea."