Hacker News new | past | comments | ask | show | jobs | submit login
Signs not to Work for a Software Company or Startup (codemonkeyism.com)
57 points by alrex021 on Aug 18, 2009 | hide | past | favorite | 50 comments



Not much more information than the Joel Test. I disagree with the statement about hardware, "bonus points for Macs". As a daily Mac user and Java/RoR developer I am just as productive on my Ubuntu box as I am on my Mac. Having a Mac is nice, but not something I would choose a job over. IMHO, bonus points should only be awarded for something rare, like a tech gadget allowance.


Bonus points because it means that they will let you work on the platform of your choice regardless of the hardware being more expensive. Starting my current job I was very happy when they asked me if I preferred Mac or PC.


Having Macs doesn't mean you get to use the platform of your choice. Is everyone using Macs, or just the people who want them?

What about the people whose platform preferences aren't so trite as "Mac or PC"?


Perhaps having Mac is more a sign that a company is willing to shell out for decent tools moreso than Macs being some super development platfrm. A developer area full of high-end macs tells me that a company is willing to pay good money for developer tools in a way that a room full of generic Ubuntu boxes does not (independent of their respective merits).


While I agree for the most part, I'm also leery of companies showing developers a room full of Macs just to get "bonus points". I fear Macs are becoming the new Aeron chair. Given most startups are poor, I'd much rather a company spend it's money wisely. If it means I have to do development on a high-end, but generic, Ubuntu box, then so be it.


I don't know much about PCs, but you can buy off the shelf a Mac with 16G RAM and 1T of disk, that's enough for a developer to run a dozen or more VMs... You can to all intents and purposes put a replica of the production environment on every developer's and tester's desktop. That's got to be a big win for productivity.


That one mac supercomputer can finance about 4-5 high end developer beige boxes running ubuntu.


And you'd need those 4-5 boxes in a stack under your desk to run an equivalent environment.


I'm confident that a cheaper 1T disk 16gig of RAM Linux machine can just run just as many virtualized instances as a 1T disk 16gig RAM Apple machine. So if you had 4-5 Linux machines, that's 4 or 5 additional copies of this mythical production environment. Using your own math, this would be an ever bigger win for productivity.


Strangely enough, one of the worst companies I worked for (Intuit) passes these "signs" test with flying colours. They have plenty of money, a huge customer base (thanks to a near monopoly on users who have years of financial data their data locked in to their apps. the desktops apps are decent. The web apps suck.), version control (Perforce), low turnover (no one leaves unless they are kicked out -- there is little real work to do and very high salaries, which attracts a certain type of developer). Intuit doesn't "get" the web and is desperately afraid of someone developing a web app to compete with their desktop apps(their own web apps are very sub par).

PG said in his "Ideas we'd like to fund" essay.

"21. Finance software for individuals and small businesses. Intuit seems ripe for picking off. The difficulty is that they've got data connections with all the banks. That's hard for a small startup to match. But if you can start in a neighboring area and gradually expand into their territory, you could displace them. "

On the positive side they did crush Microsoft (Money). Ok I am rambling. Back to work.


I think it's a bit disingenuous to say that Intuit doesn't get the web when their TurboTax web app is pretty good. Then again I didn't work there so maybe their tax software was handled by a different division than their Quicken products.


"I think it's a bit disingenuous to say that Intuit doesn't get the web when their TurboTax web app is pretty good. Then again I didn't work there so maybe their tax software was handled by a different division than their Quicken products."

I based my statements on (a) what I saw within Intuit about how the webapp is made/maintained (b) the customer complaint calls I heard (c) knowledge of the expected and actual revenue from the web app (the desktop app was acquired btw, the webapp built inhouse) and (d) the "strategy" meetings I attended. No "disengunous"ness intended.

For more than a decade INTU was a desktop company and that mindset pervades the company including their technical people. The web is deeply disconcerting to Intuit and their nightmare is that two guys in a garage will come up with something that takes their cash cows away. It maybe an unsual idea for people outside Intuit, but the top management is not laughing. (I guess something to this effect was what PG meant by "Intuit seems ripe for picking off". I agree. They are. Very.)

