HNHacker News
TopNewBestAskShowJobs

jakevoytko

3,669 karma · joined May 13, 2009

Staff Backend Engineer @ Hinge, recommendations team

Ex-Google, ex-Etsy

Writing: https://www.bitlog.com, https://www.clientserver.dev Email: jakevoytko@gmail.com Twitter: @jakevoytko

submissionscomments
jakevoytko··on Ask HN: What was your "oh shit" moment with GenAI?
I needed to set up a VPS for my blog, so I gave Claude SSH access to a fresh Digital Ocean droplet and told it to set up a deploy with Ansible and harden the instance. It one-shot it in 15 minutes.
jakevoytko··on Don't Roll Your Own
That is indeed how things like copy/paste through the menus already work; you install an extension to get the clipboard permission or the browser limits you to keyboard shortcuts
jakevoytko··on Don't Roll Your Own
Applications like Google Docs would be impossible without each of the four things you listed being available. We had Google Docs that didn’t roll-your-own for each of the items in that list and it was called Writely and it was absolute dogshit (but super cool for its time) because those limitations were too extreme. And by extension it wouldn’t make sense to have Chromebooks as a category of hardware, because web software could never compete at a feature parity level with native software.
jakevoytko··on A History of IDEs at Google
> The decision was made to go with Eclipse. Then it magically went into some sort of internal box/decision process, and came out IntelliJ instead. I've always thought this was because of a sufficiently highly placed Android person with a personal preference, but I could be 100% wrong.

I'm relying purely on memory, but all of the reasons were super public at the time. The internal Java editor tooling team decided that they weren't investing any more time into Intellij. And then a few months later, the Android team relaunched Android Studio using Intellij with full internal support. The existing Java tooling squad put up some amount of fuss saying that they had already made the decision, and the Android team gave a long and diplomatic response that could be compressed down into, "we don't report to you and we don't care what you think." This coincided with the entirety of Google becoming mobile native, so the mobile team were given free rein to call the shots.

> IMO IntelliJ never worked very well in google3

YMMV, we had some people in Docs/Drive who invested a lot of time into making Intellij usable for everyone, and following their system, it worked way better for us than Eclipse did. All of the "Let me sing you the song of my people ::UI freezes::" memes were very true in my experience.

jakevoytko··on Vibe coding and agentic engineering are getting closer than I'd like
Yeah, a lot of people came of age with a "we'll fix it when it's a problem" mindset. Previously their codebases would start to resist feature development, you'd fix the immediate bottlenecks, and then you could kick the can down the road a bit until you hit the next point of resistance. You kinda refactor as you do features. The frontier models have pushed the "it's a problem" moment further back. They can kinda work with whatever pile of code you give them... to a point. So it manifests as the LLM introducing extra regressions, or dropping more requirements than it used to, but it's not really manifesting as the job being harder for you. It's just not as smooth as it was from an empty repository. Then you hit the point where it just breaks too much and you need to fix it. And the whole codebase is just fractal layers of decisions that you didn't make. That's hard to untangle. And you're not editing the code yourself, so you don't have that visceral "adding this specific thing in this specific way has a lot of tension" reaction that allows you to have those refactoring breakthroughs.
jakevoytko··on SubQ: a sub-quadratic LLM with 12M-token context
The proof is in the pudding. At this point, there have been plenty of models that overperformed on benchmarks and underperformed on real work. So my stance is that I'm curious, I'm excited to see where it goes, and I don't believe it until I can try it.
jakevoytko··on Nobody got fired for Uber's $8M ledger mistake?
Yeah, this is exactly what I thought when I read this post. It seemed like the author either hasn't worked in big tech, or hasn't worked in the industry very long. It's extremely likely that the engineer who designed this was standing on his desk shouting "it's going to cost THIS MUCH MONEY. I want to make sure that EVERYONE IS OK WITH THIS." and was met with shrugs.

