Things got better eventually but it was definitely the worst way to treat a new hire.
It was a really great experience for me. I was about 16, and I think 40 was pretty young for the office. I don't know if I got much by way of mentoring as an IT guy (well, later on they hired another guy who was way better than I was and I did get some mentoring, but for most of the time I was there it was me and the office manager, who probably knew less than I did about most computer things) but there was a lot of /very important/ social mentoring I got. I learned how to (at least kind of) act like an adult, or at least how to interact with adults in a healthy manner. On a social level, the semi-technical guy who hired me was one of the best people managers I've worked for.
I think it was an all around win/win; I got treated like a human being (which feels /incredibly special/ to a high school kid.) and I learned how to more productively deal with less-technical adults, and I got out of some school. They got a reasonably skilled IT monkey for minimum wage.
After I got out of high school, of course, it was .com time, and I have not had reason to look back at government work since, just because I don't value stability that much and there's little chance I'd have the patience to wait it out long enough to get the pension. I still look back somewhat fondly on my time working for the state. (Or rather, the county.)
[1] my stepmother made me quit that job 'cause they had no workman's comp and I was being "exploited" for slightly under minimum wage. I was 15! it was far less dangerous than anything else a kid that age might reasonably do for fun, and they gave me discounts on used computer parts for the next three years, so I thought it was great. Anyhow, it worked out okay, but it's another side to "exploitation"
I was lucky, my manager thought about it and managed to get me to do it after a bit less than a year. Some people have been working here for years without the "new hire day" (in all fairness you don't learn a lot of practical things, but still...).
Doesn't WordPress.com do it with like a dozen people and their system is way, way, way more complex?
update: no, wait, in December 2010 they announced it's over 350 people now
http://blog.twitter.com/2010/12/stocking-stuffer.html
What on earth are they all doing?
Wordpress.com is trivial compared to Twitter.
http://thenextweb.com/twitter/2011/01/06/new-years-eve-set-a...
I don't believe Twitter is trivial, but I think they're perceived as more complex than they are - WordPress + Reddit + Heroku only have like 10% that number combined. Apples to oranges, but those 3 companies would be doing more everythings per second than Twitter when you combine them.
WordPress.com is not as trivial as you might think http://en.wordpress.com/stats/
Certainly it's just a matter of scaling once you hit a certain level of volume, you just have to be able to bring more servers online into the grid.
Scaling from 10,000 users to 1 million is probably very hard.
Scaling from 1 million to 100 million, well you better have a pattern down that works with easy hardware replication (like google does).
What Twitter does is not hard, and they do it badly.
You tweet from your mobile phone app (maintained by twitter) or twitter.com, and that tweet gets posted on your public timeline. The tweet is parsed for mentions, and it is also copied on to the mentionee's incoming timeline and their mentions timeline.
The tweet is parsed for hashtags, and active searches (i.e. ones open on twitter.com, or via the APIs) and is also copied onto those timelines.
Also, you have followers. So Twitter also copies the tweet onto the inbox timeline of each of your followers.
Not only is all this information published in real time on Twitter.com, but it is also made available via JSON API, Streaming API and Firehose API.
All tweets (on all timelines) are stored forever.
Twitter's scale is hard to fathom - all of this processing is way beyond what your Rails / Django app could process with a MySQL backend. MySQL replication wouldn'e even come close to keeping up with the sheer volume of events to be processed.
To make matters more complicated - Twitter is expected to scale to meet the demand of emerging world events (eg: Egypt, Iran, snowstorms, hurricanes, earthquakes, bushfires). These events don't evenly spread traffic across Twitter's network, but instead provide "storm surges" of localised intense traffic.
Oh, and Twitter haven't just launched an analytics product?
I think for sheer engineering at scale, there are maybe only about half a dozen other companies in the same league.
(Edit: grammer changes for readability)
Twitter has become impressive, but let's not overstate its achievements.
So with a good design you have groups of servers doing the different stages in the queue.
One you've got the pattern down for 100 tweets per second, the pattern should be reproducible by scaling servers in each queue to 1000 tweets per second, and eventually 10,000 tweets per second.
The database requirements may explain why it's all done in one datacenter instead of trying to do replication across the country/world.
http://www.quora.com/Twitter-Inc-company/Why-does-Twitter-ne...
I also discovered they have their own (but singular) datacenter:
http://engineering.twitter.com/2010/07/room-to-grow-twitter-...
But they are planning on adding more, which leads me to believe maybe that's what some of the new hires are for.
They don't have an ad sales force right?
They don't have a billing department right?
Maybe they have housekeeping and food prep people included in that 350?
I honestly don't know and my instinct could be very wrong, but 350 seems crazy high.
I'm sure there's more, this is just what came off the top of my head.
A funny thing happened on the way to the solution. Try and picture this. On my first day of work, no one told me what to do. On the second day, the same thing happened, and on the third. That’s as much as I could take. I decided to meet with everyone I was coming in contact with to find out more about their individual talents and personalities, and to find out what was going on. Before I knew it, I was developing a picture of how things really were, and who needed what, and I became creatively involved in defining my own participation in relation to the skills I could bring to the table. In the process of doing this, I had complete access to everyone in the company, from other newlings to the President. Nothing but open cubicles no higher than 3 1/2 feet. I was allowed to learn, interact, and find solutions to every problem and need I recognized. I always found something important to do, and it became natural to provide effective solutions as needed. I am not a very unique individual, but I am effective because I am allowed to be. I also know it may be different for some people, experiencing this kind of freedom. I know that some people are petrified by this kind of freedom, and equate it to abandonment, and it drives them crazy not knowing what to do. I also know that even under the best of circumstances, people become sedate sometimes and settle in to patterns of repetition for false comfort. The answer, then, is to have them all switch places every few years, no matter how well they may be doing their job, because it is just as important to let everyone see their own position from someone else’s position. It also allows for the surprise of finding how much fun change can be when your creativity meets a new challenge. See what you end up with. It’s either this, or that.
More here: http://aditya.sublucid.com/2008/11/20/let-your-employees-fig...
On my first day, the person responsible for the project went on vacation and for next 10 business days, I was told to do research. That's about it. It was the oddest startup experience I have ever had. Other members of the group, asked me questions about how everything was going, but couldn't answer any of mine. So I indeed did research.