google / re2

RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library.
BSD 3-Clause "New" or "Revised" License
8.97k stars 1.14k forks source link

Re: Junyer #502

Closed anthonybaxter closed 3 months ago

anthonybaxter commented 4 months ago

The univsrse is broken and so many people are upset about Junyer passing away at such an early age - he would be mortified at how many people loved him and his work and him being a decent human.

He spent so much time on making RE2 better (see, relevant here) And a lot of energy directing his rage towards people who absolutely deserved his contempt.

He and I would regularly message about some new idiocy - whether it was whatever the new stupidity from talentless folks who had been put in charge of Google, or just random stupid bullshit.

His passing at such a young age is still a shock. He was exactly the sort of person that made working at Google so much fun. He was snarky and cynical and funny, but (and he would hate to hear this) he was a good soul who actually gave a shit about the world and the folks he worked with.

Even after I left Google a few years ago we'd regularly chat on Whatsapp, either I'd share some absurdity, or he'd share some of the latest Google shitfuckery, or the other way around.

He managed to carve out a corner of Google where he was largely left alone to make small changes with huge impact. Some times they were complicated and deeply technical but he always got it done.

I'm sure his shade, wherever it is now, would be quite annoyed about everyone reminiscing about him. Tough. He was a real one.

One thing we always will remember him for was his ability to find new documents about some new idiotic Google project. (Google at one point put money into cold fusion, for some reason) He'd regularly post links to Google docs or internal websites about new projects to the internal IRC #sydney channel for us to mock.

For the longest time it was a mystery how he kept finding them all. It was because of the internal link shortener, go/

New project would set up a new go/secret-project-design link to a Google doc or the like.

Junyer would regularly check the internal data store behind go/ to look for new ones that might be interesting or fun to mock, and share them. He was a fan of Good Trouble.

Every time the fuckfaces (who are now running Google into the ground) did some bullshit that a talentless MBA brained fuck would do, he would get mad, and share screenshots of internal emails from some random MBA weasel.

When he was an SRE on Appengine and Grindr was a huge customer, he was one of the folks who pushed for a team shirt of Grindr SRE: Are you feeling lucky?

He was also a brilliant engineer who would go “well that seems like some bullshit” and just fix it.

Over the last few years as Google went from a fun place to work to a place run by and for talentless mediocre management consultants like Pichai, he was always in a state of extremely pissed off about it all.

When Google laid off almost all of the Python team, he was so very, very, very pissed off.

I'm going to step back a little and talk about #YesWithLove. For trash reasons, marriage equality in Australia was subject to a non binding postal vote, we called it the plebisurvey. All it did was to give license to knuckle dragging bigots to be hateful.

One Thursday evening during this I said on Twitter this absolutely is pissing me off, I am going to gift match $10K of donations to LGBTQI+ charities that help kids. With the help of the extremely good person Amy Coopes we launched it the next morning. Junyer messaged me shortly after we launched it to say “I'll match $10K as well, but don't want my name to be shared”.

Too bad, you're dead now and you can't stop me sharing that you did this. We managed to raise better part of $100k in a day.

I never asked, nor did I care to ask, why Junyer chose to say yep, this a good cause and I will help. He was extremely private about any of this, and I never thought to pry. He was that sort of person.

He was extremely in favour of doing things right. He was also the sort of person who would go “ok that's pretty awesome/funny” every time us on Crisis broke maps. Or the many and varied times Pokemon Go broke so much of Google.

I am happy to have been his friend, and I am extremely upset about his passing. As are so many people who knew him.

Seriously, his shade is curling up in a ball of awkward right now to see how many people are devastated and upset by his passing.

Go well, Junyer. You were a real one, and will be missed.

petelah commented 4 months ago

Absolutely spot on! He would hate this, but I fucking love this man and am going to miss him dearly.

I'll be sipping chartreuse for you always Junyer.

cosmicexplorer commented 4 months ago

He was one of my favorite people in the entire world and he taught me so much in such a short time. I didn't think there were people like him. He was such an inspiration to me and he will be in my heart always.

nickzoic commented 4 months ago