Here's how a big tech reporting chain sees this situation when everything is smooth sailing: "We're growing 3x year-over-year? After 2 years, the cost will be an order of magnitude higher no matter what solution we pick. The constant factor doesn't matter that much. But we have such an incredible roadmap that we will book more than an order of magnitude of revenue, backed by this new ledger project. The cost will always be a nonissue because of growth."

And then 2 years go by, and this incredible product growth adds a bunch of ledger entries that weren't there 2 years ago, someone nudges your reporting chain with the question, "this is pretty expensive.. what gives?" and then someone with a good combination of social and technical skills points out that a migration to your existing storage solution would be a cost effective way to continue growing.

At every step of the way, everyone is generally happy with what's going on.

jakevoytko··on Does Gas Town 'steal' usage from users' LLM credits to improve itself?
And even still, it’s hard to ignore him because he’ll still have some insight like “token efficiency is going to be the big thing we care about in the future,” which was a small section of one of his Gastown blogs. And after you’re done asking yourself if that means Gastown is performance art, or he just said that as a hedge against his “vomit tokens” approach so that he could say “look I knew it all along” when this is all proven to be misguided, you’ll start to mull on just the concept of “token efficiency” and realize “someone who can do work in 1/10th the tokens will be king.” I mean hell, Gastown preceded real support for multiagent orchestration in Claude and potentially nudged it along that path.
jakevoytko··on Ask HN: What Are You Working On? (April 2026)
I have some blog posts coming out soon. I’m also trying an experiment where I make YouTube videos[0] on each of them. My first video was a huge lift, since it was my first time doing everything.

Random observations from my first one: - presenting my idea visually helped crystallize my thinking in a way that writing doesn’t. And writing was already very good at crystallizing my thinking. - even making a bad video was a lot of work - making a video presentable is a deep subject. Subtle changes were throwing off my setup. Now I understand why so many influencers are fitness and lifestyle; the demand side is obvious, but when you’re already camera-ready you have a huge advantage on the supply side - described something I built felt natural. I do that for a living. The intro was like 45 seconds and took me like 45 minutes to film because it was acting and I don’t know how to do that - learning about video editing features had an immediate payoff because video is so long

[0] I’m posting the videos at https://m.youtube.com/@bitlog-dev . I said if the first one got to 100 I’d commit to making at least 10, and I just crossed that threshold

jakevoytko··on Employers use your personal data to figure out the lowest salary you'll accept
He recruited for wall street trading firms; based on the finance types I've met over the years in NYC I would 100% believe some did this just because they hated losing. He was just making the point that you should never lie about your salary history, because he can help you if you didn't want to give it but he couldn't help you if you BSed everyone and got caught.
jakevoytko··on Employers use your personal data to figure out the lowest salary you'll accept
An old neighbor of mine was a headhunter. He once told me that some companies had a trick to get around the law. Upon getting hired, you'd sign a document saying that you'd agree to all policies in the employee handbook. Pretty standard stuff. One of the company policies was that you needed to prove any previous salary you stated in the negotiation. If it was too far off, they'd just terminate you. The trick is that they didn't ask at all during the hiring process; you're already hired and onboarded and then HR puts a meeting on your calendar to explain the policy to you.
jakevoytko··on Significant raise of reports
Fun fact: I was on the Google Docs team from 2010-2015. Save didn't do anything but we still hooked up an impression to the keystroke to measure how often people tried to save. It was one of the top things people did in the app at first; it was comparable to how often people would bold and unbold text. And then as people gained confidence it went down over time.
jakevoytko··on Significant raise of reports
There are some rose-colored glasses when people say this.

Programs didn’t auto save and regularly crashed. It was extremely common to hear someone talk about losing hours of work. Computers regularly blue screened at random. Device drivers weren’t isolated from the kernel so you could easily buy a dongle or something that single-handedly destabilized your system. Viruses regularly brought the white-collar economy to its knees. Computer games that were just starting to come online and be collaborative didn’t do any validation of what the client sent it (this is true sometimes now, but it was the rule back then).

