TechWorkRamblings

by Mike Kalvas

Results: 15

  • But it happened

    2026-05-29 19:59

    #microblog #link

    I just watched an outstanding video essay[^mollyrocket2026] on the disconnect of the technocrats who architected the miserable, dystopian surveillance version of the internet that we have today between their statements and their ultimate complicity and culpability in them. It's important for us to not allow ourselves or others off the hook when we're complicit.

    There have been a lot of good articles on the state of technology and, in particular, the current situation with AI. It's hard to have a good feeling about how things have evolved over the years. This isn't just nostalgia, because so much of tech is infinitely better, easier, more accessible than ever. But the trade-off has been the enshittification of nearly everything: software is buggy, products are basically spy- or malware, and software brain has infected everything including important places like our government.

    The video shows how Eric Schmidt talks in the active voice about the his involvement in exciting and positive parts of the history of tech, but switches to a passive voice where the bad things just happened to him. It's arguable that no one in the world had more agency and power than he did to create or stop this bad state of tech we're in, yet he implicitly grants himself undeserved absolution simply by saying "but it happened" instead of "but we did it".

    Continue reading

  • Read Locks and Cache Line Ping Pong

    2026-02-22 20:43

    #microblog #link

    I just read a great, quick article about the unintuitive times when using read locks (e.g., RwLock) in read-heavy workloads of performance critical hot paths actually perform much worse than write locks (e.g., Mutex). While this article doesn’t go too deep on the subject, it’s a good reminder to always profile performance optimizations since the results can surprise you. The article is called Read Locks Are Not Your Friends, check it out!


  • Two great articles

    2026-02-21 12:24

    #microblog #link

    I do a lot of reading, mostly in blog form or books at home. Just the other day though, I saw people talking about two really well written, longer form articles published in magazines and decided to read them.

    First, Behind F1’s Velvet Curtain by Kate Wagner. Originally published for Road and Track on March 1st, 2024. It was apparently unpublished by the magazine for some reason (that seem obvious if a bit conspiratorial), but is still available on the web archive link. It’s a great look into the wealth of F1, the spectacle of it, and how spectacle and public relations shapes the perceptions of inequality in America. A beautiful, profound read.

    Second, Child’s Play by Sam Kriss for the 2026 March edition of Harper’s Magazine. Subtitled “Tech’s new generation and the end of thinking” this article is a scathing look at the faux substance of Silicon Valley venture capitalism. Through a relaying of facts that needs no embellishment, Kriss decimates the tech bro culture that’s more about social influence than building anything positive. It also shows the shallowness and unconsidered nature of AI and what it’s doing to young people and minds. A great read for anyone in our times, but must read for anyone in tech.

    Continue reading

  • Tokio tasks vs kernel thread switching

    2025-10-26 13:26

    #microblog #link

    I came across a link to a repo for good benchmarks on context switching costs in asynchronous code comparing Tokio tasks to kernel threads.

    The summary is an excellent back-of-the-napkin number to keep around so I’m re-posting it here. All credit obviously goes to the author of the repo Jim Blandy of Programming Rust fame.

    • A context switch takes around 0.2µs between async tasks, versus 1.7µs between kernel threads. But this advantage goes away if the context switch is due to I/O readiness: both converge to 1.7µs. The async advantage also goes away in our microbenchmark if the program is pinned to a single core. So inter-core communication is something to watch out for.
    • Creating a new task takes ~0.3µs for an async task, versus ~17µs for a new kernel thread.
    • Memory consumption per task (i.e. for a task that doesn't do much) starts at around a few hundred bytes for an async task, versus around 20KiB (9.5KiB user, 10KiB kernel) for a kernel thread. This is a minimum: more demanding tasks will naturally use more.
    • It's no problem to create 250,000 async tasks, but I was only able to get my laptop to run 80,000 threads (4 core, two way HT, 32GiB), even after raising every limit I could find. So I don't know what's imposing this limit. See "Running tests with large numbers of threads", below.

    Continue reading

  • Do I need to finish that

    2025-09-29 08:50

    #microblog #link

    Cassidy Williams runs a great blog and newsletter over at cassidoo.co. One of her recent posts[^williams2025] struck a chord with me. The premise of the post is about feeling obligated to finish things we've started. I know I feel that obligation all the time. I have a list of things that hang around in the back of my mind, exerting small but continuous background stress because I never finished them. I don't like this feeling. I don't want to have this feeling. Cassidy's post suggests a method for dealing with this situation.

    When you feel obligated to finish something — say a side project — you should ask yourself these questions to see why.

    • Does this thing still align with my current goals?
    • Would I start this again if I hadn’t already invested time and resources into it?
    • Do I still want this, or am I trying to prove to myself that I can finish it?
    • What would happen if I let this go?
    • Am I trying to meet my own expectations, or someone else’s?
    • What would I actively pursue if I didn’t finish this thing?

    Doing these mental audits should either remind us why we care about the project and give us renewed energy to tackle it, or show us that we don't actually need to complete it and can let it go.

    Continue reading

  • Two types of TODO comments

    How I use TODO style comments in programming

    2025-07-22 11:11

    #blog #work #link

    A recent article from Sophie Alpert about TODO comments resonated with me so I’m writing down some of my thoughts on them as well.

  • Bluesky

    2024-12-19 16:31

    #microblog #link

    I’ve been following Bluesky for a while now and hoping it might gain enough traction to fill the Twitter shaped hole in my social-media-less life. It seems to be doing a really good job picking up what Twitter abandoned and flushed down the toilet with the Musk acquisition. And better yet, it seems to be doing a lot better job with a better mission and exit strategy that Twitter ever had. I’ve also been following the tech behind it and the AT Protocol which both seem cool.

    So I took the leap and created an account. You can follow me under this domain, @mkalvas.com.

    As an aside, I really like the idea of using domains for verification and syndication — very cool idea. Hopefully it’ll help me find more awesome personal websites too.


  • Bartosz Ciechanowski and the promise of the web

    2024-12-18 12:27

    #link #microblog

    Bartosz Ciechanowski's blog is one of the best blogs or even websites at all on the internet. His explanations of interesting things from first principles is a master class on teaching and learning. The amazing visualizations are simple, no-dependency javascript files utilizing WebGL and other modern web tech. The markup is clean, and despite each article being lengthy with interactive visualizations, runs on my phone without breaking a sweat.

    This is what the web should be. This is how technology can enhance education.


  • Two cool tools

    2024-11-19 22:41

    #link #microblog

    Julia Evans recently started a microblog section just like this one on my site for many of the same reasons I have one. She calls hers TIL and it has more of an emphasis on being a place to record the small pieces of (actually useful) info that she’d usually post to Twitter and eventually lose.

    Looking through the initial list that she has there, I found 2 cool tools to keep my own record of here:

    1. dmate for language agnostic db migrations and schema management.
    2. diffdiff for nice-looking, in-browser diffing of arbitrary text.

  • The Final Edition of Embedded Muse

    2024-10-22 01:01

    #microblog #link

    After 27 years, The Embedded Muse, an awesome programming newsletter focused on embedded systems issued its 500th and final edition. Its editor Jack Ganssle recently retired and is winding the newsletter down as part of getting to full retirement. Fittingly, the final issue has some really nice reflections on industry, programming careers, and life.

    It's always a little sad to see things like these wind down on the internet. In the age of the enshittification of the internet, I value places like The Embedded Muse, where real people publish real thoughts and insights for others to enjoy and learn from and that facilitate forming genuine human connections. Obviously, change is the only constant and Jack should take his well deserved retirement, but that doesn't mean I won't miss it.


  • A Cool Use of Rust Iterators

    2024-09-14 12:44

    #microblog #link

    I was recently going through the book Learning Rust With Entirely Too Many Linked Lists (which is awesome and you should definitely read), and came across the sections about implementing iterators for the linked lists which gave me an idea.

    What if we used iterators to build struct-of-array optimized data processing with the ergonomics of array-of-structs? Could we have our cake and eat it too?

    So I geared up to do some experimenting and maybe write up a blog post about it only to find that, yes of course this is a thing and already well-trodden ground.


  • 1BRC in rust in depth

    2024-08-25 09:20

    #link #microblog

    Just found a really awesome, super in-depth write-up of a high performance computing approach to the 1 billion row challenge using Rust. I'll probably try and tackle this myself sometime soon. I've been itching to get some experience with really hyper-optimized computing.


  • Timeout Killer

    2024-05-05 12:51

    #link #microblog

    Timeouts and Cancellations for Humans

    Nice article on the difficulties of actually doing timeouts correctly. And an idea for a malicious endpoint that returns 1 byte every second or so for the same request to keep poorly coded timeouts from triggering.


  • Masonry Layout CSS

    2024-04-23 21:22

    #microblog #link

    Help us invent masonry layouts for css grid level 3

    I remember getting this working in ~2013 with flexbox columns, but I had to do a complicated interleaving operation to make the sequence correct from left to right then top to bottom. Cool to see this happening finally.


  • Hell yeah NASA

    2024-04-23 21:20

    #microblog #link

    NASA engineers never fail to amaze as they get Voyager 1 sending data again from interstellar space.

    Here's a great video overview of the whole thing.