Another thing they haven't got a grip on is the success of the IPhone. There are a bunch of people who have been working for the last two years on getting native IPhone versions of various Intuit apps to work. they aren't having much success. Again I know this from working there, attending very high level strategy meetings and so on.

My post above was(is) just my opinion, worth exactly what anonymous opinions on the web are worth. It was an off the cuff post posted while my code was building and deploying, which I thought might be of interest to people on this forum. I don't want to get into a debate on the merits of TT or Intuit.

Pax.


OK, a huge one for me is "No serious technical questions in the interview." Seriously - if you don't show me code in the interview (preferably code from your products), then I don't really want to work for you. If we don't have at least one good argument about why language X is better than Y, I don't really want to work for you. Or, at the very least, if you don't stress to me at least one difficult technical problem that I'll face, I don't really want to work for you. Why? Because if you don't ask me these things, you've told me that my job is going to be deadly boring, and honestly I'd prefer minimum wage to a boring job.


I'm with you on the "no serious technical questions" thing. It's a really bad sign.

However, it's also a really bad sign when all they seem to do is ask difficult technical questions. About a year ago, I went on an interview where I was asked to:

-create the dual of the primal (linear programming) -calculate the long term state of a markov chain -recursively and then iteratively traverse a binary tree -code a singleton -write a query that eliminates all dups (sql) -find a way to rewrite a query as a set of binary indicators (wierd) -find a way to swap two integers without creating a third integer ... and more stuff that I forget now

at the end of 7 hours of technical grilling, I knew nothing more about what this company's products actually did than I had gleaned from my own web research prior to the interview.

They didn't end up wanting me. But I can't say I really wanted them either. When this happens, I get the feeling that they're looking for, and probably getting, highly talented technical people, but I have doubts as to whether these programmers are actually innovating on the product itself, and that kind of creativity is very important to my enjoyment of a job.


I agree with this list (though yes, it is much like the Joel test). However, I make a big distinction between organizational and technical deficiencies.

A lack of source control, build tools, unit testing, and so forth is much more forgivable to me than bad working conditions for developers, provided that the organization is committed to change.

Suppose a hiring manager said to you: "we want to be a great place for developers to work. We'll give dev's autonomy, latitude, a quiet work environment with offices. Unfortunately, our tech abilities are pretty poor right now. Most of our coding has been done badly up to know, and we know it. We're trying to hire the sort of people who can get this done right. Unit testing, source control, automated builds, we know we're screwed without them... you're a good developer and we know you make make this happen for us. It's your show if you want to join on."

Well, there are still reasons to avoid a place like that, and it may be a challenge, but I wouldn't necessarily run.

Whereas if they said "here's your cubicle, we expect you to be here from 9 to 5, managers will be watching you from their corner offices..." well then, of course, the finger goes up.


"However, I make a big distinction between organizational and technical deficiencies."

I make that distinction too. One of my previous employers scored a 4 or 5 on the Joel test, but the work was extremely interesting, the technical staff was top notch and we actually had power to change things. My last employer in contrast probably scores more like a 9 or 10. The management was just mind bogglingly incompetent.


>Well, there are still reasons to avoid a place like that, and it may be a challenge, but I wouldn't necessarily run.

It may not be a reason to avoid any place like that, but any startup like that I would flee from.


If the founder/ceo has been in his industry for a while yet all the people working with him at the startup have never worked with him before. Huge red flag. Ask yourself: why can't this guy attract people from his network? Why don't they want to work with him ever again?


Depending on the nature of the startup this is not necessarily a red flag. From my first startup, of the four original employees two went to google (one joined pre-IPO and has since gone to grad school and one is still there), one started his own company, and the fourth is working for the third; it would be hard for me to lure them back to being employees at a scrappy little startup. If the founder is doing something completely different than previous ventures then past employees may also be poor matches for the technology or product.

