I was a hands-on engineering manager brought to lead a similar effort at an ad agency to build out their adtech stack inhouse.
Worked out fine. I've also interviewed a number of people in similar situations. Seems to work out fine when people are interested in what they are doing.
One thing to consider is the cost of it, and the size of the team you would need. I would argue you'd need at least five people regardless of the size of your project to get any semblance of dev culture that would propel the team forward.
As for attracting talent, there's a tremendous amount of talented developers that don't make the cut to get into FAANG for different reasons. Get a technical manager to bootstrap the project, set up interviews, and you should be good.
Also, don't forget about dev tools and ops expenses, a need for oncall, and hiring devops to run it.
As an Engineering Manager, I find that solving this kind of problems really helps in my work, and it also helped to make our interview process more objective.
When working with high-load systems, it kinda doesn't help that a person knows what "DRY"/"SOLID"/refactoring etc is.
What helps is the ability to write code that handles corner cases and does it efficiently.
Looking at their highly optimized code on google.com, my guess is that they already use all the tricks that work on _every_ browser. And it might not make much sense for them to have two builds: one elegant, with multiple files per page for newer browsers, and ugly optimized blob for older ones.
HTTP/2 Push allows to _really_ optimize first page load, giving a wow effect. (Especially when you can use a single server w/o geodns to serve the whole world with a really low latency!)
I use it on my pet project website, and it allows for a remarkable first page load time.
And I don't have to make all these old-school tricks, like inlining CSS & JS.
HTTP/2 Push allows for such a pleasant website development. You can have hundreds of images on the page, and normally, you'd be latency-bound to load it in a reasonable amount of time. And the way to solve it old-school is to merge them all into a one big image, and use CSS to use parts of the image instead of separate image URLs. This is an ugly solution for a latency problem. Push is so much better!
The fact that 99% of people are too lazy to learn a new trick shouldn't really hamstring people into using 30-year old tricks to get to a decent latency!
I think it's about a product discovery. If we always sort this way, new products don't have a chance.
And I don't think Amazon would sort like this, it would make more sense for them to use hn/reddit way to sort items that give a chance for the new items to get to the top.
If I remember correctly the details of why Nginx might be better at handling massive amount of clients is that it has event-driven architecture.
If you consider a slow client that consumes 1mb of html in, say, half a minute, an Apache thread(2.0)/process serving him would be effectively locked during this time. And thread/process has a relatively big overhead, both memory and cpu wise. Nginx, on the other hand, would just switch to serving the next client/clients, whos socket is ready (using epoll/select).
My Indian friend who spent ten years in US went to visit his parents, he said he was going to buy bottled water while there and boil it before drinking. He was genuinely anxious about catching something.
So yes, the low mortality rate after surgeries is actually a surprise for me.
If you would consider using NoSQL, then MongoDB might be a good fit. It has a messaging queue. It's called capped collections with tailable cursors (http://www.mongodb.org/display/DOCS/Tailable+Cursors ). It's persistent, you don't need polling, and you don't need to remove processed messages.
Worked out fine. I've also interviewed a number of people in similar situations. Seems to work out fine when people are interested in what they are doing.
One thing to consider is the cost of it, and the size of the team you would need. I would argue you'd need at least five people regardless of the size of your project to get any semblance of dev culture that would propel the team forward.
As for attracting talent, there's a tremendous amount of talented developers that don't make the cut to get into FAANG for different reasons. Get a technical manager to bootstrap the project, set up interviews, and you should be good.
Also, don't forget about dev tools and ops expenses, a need for oncall, and hiring devops to run it.