So sorry to hear of Junyer's passing, we met at OSDC Sydney I think where he did more or less this great talk on Redgrep and LLVM and then we spent ages sitting around outside some fancy waterfront bar talking about technical shit and the state of the world. His expertise was deep, his curiosity broad, and I wish I'd had the chance to get to know him better.

andrewpollock commented 4 months ago

I was Paul's team lead at Asia Online during the tail end of the dotcom bubble. I can't remember how we hired him, I think it was via the Canberra 2 degrees of separation and an existing employee. He was a genius. The project we were working on was the glue around one of those behemoth IT projects that fail more often than succeed, building a new integrated accounting, billing and customer care system for the disparate set of ISPs that Asia Online had acquired. It was all kinds of fun and ultimately a disaster area, but so very educational for the rest of my career...

We were hacking up all sorts of data-related utility pages in PHP, and the backend was Portal Infranet. It had some sort of C-based API, and my fondest memory of Paul's genius was he somehow managed to shim a closed-source binary .so file into PHP's extension system, so we could call that Infranet API from PHP, which was a total game-changer for being able to quickly get things done.

When I was hired by Google, I felt from the outset that Google of ~2005 was totally the place where Paul would thrive and enjoy himself. I was absolutely delighted when he was successfully hired and joined in January of 2007.

The fact that he remained at Google for as long as he did, and successfully climbed the engineering ladder to Level 6 (moving from Sysadmin to SRE (Systems Engineer) to SRE (Software Engineer) to Software Engineer) was testament to that fit.

junyer became an active employee on Tuesday January 29, 2008 (6005 days ago).
98.67167 of full-time employees and extended workers have been at Alphabet for less time than junyer.

Amongst full-time employees, 177926 of 183020 = 97.21670% are newer than junyer.

Within Engineering, 103637 of 106842 full-time employees = 97.00024% are newer than junyer.

His first trip to the US to visit the mother ship ended somewhat badly with me receiving a phone call from him within 24 hours of arrival asking me to collect him from the Stanford Hospital ER. The evening of his arrival, he learned the hard way that American bars free-pour their spirits and the more you tip the more generous their servings. The ER staff had given him some sort of nickname based on his BAC level when he was admitted as a John Doe. He was miffed they'd cut off his clothes and piercings in order to do All The Things that they do with an unconscious John Doe patient. That he went on to own a bar was... interesting 😄

He'd often send me random messages on the internal chat product of the day, at all sorts of weird and wonderful hours, sharing his latest accomplishment or discovery. That tended to be the closest to his work at Google I got. I know he was very proud of his RE2 ACM paper being published, and I was very proud of and happy for him with that accomplishment. If I ever had an arcane regular expression problem, he was my go to guy.

I last caught up with him in Sydney on a regular work trip, and he treated me to a lovely dinner and a bar crawl. He seemed very plugged into the Sydney hospitality scene.

I will miss being a witness to his genius. I am very proud of where he got himself to, and I am very sad that he has died so young.

jacobsa commented 4 months ago

In addition to all the more eloquent things others have said here and elsewhere, I will very much miss trolling junyer with questions about using RE2 to parse non-regular configuration languages for hot new AI applications on Google's internal version of Stack Overflow. :-(

adk-swisstopo commented 4 months ago

We never met and I haven't been on #sydney for two years but from across the world I will forever remember the junyer daily link dumps and associated sharp commentaries. I am so sorry to hear he is gone. The universe is broken indeed.

AlphaHot commented 4 months ago

Was he ill or why did he die?

rsc commented 4 months ago

@AlphaHot He'd had a heart attack a few weeks earlier and got out of the hospital and was recovering at home when he died, presumably from complications of the earlier event.

rsc commented 4 months ago

Paul's first contact with me was in late 2010, when he was adding support for named capturing groups to the internal Python bindings for RE2. A a few weeks later, he started a mission to replace uses of RE (Google's PCRE wrapper) with RE2 in Colossus.

A few months after that he asked me some questions about my second favorite regexp paper of all time “Regular-expression derivatives re-examined”. Back then he had an idea to give a talk about approaches to efficient matching of large numbers of regexps, and I reviewed some slides, but I don't know if he ever gave that talk. A few months after that I got a mail that started:

