top | item 3837022

Life's too short to write shitty software

168 points| snkahn | 14 years ago |team.adzerk.com | reply

99 comments

order
[+] edw519|14 years ago|reply
For those of you now browsing Hacker News at his cubicle during his break under soul-sucking fluorescent lights:

You can have it both ways (work for BigCo and build cool stuff), but it's not easy. You have to make it happen within the corporate systems and structure.

I have many times. A few examples:

- Boss to me: "Purchasing is complaining that the legacy system isn't doing what it should. Go find out what they need." 3 weeks later, my prototype is the basis for specs for a whole new system. "But you told me to."

- PM/BA to me: "I can't make it to the status meeting. Will you run it for me?" "Sure." Results: 3 new projects at the top of my queue. What the customer wants most and what will be fun to build.

- Big Boss in meeting: "I don't think corporate will approve $2 million for a Data Warehouse/Business Intelligence system, but we have to do something." One month later, after squeezing it in to my spare time: an MVP of a BI system that the users love and was fun to build. Now I get permission to finish it.

- Another boss: "I would love to sell our stuff on Amazon, but I don't know how to go about it." Me: "Want me to find out?" Boss: "Yes." A month later, we're on Amazon. Fun project.

- User VP: "Why do we have to wait 3 years to get anything done on our legacy system?" Me: "Send the quick critical stuff directly to me. I'll try to push it through faster." Almost always leads to building something cool.

The 3 keys to doing these kinds of things:

1. You must find the cool stuff to build yourself. No one's going to hand them to you. Opportunities are everywhere.

2. You'll probably have to make time for extra work. Shouldn't be a problem if you're a good programmer in an enterprise.

3. You'll probably have to hang your cool new stuff off something legacy. So what?

Maybe not as good as building something in a startup for the first time ever, but building is building. You can find a way to build cool stuff from whereever you are right now. "Finding a way" is the key.

[+] ajross|14 years ago|reply
One warning with this kind of behavior is that it doesn't actually insulate you from the insanity of the environment. Some of your cool stuff is going to be buried because people don't understand it and won't buy in, or because it obsoletes something they did, etc... People will complain about you "not being a team player" when you do things they don't expect. Some managers simply can't handle employees like this and will try their hardest to muzzle you lest you say something embarassing. I've seen all of the above, even at small environments where you wouldn't expect it.
[+] jroll|14 years ago|reply
And if you don't have the people to complete or maintain these projects? Or how about when you build out a prototype and then corporate IT policies end up having you generate hundreds of pages of documentation and a massive Java application, when your self-hosted 2k LOC Python project met all business requirements and specs?

I'd rather be in a position that encouraged rapid, pragmatic development.

[+] fleitz|14 years ago|reply
Agreed, I got paid to hack a VMS mainframe, buffer overflows, etc at 22, trust me it wasn't in the official job description but I found the company $3 million in lost rev.

Honestly, unless you enjoy reading about the company you work for in Techcrunch I don't get the whole startup hype for employees. Founders are somewhat likely to get a decent cheque but employees are not. For employees the EV doesn't seem to make a whole lot of sense.

[+] gaius|14 years ago|reply
"It is easier to ask forgiveness than permission".
[+] InclinedPlane|14 years ago|reply
One thing that I've found is that sometimes you just have to do things regardless of whether you have permission. But keep in mind that it's your ass if you fuck up.

Case in point, my boss has been out on leave for a few months already, in the meantime I've had a free hand to do whatever the fuck I want with some things. In that time I've completely overhauled several systems. With my boss around it would have been a teeth-pullingly laborious process that probably would have dragged on for weeks, been interrupted by other tasks in the meantime, or compromised in so many aspects to "reduce risk" that it might have ultimately been useless. As it was I did everything and migrated critical running systems over to the new stuff in only a few days of work spread out over about 2 weeks.

That generally applies to everything in the workplace as well. The best way to change your job is to slowly but surely start changing what you do while official recognition catches up.

