10 ms·
What a Developer Job Posting Should Look Like
- glimcat 15y agoBig flaw #1: When I land on that page from a link, it is not immediately obvious that I am looking at a job posting. You should always always always let me know what I'm looking at within 0.5 seconds of me glancing at the page.
- bpellin 15y agoThanks for putting the location (or in this case lack of location) of the position right at the top. I'm amazed at how many postings make this hard to find or leave it out entirely.
- dreamdu5t 15y agoWhy don't they tend to look like that?
- timcraft 15y agoLaziness, incompetence, and because the person writing a technical job posting often doesn't understand or value the skillset they are hiring for </generalization>
- bradleyland 15y agoI don't intend to stand up and defend obviously terrible job postings, but consider the source here. The fact is that many people just aren't fantastic writers. Pragprog.com is a publishing company. If that posting were written by Dave Thomas himself, that means it was written by one of the most successful authors in the Ruby community. Success in authorship means that you must be a good writer in general. Success in technical authorship means that you must be a good writer, as well as exceptionally good at organizing complex information (like a job description) and expressing it in terms that people can understand. To answer the question directly: "Why don't they tend to look that?" Because most people can't write nearly as well as Dave Thomas.
- Xylakant 15y agoNice job posting. I'll be watching the coderay submissions to see whether they'll contribute the F# scanner :)
- forrestthewoods 15y agoI skimmed the page five times before I ever saw the words "Software Developer." Everything about that page screams TLDR. The information contained is informative but it doesn't even have a decent summary.
- ilcavero 15y agototally agreed
- gabrielroth 15y agoThe words 'Software Developer' are in 260% type at the top of the page. If they're looking to weed out unsuitable candidates, TLDR might be a feature rather than a bug.
- forrestthewoods 15y agoBut that 260% type is also the same color as the top bar so it blends in. That's just poor design. This is the internet, people don't read walls of text. If that's a weed out feature then you're doing it wrong.
- redthrowaway 15y agoIt's Big, black text on a white background. It ain't exactly camouflaged.
- deleted 15y ago[deleted]
- giberson 15y agoTangent: I saw the "A Design Challenge" that the job submission should should include a document that addresses the issue. As each instance starts, it boots its AMI. That image includes a snapshot of the checked-out eBook repository as of the date the image was created. Each gerbil, as it starts, updates this cache to get the latest version. This involves checking out perhaps 500Mb of data per instance, as new books will have been added and existing books updated since the instance was frozen. As a result, it will often take 30–45 minutes to start 10 instances. Am I off base here thinking that a fairly obvious solution to address the 30-45 minute cold start is to NOT pull the entire library of book templates from svn at startup? Rather, why not simply update just the template(s) currently stacked up in the job queue? So instead of a 500MB pull your looking at maybe 1 or 2 before you can start processing a job in the queue. I wonder if this "challenge" is an existing problem or something they've already addressed. Has relying only on "on demand" cache updating been tried already (seems like it would have been since it seems like an obvious possible solution) if so what was the result?
- mquander 15y agoMaybe this is too pessimistic, but perhaps the challenge is just serving to filter out people who don't know what version control, EC2, or caching are, or who can't form a mental model of the problem based on the short description provided.
- giberson 15y agoPerhaps the intent of my comment doesn't convey well. I'm not really trying to judge the quality of this challenge. Actually, I just thought it was interesting and was curious if my initial "obvious" solution would actually provide improvement. Ie, I was trying to ascertain if this was one of those the obvious idea is the worse idea scenarios. Obviously the best solution would be to keep updating the base instance image with new books so it could start up up to date as was suggested in another comment below. But ignoring that possibility what other options can we explore to increase performance? I just genuinely wanted to discuss the problem and find out if its nature was one that got more interesting the harder you looked at it.
- 15y ago
- justinph 15y agoNo health care for a full-time position? Not a great template.
- martingordon 15y agoI found this a little strange. Isn't it generally cheaper per employee for a company to secure group health insurance than it is for each employee to get their own? Even if the employee was paying 100% through an employer-sponsored plan, they would save 25-30% right off the bat due to it coming out of pretax income, right?
- droithomme 15y agoYes, that is correct, rates are considerably cheaper per person in a group. But crucially, if you have preexisting conditions you can actually get covered. Insurance companies won't insure people with many preexisting conditions, and when they will insure them the rates can be completely impossible to swing. So let's say you have a stable job with insurance but you have diabetes, or perhaps you are a cancer survivor. If you switch to this job, you will have no insurance and you will not be able to get any. Or consider that you are unemployed. Now you might have state Medicaid insurance. Taking this job means you lose it AND you can't get insurance since they don't offer it. Or something less serious. A developer who is pregnant for example is basically uninsurable as an individual except also by state Medicaid, which is available to the poor in the US. What if you have AIDS taking long term drug therapy, or you are a paraplegic developer? You will not be insurable as an individual. A disabled developer, or a pregnant one would not be able to take this job with no benefits. In some cases this sort of no insurance policy can work well as a way of screening out candidates that some software companies may consider undesirable, including women of child bearing age, the disabled, and other groups.
- mey 15y agoIn theory this will improve in 2014, as long as Congress doesn't make another radical course shift (so yeah...) http://www.healthcare.gov/blog/2011/01/preexisting.html http://www.healthcare.gov/blog/2011/01/preexisting.html
- maxdemarzi 15y agoCould't you address the design challenge with auto-updating the AMI instances? http://pragprog.com/wikis/wiki/ADesignChallenge http://pragprog.com/wikis/wiki/ADesignChallenge http://shlomoswidler.com/2010/01/creating-consistent-snapshots-of-live.html http://shlomoswidler.com/2010/01/creating-consistent-snapsho...
- fleitz 15y agoA developer job? It sounds like support/sysadmin. A pay pal transaction not completing due to a network outage is an ops issue not a dev issue. Also, what's the pay? When you talk to actual developers the biggest issue is the problems finding out what the job actually pays. I hate talking to recruiters that won't tell me what it pays. When you don't tell me what it pays that clicking sound you hear is me clicking the back button. It's a job, I go there to get paid, not take shitty pay to hear platitudes about how we're doing what we love. If I want to take a chunk of my salary to have people go blow smoke up my ass I'd rather see a professional of my choosing. As far as the gerbil thing is concerned, it's called producer/consumer. You use a message queue (SQS?) to store the work and you use the gerbils to 'consume' it. You store the state of the books in something called a "database" and you store the "master book" encrypted publicly on a CDN. The server puts a message in the queue telling the gerbil how to customize the book along with the URL for the master and the key to decrypt it. For pragmatic programmers they sure go out of there way to obscure that it's a simple producer / consumer model using SVN and a bunch of caches as a message queue / database monstrosity. As for the coderay thing I'd rather just use the F# syntax parser from F# and decorate the AST as F# is my favorite language and it would take a couple hours to do it that way. As a pragmatic programmer I don't much care to implement a half assed parser in another language.
- deleted 15y ago[deleted]
- phillmv 15y ago>A developer job? It sounds like support/sysadmin. "Devops" is the way to go these days. Surely they must exist, but I've yet to encounter a <30 person company with a fulltime sysadmin. It's usually "Joe" or "Rackspace". Yes, this is often suboptimal, for sysadmining is hard. > It's a job, I go there to get paid, not take shitty pay to hear platitudes about how we're doing what we love. Dude, it's a job opening at PRAGPROG. If that doesn't immediately tickle your fancy, this may not be the job for you. Admittedly, it probably isn't the job for me either.
- count 15y ago
- ChristianMarks 15y agoLooks like a job as a system administurbator cleaning digital bed pans, with occasional programming.
- droithomme 15y agoThe ad is pretty good but could be improved if they find they are not getting enough qualified candidates. Maybe they are getting plenty and there is no need for changes. But if so I recommend the following. I would change "software developer" to "site administrator" given that the first example in a typical day's work deals with resolving web site issues. With the F# syntax highlighter code required to apply, I'd feel more comfortable if I knew they already had one and this isn't an issue of trying to get free work out of people. Also, requiring it to be implemented a certain way is out of scope and unnecessarily narrows the field by rejecting qualified candidates who aren't going to learn their special tool. The salary offered should be clearly listed. And finally, the no health care provided is unacceptable, which seriously will restrict the caliber of candidates interested. If this was a contractor position, which would be reasonable given that it is remote and the contractor is expected to own, use and maintain all their own tools, then that would be perfectly fine, however the rate would of course reflect that of hiring a contractor/consultant. But as an employee, in 2011, there are plenty of software employee jobs that provide benefits and very few serious ones that don't. Because the rate is not quoted I am highly skeptical that the claim that the rate is higher to compensate for lack of benefits is correct.
- mey 15y agoCode samples are something not enough places look at when reviewing people. Asking for this particular task doesn't bother me, it reduces the noise from people blasting resumes. Conversely a quick google search isn't far from finding a solution to that problem.... Agreed, on the health insurance angle, it'd be interesting to see what the compensation is, and if it increases at the rate of health care premiums. Lastly, until 2014 in the US, people with pre-existing conditions may simply not be able to obtain health insurance (one of the only advantages to work pooled health plans). Conversely I think it's pretty progressive to not have health insurance, and allowing me to choose, but also as a result I can not apply for this position simply because I cannot insure my family outside a work plan until 2014.
- droithomme 15y agoThanks for mentioning family - I hadn't considered the issue that it's not just the developer, but spouse and dependents that could have preexisting conditions that make them uninsurable. So the number of qualified persons who could not take this job because of the insurance situation is even larger than it might seem at first. I suppose for employers this seems like a great way of saving money. I don't really see not offering basic benefits that are standard in the field as progressive though, but perhaps you were saying so as a sort of joke in which case I agree it's a funny thing to be doing.
- beilabs 15y agobe a US resident Any particular reason? A lot of US companies are looking further afield because they can't find the talent in the US. http://en.wikipedia.org/wiki/E-3_visa http://en.wikipedia.org/wiki/E-3_visa Disclaimer: I don't qualify, I come from the land of potatoes, I just live in Sydney and get hounded by US recruiters for my troubles...
- redthrowaway 15y ago>Any particular reason? I'm thinking tax purposes. When you're a small outfit, the extra paperwork burden that comes from hiring people in other countries, without visas, probably would make it not worth your while.
- loumf 15y agoIn the US, you have to get the applicant through a lottery system. It used to be a high percentage would get through, but the last I heard, it was more like 50/50. So, if you hire a lot of people, and have 30 with visas and get 15, that might be ok. But, if you only need 1, it's too high stakes. http://www.ericsink.com/entries/H1B.html http://www.ericsink.com/entries/H1B.html
- swalberg 15y agoIs the combined vacation/sick thing common in the States? I've never seen it until I worked for a US company (I'm in Canada). Everywhere else either gave 3 weeks vacation and unlimited sick (with HR policies to deal with abuse), or banked sick time separate from vacation.
- mkopinsky 15y agoI don't think it's common. I had never heard of it until I started my current job which has that policy. As a young guy who doesn't get sick often, I'm happy to have it pooled.
- richtaur 15y agoI dunno man, that's awfully wordy.
- rorrr 15y agoSalary range not listed = low budget
- kscaldef 15y agoI'm not sure that I've ever applied for a job that listed a salary range in their ad. And, actually, my take is exactly the opposite of yours. Almost without fail, every ad I've seen with a salary listed was lower than I would consider.
- gfaremil 15y agoI'm not an expert how to write job posing (and Dave Thomas is an excellent writer), but this is more like "what a developer job posting should NOT look like" then "should look like" Two important things and one less important: * job description is more for system admin and not for a developer - your audience will be confused * if you do not offer either health care or a pension plan, this is then essentially a contracting gig. You probably need to provide exact salary in this case. Probably you need go to hourly rate. In practice, there are only two type of jobs for developers in US: job fully loaded with all benefits and contracting gig. There is very little between. * less important: too wordy and just too long without exact facts (you know engineers do not like
- dmoney 15y agoAm I the only developer who thinks this looks like their own job (albeit with different technology and health insurance)? My job breaks down to something like 25% tech support, 65% fixing other people's bugs, 10% developing new features. Maybe I'm just bad at managing my career or something.
- michaelochurch 15y agoMy job breaks down to something like 25% tech support, 65% fixing other people's bugs, 10% developing new features. Maybe I'm just bad at managing my career or something. Sadly, that's about the norm in this industry. There's a reason why the average software engineer burns out after 5 years. The legacy/maintenance burden is a real problem, and it ends a lot of careers. There's a lot to be learned in maintaining one's own projects, and I think everyone should maintain their own stuff, instead of being "promoted away" from maintenance, but I think maintaining other peoples' code is only a strong learning experience when the code is of very high quality. In that case, it doesn't feel like maintenance. What happens is that poor maintenance practices lead to more maintenance work in the future, and the norm in the software industry is for maintenance to consume 70-90% of developer time. Sloppy maintenance practices self-perpetuate. With proper practices in place, it should be 30-40% at the worst. The biggest fuckup in the software industry is that maintenance jobs usually get passed to junior programmers who (a) don't know enough to do them properly, and (b) more relevantly, don't have the power to do maintenance properly. Actually improving the code would require clout in the form of (a) asking people to drop what they're doing and document code they wrote years ago, (b) removing bad functionality from APIs, and (c) having the option of saying, "we need to rewrite this entirely" without risking one's job. The junior developers who get the maintenance projects never have that kind of political power, so the result is that the "maintenance" doesn't achieve lasting code health improvement. The trick, and very few companies have figured this out, is to create a "maintenance engineer" career track, pay it 30% more so that it's desirable and people have to be turned away from it, and delegate legacy maintenance tasks to people who actually have the relevant skills and can actually (imagine this) improve these legacy modules instead of "maintaining" them indefinitely. The most important thing is to make sure these engineers actually have enough power/clout to do their jobs properly. Which means the maintenance work should go to people who actually have proven skill and can be trusted, not those who draw last.
- bluedanieru 15y agoCombined sick/holiday leave is a rather shitty practice. I shouldn't have to cancel my vacation or take unpaid leave (if that were even an option) just because I got strep throat earlier in the year. I'm not in the market but if I were I would pass.
- donw 15y agoI prefer the combined leave, and it makes more sense from a management perspective. When you have separate pools for sick and vacation time, your employees tend to fall surprisingly ill around national holidays, planned vacations, and major social events. With the combined pool, there's no pretense -- take time off when you want to. Of course, we're assuming that you get a sizable pool for both... four weeks (twenty paid days) is reasonable, although were it my company, I'd offer five. The 'four week notice' policy seems a little high for taking the odd Friday off, and is totally out the window when it comes to sick days, but overall their vacation policy sounds pretty kosher.
- Nutella2 15y agoIn practice the two kinds of leave are treated differently even if they're from the same pool since vacation has to be requested in advance and sick time usually cannot be requested in advance. Unless you can schedule your accidents, injuries, and infections 4 weeks out.
- bluedanieru 15y agoIf your employees are doing that it's time to clean house.
- amorphid 15y agoIn a perfect world I agree with you. Practically speaking, the more time off you take the more expensive you are to an employer. You.van take off as many days as you want as long as you are willing to live with a lower salary and the employer is still able to get the work done.
- astangl 15y agoPlease solve our design problems for free, and in turn we'll think about hiring you.
- bphogan 15y agoWhat's sad is that this is exactly what we think of when we see these. But considering the source, I'd bet these problems are solved already. I do this all the time. I already have the answer, I just want to see how the prospect would do it.
- groby_b 15y agoWait, what? * It's really a 'jack of all trades job' * combined sick & vacation time is a crappy practice. * No benefits * Must supply own equipment I'm sorry, but that's either a consulting gig (with the rates that come with that), or it's a co-founders gig. Or a very young developers game, looking to cut their teeth.
- bmj 15y agoI was okay with everything posted 'til the "no benefits" thing. I look at it this way: I like "jack-of-all-trades" jobs. Maybe you don't. That's okay, and not a poor reflection of PragProg. The combined sick/holiday time is okay with me, too, especially since you will be working remotely. I have a very similar arrangement with my employer (though I'm in the office several days a week), and I've never taken a sick day. If I don't feel too hot, I just work from home. Sure, you may get very sick, and take a few days here and there, but little stuff that might keep you out of the office in normal circumstances probably won't keep you from working remotely. As for the benefits, I echo tptacek's sentiments above: give the vast amount of detail provided for the job itself, glossing over the lack benefits is a bit troubling (especially for someone like myself who is sole benefits provider for his family).
- michaelochurch 15y agoIt doesn't seem like a great job. It seems like a 65th-percentile software job. And I have to give major props to the writer for having the courage to describe what the job actually entails rather than sugar-coating the role. Of course, most job postings aren't so brazenly honest. For young readers: the most important skill to hone during your 20s is bait-and-switch detection.
- grannyg00se 15y ago"You’ll be working from your home. You’ll report to Dave Thomas, but you’ll also be working with other senior staff both to help resolve issues and to work on enhancements to our systems." I think this is a great section. Too many employers lack the confidence and business awareness to encourage the idea of working from home. You don't need someone sitting at a desk next to you so that you can bother them every few minutes. If your requirements are communicated efficiently and documented properly the developer's physical location is completely irrelevant.
- rprime 15y agoBeside some technical mistakes, this kind of job advert really makes me want to work there. I prefer transparent companies that pride with a good developer workflow.
- tptacek 15y agoThere is something in this job posting I like a lot and will steal: the "day in the life" section. The tonal problem I have with this post is that it is about Dave Thomas. Any steps it takes towards being about the candidates it tries to attract are incidental. Roughly measured, it's roughly 50/50 filtering/sales. Better than most job postings! But in this market, not good enough. Recruiting is sales. If you can grok the articles telling you not to shove signup forms into the faces of first-time visitors, it should be obvious why you don't want to demand a code sample in your first correspondence with a candidate. Lots of hiring managers will think this is entirely reasonable (the average candidate quality for a dev job is indeed poor), but that's an expensive filter applied way too early in the pipeline. Also, the graf about health insurance is written evasively. Netflix says "we give everyone $10k; they can use it to buy one of our plans, or handle it themselves and pocket the difference". That works. Not having a group plan? That sucks a lot. If we didn't have one, I wouldn't trumpet it in a job ad. If I had to mention it, I wouldn't write it in a way that begged the reader to ask "ok, exactly how much higher than a normal salary are we talking about?". My cynical internet self assumes "not enough to cover the huge cost of private health insurance". (And providing your own computer? I hope that's just misworded, and they mean "we'll buy whatever you want". Otherwise, talk about penny-wise pound-foolish...)
- Syssiphus 15y agoSounds like a dream job, sadly I do not qualify :)
- Goladus 15y agoWhat an actual day might look like: The first 3 emails take almost the entire morning. In the 15 minutes before lunch, instead of working on the new delivery feature you and dave specced out, you pull up Hacker News and read an article or two before taking your lunch. After lunch, more support issues demand your attention. After an hour or so of correspondence and follow-up you manage to get started on the interesting distribution project, having blown off the F# syntax highlighting thing which you won't have time to do tomorrow morning, either. By the end of the day, you've barely started on the distribution project and send an email to Dave with a cautiously optimistic update.
- pragdave 15y agoSorry to stir all this bile, folks. Yes, the job involves keeping stuff running. If you're not interested in making sure stuff keeps working, we're not interested in you. Sorry. Yes, we already have solutions to the architectural challenge, and we don't currently actually need an F# parser. Both are just exercises. The combined holiday/sick days? I went with that because I though it was fairer than the standard n weeks vacation plus sick days. If you want to apply and ask for the separate vacation days, it doesn't bother me. And we don't offer health insurance because no one else on our (small) staff wants it, and we can't start a group scheme with just one person (we checked). Dave