Fog Creek Software
g
Discussion Board




Where are all of the good jobs?

Where the heck are all of the good software engineering jobs? With good software companies?  I'm not talking about a Crytsal Reports writer or business applications programmer/analyst or a stupid Access database programmer!  I'm talking about C/C++ development of hardcore stuff like content creation, games, operating systems, utilities etc etc.  I want to be on the team who makes Crystal Reports, Access, .NET, MS Windows, Adobe Photoshop, QuarkXPress, DreamWeaver, Norton Utilities etc etc..

Does anyone here work at these places?  What does it take to get in?  Can anyone else here identify with the "I hate business development stuff."  It seems like all the fun stuff is gone or the positions are filled or some other such nonsense.

Anon
Thursday, May 27, 2004

I *left* the sort of companies that had the "good jobs" developing products, 11 years ago.

Why?

Snobby geek meritocracies and notion of "respect" earned by essentially living in your cubicle.

Companies that thought that developing products was almost a rock star like status and who held developers to incredibly harsh standards of performance.

So-so pay.

Treatment as a commodity.

It's the same ALL OVER. In some ways, working in some geek dominated companies can be FAR worse than working for people who don't claim to have your knowledge as a tiny subset of their experience.

Bored Bystander
Thursday, May 27, 2004

Well, I'm ok with moving on, but wasn't it the least bit exciting being on a team of developers and designing and developing a product that you know would be used by a ton of people?  Didn't you share the vision of the company?  I guess I don't understand the whole corporate culture, geek culture stuff because... well I've never had to deal with it and don't know much about it.

Anon
Thursday, May 27, 2004

In the U.S., good jobs are in the Boston area (hi-tech, defense), Washington D.C. (defense), L.A. (defense, games), Austin TX (games), San Jose CA (hi-tech, games).

Various large defense contractors are also scattered around -- Lockheed, Raytheon, Boeing, Northrup Grumman, etc, with branches in a lot of larger cities.

It doesn't take anything special to get "in" to fun fields, but if you never apply and never send in your resume, they're certainly not going to come to you. Don't apply to boring business companies if you don't like them.

Mr. Obvious
Thursday, May 27, 2004

I hear you Mr. Obvious.  I do apply to these companies, but I never hear back from them.  So i think it must be my formal experience level that they are questioning or they have to deal with the normal glut of candidates that ever company seems have these days.

Anon
Thursday, May 27, 2004

>> wasn't it the least bit exciting being on a team of developers and designing and developing a product that you know would be used by a ton of people?

Product companies attract a disproportionate share of overbearing prima donnas with "rock star" attitudes.

A career track problem for developers who work for product companies is that business development, product specification, interaction with users, and other broadening experiences, can be highly segmented and closed off to someone who "only" does coding.

It *was* neat developing something that I knew that many people would use. The office politics were a lot less "neat."

I'll take the lower profile road, as long as it pays, any day.

Bored Bystander
Thursday, May 27, 2004

Ok that makes sense thanks Bored.

Anon
Thursday, May 27, 2004

Anon, I'll answer your general question. Product companies are incredibly, generally uselessly snobby about specific skill sets. The specialization of skills I mentioned above means that you get career geeks at these places who are obsessed with being right and being better than everyone else all the time.

I heard about one local company that harbored a guy who supposedly had worked in some capacity at Microsoft on Visual C++. So candidates had to practically memorize MFC's classes and methods or they would be torn down and disparaged as losers.

Bored Bystander
Thursday, May 27, 2004

Anon, our responses crossed. But glad to help anyway.

Bored Bystander
Thursday, May 27, 2004

The single biggest problem is the companies knowing you are out there.  All postings of jobs results in a huge deluge of resumes.  The larger companies have HR people who don't  know anything except what acronyms they have been told to look for.  I'll be hiring for a startup soon, and will have to do all that myself.  Not looking forward to it.

The other issues come down to communication.  We all know how important communication is in a development environment.  This is formally - design docs, specs, test plans etc all serve multiple purposes, but one of them is communication, and the informal water cooler stuff (or IRC, or email etc).  Even XP two man teams bring forward the communication element.

