Robin Stocker
banner
nibor.org
Robin Stocker
@nibor.org
Backend Dev @ Canva – ex Atlassian (Bitbucket); Java, Rust, open source, Swiss living in Australia

https://github.com/robinst
Pinned
Intro post: Have you ever done a `git push` and it printed a nice link for you to create a pull request (see screenshot)?

That was me! One of my first 20% projects when I was working on Bitbucket at Atlassian. GitHub later copied it – glad they did because I use it almost every day :)!
Me solving 2025’s last Advent of Code puzzle
a man in a white shirt and tie with his mouth open
ALT: a man in a white shirt and tie with his mouth open
media.tenor.com
December 12, 2025 at 6:06 AM
Reposted by Robin Stocker
“We adopted #rustlang for its security and are seeing a 1000x reduction in memory safety vulnerability density ... with Rust changes having a 4x lower rollback rate and spending 25% less time in code review, the safer path is now also the faster one.”

security.googleblog.com/2025/11/rust...
Rust in Android: move fast and fix things
Posted by Jeff Vander Stoep, Android Last year, we wrote about why a memory safety strategy that focuses on vulnerability prevention in ...
security.googleblog.com
November 13, 2025 at 7:52 PM
Do you have a screenshot you can share? I only have "secret" stuff that I can't share.
October 17, 2025 at 9:39 AM
If the tooltip is over a certain length, it could instead start to pretty print it and format it over multiple lines, with indentation and line breaks (like real code getting formatted).

That would be so good for readability! Am I missing a setting somewhere that does this?
October 17, 2025 at 3:30 AM
So in Java, sometimes you can have pretty long/deeply nested type signatures (yes, I'm doing something complicated :P).

In @intellijidea.com, when you look at the types using Cmd+hover, why does the tooltip show everything on one super long line? Same question for Cmd+P to show arguments.
October 17, 2025 at 3:28 AM
Not sure about the annotation, but Javadoc apparently can’t be there, it has to be in a @param on the record itself.
September 29, 2025 at 11:43 PM
A tool I helped create a few years ago. It was pretty straightforward to write (~one week with a few devs) but apparently it’s really useful for certain types of research!

A great collaboration between @atlassian.bsky.social and @victorchang.edu.au.
🧰 Now published in Bioinformatics Advances: "Atlantool: A command line tool to retrieve DNA and RNA sequencing reads from BAM files by the read identifier"   

Read the full paper here: https://doi.org/10.1093/bioadv/vbaf226 

Authors include: @nibor.org, @egiannoulatou.bsky.social
September 26, 2025 at 9:15 AM
I had to implement this at work.. Thanks JavaScript/JSON/Java/UTF-16 :/
September 20, 2025 at 12:57 AM
`jj undo`, I love you.

(jj is a git-compatible git alternative. You should try it.)
August 21, 2025 at 10:29 AM
What I like about fooToBar is that it lines up with the types and e.g. put(foo, bar) (and in general how a map is a foo -> bar).

What I like about bar(s)ByFoo is that it puts the more important thing first. And sometimes the "ByFoo" doesn't need to be explicit if it's clear enough without it.
August 5, 2025 at 12:16 PM
For a field with type Map<Foo, Bar>, do you prefer naming it fooToBar, or barsByFoo? (Assuming that e.g. just bars is not clear enough.)
August 5, 2025 at 11:17 AM
This was a really interesting episode about databases but also UX trade offs. (No prior knowledge of DB internals required.)
Implementing Hardware-Friendly Databases (with DuckDB co-creator, Hannes Mühleisen)
Developer Voices · Episode
open.spotify.com
July 22, 2025 at 8:07 AM
It me
July 22, 2025 at 8:00 AM
Was the first time using the new Maven Central Publisher Portal, which is the replacement for OSSRH. Followed this guide: central.sonatype.org/publish/publ...

... and it worked on the first try! Seems better than the old system, kudos to the team!
Maven
central.sonatype.org
June 20, 2025 at 1:33 PM
@gork.bluesky.bot is this true?
June 20, 2025 at 8:22 AM
One of my favorite little tricks to copy some git changes to another checkout is `git diff | pbcopy` in the source followed by `pbpaste | git apply` in the destination.
May 28, 2025 at 12:34 PM
It doesn’t prevent anyone from handing in a blank vote (i.e. an “informal vote”). But yeah, compared to Switzerland, Australia has much less frequent voting, so maybe that helps.
April 30, 2025 at 7:02 AM
I like that Australia has mandatory voting -> ~90% turnout: www.aec.gov.au/Elections/fe...
April 30, 2025 at 6:34 AM
It was a great tool the few times I’ve used it, thanks!

Recently I’ve discovered @duckdb.org for this. While not a direct replacement, it allows processing CSV using SQL, e.g. see
Used duckdb.org for the first time today. Just to do an inner join of two CSV files, but I'll try it again next time for some ad-hoc data processing.

This is a single command, but it also has an interactive mode with syntax highlighting and completion:
April 25, 2025 at 11:07 AM
Would be great to have it formalized, yeah! Excited for jj and other tools :)
March 30, 2025 at 1:31 AM
I see, so it’s more like “it happens to work” than being explicitly supported at this point.
March 29, 2025 at 11:56 PM
Oh, I didn’t know git allowed custom headers in commit objects, when did that happen?
March 29, 2025 at 11:24 AM
Reposted by Robin Stocker
New blog post up on the Rust font loader now shipping in Chrome. I only had a small part in this personally but am proud of the team's work. developer.chrome.com/blog/memory-...
Memory safety for web fonts  |  Blog  |  Chrome for Developers
Learn how and why the Chrome team has replaced FreeType with Skrifa.
developer.chrome.com
March 19, 2025 at 3:15 PM
Like:
- Conflicts can be resolved later, nice markers (with diff)
- Stable change IDs (and surprisingly short, no need to copy paste)
- jj new (with e.g. --after). Very convenient to work on stacked things in general
- rebase without having to check out
- push doesn’t need force
- log nice and short
March 13, 2025 at 6:08 AM