[+] edwinnathaniel|14 years ago|reply
You sir, are "Getting things Done!".

You are the real-deal.

[+] paulhauggis|14 years ago|reply
This is kind of like wanting sex and getting some dirty magazines.
[+] michaelochurch|14 years ago|reply
I think the trick to surviving either big-company jobs (with the tendency toward bureaucracy and risk aversion) or startup (with the high risk and uncertainty) is realizing that it's just a job, not what you have to be doing for the next 15 years. If it's boring for a couple months, who cares? If the company goes out of existence (or fires you) there will be others. I think it's becoming increasingly important to learn this, although it's easier to give this advice than follow it.
[+] Khao|14 years ago|reply
I lived mostly the same story as this guy, except I was working in a startup when this happened. I was working on great software, but I hated my job and hated everyone around me. And yet I joined this startup because I felt it would be the best job ever. I was so wrong.

I finally left for BigCo afer 6 months and I plan on staying there for years and years because this job is incredible. We write the most beautiful software and the team is simply amazing.

And it seems every week I see my old colleagues post status on Facebook along the lines of "Look at us, working hard into the night!" at 9 or 10pm. They seem to take pride of this sort of thing. Now that I'm at BigCo, I get to leave every day at exactly the same time and 3 days / week I have activities planned on my evenings that I will never miss again because of overtime.

Just remember that these horror stories of "I hate my job at BigCo, let's join Startup and everything will be better" can go both ways.

[+] debt|14 years ago|reply
I can hear the chorus of HNer's working at startups saying "yeah, but just wait until we go IPO or get bought or go viral then you'll see why we worked so hard so late so often for so long..."
[+] daeken|14 years ago|reply
At the end of the day, you should be having fun. I lost sight of that for a long time and wrote a lot of software that I thought would make money (it didn't), but I hated working on. This led to me falling out of love with software for a long while.

It's only in the past few months that I've really come to love it again. Between my day job at Mozilla, working on ridiculously fun optimizations, and a startup that went from no code to a damn near fully functional product in a week and a half (including the time it took to build the framework that the product itself is built on!), I've been having a blast. I forgot how fun it can be to just dive in and make shit work, and do it in the way I think will work best. I spent years over-thinking my development, with nothing to show for it; a couple months of coding with reckless abandon and I'm happier and more productive than I've been in damn near a decade.

Stop hating life, go have fun.

[+] eli_gottlieb|14 years ago|reply
How do you get a day-job with Mozilla optimizing code (or do you mean writing optimizers and optimizations?)?
[+] geophile|14 years ago|reply
I joined my first startup in 1988. My previous company was acquired by Xerox, and I met "lifers", (in their 60s, worked there since graduation, looking forward to pension). I didn't want to be a lifer.

My parents thought I was nuts for not going to IBM. My wife was working at Digital, and hating it. She encouraged me to go to the startup. Which I did, and I'm still doing startups 25 years later. (I predicted that my startup would be in business when Digital no longer existed, and for a short time, that was true.)

At that first startup, I formulated a very simple test for deciding where to work and what to work on. I ask myself: Am I having fun? Am I creating something new and valuable? Am I being rewarded adequately? (i.e., financially).

This has worked out really well. I've worked on and shipped really interesting software, I am constantly learning new stuff, and it has paid off nicely.

[+] bricestacey|14 years ago|reply
I've met a lot of "lifers" too. I worked at UMass Boston for a few years and it's depressing. It's like working with indentured servants.
[+] bri3d|14 years ago|reply
The basic idea of this article is awesome - right now is certainly the right time to get a non-shitty job.

However, I disagree strongly with the idea that startups are some sort of panacea for bad jobs. There are plenty of bad startup jobs, and they're generally easier to get than a corporate job. It's easy to talk yourself out of the bad corporate job somewhere in the 5 levels of HR review and background check. It's harder to argue with "free beer, flexible hours, $90k, and you start Monday" - even if none of the above end up being true.

[+] Roboprog|14 years ago|reply
Some corporate jobs are better than others. There are cheap-skates, and those that will reward talent. But if paperwork kills you, it won't work, no.
[+] wpietri|14 years ago|reply
I agree that not all startups are good. But I think your odds are better at a startup. At IBM, you're 0.00025% of the company. At a startup, it's more like 10 or 20 percent. You have a lot more ability to shape your job and the company so that it's non-shitty.
[+] kirinan|14 years ago|reply
Im sitting my in my cubical hating my job right this moment. I applied to ycombinator and I will escape cubical hell. If you've never held a corporate job, you are lucky. It sucks your soul and crushes your dream. The anti-ambition of people around me is discouraging and depressing. I work on software that is meaningless, and that just kills you inside. Its the feeling that you are spending days/months/years of your life not adding value to society but simply writing software that doesn't matter because odds are it will be shelved for another project when an upper manager decides that it was the improper path for the business to go down. I wake up every morning excited for my lunch break because I will get to escape into a book on some assorted topic in order to gain the knowledge to escape this hell hole. Yet, the fire inside me won't be quashed and I will escape it. I refuse to feel like this my entire life. I will get out and I will change the world with my talents. That feeling, that fire, keeps it bearable.
[+] paulhauggis|14 years ago|reply
It's worse knowing you are slaving away your life (which can't be replaced) only to make someone else rich and get a sliver of the profits. Oh yeah, if the wind blows the wrong way, the boss may just decide your are fired and all of your hard work is no longer yours.

