HN user

euos

175 karma
Posts4
Comments117
View on HN

Gives you a peace of mind once it is over. Also, allows you to prepare contingencies. Our company only now was recovering from the last year layoffs and now it is suddenly hit again. It would've been much more humane to know in advance not to relax.

I feel like there's a high chance of a layoff in my org as they had layoffs in other orgs yesterday and mine is one of major holdouts. I would very much wished for something definite, either for them to say that nothing currently planned or to say that it will happen later this month or something.

When I worked at Chromium there were two major mitigations:

1. Debug compilation was split in shared libraries so only a couple of them has to be rebuilt in your regular dev workflow. 2. They had some magical distributed build that "just worked" for me. I never had to dive into the details.

I was working on DevTools so in many cases my changes would touch both browser and renderer. Unit testing was helpful.

I am ex-core contributor Chromium and Node.js and current core contributor to gRPC Core/C++.

I am never bothered with build times. There is "interactive build" (incremental builds I use to rerun related unit tests as I work on code) and non-interactive build (one I launch and go get coffee/read email). I have never seen hardware refresh toggle non-interactive into interactive.

My personal hardware (that I use now and then to do some quick fix/code review) is 5+ year old Intel i7 with 16Gb of memory (had to add 16Gb when realized linking Node.js in WSL requires more memory).

My work laptop is Intel MacBook Pro with a touch bar. I do not think it has any impact on my productivity. What matters is the screen size and quality (e.g. resolution, contrast and sharpness) and storage speed. Build system (e.g. speed of incremental builds and support for distributed builds) has more impact than any CPU advances. I use Bazel for my personal projects.

I have free Copilot due to my OSS work. This week I disabled it for C++ because it is chronically incapable to match brackets. I was wasting too much time fixing the messes.

I use it for TypeScript/React. But it’s just a more comprehensive code complete. Incremental.

I’ve been programming since middle school. That would be 30 years. Nothing really changed much. C++ is incrementally more convenient but fundamentally the same. Code editors are same. Debugger are same. Shell is same.

I am certain in 30 years everything will still be the same.

Soviet Union built a lot of those “designed by numbers” cities. They had certain distances to stores, planned density of kindergartens and hospitals, so on. Complete failure. Society changes a lot in those 10-15 years while you plan and build those cities. That’s even if you ignore the fact that SU stopped existing while some places where not finished (I grew up in a district with ridiculous population - but no subway to connect to the rest of the city and not enough roads for cars)

I took a break from a big tech and joined a startup. It was infuriating how people were actively opposing my TDD approach. It was redeeming when I was shipping one of my projects (service for integration with 3rd party) - and product managers and others were expecting we will need weeks to test and fix the bugs - but instead the other party just said "it's perfect, no comments".

All because I was "wasting my time" on writing "useless tests" that helped me identify and discuss edge cases early in the process. Also, I could continue working on parts even while waiting for a response from product managers or while DevOps were still struggling to provision the resources.

V0: Generative UI 3 years ago

Every new generation reinvents stuff previous generation tried and hated. I think it is natural and kind of funny. I’ve been doing software for over 20 years + being obsessed since late 90s and I especially enjoy oscillations between server and client computing - “let’s do everything on server and make client dumb” - (5 years later) - “noooo, ma responsiveness and user experience!!!”

NextJS and HTMLx are back to server :)

A question to everyone: What would a good application process look like?

I work in a top company with infamously difficult interview. I made major contributions to several opensource projects that modern tech runs on. I can easily show a clean standalone pull request attributed to me that introduces complex multithreaded code. That code runs daily on millions instances.

Why the hell do I need to spend hours answering “what a mutex is”? Also, understand that a lot of stuff is much less obvious and clear cut (e.g. how HTTP protocol works) for me than for your engineer. They only saw the basic case. For me the answer will be “it depends”.

Please, respect the candidate time and experience.