It is worth asking for a reference or two from previous ventures, but be prepared for "I didn't realize how important getting A-level talent was back then and will not make that mistake twice" as the answer to your question.


Here's a simple but critical one that I got burnt on:

They demo their new top secret product but won't let you touch the keyboard or mouse for "proprietary reasons".

It was really slick and exactly what the market needed. I remember gasping several times during the demo. I really wanted to be part of that!

Big mistake.

What I didn't realize at the time was that it took an incredible effort just to make it demoable and only certain people knew how to demo it without breaking it.

The software never worked and never could. It had to be scrapped.

If you can't actually use some part of what they're building before you commit, move on.


Are you not being hired to build it?

I guess it would come down to them letting you know how far along they are or does that even matter?


Even for the stuff I've been hired to build, there was something there when I got there. It's your responsibility to insure that they have properly represented what they already have. Deception in the recruitment process is a real turn-off.


I agree, regarding deception. As for something being there -- that's kinda the point with a startup: there's quite possibly nothing there yet, but you get to help build it. Someone has to start the process. Just don't hire on with someone that expects you to do that and lies about it.


Number 5 High Turnover can work in reverse as well, especially in software development. If all the staff have been there for a long time they may have gotten too comfortable with their jobs and no longer keep their skills up to date.


2. No top tools or only home brewed ones (IDE, Build System, …):

Well, emacs should be available on most platforms. ;-)


What about when you're working with Java? Do you still use emacs?


I don't generally work with Java, but I reexamined Eclipse when playing around with Android apps. I find that it still gets in my way, but at least this time around I had enough RAM to run it well.


I use vim with Java. It works great - I don't believe that an IDE should ever be a requirement for writing good code. If this is the case, the language fucked up.


Absolutely. Emacs, ant, and unix command line tools work just fine for java development.


A good list until he had to put in "Bonus points for Macs". I'd rather have a company let me choose my own hardware and development environment (unless I agreed to use their specific environment in an interview).


That means that they're letting people choose, and that's what some people chose.


Really? Do you really think that every business that uses a bunch of Macs is letting employees choose? From what I've seen, most of them assign Macs, and that's what you get to use, period.

I think the point of the article was that Macs indicate the company's willing to spend money on employees' working environments, not that the company's willing to let employees choose working environments. If you like Macs, it's a great metric; if not, it sucks.


It's a nonsensical metric.

If company A and company B were equal except that in company A some people chose a Mac that would mean it would suddenly be a better place to work at?


Come on guys, it's not all about Mac vs. PC, he was using it to demonstrate a company that lets you choose the hardware you want to work on (powerful w/ 2 screens was what he said). The fact it's a Mac means they trust the developers enough to choose what they want, rather than just buying a high end windows box.


The relevant point is not what they chose but that a choice exists.

Interestingly at my place we have a choice (Red Hat/CentOS, OS X, Windows XP, Solaris, Windows 7) and people, even full-time Unix sysadmins, are choosing Windows 7. Make of that what you will.


My first guess would be that the admins are using their desktop boxes mostly as dumb terminals to the unix servers, and chose Windows because of easy integration with email and calendaring.

As to why Windows 7 instead of XP, maybe it's getting good word of mouth? Or maybe getting a fresh install of XP is more of a pain than going with Windows 7, and they just can't be bothered?


From my perspective, that list (and the fact people choose Win7) means:

1. Red Hat / CentOS is better than Ubuntu, but if that's my only free/open source Unix-like option, it sucks.

2. MacOS X is good for the "tell me how my working environment should look" crowd, I guess.

3. Windows XP and Windows 7, but not Vista? Good! Too bad XP and 7 only look good by comparison.

4. Solaris for workstations. Damn, this company is interested in giving people options! Too bad I'm not terribly sold on any of the options they offer.

5. I wonder if people are choosing Win7 because it's better, or because it's "new" and still "Microsoft" (and thus "better", but not necessarily better).