I quit my job 2 years ago after I saved enough money to live on for a year (which took 4 years). I always hated working for other people. I not only couldn't be honest to questions like "Where do you see yourself in 5 years?" (I can't exactly say "working for myself" but it felt like I was in Jail.

I despise having to ask my boss when I can take a day off or go on a vacation. I'm about to launch my next company and I've contemplated working part-time to bring in some extra income for some business expenses.

Whenever I start the interview process, I feel like I'm back in high school again. Mostly because I feel like I should be interviewing other people for my business and not the other way around.

[+] Delmania|14 years ago|reply
I'll have to express the opposite sentiment, I am sitting in my cubicle overlooking a river. I've got VS2010 and Eclipse open, and I've got 5 different browsers installed in my machine. I was previously working at a smaller company (closer to a startup), and while I enjoyed it, there was no career growth potential, at all. When I moved to Mega Corp, I found a place that actively encouraged career development. Also, our technical leadership is always evaluating the latest technologies to see which ones make the best fit for our offerings, so while I may no be using the latest JS library on Github, I'm using more than a few of the more accepted ones.
[+] pikewood|14 years ago|reply
Beware that this mindset is what some shops prey on. They entice those who have gone from college to corporate and now want an exciting change. Then they work them to death with dreams of stock options and label 80+ hour workweeks as "work hard, play hard". They're unabashed about it--I've even seen "willingness to put in extra hours to get the job done" in their job description!

Just because you dislike your cubical job now doesn't mean you need to go to the opposite extreme, spending extra hours at work just because a ping pong table is there. Don't end up at a place where working overtime is revered among the staff, it's a toxic mindset that really only benefits the bosses up top.

If you want to go somewhere to change the world, just make sure the people who are running it can first effectively manage the small world that are their employees.

[+] mindcrime|14 years ago|reply
If you've never held a corporate job, you are lucky. It sucks your soul and crushes your dream.

There are good corporate jobs and bad ones. When I, for example, worked at IBM, I had a pretty good time and enjoyed the work, the people and the environment tremendously.

Conversely there are small company / startup situations that are totally soul-sucking. Especially when the economy goes into the tank and layoffs start and the managers start acting like fear is their only tool to motivate people. This happened when I worked at Lulu.com, and I never felt a great sense of the relief than the day I resigned and walked out the door.

