*This* is How We Should Write Developer Job Postings

*This* is How We Should Write Developer Job Postings

The following article originally appeared in DZone's Java Zone.

Every software engineering job post these days is just an endless checklist of technologies and buzzwords. It’s always fun when you find one that clearly wasn’t written by a programmer. Those ones often ask for things like 5+ years of Docker experience (Docker was released in 2013).

Here’s a prime example of a common, buzzword-soup job posting for a development position: 

Now read this job posting by Caktus, where you can be sure the writer of this posting wasn't just lazily listing a bunch of languages and frameworks:

_____

Django Web Developer

Location: Durham, North Carolina, United States

Caktus builds apps the right way. We’re a leading Django and SMS firm with over 100 custom solutions that reach more than 70 million people. Join our sharp team and be part of an open, collaborative culture. We’re passionate about solving complex challenges especially when they have a social impact. Our clients are of all sizes and industries, including Mozilla, InDemand, Discovery, and UNICEF. Major projects include the world’s first SMS voter registration system (Libya) and the first crowd-sourced digital moderator for political debates (Open Debates).

 We are looking for a Django Web Developer who is excited to tackle new and diverse projects and enjoys writing Python. As a member of the Caktus team, you’ll be involved in every aspect of development, from brainstorming, to prototyping, front-end HTML/CSS, Python/Django development, and JavaScript development. We would like to develop a long term relationship with someone seeking full time work. This position requires on site work in our Durham, NC office.

Within 30 days:

  • Follow agile development methodologies and take part in bimonthly team sprints and daily standup meetings
  • Provide and incorporate constructive feedback on code reviews and use established Git/Mercurial branching models to stay in sync with the team
  • Deploy changes to development servers frequently so client stakeholders see progress and feel connected to the process
  • Create, implement and edit Django templates with compliant HTML5/CSS3 and use LESS/SASS to organize and make CSS easier to manage
  • Model and implement intricate data structures using relational databases such as PostgreSQL

Within 60 days:

  • Write complex Django apps following client specifications and Caktus and community development best practices
  • Collaborate on 3-5 multiple ongoing projects and commit changes frequently to provide project leads and project managers with updates on progress
  • Maintain a high level of unit test coverage across assigned projects to catch and prevent feature regressions
  • Lead productive and collaborative implementation discussions with internal and client stakeholders
  • Distill and transpose high-level project requirements into user workflows and intuitive user interfaces
  • Stay on top of and incorporate latest technologies into Caktus’ standard development stack

Within 90 days:

  • Fulfill project development lead responsibilities when designated as lead on projects
  • Help setup and run projects in production environments on Linux (Debian-flavor) with Nginx, Gunicorn, RabbitMQ, Celery, Redis and other tools frequently deployed alongside Django web apps
  • Work with internal team and client stakeholders to scope and estimate development needs for new projects with potentially limited requirements
  • Use JavaScript to achieve desired user experience and functionality when needed
  • Help architect scalable solutions and performance-test applications to find and eliminate bottlenecks

Qualifications

  • At least 2 years of experience building dynamic web applications in any language
  • Has a strong grasp of Django development techniques
  • Strong test driven development skills and familiarity with other agile methodologies
  • A deep knowledge of relational databases, such as PostgreSQL or MySQL
  • Proficiency in HTML and CSS
  • Familiarity with Linux (Debian-flavor) desktop and server environments
  • Excellent interpersonal and communication (both verbal and written) skills
  • Self-motivated and resourceful, with the proven ability to multi-task and operate successfully under tight deadlines and time pressures
  • Enjoys a fast pace, dynamic, challenging and team-oriented work environment

Bonus Points For

  • Familiarity with JavaScript front-end frameworks (Backbone.js, AngularJS, React)
  • Deployment experience using Apache, Ngninx + Gunicorn, or other WSGI-based web servers
  • Familiarity with CSS preprocessors (LESS, SASS)

_____

This way of describing a position makes a lot more sense, and it doesn’t turn away potentially valuable candidates that, for many possible reasons (doesn’t have one of the skills, has some imposter syndrome-like feelings, not sure about the degree of expertise required), might assume that they don’t meet the position’s standards and that applying isn't worth their time and energy.

Allow people to surprise you.

You can see that, rather than just posting a bulleted list of skills, they actually list what they want the person to do if they are hired. They include performance milestones for their first 30, 60, and 90 days. It's a little more work, but honestly we're all being a bit lazy when we just list a few technologies and tasks, then call it a day.

Caktus' Technical Director and hiring specialist, Mark Lavin, did a presentation on his company’s hiring methodology this year at All Things Open 2015 in Raleigh, NC.

Mark said that they dislike interviews that are essentially computer science exams. No whiteboards, coding tests, or puzzlers. 

GitHub is NOT your resume

What Caktus is really interested in is the process by which a candidate develops. The only thing an interviewer needs to do is find out if that process makes sense and can evolve in a positive direction.

What Mark wants to know in an interview is whether there is something new and different that the candidate can add to the team’s overall knowledge profile. What are they doing that Caktus could be doing? Their goal is not to find a rockstar, but to make a strong team out of average people who complement each other.

Most people are average, so build a team of average people who, when they're working together, outperform teams with above-average people.

It made a lot of sense to me. However, I think some companies are certainly forced to be more selective than Caktus. Caktus is a Django and mobile dev shop, so that means that most people can easily get up to speed with a rapid-development web framework like Django. Jeff Atwood, for example, believes the organizations he's worked with would benefit from more CS-skills-focused interviews.

Despite that fact, the 30/60/90 day job description seems like something everyone should do. And Caktus' style of hiring has also given them a level of employee diversity that most tech companies only dream of. 

Would this style of hiring work for your company?

Resources

Slightly better than average, sure, but still waaaaay too long, and boring, and obvious. Really, all that is needed is: Caktus builds web and mobile apps with Django. We are looking for a UI Developer who can rapidly prototype user interfaces using tried and true UX patterns, while wholeheartedly collaborating with other developers, designers and business folk. Is that you? Talk to us. The rest needs to come out in conversation, not be expressed as a check list.

To view or add a comment, sign in

More articles by Mitchell Pronschinske

Others also viewed

Explore content categories