You can replace a derailleur hanger on a modern bicycle for about $10 or less. This is the part that bends on a right-side crash.
HN user
ubu7737
HEAD_TRUNC? Is this to detect when Autopilot has driven through a freight trailer and severed the driver's head?
A beloved co-worker and the best engineer on my team suddenly had to leave 2 months ago because his H1B renewal was denied. He asked the company HR for help and they sent him home immediately. Tears in his eyes he left us on a Thursday, and we didn't know what to say or how to feel.
This is just how it goes. No matter how much we wanted him to stay, there was nothing to be done about it at our level.
My mood disorder has made my whole career a rocky journey. I'm 43 now, and doing well in my current role.
Managing your depression will always be part of the trip. Don't listen to the voice(s) that say you are a failure/loser/underperformer, just do your best. Say it to yourself whenever you need to: "I'm doing my best, and that's how it will always be."
Strangely, when I know that I'm doing my best despite everything, I feel calm.
4k on a 27" screen at desk-sitting distance is worth whatever trouble you've been avoiding.
Text is indistinguishable from print type. You're able to see an enormous amount of information without panning. With a good mouse you can pick and rubber-band much larger groups.
ROFL "performance tuning" this is not tuning this is architecture.
Some people think you can just write software, sell it to customers, and it's "tuning" to make it work properly.
You should be fired from whatever job you have.
My guess is that you have no job, you are fronting USD.
In which case you have absolutely no place in this conversation and you should be ashamed of yourself for speaking up.
A fool and his money are easily parted.
Downvoted for angering the VC class...
Dramatic rewrites to a codebase
Otherwise known as re-architecting?
Where I work compliance is job #1.
That doesn't prevent us from thinking about performance. GTFO with this nonsense.
There is simply no excuse for this. You are a software engineer or you are not, the cadence of change is part of the technology aspiration.
I have no patience for persons who don't belong to the discipline.
But it's possible this migration process would have been easier if we had done it sooner.
What the f*? Of course it would have been easier if you had done it sooner. What you lacked was the willpower from decision-makers who had growth of dollar-signs in their eyes.
You've littered this thread with comments explaining how every move you made was based on ROI. That's the kiss of death for architecture concerns, and bizarrely it puts Node.js on the list of runtimes for data/stream processing backends.
No matter how many times you explain how you made these decisions, I can't help getting the feeling you were wearing horse blinders.
Edit: I find it impossible to imagine that nobody on the engineering team ever shouted, Hey look out! We are basically a Web farm for banking-related requests, this is insane! Surely you've heard from those people and they were let go.
what's the impact and ROI of a language migration vs getting Node to work as well as we can?
Hire an architect costs what? Putting the genie back in the bottle was a problem Plaid baked into its early success, which is common with startups hiring engineers with zero architecture knowledge.
Seems pretty easily-fixable, if it's just one byte.
Spring is semi-magical but when you learn the whole thing it gives you godlike abilities.
A level sitting surface won't allow your spine to curve naturally.
I don't know why, but most people are not aware of kneeling chairs or the benefits they provide to back posture. There is literally no way to get healthy curvature in a sitting posture without lowering your knees below your hips.
Urges won't translate into practice so easily. The abstractions of servers won't be so easily reduced to stateless method calls. The design of a cloud-based service is still so relevant that there is no abstraction which can possibly reduce it at the current moment.
I completely agree. This "looking for the non-leaky boundaries" approach favors simplicity and reliability. Microservices present huge wins; choreographing them poorly is really on you.
Nobody said making the leap to distributed systems architecture would be easy. In fact, quite the opposite has been alerted, over and over.
Do not complain about complexity and simultaneously reach for hard problems.
I agree with you, but I want to add some precision to this. In some meetings I feel powerless, and I find them absolutely horrible. In other meetings I have a voice anytime I want to use it, and I feel powerful, and I wouldn't miss them for anything less than a diarrhea poisoning incident.
Edit: In most meetings I feel neutral and disaffected.
Google lost its varnish around the time it sought to fight Facebook with Plus. Around the time they released the Nexus 7.
I guess around the time Sundar became ascendant.
When I used PG for my job queue, I was already using Kafka instead, to handle immediate job entries. The reason I needed PG was for jobs scheduled at a future time.
I had no difficulty with long-running jobs because servicing jobs out of PG was simply a matter of pushing them onto the Kafka queue for immediate uptake there.
Right, I was working mostly off one very well-written article on the topic, it was an easy search because there is really only one correct way to implement atomic job-handling with PG.
It makes the job-fetching more atomic, as the article points out properly. If you take >1, you have to sort the situation where 1 or more jobs fail, which adds an unreasonable amount of complexity.
On my first go I was taking batches, on the reasoning that it optimized for query performance. It was a complete disaster and I quickly realized that I was engaging in premature optimization.
Batching is out, stream-processing is in. If you design your job table correctly, PG will perform very well as an advanced stream processor.
The main reason to dig down is to uncover faults and leaks in abstractions, which is something you absolutely will have to do in the fullness of time.
A corollary reason is to improve your "mechanical sympathy" when writing high-performance code.
Many of what we once called "application devs" -- now more commonly "full-stack devs" -- will never have to discover real mechanical sympathy, which is fine. But there is a glass floor for such people.
Used the "FOR UPDATE SKIP LOCKED LIMIT 1" trick to implement a job server in PG a few years ago for the first time.
It's a great solution.
On my new XPS 13 4k, text is wonderful everywhere.
Where I get weary
I think you mean either "wary" or "leery" but not both at the same time!
Nobody writes C# except for the sake of fitting into the .NET ecosystem. Java is the original dorky reference-oriented language with underlying bytecode, and after 20 years of runtime optimization it's still the best.
Newbies of every stripe are encouraged to think that language is the entry point for software development, but it's a teaching moment that most teachers fail. The language is not important.
The runtime is important.
It really feels as though someone has done career JVM professionals a huge favor, sending all the upcomers to Python and PHP and Golang. Let them learn in their sandboxes, right?
Newcomers don't need connectors anyway, they need the room to experiment with syntax and such, get their head around ASCII symbols. It's great, good luck.
In my teens I wrote Snake and Dig-Dug and Chinese Checkers and whatnot. I was learning to write anything at all. But twenty years on, distributed systems are applications. Writing Golang as though it changes the paradigm is fucking silly. But learn however you want to learn.
It's a great reason to write a new runtime. JVM is still okay.
If you thought using a new language would give you better runtime character, you were wrong. Languages are transpiled and cross-compiled on the reg, and it really makes no difference to the runtime what language you used to get your bytecodez into the scheduler.
Sorry. I was actually goofing on the fact that Go demos are rehashing the history of C.
And frustrated that I'm not hearing anything from Golang programmers about how it enables a larger class of software.
"We're writing the same software, just better" isn't a reason to come up with a new language.