But the company also needs to communicate with the customers and partners, and especially on technical stuff it may be a waste adding an extra person between the customer and a developer.

Initially I will only be hiring a few people to do pure software, but as we pick up customers the tehcnical communications skills are going to matter a lot.  You would call them biz dev.

anonymous
Thursday, May 27, 2004

Anon, if you're not getting responses, make sure you're not overloading your cover letter and resume with irrelevant skills (to them). If somebody in defense reads a bunch of business or internet-related stuff in the cover letter, they'll just zone out. It's better to summarize it as "6 years professional OO software development experience" and play up anything at all that might be relevant, including hobby or shareware stuff you might have done.

I agree with the others on the primadonnas, though. It's especially bad in the game industry (complete with temper tantrums and throwing stuff around) which is why I left and went into defense.

Mr. Obvious
Thursday, May 27, 2004

Oh, I should add, to find out the relevant skills just scan all the job postings in your desired area to see what they're looking for, get books on those technologies and do some tinkering around at home with it. Just a month or two of that can let you talk smart enough in interviews to stand out from the masses, anyway.

Mr. Obvious
Thursday, May 27, 2004

>> "If somebody in defense reads a bunch of business or internet-related stuff in the cover letter, they'll just zone out. It's better to summarize it as "6 years professional OO software development experience" and play up anything at all that might be relevant, including hobby or shareware stuff you might have done."

What if you've been stuck in an IT department for four years doing so much VB that your C++ skills have atrophied?  (I shouldn't say "stuck"...  The reason I'm still here is that I got hired in at a year 2000 salary, and I don't want to cut my paycheck in half.)  Any hope or me to get into a defense development role?

anon
Thursday, May 27, 2004

There are defense jobs looking for VB as well as lots of general IT jobs in defense (managing networks).

To refresh your knowledge of C++, or MFC, or whatever the ads are looking for, buy or get a compiler at home and start tinkering (I mean, this is obvious, right?).

Mr. Obvious
Thursday, May 27, 2004

>> "To refresh your knowledge of C++, or MFC, or whatever the ads are looking for, buy or get a compiler at home and start tinkering (I mean, this is obvious, right?)."

Couple of points & questions:

(1) In my experience, what I've done at home doesn't interest interviewers in the least - only what I can put down professionally - and I haven't worked professionally with C++ in years.

(2) After being spoiled by using VB & Java for the past few years, I'm not too thrilled with the idea of working with MFC again where it takes thirty lines of code, and a dozen structs and declarations to make a single stupid API call.  Is it worth it to delve back into 1993 technology?  Won't there be any defense stuff using managed code?

Thanks.

anon
Thursday, May 27, 2004

Anon,

In your original post you expressed your ferverent desire to do C++ development.

What's transpired over the past 15 minutes to change your mind?

Jayson Blair
Thursday, May 27, 2004

I am 'anon', not 'Anon'.  I thought this thread was case sensitive.  ;-)

anon
Thursday, May 27, 2004

Anon, you have to sell yourself as a software engineer, not as a guy who knows some list of programming languages or software packages you can pick up in a few weeks or a month.

Focus on the products you have created or projects you have worked on -- designed this, developed that, architected that. In your cover letter and resume you can list the languages and compilers you are familiar with, but don't make it the focus. If the interviewer asks what language you happened to use on whatever project, you answer truthfully but keep talking about the results and the engineering steps you went through to create the software, what steps you took to ensure the project came in on schedule, what engineering lessons you learned, etc. That is what is important, not the language. If they're hung up on language or what word processor you're most familiar with or your typing speed, you will not be happy at that job so ask to go to the bathroom then turn the corner and run like crazy.

And if you're not interested in MFC development and want to work on only managed apps, only target companies that are seeking that in their ads. They will say things like engineer with experience in "VC++, MFC, COM" or "C/C++, Unix, X-Windows" so don't target the ones you're not interested in.