jakevoytko··on Ozempic Is About to Go Generic for Billions of People
I’m on tirzepatide and it’s crazy how it can truly reform habits. I’ve been a night snacker my whole life. I don’t even think about food after dinner anymore. At a bar, I used to pound down the last quarter of a beer so I could go get another. Now I might forget to finish it and I probably won’t get another. Now I feel full while eating for the first time in my life. It’s going to be truly transformative at scale, even knowing it doesn’t work for everyone.
jakevoytko··on Discontinuation and reinitiation of dual-labeled GLP-1 receptor agonists
My doctor, who is on the older side, told me that he went through his records when GLP-1s started being prescribed for weight loss. He wanted to calculate what percentage of his patients (a) he had advised to lose weight, (b) reduced their weight to healthy levels, (c) and kept it off.

From the starting population of overweight people, only 3% of people dropped down to, and stayed, a healthy weight.

jakevoytko··on Every layer of review makes you 10x slower
I also think we're going to see a resurgence of either pair programming, or the buddy system where both engineers take responsibility for the prompting and review and each commit has 2 authors. I actually wrote a post on this subject on my blog yesterday, so I'm happy to see other people saying it too. I've worked on 2-engineer projects recently and it's been way smoother than larger projects. It's just so obvious that asynchronous review cycles are way too slow nowadays, and we're DDoSing our project leaders who have to take responsibility for engineering outcomes.
jakevoytko··on Agents that run while I sleep
I'll try that out, thanks for the tip!
jakevoytko··on Agents that run while I sleep
I’ve been playing around with these kinds of prompts. My experience is that the prompts need a lot of iteration to truly one-shot something that is halfway usable. If it’s under-spec’d it’ll just return after 15-20 minutes with something that’s not even half baked. If I give it an extremely detailed spec it’ll start dropping requirements and then finish around the 60-70 minute mark, but I needed 20 minutes to write the prompt and I need to hunt for the things it didn’t bother to do.

I’ve gotten some success iterating on the one-shot prompt until it’s less work to productionize the newest artifact than to start over, and it does have some learning benefits to iterate like this. I’m not sure if it’s any faster than just focusing on the problem directly though.

jakevoytko··on How far back in time can you understand English?
As someone who took German in high school, Dutch had my brain flailing for vocabulary to understand but nothing connected.
jakevoytko··on Ask HN: When has a "dumb" solution beaten a sophisticated one for you?
When I was on Google Docs, I watched the Google Forms team build a sophisticated ML model that attempted to detect when people were using it for nefarious purposes.

It underperformed banning the word "password" from a Google Form.

So that's what they went with.

jakevoytko··on Ask HN: Share your personal website
My blog is bitlog.com, and my personal newsletter is clientserver.dev
jakevoytko··on Scott Adams has died
I should have clarified for people who had the good fortune to not be exposed to these posts, but that was usually his lead-in to his ultra toxic writing. i.e. it was an engaging hook that led to more engaging trolling
jakevoytko··on Scott Adams has died
https://en.wikipedia.org/wiki/Hill_climbing <-- applying this for getting more and more engagement
jakevoytko··on Scott Adams has died
I followed his blog back when he started this descent, and I have a theory that it was hill climbing.

He used to blog about pretty innocent stuff; his wife making fun of him for wearing pajama pants in public, behind the scenes on drawing comics, funny business interactions he'd had. But then he started getting taken out of context by various online-only publications, and he'd get a burst of traffic and a bunch of hate mail and then it'd go away. And then he'd get quoted out of context again. I'm not sure if it bothered him, but he started adding preambles to his post, like "hey suchandsuch publication, if you want to take this post out of context, jump to this part right here and skip the rest."

I stopped reading around this point. But later when he came out with his "trump is a persuasion god, just like me, and he is playing 4d chess and will be elected president" schtick, it seemed like the natural conclusion of hill climbing controversy. He couldn't be held accountable for the prediction. After all, he's just a comedian with a background in finance, not a politics guy. But it was a hot take on a hot topic that was trying to press buttons.

