End of an era! After 19 years of working at
@Google
, with more than 16 of them on the team that I founded, I made the tough decision yesterday morning to finally bite the bullet and find out that I'd been laid off overnight.
Layoffs suck, but in my case... it's fine, because I've needed some kind of change in my life for a very long time. And I have no plans to rush into anything else right now. I've got too much to do: cycling, reading, restarting my drum lessons, travel, family time. etc. etc.
I view my 19 years there and the people I got to work with and things I got to do as an immense blessing. No expressions of sympathy are called for in my case! And with that, I'm off to go figure out how to actually live my life!
@asrlhhh
@Google
The answer is you will never ever ever know why it was this person and not that person. And in any case of that nature, say college admissions, you really might as well just assume it was random. Nothing's gonna shed more light on it than that, so...
@fesshaye
@Google
These days employment like everything else is just transactional. It is kind of sad. But I don't feel like I "gave" them years of my life and they owe me anything for it. I feel more like they "gave" me a house.
What have I done. Yeah, it's a sort of blessing for ME because I happened to be in a sad place lately. I hate that people who have been streamrolled by a layoff they very much did not want are going to see headlines like this.
The internet keeps "forcing" me to seemingly defend my own layoff which is weird. I didn't want to be let go, but ferchrissakes people, I had a job for 19 straight years, I feel like the luckiest asshole in the world. I didn't have some kind of right to my job. (THIS IS A THREAD)
@helloPrashantJ
@Google
Fortunately I created a team that will outlive me just fine. If it had to be someone from that team then there was no good option.
Hit my actual Google end date last week, so now I'm *officially* a free agent.
It's completely weird that getting laid off from my job of 19 years was less emotionally traumatizing to me than getting perma-banned from r/guitar.
This morning I asked the mods if they were open to a discussion. I guess I will refrain from posting their reply, but this is what I replied back. (Because, as explained therein, why *wouldn't* I share it? I owe them nothing.)
I care a ridiculous amount about this topic, and commented heavily and constructively throughout that reddit thread all morning long (as I do with all of them). Because I see that as part of my job - even when (until next month) no one's even paying me to.
For context, the topic is Kotlin's null-aware type system vs. Java's. One of my active projects has been working toward bringing similar features to Java, first via the route of , but preserving a path toward a language feature.
If I'm raking them over the coals, it's because I don't want forum moderators to treat *anyone* this way.
The "don't you know who I am!?" aspect is just what makes it hilariously ironic, nothing more.
No one called me out on this yet, but lemme say that my ability to be "cool" with getting laid off is privileged af. For most it's a genuine crisis and I won't minimize that. If I seem to be giving big corps a pass, it's just because it's really the overall system that's fucked.
I founded a library (Guava) that's heavily used in Java-land ... and notorious for pushing API-breaking changes constantly.
(It stopped doing that long ago, but notoriety is sticky, and anyway this tweet is a history lesson.)
Why did I* put everyone through this? (1/long)
Also have been amused by "if that guy was still level 6 after 19 years they were right to let him go".
Dude harsh. But guess what: you're allowed to not climb if you don't want to climb. I work to live, I don't live to work. That's a cliché for a reason.
Having worked in bug detection/prevention in the Google
#Java
sphere for... a while, I assure you that one of the worst mistakes you can make is trying to implement equals() or hashCode() by hand.
There are a surprising number of different ways to mess it up. (1/8)
@tableorBooth
@anaisbetts
I'm no brainwashed cheerleader for my employer, but I don't think this is a good take.
The rare times I've stayed after dinner I'd see maybe 10% of my colleagues at most.
Those are just amenities and people use them if they want to. It's an odd thing to fault a company for.
An intermediate Java developer can explain the difference in behavior between `==` and `.equals()` on reference types: strict identity equality vs. an overridable method that classes can control.
Here's a more advanced understanding. (thread)
Okay, while I felt I had every right to share this, I was more amused than pissed, and legitimately had no clue the **degree** of general mod-hatred I would touch off. In any case I'm reinstated and am hoping the discussion cools off for a bit and resumes constructively.
Meta engineering vs. the NullPointerException ... one of these is kicking the other in the pants and it's not the one you think!
(read to the end to hear about my project)
All that is to respond to the most frequent comments - how Google is evil for this. People wake up please. ALL large publicly traded corporations are amoral stock-price-increasing machines. It's the system we've created / allowed to be created. Why would you expect differently?
Question was raised why I didn't just mail the mods
- Nothing in the message suggests that reinstatement is even possible
- Past experiences weren't great
- Tone of their message wasn't something I wanted more of
But I did ask today if they're open to a respectful discussion
@rsnMorgan
And I've had this reddit account for 13 years, and under my own actual real-life identity at that. Why would I suddenly now start willfully breaking the rules? Perhaps I made an inadvertent mistake... going straight to perma-ban seems kind of excessive.
PSA: In
#java
, an array of objects is an inferior option to a collection of those objects, in almost every way that matters, and there's very little valid reason to use one on purpose.
I don't think they tell you this in Java 101! (1/9)
I think trying to shame corporations for having layoffs is pointless, while trying to create an economy and a social safety net that would make getting laid off *less devastating* for people would have a ton of value.
@StephDRondeau
There is little to no respect for the fact that every book/reader relationship is unique. The quality of the book isn't the full story and the quality of the reader isn't either.
If you're looking for a rallying point for the evils of layoffs it's certainly not me.
Obvs for most people being laid off is devastating. As just one example, the simple fact that we let the quality of your health care be tied to who you are working for at the time is IN.SANE.
Ahh this diagram is perfect. I got to have many years of Ikigai. But then for some reason I slipped out of the "love" circle. The description "comfortable, but feeling of emptiness" in that zone is eerie.
Not-working-at-Google got me more followers than working there did, which I didn't see coming.
But since you're here then maybe some few of you are fans of the game "Terraforming Mars" and if you are then I want you to know about my crazy ass hobby project
I wanna be careful with this, as I know factorial() is a common CS 101 homework assignment, but I believe Guava's implementation of LongMath.factorial() to be optimal and I'm well kinda proud of it
FFFUUUU
I made a post to facebook, then I came here and chopped into into tweets as you do. But forgot that of course the *first* tweet would get shared way further than the rest. And the first tweet sounds pretty bitter. Whoops...
@fatimaaiman_
@asrlhhh
@Google
"Assume it was random" doesn't mean "Actually believe it was literally random". It just means that for all intents and purposes I might as well *think* that it was because no other interpretation will have any validity anyway.
me when I see a group of adolescent girls out somewhere:
"Awww! Friendship! Making memories and lifelong bonds! Experiencing the world with each other to lean on! That's so wholesome! What life's all about!"
me when I see a group of adolescent boys out somewhere:
"Hoodlums"
@rendall
@tableorBooth
@anaisbetts
You've assumed that everyone started work bright and early at 9, and didn't leave for hours in the middle. Irregular hours != long hours.
But again, some people do work long hours, and in some cases that's from undue local cultural pressure, and I think that is bad.
If you're in college to become a software person and you like math, take a math minor! Get symbolic logic, set theory, discrete/combinatorics, graph theory, prob/stats, linear algebra, and abstract algebra. You will be a stronger programmer than anyone.
And, you might imagine that after 19 years a lot of my *identity* was wrapped up in which company was trading me money for my effort. If it had been, I would be emotionally hurt and destabilized now. I do identify with the *kind of work* I do but no one can stop me from doing it.
The moment we tell a Java learner to write PCPSVMSASOP (public, class, public, static, void, main, string, args, system, out, println), but "don't worry about what all those things mean yet", we have already begun training them to become cargo-cult programmers.
@crazybob
#crazybob
At first, I didn't like Bob Lee. Then I met him.
He was the next to join our AdWords team after
@rjrjr
and me. He was 24 (I was 29) and he was known by a fun nickname and he had already co-written a BOOK ferchrissakes. (1/8)
Hey, what if we went from code-snippets-in-javadoc being the literal worst, to being amazing, all in one fell swoop?
Oh damn, we did! This is outstanding, and I don't say that every day.
Surprisingly my comments about date/time coding on this reddit thread are being well-received. Wondering if I should sit down and rewrite the "how to think about time" guide I wrote for Google from memory.
@StaticFox64
Believe it or not, I wrote the tweet for my followers, people in my industry I work with, who would be concerned about me. Wanted to let them know I'll be all right. I don't give a shit what others will make of it, it's my truth. Had no idea the tweet would blow up like that.
PSA: If you use a tool to generate some code, and then you commit that code like it's source code, that's not generated code. It's source code.
The quality of that code is on you. If it's bad code, it's YOUR bad code! (1/3)
In particular, I'm a firm believer in Java. Past, present, and future. I believe it will remain -- no, not just "relevant", but **important** -- for a very long time.
And don't take that belief for granted; it has to be re-earned again and again! And it has been, every 6 months.
Just overhead my
#autistic
daughter's
#autistic
boyfriend tell her "I'm not sure I'd ever want kids because I'd be afraid they'd turn out like me".
When I heard that my heart shattered. He's a good kid and I bet we'd be fortunate for more people to turn out like him.
@gunnarmorling
I think the salient bit here is that "what is this code doing?" and "why is it doing it?" are two distinct topics. Good code can take care of the first one without too many comments, but that's never gonna cover the second.
When commenting on a bug or feature request, you can:
- generate ideas
- share relevant information
- provide clear, persuasive arguments
- help organize discussion
- uncover flaws in other arguments
But the less said about what you think the owners should decide, the better!
Not surprising about coding in Kotlin: the null-aware type system (with immediate feedback in IDE) is an utter godsend.
Surprising about coding in Kotlin: null actually becomes a wonderfully useful tool once your type system knows about it.
#howilearnedtolovenull
Am I the only one who doesn't care if someone's first chat message to me is just "hello"?
If I'm free I reply "what's up". What does this cost me?
If they are then more comfortable launching into their topic, great. If they got busy and go dark again, great. What's the problem?
Me 1984: <flips power switch> 10 PRINT "Hello world"
Me 2022: I got "Hello world" to work in (javafx + gradle + intellij + git + macos) in a single day!!
All this is about MY experience. If you lost your job and you tell me about it I'm going to hear it from YOUR perspective and empathize with what happened to YOU and how it affected you. I'm not gonna say "no listen to me you're supposed to be like this".
The second most frequent comment I see is "look at this jerk complaining, he's set for life". First... I'm not... second, the whole ass point of my initial tweets/xcretions/whatever was already to not feel sorry for me.
Gotta hand it to the whole
@OpenJDK
team -- they said they would release every 6 months and that's exactly what they've done! Can't imagine it being easy to retool your whole release process for that kind of cadence.
Disclosure: I'm a member of
* team one-space-after-period
* team punctuation-outside-quotes
* team oxford-comma
* team hyphenate-your-compound-modifiers
* team em-dash-just-sucks-use-an-en-dash-with-spaces-around-it-it-just-looks-sooo-much-better.
And I don't apologize! Fight me
Scene, Italian restaurant, Thursday night:
Manager-type guy dropping by: "And how is everything tasting?"
Us: "Great!"
MTGDB: "And are we celebrating any special occasion today? Birthday, anniversary, ...." (1/3)
@piedcipher
I had the "get banned from the subreddit for the instrument you play" achievement, just not the "get banned for seeming to brag about a competitor language to the one that pays your paycheck" one
My own team in Alphabet has survived today's bloodbath, but some friends were less fortunate. To any colleagues in that boat who are seeing this, I'm very sorry, hoping for the best for you, and please feel free to get in touch by gmail (same as my twitter name).
... not to mention
@BrianGoetz
and
@JohnRose00
and
@dansmith_tweets
and
@GavinBierman
and Alan Bateman et al from the wider team.
"and, and, and"
Point is, these are people I've idolized, for in some cases *decades* (but please don't tell them I said that, how embarrassing).
PSA: please never look down on someone for wearing a concert T-shirt, aside from special circumstances such as most funeral services.
Why: those shirts are one of the few ways artists have left to actually earn some money.
A little confused. I've been making tweets about programming practices for a little while, and seeing decent retweets and likes, but I can't find the hostile insulting replies. Is this thing on?
I don't code much for my day job lately, but recently I took on a side project got back into the thick of it. And I just want to say that
@intellijidea
is an AMAZING product. I keep finding helpful features that I never even imagined before. Some might be old news to you, dunno.
Guava 32.0 drops almost every use of the Beta annotation... better nate than lever?
In there I also list some good stuff that's still in Guava, that some ppl might not know about (since so much of its surface is addressed better now in the JDK).
What mattered to me in choosing my next gig was *who* I'd work closely with, *what* I'd get opportunity to work on, and equally important, the interpersonal culture in the team. A job where *any* one of these is not strong isn't gonna work for me.
I think I won the damn lottery.
Very glad to hear it. You wouldn't believe how much work had to go into sculpting even a "small" feature like text blocks to be just right (and just right for Java). Thanks Jim Laskey!
Ever been called a "perfectionist"? Might even apply that word to yourself?
You might be. But you might just be an excellencist like me. (Yeah, it's a weird word.) This condition can still be paralyzing, but it works differently from how people think. (1/17)
The primary skill a software engineer needs is the ability to withstand frustration orders of magnitude beyond anything you will experience before you first commit to a career as a software engineer.
(This feels related to a classic parenting blunder: accidentally parenting the child you *thought* you had, *wanted* to have, or just *expected* to have, instead of paying really close attention to who they really are, and throwing out everything you know to parent *that* child.)
I tried to read this out loud to my wife but I couldn't get more than half a sentence out at a time before doubling over laughing uncontrollably. I dunno, there's just something about the way it's written I guess.
It's tragic that we'd even think of doing that.
Problem is, when I'm burned out, a day off work does nowhere NEAR as much to restore my spirits as a day of *productive* work.
Solution: TELL everyone you have that day off. Don't actually file it that way.
#java
Say you have a `Class` and you want to know whether it's a class. What do you do?
My first attempt is
`if (!c.isPrimitive() && !c.isArray() && c != void.class) {...}`
Second thought is to check whether `c.getPackage()` is non-null?
There seems to be no `isClass` method!
What's the deal with Java, Valhalla, JSpecify, and `null`?
It's a little old, but not outdated -- except that I no longer represent Google. I am however remaining involved in the Valhalla and JSpecify working groups as an individual member.