Mr. Obvious
Thursday, May 27, 2004

IBM, Rockwell, Raytheon, Sony

A few I know about doing "real" development.

hoser
Thursday, May 27, 2004

I work in the defense industry. Some of the newer projects here (i.e. started in the last 6 months) are using primarily Java, with a couple using C#.  There is also a number of older projects based on C++/Linux or Solaris. 

Pedro
Thursday, May 27, 2004

"obsessed with being right and being better than everyone else all the time"

You would really want to work with people who are not obsessed with being the absolute best?  How dreadful.

Even if I wasn't sharp enough to be at the head of the pack, I'd take any cutthroat meritocracy any day over complacent mediocrity and *hollow* puffery of business people lording over the dregs in the IT world with trite "wisdom", "best practices", and "process" garbage.  It's always a shame to hear about a smart mind squandered in that dreary, blighted netherwold.

Anon, if your skills have sublimated in the dry storage of the IT world, you need to fix that if you ever hope to get a slot on a hot-shit team.  Merely tinkering at home will not fix that... rather than tinker, build something hot, and sell it.  Nobody in the hardcore software world wants a meandering tinkerer.  You need to deliver something to demonstrate skill.

Corn
Thursday, May 27, 2004

>> "obsessed with being right and being better than everyone else all the time"

>> You would really want to work with people who are not obsessed with being the absolute best?  How dreadful.

Not at all.

Note my exact words - I am describing a social attitude, not an attitude of personal excellence and self improvement.

The sort of culture I am describing is the culture of techies kicking sand in the sandbox at each other and playing "king of the hill" to tear down anyone that they see as a threat or as not fitting into their clique.

Sic: a few years ago I worked with a rather pathetic SW engineer who was completely into the sort of mentality I am describing. In ANY conversation he had to one-up me constantly; any discussion was not simply about merits of implementations, it subtly got to ad hominem arguments that due to my implicit station "under" him and his lofty role, my arguments automatically carried less weight. Managers hated him and co-workers loathed dealing with him.

In a less "in your face" manner, many product companies seem to have a disproportionate level of this type of attitude.

Bored Bystander
Thursday, May 27, 2004



TO WHOM IT MAY CONCERN:

Stop complaining about atrophied skill sets.  If you want to keep your skills sharp, you have to practicee.  Go over to sourceforge, find a project that fits those skills *and* that you're interested in and start making contributions.  That's all it takes.


Development skills are just like any other activity.  You have to practice if you want to play at a high level.  If you don't practice, you get what you deserve.

KC
Thursday, May 27, 2004

"You would really want to work with people who are not obsessed with being the absolute best?  How dreadful."

The more I work the more I hate people obsessed with being the best. When coworker Mike thinks he is the best  he doesn't listen to anyone elses ideas, he berates those who disagree, and he won't help other teammates out.

It gets tiring to manipulate these people into thinking my idea was really their idea. It gets tiring listending to them take all the credit. It gets tiring having them preach about the proper way to do design (typically something they read in a book 10 years ago).

I'd rather work with a bunch of slackers.
1) They are more fun to hang out with
2) They are impressed when other people do cool things
3) They listen to other people's designs

NathanJ
Thursday, May 27, 2004

>> >> "You would really want to work with people who are not obsessed with being the absolute best?  How dreadful."

>> The more I work the more I hate people obsessed with being the best.
...
>> It gets tiring to manipulate these people into thinking my idea was really their idea.
...

Nod.  YUP. Well said.

Bored Bystander
Thursday, May 27, 2004

Sounds like a backwater... where people could possibly think they're the best who really are not.  There are places where only the real hotshots have a hope of supporting that attitude, and those not are just coming up to speed.  Or where everyone is a hotshot.

Functioning meritocracies don't support delusion well.

No point in continuing such a subthread here unless we could be sure we're not hearing sour grapes, and an online forum like this can hardly grant that kind of surety before the page drops off the list.

Corn
Thursday, May 27, 2004

Anon, a lot of those places hire most of their developers at junior level straight out of school, and then promote them up the ladder. That's why you won't see many jobs advertised in the general world.