I mean, don't get me wrong... I loved my colleagues there, so nothing about this is meant as a slag against them... but the job itself, the management and the vibe had reached a point that, when I walked to my car on my last day, by the time I got to my car, I felt like a 10000 lb weight had been lifted off of my shoulders... I could almost swear that the sky was a brighter shade of blue, and that the grass was greener and that the air smelt better, on the way out than on the way in. Sometimes all the nerf gun fights, and free soda, and $whatever, just can't make up for the other stuff.

If there's a point to all this, it's that whether a job is good or bad does not come down to whether or not you're working for a large corporation or a startup. There are a LOT more variables in the equation than that.

That said, if your job is sucking your soul and you feel the drive to quit (or get fired) and go found a startup, I absolutely advocate doing so!

[+] ilcavero|14 years ago|reply
your post describes so well how I was feeling about a year ago before I switched jobs, and I regret so much that I just didn't leave sooner even if it meant being unemployed for a few months, because life doesn't come back and I didn't really need the money. That was my case, not saying you should do this or that, I'm just saying to never leave happiness for tomorrow, that only worked for Cinderella.
[+] Roboprog|14 years ago|reply
While I sympathize, my wife and kids need to eat now, not in 2 years when I pull equity out of an IPO.

If you can avoid the TPS-report-factory-factory (wink), by all means do so. But don't look down on those who are doing what they have to.

There's something to be said for knocking off after 8 hours, and going home to one's family as well. What I do is technically boring, but necessary, and doesn't consume my personal life. I don't have to spend 2 hours each way going to work through bay area traffic, either.

Yeah, I'd love to be building something super cool from scratch, but that lifestyle has a cost, as well.

[+] pelemele|14 years ago|reply
If you are sure that you will be able to market yourself after years of working on some no name corporate stuff, by all means. I've been there and seen guys working 10 - 12 years at the same company, enjoying their 8 hours shift just finding out one day that they are not needed anymore - and with obsolete skills set (you get into comfort zone pretty easily in corp world), some of them having really difficult time to find another job.
[+] Poiesis|14 years ago|reply
A startup's not a panacea, but--man, he sure knows what buttons to push.

This is for the guy who browses Hacker News at his cubicle during his break under soul-sucking fluorescent lights

...that's 10 hours of your workday that is devoted to your job.

The Java Struts web app that you're working on needs to be able to support IE 6, especially because you're not able to install Firefox or Chrome on your locked down desktop.

I could add so much, but he's got the big ones. How about "browsing HN from your smartphone because of the proxy"? We're actually working startup hours here, so combined with a large family it's difficult to get the time to work on the side project. Luckily there are people out there who have demonstrated that it can be done under similar constraints (looking at you, Patrick).

[+] benblodgett|14 years ago|reply
"This is for the guy who browses Hacker News at his cubicle during his break under soul-sucking fluorescent lights."

Described my previous-life to a T, best decision I ever made was leaving those fluorescent lights.

[+] fierarul|14 years ago|reply
The gist of these kind of articles is that you have a choice! A job is just another kind of mutually agreed relationship and you have the power to change its parameters or end it. But I guess some kind of Stockholm syndrome starts developing and some people need to be reminded that. Not only that, but their skill is in high demand so the is little to no risk in switching -- something that also needs to be said out loud. It's basically a form of self-help which isn't bad but should be labeled as such.

The assumption that only large consumer-facing products are worth working on is wrong. There is a whole world out there you don't know about and it doesn't run software on iPhones. It depends on the person, but you shouldn't need external confirmation to be proud of your work -- either you did it well or you didn't.

Generally, the problem isn't the project per-se, it's just the management. A horrible boss, ie. a horrible person will wreck your day regardless of what are you working on. If you are hired to write internal reporting software, don't be surprised you will work on internal reporting software. Make the most of it!

Software is depressing because that's the best you can do sometimes. There is this type of corporate developer that's just at the edge towards a good developer but he just believes he's the greatest. He'll always be unhappy because the Man just won't let him try the latest fad and if he only would be allowed he would make such great software. But what does he do? Crappy software! A certain degree of modesty is required in software because not everybody before you was an idiot, and if you had free reign you would make an even crappier solution with the latest fad and all.

