HN user

Xorlev

1,962 karma

Software Engineer at Google

Enthusiastic about technology and programming. Coffee too.

[ my public key: https://keybase.io/xorlev; my proof: https://keybase.io/xorlev/sigs/DgkMVigG0nXJPGQHCJwk-KiM4hO87WzSLMrpef02_pg ]

Posts1
Comments578
View on HN

you really don’t feel the need to seek validation from other people in your life.

This might be confusing the lack of need for validation with the lack of need for other people. Sure, taking confidence from your partner is wonderful but it's not "seeking validation" to maintain other relationships.

Putting everything on one person can quickly become codependency and enmeshment. At some level some codependency/enmeshment is inevitable ("healthy interdependence") when you spend your time with one person, however it can also be very unhealthy.

You can lose your own identity, and end up putting all your needs on the other person. That makes conflict difficult, distance difficult, and you lose your support network.

I think Friday demos are really cute, and a healthy relationship can certainly touch on all areas, but it's important to invest in both other relationships (friends/family/partners) AND yourself. Investing in time with yourself means investing in your hobbies, doing things just for you and maintaining that individual identity.

GitHub solved the original "code collaboration" problem, and now it's a default easy way to outsource repo management. It also has the most integrations. A lot of companies grew up using GitHub.

GitHub was, once upon a time, quite stable. Things have changed: more features, more usage, and automated agents.

i.e., claude code and similar, things are either prefill-bound

When accounting for prefix caching, this greatly accelerates each turn. Barring large file reads, prefill still isn't the bottleneck vs. decoding reasoning tokens. Script-writing too.

This is especially true during exploration phases when traversing through directory trees and grepping files, you're talking about a few hundred tokens/turn.

Not a Java implementation, but the original game was written in Java. Later, Microsoft bought Minecraft and rewrote it (Bedrock edition) which runs on Xbox, tablets, etc. But, the community writes mods in Java.

Now both exist and get roughly the same feature set now, but the Java version remains popular given the vast variety of mods and servers.

Free forever for teams up to 5. Unlimited search, unlimited history.

I understand the strategic value of offering unlimited features to differentiate from competitors like Slack, might drive some amount of anxiety. Buyers may question long-term sustainability or fear undisclosed "shadow" caps.

Since engineering limits are inevitable to prevent abuse (especially on free accounts), it might be better to set specific, generous expectations upfront. For example, 2 years of freeform search plus unlimited "tagged" (i.e. Decision Inbox) search. This avoids the skepticism that comes with promising "no limits" forever. It also avoids the trap of needing to announce a change later with predictably negative reactions.

If you do want to offer unlimited, then planning ahead with hard-to-hit-unless-you're-trying messages/hr limits might help you tame growth and avoid abuse. My initial thought when seeing unlimited anything is "I could write a filesystem on top of that" - especially if you allow attachments. :P

There are, and often times they're stuck in a loop of presenting decks and status, writing proposals rather than doing this kind of research.

That said, interpreting user feedback is a multi-role job. PMs, UX, and Eng should be doing so. Everyone has their strengths.

One of the most interesting things I've had a chance to be a part of is watching UX studies. They take a mock (or an alpha version) and put it in front of an external volunteer and let them work through it. Usually PM, UX, and Eng are watching the stream and taking notes.

This is often (though not always) blanket statement.

Logs are always generated, and logs include some amount of data about the user, if only environmental.

It's quite plausible that the spellchecker does not store your actual user data, but information about the request, or error logging includes more UGC than intended.

Note: I don't have any insider knowledge about their spellcheck API, but I've worked on similar systems which have similar language for little more than basic request logging.

You'd think so, but for datacenter workloads it's absolutely common, especially if you're just scheduling a bunch of containers together. Computation also doesn't happen in a vacuum, unless you're doing some fairly trivial processing you're likely loading quite a bit of memory, perhaps many multiples of what your business logic is actually doing.

It's also not as easy as GB/s/core, since cores aren't entirely uniform, and data access may be across core complexes.

Except it's also trivial to buy or produce tables of pre-hashed emails, so this cloak of "oh we don't know who you are, it's a hash!" is usually just lipservice.

+1. And, it's in version control forever. It's not as if it entirely disappears. Like one of the sibling comments mentioned, I only rarely reject Sensenmann CLs.

That's worth explaining: it's automated code deletion, but the owner of the code (a committer to that directory hierarchy) must approve it, so it's rare there's ever a false deletion.

A 1.5GB string 3 years ago

I think you're being downvoted because you've claimed "That's a case of not solving the problem.", but I think that actually better describes this answer. It's clever, certainly, but misses the fact that the stack of screens was never intended to be recursively escaped and changing the form that it took was the real fix rather than rubbing some compression sauce on what was never intended to be lots of backslashes in the first place. And indeed, that's what the author did: they shipped a bandaid fix while working on a more comprehensive fix, one which didn't require RLE or a quadtree (!).

A 1.5GB string 3 years ago

Computers are fast. I once worked on a service sitting at the top of a deep RPC stack. Stack traces were often folded into RPC error messages to help diagnostics. Well, if you have a failure at one layer, propagated to the next layer, and the next layer, and sometimes replicated for each looked up item (to support partial failure semantics), then you can end up with gigabytes of stack traces in memory for some fraction of time. Very hard to figure out until tasks started dying and leaving behind heap dumps during a wide-spread incident at a lower layer of the stack.

Or it would stunt their growth. Those sorts of tasks force you to poke around and learn, rather than having the answer handed to you by a LLM or senior engineer.

I generally agree with the author, and Google style guides generally discourages use of unsigned types (even in C++) for anything that isn't actually a bag of bits.

I don't know how many strange issues I've tracked down that amounted to "this protocol buffer has a uint32 field, and surprise now the value is negative in Java and oops there was a check that cared about that." At least five or six issues.

At least when it comes to serialization, enforce invariants above the serialization layer.

I would love an unsigned byte type in Java though. What a pain.

Google interviewers sign up for particular languages and are expected to have proficiency in the language. As an interviewer, I also allow a lot of abbreviations (so long as we agree during the interview what they are) and I expand them in the digital writeup. That makes large generic types in Java/C++ a lot easier to interview with.

"Can I use AL for ArrayList?" "Go for it"

I'm not sure I understand. This is talking about Cargo metadata download improvements. You still download individual packages regardless of receiving a copy of the entire registry, so privacy hasn't materially changed either way.

If knowing you use a crate is too much, then running your own registry with a mirror of packages seems like all you could do.

I love this comment. We're a walking disaster and a literally hot mess, but you're right that we're probably the best chance at preserving life overall.

We are heading to the stars, and we will bring life with us.

Another way to think about it: we'll be Earth's best, most successful, furthest-flung seeds.

I...what?

I write C++ at Google, and it encourages use of modern C++ features, and many things you see adopted in std have roots in our libraries.

I'm curious what you think Google prevents us from using and why you think our C++ is like 90s Java.

https://abseil.io/tips has a lot of our philosophies and abseil is chunks of our internal libraries published externally.