I'm a bit of a cynic when it comes to technology options and how people make decisions, I guess.


Management, management, management! Do they a have a proven history of success? If it's the founder, does he/she look like they can get shit done? I don't mean are they smart, do they have Ph.Ds, but are they focused and do they finish things?


I'll give an counter-example. A local company here in Vancouver, Canada that services real-estate market. Not a very big one, but probably not a start-up either. Basically an office suite for a real-estate agents with the hook-up into MLS. Excellent management, astounding sales, absolutely and utterly fucked up development. I know several people who worked for them in different capacities, and all of them were basically ashamed of the quality of the product, but always said the goal was to produce something that sales could sell.

So, yeah, there was a founder who can get the shit done. But he didn't see quality product development as a priority :)


That's absolutely true. Obviously I was speaking from the view point of a semi decent developer :)


First-time entrepreneurs are OK too, if they can prove they have determination (can finish things). But make sure their ideas about "company culture" mesh with yours. Company culture starts at the top.


One important thing is to find out during the interview whether the company has a plan and they are not just hiring you to perform monotonous, undemanding tasks. They should be able to tell you what upcoming projects you are most likely to work on in the near future. Also thoroughly research the company and its business domain, and make sure it is a fit before accepting an offer. Fog Creek scores a 12 on the Joel test, and it is not a bad place to work, but a lot of people would be bored out of their skull working there.

Management is also very, very important. There is not much use having rock stars as colleagues if the people at the top making the decisions are not competent. That's a situation I found myself in at my last job, and it was very demoralizing.


I look for evidence that they really know what's going on in their target market (especially if it's a narrow vertical), are engaged in that market, and that they're not just a bunch of technologists with a cool product in search of a market.


Only 7 bad signs?

What about the work environment? Working in a cube farm with the cheapest kind of free coffee is a lot worse than working for a company that has free Starbucks/drinks/food and that gives you a private office and lets you work from home whenever you want.

What about the interview process? I would rather work for a company that puts me through interview hell than one that just says "you've got the job."

The problem with these authoritative lists is that they're anything but.


What about a startup that only has room (and money) for cubes or a bunch of desks shoved together in the main room of the rented space, but provides free Starbucks and donuts and lets you work from home whenever you want?

> The problem with these authoritative lists is that they're anything but.

I think an "authoritative" list (by which I take it you mean "comprehensive", too) is pretty much a pipe dream. If you come away from such a list with two things to think about during the interview process you weren't already thinking about, though, it's pure win -- and if you come away with just one, it at least wasn't a waste of your time.


It's amusing to see all the nitpicking here. Heh. At the end of the day, it's about the people. Does this company actually care about the people working for it? Do you care about them? Honestly, all these "warning signs" seem like a guide to common sense for people without it.

As in, if you don't like the place and your interview process makes you feel bad, there's probably something wrong and you shouldn't work there. (Of course, if you're desperate, no number of signals will be able to turn you away from the flame.)

Yeah, my company's still hiring.


Absolutely good points. Especially the points 2 and 7.


That font is beautiful.


Are you sarcastically suggesting that the best thing about the article is the font -- and since the font is nothing special, there's nothing special about the article? If so, that's hilarious and you deserve upvotes.

Are you just using a computer that happens to have the right font installed so that you see the beautiful, but unfortunately not universal, font the article uses? If so, it might be useful to realize that fonts are only visible when you have the installed on your computer. It looks (from the stylesheet) like the site uses Helvetica Neue, degrading to Arial, Helvetica, and finally to sans-serif. Helvetica Neue is basically just a marginal improvement on Helvetica; good, but hardly what I'd call "beautiful" in a breathless tone. It's also far from a universally available font.

Are you just really that naive about commonly available fonts? If so, I'm afraid your comment is a waste of time.


Well, sorry. Maybe I don't have the font that I'm supposed to have installed, but the default that came up is stunning. I was being truthful with my comment.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: