Lalit Maganti
@lalitm.com
Founding engineer @ perfetto.dev · Senior Staff SWE @ Google · writing @ lalitm.com
Warm takes: * Opus 5 wordieness and jargon is *incredibly* frustrating to work with * Fable is too slow without being much better at many of the tasks I do day to day * I've found it difficult to tell apart the Opus models since 4.6 * Sol 5.6 is much more pleasant to work with *but*...
There are plenty of places to host a Git repository, but remarkably few places to host an open-source community GitHub’s moat is its shared identities, conventions and paths to discovery. Any replacement must rebuild that social layer, not merely offer better hosting. lalitm.com/post/github-...
GitHub has alternatives, but no replacement
Codeberg, a Git code hosting platform, recently took a decision to prohibit projects that mostly consist of generative-AI-written code which has prompted concern and extensive discussion elsewhere. Th...
lalitm.com
I wrote last month: > (...) open-source projects cannot afford to have a dedicated team doing security scanning for them (...). we’re going to see a lot more innovation in this space, including from the big AI labs. And now, OpenAI announces Codex Security: github.com/openai/codex...
GitHub - openai/codex-security: SDKs and CLI for Codex Security
SDKs and CLI for Codex Security. Contribute to openai/codex-security development by creating an account on GitHub.
github.com
> The standard in CI today is tests run in the cloud after a commit has been merged Is this really people's experience? Beyond hobby operations, I cannot think of a time where I found a project without at least decent presubmit test coverage. Now I'm wondering if I've been living in a bubble...
Replace Your CI With a Merge Queue - exe.dev blog
Agent development means after-the-fact CI no longer works.
blog.exe.dev
antirez says expert programmers using AI should think of themselves as Linus, with agents as the subsystem maintainers. The part that doesn't work for me is trust. Linus's maintainers spent years proving their judgment. I've given LLMs that chance plenty of times and I keep regretting it.
AI agents are not subsystem maintainers
Antirez, the creator of Redis, recently argued that expert programmers using AI should think of themselves as being Linus Torvalds. The key part of his analogy is this: Automatic programming, instead,...
lalitm.com
A senior engineer I mentor asked me how I find problems worth working on. He’d been told to block time to “think strategically,” but hadn’t found it useful. I told him I rarely find good problems by staring at a blank page. Instead, I act like a sponge, listening to people’s day-to-day problems.
How I Find Problems to Solve as a Staff Engineer
How listening broadly turns everyday problems into useful project ideas.
lalitm.com
git has an experimental git history command as of 2.54/2.55 and it deserves more attention. Fixup, reword, or split a commit buried in your stack, and every branch built on top rebases automatically. It's already in core git, nothing to install. lalitm.com/post/git-history/
The git history command deserves more attention
Working with lots of changes in parallel on git can be painful. You end up juggling branches and commits, and running scary rebase -i commands that can leave your tree in a half-broken state if you so...
lalitm.com
Wrote up a blog post going over the "why" in each of the features in Perfetto v57. This is something I plan on doing for each release going forward (including dedicated posts when a feature is big enough to deserve it!) Find it at lalitm.com/post/perfett...
Perfetto v57: fixing PyTorch traces, plus journald logs and an AI skill
We just released Perfetto v57 and I wanted to share the new things I’m most excited about. This is something I wanted to do for past releases but I just never quite got round to it. It’s also somethin...
lalitm.com
Perfetto v57 is out! github.com/google/perfe... A bunch of new things but the most impactful thing might be a bugfix on Pytorch traces where overlapping events wouldn't be displayed (github.com/google/perfe...)
Release Perfetto v57.1 · google/perfetto
We're excited to share Perfetto v57.1! This release introduces an installable AI skill that teaches coding agents how to use Perfetto, a long-awaited fix for overlapping events in JSON traces (PyTo...
github.com
scattered-thoughts.net/writing/arti... is exactly the sort of article I wanted to see more of when I wrote "Eight years of wanting, three months of building with AI". Really hope to see even more like this!
Artificial adventures
scattered-thoughts.net
I've spent many hours in my early days optimizing performance in places which ended up not mattering so this article really resonated.
When Impressive Performance Gains Do Not Matter
Even order-of-magnitude improvements in performance may not matter.
blog.colinbreck.com
I just published syntaqlite 0.6 (github.com/LalitMaganti...), now supporting SQLite dot commands, a big step forward for usability in the real world. That along with Pyiodide support makes it the most impactful release since 0.1! Wrote about this at lalitm.com/post/syntaql...
Release v0.6.0 · LalitMaganti/syntaqlite
Shell file support: syntaqlite now understands SQLite shell scripts: files that mix .dot commands with SQL. The embedded SQL is extracted and the surrounding shell syntax is ignored, so ast, fmt, ...
github.com
I discovered Iroh (www.iroh.computer) yesterday and it's a really neat project! But from reading discussions on HN/lobsters, people seem really confused on exactly what it is. I wrote up a TIL after investigating a bit: lalitm.com/post/til-iroh/. TLDR, it's like a VPN but at the app layer!
TIL: Iroh: peer-to-peer networking for app developers
I came across Iroh (via, via) today as it hit 1.0 and found it a really interesting solution to a problem I knew existed but had not thought a lot about. Judging from the comment sections, it seems pr...
lalitm.com
One weird thing I've observed with Fable vs Opus: whenever I get it to do a refactor it seems to reach for writing as-hoc Python scripts instead of directly doing a refactor.
Over the last 10 weeks I've had more security bug reports for Perfetto's trace processor than ever: 17 real bugs, all found by AI. Mostly mechanical, a few nudged overdue cleanups. A year ago none would've been caught. Wrote up how the experience at lalitm.com/post/perfett...
For years I've followed a rule at work I never bothered to write down: when an engineer asks me a "weird" question, I don't answer the first version of it. Wrote about this at lalitm.com/post/dont-an...
Don't answer the first question
In my work on Perfetto, a performance debugging tool, one question I get often is: “how do I split a Perfetto trace into multiple files?” Instead of answering directly, I say: “there isn’t an easy way...
lalitm.com
I just published a deep-dive into the 250-hour build behind syntaqlite, a SQLite formatter and LSP I built using AI agents. AI agents were the only reason built this after 8 years of wanting but there's a psychological toll to AI-assisted engineering. The post-mortem: lalitm.com/post/buildin...
Eight years of wanting, three months of building with AI
For eight years, I’ve wanted a high-quality set of devtools for working with SQLite. Given how important SQLite is to the industry1, I’ve long been puzzled that no one has invested in building a reall...
lalitm.com
For a long time, I’ve wanted a reliable, fast formatter and LSP for SQLite SQL. One that actually models SQLite’s weird/specific features, like virtual tables, application-defined functions, and the various flags that change the language. So I started building syntaqlite.
syntaqlite: high-fidelity devtools that SQLite deserves
Most SQL tools treat SQLite as a “flavor” of a generic SQL parser. They approximate the language, which means they break on SQLite-exclusive features like virtual tables, miss syntax like UPSERT, and ...
lalitm.com
Hit a case in Perfetto where even the venerable binary search was still too slow! I ended up discovering an algorithm that I hadn't heard of before called exponential search. Wrote up what I learned at lalitm.com/post/exponen...
Rendering 100k trace events faster with exponential search
We’ve recently been looking into optimizing rendering performance of the Perfetto UI on large traces. We discovered that there was some inefficiency in our data fetching logic, especially when you’re ...
lalitm.com
Just wrote up some thoughts after trying out all the "VPS as a service" products which reached the Hacker News frontpage over the past month - lalitm.com/trying-sprit...
The surprising attention on sprites, exe.dev, and shellbox
Over the last few weeks, three new products have announced themselves on Hacker News to great success, each making the frontpage: Sprites (fly.io) with 508 votes and hit #7 exe.dev with 457 votes and ...
lalitm.com
I made a venn diagram to help you understand Moiré patterns.
Been quiet for the last few weeks because I was cooking this up! I know it's resolution season, so if you're engineering-minded and want absolute control over your money (handling everything from daily spend to cross-border investments) I wrote a blog post for you! 👇
One Number I Trust: Plain-Text Accounting for a Multi-Currency Household
Two people. Eighteen accounts spanning checking, savings, credit cards, investments. Three currencies. Twenty minutes of work every week. One net worth number I actually trust. The payoff: A single, t...
lalitm.com
I’ve been reading a lot of Staff+ advice that says you need to be "fungible," chase executive priorities, and move fast. As a Senior Staff engineer in infra/devtools, I found that advice is a recipe for burnout.
Why I Ignore The Spotlight as a Staff Engineer
Lately I’ve been reading Sean Goedecke’s essays on being a Staff+ engineer. His work (particularly Software engineering under the spotlight and It’s Not Your Codebase) is razor-sharp and feels painful...
lalitm.com
Every quarter, our 45-person eng team stops ALL roadmap work for an entire week. No new features. No meetings. Just fixing the small stuff that's been annoying us and our users.
We stopped roadmap work for a week and fixed 189 bugs
It’s Friday at 4pm. I’ve just closed my 12th bug of the week. My brain is completely fried. And I’m staring at the bug leaderboard, genuinely sad that Monday means going back to regular work. Which is...
lalitm.com
I'm a bit ashamed to say it's only today I learned what the number in Linux man page titles (e.g. the "3" in `sleep(3)`) is: lalitm.com/til-number-i...
TIL: Number in man page titles (e.g. sleep(3))
If you do Linux systems programming, you will have likely pored over man pages, either on the command line or, my personal preference, using the excellent man7.org or linux.die.net. I’ve always seen t...
lalitm.com
Just sent my latest newsletter rounding up the last week of posts to my blog: lalitm.substack.com/p/when-good-...
When Good Technical Writing Isn't Enough
A response to "Don't Build an Audience"
lalitm.substack.com
After reading a fascinating article called "Don't Build An Audience", I've been doing a lot of soul searching about the type of technical writing I like and how to get people to see it. Wrote down my thoughts in a new post: lalitm.com/on-why-i-wri...
When Good Technical Writing Isn't Enough
Last week, I came across Don’t Build an Audience. It’s a fascinating post and has been occupying a lot of my “free thinking” time. I strongly suggest reading it as it’s well written and excellently ar...
lalitm.com
Just sent my latest newsletter rounding up the last week of posts to my blog: lalitm.substack.com/p/castx-as-s...
CAST(x AS STRING) casts to integer in SQLite
Plus TIL: Diátaxis: Systematic technical documentation
lalitm.substack.com
After the nth time of explaining to someone why in SQLite `CAST(x as STRING)` casts to an integer, I decided to write something explaining why so I can just point people to it: lalitm.com/cast-x-as-st...
CAST(x AS STRING) casts to integer in SQLite
As an “SQLite consultant” for my local area of Google, I often have people come to me having written SQL like: SELECT CAST(bar AS STRING) AS baz FROM foo and ask me “Why is baz always an integer?! Hav...
lalitm.com