When they do hire someone at a slightly more senior level, they will hire someone with a similar career track at one of their competitors.

JM
Thursday, May 27, 2004

A likewise complication for the job hunter is what is perhaps the best policy of all, and one generally not possible for a big company...

It's a two facet approach.

Whenever you find someone superb, who fits your culture well, hire them.  You don't find such people very often.

Don't create slots to try to fill with the best person you can find.  If you don't have the excess capacity, pass up the work until you have it.

Of course you must be quite profitable to be able to maintain the excess capacity for this model to work, but this model also tends to help you become profitable, since you rarely if ever make bad hires and accumulate dead weight.

Even for groups that don't use this exact approach, most hiring for better jobs happens by referral, not by posting jobs or open accumulation of resumes.  Your best bet to get a great job is to know the people already in the good jobs.  And that's not just true for programming jobs.

Corn
Thursday, May 27, 2004

Corn,

I don't want to start a big flamewar, but you displayed a couple classic symptoms of the arrogant techie. (I'm half serious / half joking).

1) You imply that my work environment was "backwater". If only I had such great experience as you have I would understand a true meritocracy. Obviously the people I worked with were delusional.

2) To stifle different views you say there is no point in continuing this sub-topic (aka - getting the last word, a tactic often used in meetings).

3) You suggest a needlessly hard and complex plan (build something hot and sell it) umm... not saying that won't work, but if I build my own product and successfully sell it then why would I go work for someone else??? Also absent from this plan are any details on how you might build this hot product.

4) You suggest people at other places mediocre dregs with sublimated skills.

I agree that it is good to strive for the best, but being obsessed with perfection is not the way for me.

The product companies I worked at were the market leader in their space. I too thought it would be fun to work on "cool stuff". I got frustrated by the things listed previously.

I got into both companies through referrals. If you aren't lucky enough to have a friend working there you might attend trade groups and such. In the meantime you should strive to practice the skills you think you would use at such a workplace.

Also, when you see a news article or presentation by an expert in your target field send them an email asking how you can learn more or get experience working in that field. This technique may seem cheesy, but I've received job leads this way (the first two by accident I just wanted more information on some new technology - now I see it as a viable way of finding leads).

NathanJ
Thursday, May 27, 2004

I wrote a lengthy blog response to this question... probably too long to post here.

I've been fortunate enough to work on some mass-market commercial apps.  But what a long, strange road it's been...

http://directorblue.blogspot.com/2004/05/in-recent-jos-post-anonymous-poster.html

dir at badblue com
Friday, May 28, 2004

Anon, just out of curiosity how many resumes do you have? What I mean is do you send 1 resume to 10 companies or 10 resumes to 10 companies? I've always customized my resume for every job I've ever applied for and its rare for me to not get called for an interview. I'm a very capable engineer but I think its really my presentation that initially impresses people the most. After I get the interview my "smart and gets things done" metric determines if I get hired but at first its all about selling myself as someone they really need and want to have working for them.

My advice is to be specific about the kinds of jobs you want, learn as much as you can about positions/companies of interest and then focus your efforts on selling yourself to each employer individually. Write a focused resume for each position you apply for. Your resume must make the reader realize that you are the exact perfect person for the job.

Just throwing stacks of generic resumes into the wind will not get you anywhere.

Hinge
Saturday, May 29, 2004

Dear dir@badblue.com:

Wow! Thanks a ton for the article.  Now that is what I call an experience.  Incredible.  I also have to tell you that my Uncle introduced me to AlphaFive and I agree it is awesome.  Never thought I'd hear from one of the developers!  Thanks for the inspiration!

Anon
Saturday, May 29, 2004

If you really want to get a job in the games industry with out previous games exp.  They expect some sort of game demo.
VB programming isn't that useless,  I have a friend who works at NASA(really a contractor for NASA but his office is on site so "at" instead of "for") who uses VB.

Brian H
Saturday, May 29, 2004

*  Recent Topics

*  Fog Creek Home