For reasons that I cannot recall at this hour of the morning, I decided to implement regular expression derivatives this weekend. It's just a prototype written in Python, so chalk up the Google3 path to wishful thinking, but it's only a few hundred lines.

and then a few months later:

Subject: porting Laurikari tagged transitions to Brzozowski derivatives for fun and profit

It took me twelve hours and the Go code looks pretty awful, but I now seem to be able to generate DFAs with the annotations required for capturing groups to work correctly.

These hacking sessions eventually led to the redgrep talk.

In early 2015, Paul made an offer to take over maintenance of RE2, which I gratefully accepted.

Paul was relentlessly curious and very good at connecting people or projects that should have known about each other but didn't yet. He was never afraid to forward things to people he didn't know if he thought they would be interested. One example was a summary of a Google internal bug involving a ReDoS-style problem from 2016. The entire body of the message was:

[link to internal bug tracker]

Choice quote: "Developer is able to update a regex in their rules which consumes all memory on the server:"

Choicer quote: "We should wrap the offending line compilation step in rules with an Await with a small timeout e.g. 10 secs."

Choicest quote: "A user simply needs to upload "".matches(/.*a.{50}/) in a rule to kill a server."

Thanks to [username] for the tipoff.

He sent this to some other people and then forwarded that mail to me, Rob Pike, and Ken Thompson with the added sentence “This is beyond tragic.” I think he may have met Rob through Google Sydney, but I doubt he'd ever interacted with Ken before. He just thought Ken would be as amused/interested/sad as he was.

He also had a habit of bcc'ing me (and others, I eventually learned) on mails that he thought I would find interesting.

Paul had a very strong sense of right and wrong and was not afraid to speak out or act on it. In 2020, during the George Floyd protests in the US, members of the Go team posted a Black Lives Matter banner on the Go web site. It was controversial, and I later defended them on golang-nuts. Shortly after that, I got mail from Paul:

Having just read your excellent post on that golang-nuts thread, I want a BLM/EJI banner on RE2's wiki pages. GitHub supports footers and sidebars, but not headers, so I would like to insert this line at the beginning of each page:

# Black Lives Matter. [Support the Equal Justice Initiative.](https://support.eji.org/give/153413/#!/donation/checkout)

Is this okay with you? If not, how would you prefer me to do this?

and a followup:

P.S. GitHub says that RE2 sees ~1k unique visitors per weekday. (Mostly for the Syntax wiki page...) That's far less than golang.org sees, I'm sure, but it's still worth doing.

"It's still worth doing" was classic Paul to me, both on technical questions and social ones.

It was a visually invasive change in the RE2 wiki, because it added a new \

on every page, but he felt very strongly about speaking out. He kept the headings until we removed the Go banners in December 2021 as part of a site revamp. During that year and a half, someone had contacted Google's Open Source Programs Office to complain about the RE2 wiki headings and Chris DiBona had defended him. He learned this later when he met Chris for the first time and Chris already knew exactly who he was. He was very proud to have bothered someone this much and also very grateful to Chris for standing up for him. (You can see more of his recent political statements on Twitter.)

Paul's convictions certainly extended to criticism of Google itself. When one recently-laid-off employee asked him to take over a project temporarily as a hand-off, he wrote back (and bcc'ed me):

No. No, I don't think I will. The company made decisions it didn't have to make, took actions it didn't have to take. It's not my responsibility – and even more not yours! – to mitigate consequences that the company consciously and deliberately chose to reap by yeeting decades (if not centuries) of accumulated expertise in one fell swoop. I will answer helpfully and sympathetically when somebody asks me "what this do". I just won't volunteer to navigate the ramifications of the company embracing "move fast and create trolley problems".

"Move fast and create trolley problems" was just chefs-kiss perfect.

All these interactions, and I'd never met him, nor even talked to him over video. But then I visited Sydney last November, and he invited me out to dinner. He was the same in person as on chat: relentlessly curious, snarky, friendly, smart, always recommending new connections, and just plain fun to be with. (He also told me the Stanford Hospital story that @andrewpollock recounted above, which he was quite proud of.) I was very grateful then for those few hours I got to spend with him in person, and I'm even more grateful now.

