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
Find syntaqlite at github.com/LalitMaganti.... All these performance improvements are part of 0.10.0, which came out yesterday.
github.com
GitHub - LalitMaganti/syntaqlite: A fast parser, formatter, static analyzer, and language server for SQLite SQL.
A fast parser, formatter, static analyzer, and language server for SQLite SQL. - LalitMaganti/syntaqlite
000
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 · 13/09/2026
I think we should definitely support that! Will look into it when I get some spare time!
010
Lalit Maganti @lalitm.com · 13/09/2026
I think aggregate statistics on how many threads were running etc would be reasonable to support! I'm not sure I want to get into the business of plotting *how* the threads were running over time though, or I'll just reinvent Perfetto! Please do file a bug with more details on what you'd like!
100
Lalit Maganti @lalitm.com · 13/09/2026
FWIW, I am working on something as part of my work in Perfetto which might be a much better fit for the problem you describe. There might be soemthing in the coming months I share about that :)
010
Lalit Maganti @lalitm.com · 13/09/2026
It could help *if* tests were by spawning processes rather than inside the same process (e.g. using threads). buildprof does not have any visibility to what's happening *inside* a process except for specific compilers which expose more info.
200
Lalit Maganti @lalitm.com · 13/09/2026
Excited to see what you find! Please do share if you can!
010
Lalit Maganti @lalitm.com · 12/09/2026
It uses ptrace under the hood, the UI is a customized Perfetto UI, and it’s Linux only for now. It’s open source and I plan to keep working on it. If you have a build that annoys you, give it a try. I’d love to hear what you find. github.com/LalitMaganti...
github.com
GitHub - LalitMaganti/buildprof: Records every process and file access in a build and shows it as an interactive timeline
Records every process and file access in a build and shows it as an interactive timeline - LalitMaganti/buildprof
020
Lalit Maganti @lalitm.com · 12/09/2026
When I replayed Bun’s Zig build, one linker invocation ran alone for two-thirds of it. What the heck was it doing for all that time? The short answer is Full LTO, and not just in Bun’s own code. The long answer is a whole rabbit hole, so I wrote it up: lalitm.com/post/buildpr...
lalitm.com
I made a build profiler to understand Bun’s compile times
I built buildprof (Github), an open-source tracing tool that shows where the time goes when you compile software on Linux. Here’s a realtime video of it profiling a clean build of ripgrep: Watch the …
150
Lalit Maganti @lalitm.com · 12/09/2026
I built it because of claim that Bun’s new Rust build compiled 5× faster than its old Zig one; that just didn’t sit right with me. Zig projects usually build much faster than Rust ones. I wanted to see where the time was actually going.
120
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
Very cool, thanks for letting me know!
010
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
5/5 Caveat: the samples of Opus 5 is small; mainly because I don't particularly like using it (mainly been using Sol but I ran out of usage for the week!)
000
Lalit Maganti @lalitm.com · 19/08/2026
4/5 Weirdly this only seems to affect code comments, not writing in general. I see just as many em-dashes as ever in chat replies.
100
Lalit Maganti @lalitm.com · 19/08/2026
3/5 What makes me so sure it's the model? I have a specific session where I *switched* from Fable to Opus 5 *mid conversation*. When Fable was running, 11-emdashes in comments. With Opus 5, 36 double hypens. I didn't touch anything else...
100
Lalit Maganti @lalitm.com · 19/08/2026
2/5 My methodology: agentsview indexes all my conversations into an SQLite database so I can just run some queries to count comment lines with -- vs em-dashes.
100
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
Before doing so, a TL asks: “Does this person deal with problems the same way I would, or better?” You demonstrate that judgement in small increments, within your existing scope. Formal responsibility is a trailing indicator. More at lalitm.com/responsibili...
010
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
Thanks for reading, really glad you're enjoying it! Yes I think this long term "thinking cost" has not changed with AI; I don't think your experience would have been *that* much different even today with agents!
010
Lalit Maganti @lalitm.com · 09/08/2026
Out of curiosity how many are full forks of a project rather than extensions, small scripts/utilities etc? I definitely think the latter is going to happen a lot more often as I call out at the end of the post!
100
Lalit Maganti @lalitm.com · 09/08/2026
After nine years maintaining Perfetto, I’ve found most users want a reliable tool so they can focus on the problem they opened it to solve. I expect personalization to grow around maintained cores and extension points. More at: lalitm.com/post/changin...
030
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
Haven't tried either of those yet, it's mainly the rock-bottom prices of DS4 which attracted me!
010
Lalit Maganti @lalitm.com · 03/08/2026
It's in the reply :) bsky.app/profile/lali...
100
Lalit Maganti @lalitm.com · 03/08/2026
* Deepseek v4 Flash 0731 reminds me a *lot* of Opus 4.6 and is a *really* pleasant (and fast!) model to use * Deepseek is also *incredibly* cheap; I genuinely think I could use it at full tilt at API prices and it would be competitive with Claude/Codex subscriptions
030
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
It's definitely the most promising candidate out there but it's not there yet! Hoping it keeps marching towards parity!
100
Lalit Maganti @lalitm.com · 02/08/2026
Yes discovery is huge. As I said in the post, I found so many interesting projects i would have never thought of through the GitHub discovery page (back when it was the homepage!) and even more through looking at inbound links on issues (something i forgot to mention in the post!)
000
Lalit Maganti @lalitm.com · 02/08/2026
Yup tangled is the option I'm most interested in, they're definitely going in the right direction but still got some way to go. Excited to see where they end up!
010
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
Post in question is lalitm.com/post/perfett...
lalitm.com
Security analysis is finally reaching software's long tail
AI tools found 17 security bugs in Perfetto's trace processor in 10 weeks: a sign that software's long tail is finally getting the security scrutiny it never could before.
000
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
Fair enough makes sense. I think I might also be heavily biased by working on client side software where you don't have to deal with the whole microservices problem. The most complicated tests we have are still a handful of processes on one machine.
011
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
I use it every day and it's changed what I can build. But if I can't trust it to make design calls on its own, I still own the code. Full thoughts at lalitm.com/post/ai-subs...
001
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
I let problems accumulate rather than acting immediately. Some fade; others recur across teams or connect with issues that seemed unrelated. Over time, I see what’s really slowing people down and what might be worth building. Blog post here: lalitm.com/post/find-pr...
000