Sign in

Lalit Maganti

@lalitm.com
279 followers 3 following 98 posts

Founding engineer @ perfetto.dev Writing @ lalitm.com Building devtools like syntaqlite, buildprof in my spare time Senior Staff SWE @ Google

PostsRepliesMedia
Lalit Maganti @lalitm.com · 16/09/2026
Opus 5 just did the dumbest thing I've seen from it so far. For buildprof, my build tracer, I was switching from a JSON-based macOS API (eslogger) to a fast binary one (kdebug). My output is protobuf. Opus wrote: binary -> JSON -> protobuf This is why I still read the code.
050
Lalit Maganti @lalitm.com · 14/09/2026
syntaqlite, the very fast SQLite formatter just got another 19% faster. Someone reported a functional bug but fixing it made me realise if I restructured the AST slightly, a pile of simplifications fell out for free.
100
Lalit Maganti @lalitm.com · 12/09/2026
I made a tool that shows where the time goes when you compile software. It’s called buildprof. Run it in front of any build command and it puts every process the build spawns on a timeline. It doesn’t care whether the build is Cargo, Ninja, Make, Zig or a pile of shell scripts.
2264
Lalit Maganti @lalitm.com · 11/09/2026
Got very interested in the performance of parsing of large Perfetto traces as I do once every few months. Managed to shave ~30% of the parse time of traces containing lots of typed arguments, common in traces from Chrome and AI workloads.
011
Lalit Maganti @lalitm.com · 25/08/2026
Correlating profiles across different machines usually involves a lot of painful window-switching. Here’s a quick demo of doing it in Perfetto instead: two separate profiles, aligned on one timeline in a few clicks.
030
Lalit Maganti @lalitm.com · 25/08/2026
The trace merging feature in Perfetto v58 has a lot of cool applications: view independent traces from different VMs/devices, client-server interactions, and most topically, multi-rank and multi-machine PyTorch profiles. Cooking up a blog post about all of this, coming soon.
010
Lalit Maganti @lalitm.com · 25/08/2026
Perfetto v58 is out! We shipped a bunch of things: persistent CLI analysis sessions for agents, zstd compression, better memory tools and more. Biggest feature though is trace merging: multiple traces on one timeline, including across VMs and devices. github.com/google/perfe...
github.com
Release Perfetto v58.2 · google/perfetto
We’re excited to share Perfetto v58.2! This release makes it possible to merge traces from different machines onto one timeline, introduces Memscope and Memory Overview for end-to-end memory invest...
000
Lalit Maganti @lalitm.com · 24/08/2026
Got a really fantastic comment on HN which I think perfectly captures the essence of my thinking.
110
Lalit Maganti @lalitm.com · 23/08/2026
The staff engineering post I wrote a couple of weeks ago is currently #1 on Hacker News, which is a nice surprise. If you missed it: lalitm.com/post/find-pr...
140
Lalit Maganti @lalitm.com · 19/08/2026
1/5 I've been on Opus 5 for a week and noticed the code comments stopped using em-dashes. It's all double hypens (--) now. Decided to do some analysis to confirm I wasn't fooling myself...
100
Lalit Maganti @lalitm.com · 17/08/2026
PyTorch profiles are going to look much better in the upcoming release of Perfetto. Their events lack enough hierarchy, so Perfetto has to guess the layout. We now pack the tallest slice stacks first, making the same trace far more compact. Full explainer at lalitm.com/post/pytorch...
Perfetto timeline showing three repeated PyTorch call trees at progressively different vertical offsets. Broad ProfilerStep events push each later tree farther down the track.The same PyTorch timeline after tallest-first packing. The three call trees align at the top, while all three ProfilerStep events share one row along the bottom, making the track much shorter.
000
Lalit Maganti @lalitm.com · 17/08/2026
Once again relevant due to today's GitHub outage!
041
Lalit Maganti @lalitm.com · 17/08/2026
I'm quite shocked there doesn't seem to yet be a high quality "remote control" solution for Pi. I'm *not* looking for something wrapping Pi; just an extension to monitor the state of agents from my phone. Everything I've tried left me quite disappointed...
000
Lalit Maganti @lalitm.com · 17/08/2026
A day-to-day game-changer of LLMs is the ability to design really exhaustive benchmarks. This is the sort of thing I would have just been too impatient to do before. For example, I've spent around 30 minutes iterating and I've ended up with this...
000
Lalit Maganti @lalitm.com · 15/08/2026
Junior engineers often ask me: “How can I demonstrate ownership when my manager hasn’t given me anything to own?” The question treats responsibility as something that must be given first. But when a TL gives you responsibility, they also accept the consequences of your decisions.
lalitm.com
Responsibility Is Taken Before It Is Given
To get promoted as a software engineer in Big Tech, you generally need to show “ownership” of a product or area. This means being responsible for it and deciding what should happen over time. I often ...
200
Lalit Maganti @lalitm.com · 09/08/2026
The idea that we’ll all fork and personalize our devtools with coding agents is having a moment. I don’t think long-lived personal forks will become the norm. Every fork turns a tool you use into a product you own.
lalitm.com
Changing Devtools Is Cheap. Owning Them Isn’t.
AI makes devtools cheap to customize, but personalized forks still demand ongoing attention and ownership.
4130
Lalit Maganti @lalitm.com · 05/08/2026
The duality of r/math
010
Lalit Maganti @lalitm.com · 03/08/2026
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*...
210
Lalit Maganti @lalitm.com · 02/08/2026
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-...
lalitm.com
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...
5193
Lalit Maganti @lalitm.com · 28/07/2026
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.com
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.
110
Lalit Maganti @lalitm.com · 28/07/2026
> 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...
blog.exe.dev
Replace Your CI With a Merge Queue - exe.dev blog
Agent development means after-the-fact CI no longer works.
120
Lalit Maganti @lalitm.com · 27/07/2026
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.
lalitm.com
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,...
220
Lalit Maganti @lalitm.com · 26/07/2026
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.
lalitm.com
How I Find Problems to Solve as a Staff Engineer
How listening broadly turns everyday problems into useful project ideas.
150
Lalit Maganti @lalitm.com · 14/07/2026
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/
lalitm.com
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...
1104
Lalit Maganti @lalitm.com · 03/07/2026
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...
lalitm.com
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...
031
Lalit Maganti @lalitm.com · 02/07/2026
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...)
github.com
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...
210
Lalit Maganti @lalitm.com · 02/07/2026
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!
scattered-thoughts.net
Artificial adventures
011
Lalit Maganti @lalitm.com · 30/06/2026
I've spent many hours in my early days optimizing performance in places which ended up not mattering so this article really resonated.
blog.colinbreck.com
When Impressive Performance Gains Do Not Matter
Even order-of-magnitude improvements in performance may not matter.
130
Lalit Maganti @lalitm.com · 17/06/2026
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...
github.com
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, ...
000
Lalit Maganti @lalitm.com · 16/06/2026
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!
lalitm.com
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...
040
Lalit Maganti @lalitm.com · 10/06/2026
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.
110
Lalit Maganti @lalitm.com · 07/06/2026
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...
010
Lalit Maganti @lalitm.com · 16/05/2026
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...
lalitm.com
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...
140
Lalit Maganti @lalitm.com · 05/04/2026
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...
lalitm.com
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...
1620938
Lalit Maganti @lalitm.com · 17/03/2026
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.
lalitm.com
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 ...
120
Lalit Maganti @lalitm.com · 03/02/2026
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...
lalitm.com
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 ...
020
Lalit Maganti @lalitm.com · 29/01/2026
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...
lalitm.com
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 ...
172
Reposted by Lalit Maganti
bit101 @bit101.mstdn.social.ap.brid.gy · 02/01/2026
I made a venn diagram to help you understand Moiré patterns.
venn diagram. circles labeled "Angled lines" and "Different angled lines", they are filled with patterns of slightly different angled lines. the intersecting area is labeled Moire pattern and indeed has a moire pattern in it.
1029154
Lalit Maganti @lalitm.com · 01/01/2026
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! 👇
lalitm.com
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...
110
Lalit Maganti @lalitm.com · 04/12/2025
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.
lalitm.com
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...
121
Lalit Maganti @lalitm.com · 23/11/2025
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.
lalitm.com
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...
110
Lalit Maganti @lalitm.com · 17/11/2025
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...
lalitm.com
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...
000
Lalit Maganti @lalitm.com · 16/11/2025
Just sent my latest newsletter rounding up the last week of posts to my blog: lalitm.substack.com/p/when-good-...
lalitm.substack.com
When Good Technical Writing Isn't Enough
A response to "Don't Build an Audience"
020
Lalit Maganti @lalitm.com · 13/11/2025
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...
lalitm.com
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...
010
Lalit Maganti @lalitm.com · 12/11/2025
Just sent my latest newsletter rounding up the last week of posts to my blog: lalitm.substack.com/p/castx-as-s...
lalitm.substack.com
CAST(x AS STRING) casts to integer in SQLite
Plus TIL: Diátaxis: Systematic technical documentation
000
Lalit Maganti @lalitm.com · 03/11/2025
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...
lalitm.com
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...
000
Lalit Maganti @lalitm.com · 03/11/2025
Wrote up a new discovery I made of Diátaxis (diataxis.fr). It, and it's precursor, the Documentation System, have revolutionized how I think about techinical documentation lalitm.com/til-diataxis...
lalitm.com
TIL: Diátaxis: Systematic technical documentation
A few weeks ago, I wrote about “The Documentation System” and how valuable I found it. As I dug deeper into researching how best to apply the principles outlined there, I came across Diátaxis. Written...
000