But essentially, the kind of people feeling bad are just unmotivated because the job is not a good fit. That's it! As the RSA video said, they need more autonomy or a "higher" purpose or just want to get better at something else (mastery). But sometimes what's missing is a degree of realism.

[+] edwinnathaniel|14 years ago|reply
This piece of article is definitely targeted :). Kind of like self-help but for geeks. Nice SEO though.

That aside, I believe people can find a niche developing software targeting these soul-crushing jobs. Basically have a product that solve problems people hate to deal with.

Java EJB 1.0 and Struts sucks? Write your own framework, call it Spring Framework: worth $400M. JDBC sucks? Make Hibernate.

Dealing with Rails deployment sucks? Cloud hard? Come up with Heroku.

Silo-ed web-apps, always have to custom build CMS and comes up with your own workflow? Build SharePoint: $1B market.

Configuring and maintaining WordPress are not interesting? I heard WPEngine is making money left-and-right...

I learned that before you can call yourself a real entrepreneur, you should learn to get over yourself on these "shitty" stuff because what if you got your dream job but is interrupted with "shitty" stuff in between? Call it quit again?

[+] gaius|14 years ago|reply
JDBC sucks? Make Hibernate.

Because JDBC didn't suck enough...

[+] peacemaker|14 years ago|reply
Your last sentence really hit the nail on the head. Start-up or corp, you'll have plenty of shitty times along with the good.

It's an attitude issue. The right attitude towards the bad (and good) things will make all the difference to your happiness in life.

What people often forget is that they are completely in control of their own attitude towards life too. The way you react to situations around you can be a positive influence instead of negative if you want it to be.

[+] Roboprog|14 years ago|reply
You so hit the nail on the head: being awesome by doing CRAP that nobody wants to do, and making it into something easy. Interesting book called "The E Myth" about entrepeneurship about 20+ years ago, talks about the myths of freedom to do more "worker" stuff, and the reality of building a business to provide a consistant user experience and a system to enable the workers to provide it. Seems along the same vein.
[+] cpeterso|14 years ago|reply
The "non-shitty" software the author works on is an ad-serving platform. Advertising is only one or two steps above TPS middleware.
[+] kacy|14 years ago|reply
That hurts a little. Sorry you feel that way. :-/ I particularly enjoy working on the technical challenges, but to each his own. Cheers.
[+] mindcrime|14 years ago|reply
Advertising is only one or two steps above TPS middleware.

What's your problem with middleware? Building middleware gets you closer to doing systems level programming that a lot of things.. you get to deal with challenging problems in data storage and retrieval, concurrency, networking, filesystems, etc. when you're building infrastructure code. And middleware is used to build solutions to massively complex and challenging business problems that have a real impact on how people do their jobs and how companies run.

Personally, I'd rate working on a cool middleware platform (preferably something Open Source) as one of the best gigs you could have as a developer.

