Egon Elbre @egonelbre.bsky.social · 05/10/2026One cool idea in github.com/loov/layout for CLI graphs was using seam carving to compress the node layouts. It allows for nice compaction with relatively little effort. #golang 030
Egon Elbre @egonelbre.bsky.social · 03/10/2026If someone needs to easily integrate some graph layouting to a Go project -- I conjured pkg.go.dev/github.com/l... to a usable state... and yes, it can also output to console. #golang 130
Reposted by Egon ElbreRuss Cox @swtch.com · 05/08/2026Experimental new tool from me. pkg.go.dev/rsc.io/cmd/m... is useful for cross-operating-system or cross-architecture Go development work. If your test machine is on the internet (or just your local network), you can use it as a 'go test' and 'go run' target and keep developing in your usual setup.pkg.go.devmote command - rsc.io/cmd/mote - Go Packages 3537
Egon Elbre @egonelbre.bsky.social · 31/07/2026Conjured a tool for diffing disassembly of binaries for Go. #golang github.com/loov/ixdiffgithub.comGitHub - loov/ixdiff: Compare assembly of two binaries.Compare assembly of two binaries. Contribute to loov/ixdiff development by creating an account on GitHub. 081
Reposted by Egon ElbreRoberto Empijei Clapis @empijei.bsky.social · 30/03/2026I'm officially looking around, if anybody needs a Go software engineer with a very strong background in web security lmk. I also know a fair share of frontend dev and was a SWE/SE for Google and Microsoft. I'm looking for security-sensitive dev projects and security reviews. 1117
Egon Elbre @egonelbre.bsky.social · 27/03/2026recording of last night's meditation with piano soundcloud.com/egon-elbre/h... 010
Egon Elbre @egonelbre.bsky.social · 19/03/2026For a larger example see github.com/loov/gorelo/... 000
Egon Elbre @egonelbre.bsky.social · 19/03/2026I needed to reorganize a bunch of Go code, so I ended up creating a tool for moving declarations between packages. It takes (mostly) into account build constraints, renaming, adding imports etc. github.com/loov/gorelo gorelo -r "Server Options -> ./server/server.go" ./... 100
Reposted by Egon ElbreJake Bailey @jakebailey.dev · 07/01/2026My GopherCon talk was just posted!youtu.beGopherCon 2025: Porting the TypeScript Compiler to Go for a 10x Speedup V2 - Jake BaileyYouTube video by Gopher Academy 27819
Egon Elbre @egonelbre.bsky.social · 24/11/2025I can also highly recommend any tutorial by @saint11.art. For example saint11.art/pixel_articl... and saint11.art/blog/pixel-a....saint11.artPixel Art Articles - Saint11This is a series of articles I made with the help of my Patreon. This series is aimed towards absolute beginners, I explain the basics of the Aseprite software and walk through some basic exercises. I... 120
Egon Elbre @egonelbre.bsky.social · 01/08/2025My new favourite thing is to let LLM explain a technical topic like a drunk person. 000
Reposted by Egon ElbreJorropo @jorropo.bsky.social · 13/03/2025Awesome work by @thepudds.bsky.social github.com/golang/go/is... Compiling the typescript compiler went from 70s to 30s !github.comcmd/compile: slow escape analysis in large package in the typescript compiler · Issue #72815 · golang/goGo version go version go1.24.1 linux/amd64 Output of go env in your module/workspace: AR='ar' CC='gcc' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_ENABLED='1' CGO_FFLAGS='-O2 -g' ... 24910
Egon Elbre @egonelbre.bsky.social · 13/03/2025Wrote small post about an optimization story storj.dev/blog/two-mul...storj.devTwo mul or not two mul: how I found a 20% improvement in ed25519 in golang | Storj Engineering BlogLow level optimizations are tricky and sometimes unintuitive. We'll take a look at a story of optimizing ed25519 signing and verification. 061
Egon Elbre @egonelbre.bsky.social · 20/02/2025Should be fine in your case. The main difference is that you don't get the gradual adding/removing of service methods. e.g. you add a service method and now need to gradually implement it in multiple servers and clients. 010
Egon Elbre @egonelbre.bsky.social · 20/02/2025Ah yeah... in that case, maybe, MQTT? And protobuf/msgpack if you need structured messages. 100
Egon Elbre @egonelbre.bsky.social · 18/02/2025Hot take: storj.github.io/drpc/storj.github.ioDRPC - Storj Labs 110
Egon Elbre @egonelbre.bsky.social · 07/01/2025Also there are plenty of books to read about good code design. My main recommendation is "A Philosophy of Software Design". For concurrency it's "The Little Book of Semaphores". Also few additional posts about code-reviews for other tips blog.palantir.com/code-review-... and dev.to/codemouse92/... 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025This approach forces people to write code with much more care and without relying on "I can fix the bugs that come up". Any beginner coding problem or kata is a good exercise. One year I tried part of advent of code with this approach. 13 successes, 20 failures. 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025A hands approach could be "Cut the Red Wire" exercise (egonelbre.com/learning-cod...) The basic premise is that your goal is to write fully correct code, without any help from your editor, tests or language server etc. You have a single attempt to run code per coding task.egonelbre.comLearning Code ReadabilityTips for developing your code writing skills. 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025Ideas for teaching the skill: * let people read bug-fixes * let people read lists of common mistakes * let people read posts about code bugs * share new interesting, bug finds in a slack channel (or mailing list) 110
Egon Elbre @egonelbre.bsky.social · 07/01/2025Good naming is hard, but it's a good way to avoid mistakes. Bad naming can easily hide bugs, make design less obvious and code intent less clear. Also avoid negation in naming, whenever possible. `if !incorrect {` is harder to processs than `if correct {`. 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025Embrace consistency. Having different variations of the same thing is an easy way to introduce mistakes that can be otherwise obvious ``` for i := 0; i < N; i++ { for i := 0; N > i; i++ { for i := 0; N - 1 >= i; i++ { for i := 0; i <= N - 1; i++ { ``` 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025If you find one mistake in code, it's quite likely there's another place that the exact same mistake happened. Hence, search for other instances of a mistakes, that came up in code-review or during debugging. 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025Make a docs of common mistakes or places where issues can easily happen... and re-read occasionally. e.g. `go func()` and `chan` are a common source of errors, hence take extra time to consider logical races. What if you inserted `time.Sleep(time.Hour)`, would something break? 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025Automate as much as you can by writing linters, checks, tests. Add checklists for critical things. 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025Review code by reading bottom-to-top. If you read top-to-bottom your brain is more likely to "automatically fix mistakes". Works for regular text as well. e.g. try on www.sciencealert.com/images/2018-... 100
Egon Elbre @egonelbre.bsky.social · 07/01/2025Get patch sizes below 500LOC. Ignoring maybe tests (if they are comparable in size). Separate trivial patches to separate changes. Over 500 LOC reviewer fatigue kicks in and review quality drops. Numbers based on smartbear.com/learn/code-r... 100