Back in the 80s, I was one of those bright-eyed smart young things that went to work for a startup as a developer. Before I knew it, I had a team of developers working for me, and we were all working 80-100 hours / week. At first it was fun. We enjoyed the work and each others company. We cranked out code. We laughed at, and with, the sales people as they tried to make the first big sale that "just needed one more feature".

And then, as their (very young) manager, I realized that we were all being royally abused by the company. I don't recall what the trigger was, but the light bulb went off.

I started telling people to go home at 8pm. I urged them to "take weekends off".

A few months later I was ask to resign ... or to open a new office for the company in another country. (Never mind that productivity had gone up and people were way happier - the CEO loved that people were working all night and weekends and was royally pissed off that they no longer were).

I wish I'd had this to read back then: http://www.ribbonfarm.com/2009/10/07/the-gervais-principle-o.... I encourage every engineer to work through it slowly. And Michael O'Church has great practical advice.

Having worked in several startups since, and a couple of big companies too, I have a few takeaways that might help newer engineers:

* predictability trumps productivity - if you tell management it will be done by Friday, have it done by Friday. Don't promise them Tuesday and pull an all nighter to do it, and then miss by a day. Pad by a day or two to allow for the inevitable. If you get done early, use it to catch up on your personal work projects (exploring new tools, cleaning up that code from last week, helping out a co-worker). As a manager of engineers, I came to appreciate the (seemingly) slower but more predictable performers, as well as the rockstar miracle workers -- and they usually got paid the same.

* make managers choose what you work on, don't just do it all (they're paid to choose!) - The most useful scheduling / workload trick I learned was to always have handy a list of all the things expected of me. So, when big boss comes over and says "Hey, I know you're busy, but is there any chance you can squeeze in XYZ for me?", you can say, "Sure, I'd LOVE to Mr Big Boss. Which of the following should I push to next week: project A, B or C?" Nine out of ten times, XYZ is less important than what you're already doing and Big Boss will (honestly) re-think and move on. (The sleazy ones will try and find another patsy, so watch to see what they do next so you can calibrate accordingly).

* find a life & validation outside your workplace. When you enjoy your work and your colleagues, it's easy to make that your life. Resist, for fear of living at work. It can be good for a while, but it becomes a rut and you can easily be abused. It's better to find something outside that will forcibly pull you away and give you perspective. Find a sport, form a band, take up a new hobby. Anything that gives you a compelling reason to be out of the office.

* take vacations a week or more at a time. Don't let them expire unused. Don't take them as pay. Get out of town. Go see family. Go skiing/biking/sailing/hiking. Do a course. It will give you perspective and you'll come back to work renewed and a little more clear-eyed.

I see I've rambled on... My meta point is:

Life is short, don't be someone's patsy.