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.
They started with a simple implementation where one node handles one request at a time... end to end. They used ECS for easy-button scaling. That's a perfectly reasonable approach for starting out.
I would have probably pushed for a shift in orchestration to kubernetes along with some tweaking as an initial uplift. Others would re-write the whole thing in another language. They chose to add a bit of complexity for multiple requests per node support. They all have their pluses and minuses, but in the end it doesn't mean the initial approach was bad, or their refactor wasn't pragmatic or practical.
Dramatic rewrites to a codebase lead to instability and in practice fail as much as succeed.
Your comments in this thread have been breaking the site guidelines, and getting worse as they go along. Would you please review https://news.ycombinator.com/newsguidelines.html and stick to the rules when posting here? Note the bit about curious conversation.
> 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.
I say "possible" because our system observability was less mature even 12 months ago. Firefighting 10 different root causes of memory or event loop issues without the right tooling in place would be a nightmare. That's why we did a deep dive into the tooling that we considered to be a prerequisite for this project – hopefully it's helpful for others in our situation.
Different companies make different decisions when weighing ROI against architecture concerns. We're heavy on pragmatism and impact at Plaid, so it's quite intentional that we don't fall all the way on the latter end of the spectrum. I appreciate the discussion in the comments as to how effectively we are balancing these two concerns – certainly this is an area where reasonable people can disagree.