I'm sure he figured out before most people that being a newspaper cartoonist was a downward-trending gig, and that he'd never fully transition to online. But I'm sad that this was how he decided to make the jump to his next act.

jakevoytko··on The Jeff Dean Facts
"Chuck Norris facts" was a text-only meme format from the mid '00s. Stuff like "Chuck Norris is the only man to ever defeat a brick wall in a game of tennis" or "When Chuck Norris does push-ups, he doesn't push himself up, he pushes the Earth down." The Jeff Dean Facts use the same format. It doesn't have anything to do with Chuck Norris himself.
jakevoytko··on Grok 4 Fast now has 2M context window
With the current crop of LLMs/agents, I find that refactors still have to be done at a granular level. "I want to make X change. Give me the plan and do not implement it yet. Do the first thing. Do the second thing. Now update the first call site to use the new pattern. You did it wrong and I fixed it in an editor; update the second call site to match the final implementation in $file. Now do the next one. Do the next one. Continue. Continue.", etc.
jakevoytko··on Ask HN: Why are most status pages delayed?
Because the systems are so complex and capable of emergent behavior that you need a human in the loop to truly interpret behavior and impact. Just because an alert is going off doesn't mean that the alert was written properly, or is measuring the correct thing, or the customer is interpreting its meaning correctly, etc.
jakevoytko··on Taking money off the table
Cash flow is another facet of paying off your mortgage early, and I think it’s underrated. Eliminating thousands of dollars from your monthly expenses dramatically increases your flexibility. Since most people have “cash / reserve fund” and “retirement investments (do not touch)” as their major financial categories, it optimizes the one you interact with the most. You don’t need to always make the maximum possible to keep a comfortable amount of cash on hand, which gives you more flexibility to take time off between jobs, or tank a layoff, or take that startup job that pays less (but damn if it doesn’t look fun). Personally I recently bought a second apartment adjacent to my first in order to combine them into a 3br. Paying off the first mortgage years ago was the difference between being able to afford the monthly expenses and not.

Obviously you need to consider both net worth and cash flow when making a decision like that, but don’t underrate the difference that improved cash flow makes!

jakevoytko··on Build files are the best tool to represent software architecture
On top of that, the software world has changed dramatically since Bazel was first released. In practice, a git hash and a compile command for a command runner are more than enough for almost everyone.

What has changed in the past ~15 years? Many libraries and plugins have their own compilers nowadays. This increases the difficulty of successfully integrating with Bazel. Even projects that feel like they should be able to properly integrate Bazel (like Kubernetes) have removed it from the project as a nuisance.

Back when it was first designed, even compiling code within the same language could be a struggle; I remember going through many iterations of DLL hell back when I was a C++ programmer. This was the "it works on my machine" era. Bazel was nice because you could just say "Download this version of this thing, and give me a BUILD file path where I can reference it." Sometimes you needed to write some Starlark, but mostly not.

But now, many projects have grown in scale and complexity and they want to have their own automated passes. Just as C++ libraries needed special library wrappers for autotools within Bazel, now you often need to write multiple library compiler/automation wrappers yourself in any context. And then you'll find that Bazel's assumptions don't match the underlying code's. For example, my work's Go codebase compiles just fine with a standard Go compiler, but gazelle pukes because (IIRC) one of our third-party codegen tools outputs files with multiple packages to the same directory. When Etsy moved its Java codebase to Bazel, they needed to do some heavy refactoring because Bazel identified dependency loops and refused to compile the project, even though it worked just fine with javac. You can always push up your monocle and derisively say "you shouldn't have multiple packages per directory! you shouldn't have dependency loops!", but you should also have a compiler that can run your code just like the underlying language without needing to influence it at all.

That's why most engineers just need command runners. All of these languages and libraries are already designed to successfully run in their own contexts. You just need something to kick off the build with repeatable arguments across machines.

jakevoytko··on Google was down in eastern EU and Turkey
ChatGPT typically has two nines of availability, it's down regularly.
← PreviousPage 2 of 12Next →