One of the connections Paul cultivated was with Andrew Gallant (@BurntSushi), the maintainer of the Rust regex crate. For the most part RE2, Go, and Rust all agree about regexp semantics, and back in 2021 Andrew found an actual bug in all three of them (https://github.com/golang/go/issues/46123), and we had to have a conversation to decide what to do. It felt a little like we were the regular expression cabal, and it felt weird that that even existed. But to the extent that it did, it did because of Paul.

In March 2023, the three of us had a short conversation about the subtleties of this related 7-year-old bug fix, which Andrew had rediscovered the hard way. Andrew said it would make a good blog post (along with a description of the flattened bytecode he added to RE2), and Paul responded “I might aim for March 2026, which would be the tenth anniversary...”

If Andrew doesn't beat me to it, I will write that post.

Thanks for everything @junyer. You were one of the best, and one of a kind.

raulvera59 commented 4 months ago

As others have mentioned, junyer wrote a lot of poetry, much of it quite good. Whenever he worked from home, which was often, well before the pandemic, he wrote and sent in a haiku. Sometimes it would justify his absence from the office, other times it was just a good haiku. A large though probably incomplete set of his haikus can be found here. As he was one of the most eloquent people I knew, I think it appropriate to quote him on how many of us feel about his dying:

_shallow, ragged breaths love lies bleeding in the snow until death whispers

"far beyond the clouds the stars await your presence fly now and burn bright"

silence and stillness the snow continues to fall burying the blade_

His passing is a sad loss for everyone who knew him and for the very many people his life touched.

geofflangdale commented 4 months ago

I will miss him. We had a back-channel group chat ("Twitter Regex Implementer Mafia") which had nearly daily activity for over 5 years: jokes, snark, and occasionally even serious discussions of regular expression implementation. If his public persona was a bit wild, the @junyer that I knew from our chats was next level: funny, black-humoured, and irreverent - but also kind and principled.

It takes some getting used to - I keep thinking of things that it would be fun to tell him. The world is a worse place without him in it.

jonstewart commented 4 months ago

I sadly never got a chance to meet him in person, but maintained active chat for years. Some nights I'd be up late and could send a few messages back and forth synchronously... there were always sure to be many more in the morning when I woke up. There aren't many people who can withstand my cynicism and black humor, but Paul's always seemed a step ahead.

He was justly proud of his work on rocksteadier and the ACM article, as noted above. I still have half a career to make it through, but doubt I'll ever match him on resolution of user issues. And, most notably, he has even caused @geofflangdale's faith in Gluskov automata to waver at times, however microscopically.

RIP, junyer. Don't save the good stuff.

Metabolis commented 4 months ago

I first bumped into Junyer when he joined an IRC channel I used to frequent around '98 or so. We were both from Brisbane and shared a passion for music and uh, computers. At the time I was unemployed and had my heart set on obtaining a specific piece of music hardware that I would chat to him about. I'd shared a listing on ebay for the item which was around $500 to show him what I was trying to get. The next day he messaged me that he'd bought it, and I could come pick it up and pay him back whenever I could. That was the kind of generous guy he was. It took me a long time to pay him back, but he really didn't mind.

The last time I caught up with him was at the Blind Bear just before Happy Panda closed down. Of course he refused to let me pay for anything and I had a great night there. I'm sad that I won't get to have another drink with him.

RIP mate.

anthonybaxter commented 4 months ago

Actually I'll add one more memory of Junyer encouraging/enabling me.

A number of years ago, Google had a new approach to building production services. The "common wisdom" was that it wasn't possible/worthwhile to migrate existing services to using it. I was "fucking watch me", and Junyer was always there for me to gripe to, and offer advice on how to find the right way to yell at people.

He was always a good sounding board for me to go "it seems like this is ass-backwards y/n?" and was forever willing to support and encourage and be very happy for folks he cared about getting things done. Also any time I found some extremely weird shit while trying to fix like a decade old code base, he was the sort of guy who I could go "hey check this out" and he enjoyed the "why would they have done this?"

tautred commented 4 months ago

“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.” ― Antoine de Saint-Exupéry

Paul was a staff member, mentor and friend. He made me a better programmer and had a keen eye for simplicity.

He described me as managing my team with an iron fist in a velvet glove. I still take that as a compliment. Paul was up front about his priorities and when he felt things needed to change. This was something that mattered to me.

Both when he was in my team and well beyond, I would ask Paul for a consult - what did he think of this design and whether we could make it better. He was brutal in his analysis and that was exactly what I valued. He made things better, both in fine detail and at scale.

Farewell Paul. I'll miss your wisdom.

thecowan commented 4 months ago

There's been no person who Hunter S Thompson could have been describing more accurately when he wrote:

“There he goes. One of God's own prototypes. A high-powered mutant of some kind never even considered for mass production. Too weird to live, and too rare to die.”

I am shattered beyond words at this news. All I can do is try my feeble best to echo a faint Platonic shadow of Paul's own love of, and deep skill for, poetry —in particular the punny, in-joke-riddled haiku.

It's the best I've got, junyer: sorry, mate.


Part Bacchus, part Pan; Always living to his own Arcadian rhythm.

Endlessly trolling; Always happy to start a Wankadian schism

Moreish chevalier; Yellow and green, his T9 Carthusian visions.


💚

DrJosh9000 commented 3 months ago

Paul was always so kind to me.

He fed me rum and chartreuse, of course, but he had good taste in many things: food, knowledge, bars, regexes, objects, people, and interesting links to random company secrets.

The stuffed toy black swan Paul gave me has pride of place on my living room shelf.

The last time I saw him, he was bundling me into a taxi to take me back to the hotel I was staying in, because he wanted to make sure I got back safely (I had drunk at a rate that put my safety into question). His kindness was only limited by doing the right thing.

He paid for our dinner earlier that night, and we vowed to pay him back one day.

anthonybaxter commented 3 months ago

The Burrow Bar folks also had a memorial for Junyer. Here's the video. https://youtu.be/pEB3ptN2mXU?si=jamzM6tAVMUHhRT6

He touched the lives of so many people.

abdcomputers commented 3 months ago

Junyer, you were a good friend and great Open Source'er (dont mind the Tolkein language addition) . Uncle Stallman and the Foss Community are proud of you . Rest well my friend , I hope you get to bust the next myth sometime soon. -Mohammad Kaan-

auturgy commented 3 months ago

No more watch to stand, old sailor. We'll miss you mate.

shanemhansen commented 3 months ago

I'm going to miss Junyer. I'll share my story which will probably sound familiar because that's the kind of guy he was. We briefly worked on the same team in Chrome SRE. Frankly Junyer was ungovernable in the best way. He just worked on whatever he thought was right and interesting. The people he reported to eventually just learned to ask what he was up to and give him spot bonuses for that. He was a great example to me and really my channel into google culture.

Junyer was always sharing information, whatever was interesting he was digging it out and sharing his joy in learning (or laughing at bad ideas) with his friends. I'm glad I peer bonused him for that work running a group chat and sharing info. It somehow feels a little better knowing that there wasn't something left unsaid. He knew how much I appreciated him and his inclusivity.

I hope we can all be a little bit more like Junyer. Let's find what's interesting, share it with our friends, and be brave enough to do the right thing. Whether that's a technical decision or speaking out for people (like his editing of the RE2 wiki for Black Lives Matter).

But also let's not forget Junyer didn't just share others work. I'm honored to have known an author of RockSteadier: https://queue.acm.org/detail.cfm?id=3570937 It was a privilege to know and be exposed to so much of the work of the maintainer of RE2. His work on fleetwide profiling and performance is something I want to do when I grow up.

I'll miss you Junyer.

Hedayet commented 3 months ago

i’m so sorry to hear this. junyer was in my first team at Google and among all the brilliant colleagues I met there, he was special for his haikus, exceptional work routines(mostly between lunch and dinner) and insane technical depth. RIP Paul

rsc commented 3 months ago

Paul was laid to rest in Rockwood, NSW, Australia on July 23, a week ago today. I am going to close and unpin this issue now. Thanks to everyone who shared their memories here.

RIP Junyer.