(Disclaimer: I'm the founder of a startup that builds Open Source software that would probably be lumped into the "middleware" category.)

[+] look_lookatme|14 years ago|reply
Existing advertising solutions are, but it's a business that most good developers/designers/product people don't want to touch, so it continues to be shitty. I've been following Adzerk for a little while and wish my workplace could try them out, but I don't get to make those decisions. Still, I've long thought writing a non-shitty ad server is sort-of noble and interesting, so I'm hoping they continue to be successful.

Advertising is a mess and most of it is terrible and the problematic mindsets that have made it that way are pervasive... but what I see there is a ton of hard problems and it will be smart, entrepreneurial people that attack those problems.

Also: money

[+] ChristianMarks|14 years ago|reply
Spring is in the air--it's resignation time. The abysmal enslavement of family life never appealed to me. For that reason I never got married and never had kids. (I have a cat though.) Worked for a decade supporting other people's research--tremendous error. A new non-technical VP was hired (he is an ABD in math, I have a Ph.D. in math--a source of tension between us). A year ago the non-technical VP hired a smug, platitudinous non-technical director, whom he installed over two directors. I was one of them. Since directors could not report to directors, our titles and job descriptions were downgraded. I abruptly resigned. During the exit interview, the head of HR wanted to know why I was leaving. I reminded her that she was cc'd on the restructuring memo, which stated that my title had changed from director to Zweiter Beauftragter für Administrative Fragen, that the position no longer reflected my education, interests and ability and that I had been immobilized under an incontinent rhinoceros. I jumped to what I thought was a research position...but I won't describe the often mutually undermining responsibilities the position actually entails. It's still superior to the Bolshevist ITIL-addled regime I left, though the article inspires aspiration to something greater...
[+] paulc|14 years ago|reply
I have looked in the mirror every morning and asked myself: "If today were the last day of my life, would I want to do what I am about to do today?" And whenever the answer has been "No" for too many days in a row, I know I need to change something.

- Steve Jobs

A couple of years out of college I started living by this quote and it has worked out great for me.

[+] peacemaker|14 years ago|reply
I really enjoyed that speech too, in particular this quote.

It can be hard to live by that quote though, especially when you have a lot of responsibilities.

[+] dylanpyle|14 years ago|reply
I subscribed to the StartupDigest newsletter to keep track of local happenings. Content aside, every week their email begins with the same line, which becomes the snippet that GMail shows in the preview.

"Life is too short to work at a boring company".

Quite a reassuring reminder.

[+] advice2012|14 years ago|reply
As for quitting- never quit unless you must. And don't sabotage yourself to get yourself fired. You suck less than you think you do, and if you work hard enough, you will hopefully find something somewhere to transition to.

I worked in golden handcuffs, unable to leave because of the good pay, benefits. I felt I was getting less marketable by staying there, and that I couldn't work somewhere else. Friends told me about other opportunities and I ignored them because I had no motivation- I was miserable with the job, the politics, everything. Luckily, an old co-worker provided me with a great opportunity. For others I knew who were even more able than I was, it also took spending a lot of time polishing his image and interview skills. You used to be able to just get jobs because of your resume. But these days, an interview can be like a black belt test. You have to show skills as if you were applying for an enrty level position, mid level, senior and executive all at once. Once I broke those handcuffs, I knew I was better off. It is scary, but it is worth it. I still don't know if I'm doing what I should be doing, but it has got to be better than hating every day at work.

And when you accept the offer at another company, treat the first company with respect, but tell them honestly what you think in a way that you'd be proud if your assessment of them went public.

[+] j_baker|14 years ago|reply
I later asked him directly, “…but do you love your job?” He paused, looked down to his drink, and replied, “I love my team, but I fing hate my job.”

There's one thing that I heard pg say one time that's always stuck with me: people make the difference. Good people can make a boring project fun. Bad people can make a fun project hell.

It sounds to me like the person quoted likes his team, but it doesn't sound like they're meeting this definition of "good".

[+] lnwilliams|14 years ago|reply
Love, love, love this post. I'm not a hacker so to speak but I can totally relate. I've always had an entrepreneurial spirit and NEVER wanted to be a lifer who spent 20 years bored to death making someone else's dreams come true. And, I think that spirit is the trait that marks the startup generation and the reason posts such as this resonates with so many.
[+] Produce|14 years ago|reply
I've taken this sentiment to heart over the last couple of years and went from hating my profession and seriously considering finding a new one to rekindling that passion. The key was getting a position where I can help make critical decisions and have a real say in what happens. At jobs where the decision making process was deferred to people who were either out of touch with reality or thought that their voice should be louder than the other team members' the feeling was soul draining.

I think that there is a sweet spot in already established, small to mid-size businesses looking to step their game up. They have the resources to Do It Right, the patience to carry out the process and the wisdom to trust what your experience and knowledge tells them.

[+] MatthewPhillips|14 years ago|reply
I think a more general piece of advice is to work somewhere where the software you write is the product. For corporations, the programming department is a cost center.