For most of our history, Atomic has been hesitant to be too specific about the kind of developers we look to hire. Because our work and client base are diverse, we’ve stuck to words like “smart,” “generalist,” and “culture fit”—hoping to cast a wide net and bring in a lot of candidates.
We’re embarking on a big hiring push (well, big for us: 10-12 developers over the next 1.5 years), so I decided to shake things up a little. I’d also read that job descriptions with specific requirements and expectations tend to bring in a more diverse and qualified group of candidates.
Software Developer Characteristics
The problem is, the more specific you are, the more people self-select out. And if you’re specific in the wrong ways, you’ll lose people that you’d love to have.
With that in mind, we sat down and had a few hard conversation about what an Atomic developer looks like, the basic skills and qualities they need to have. In addition to sharing our Atomic values, Atomic developers should have the following:
1. Technical Skill
Atoms write clean, logical, high-quality code using test-driven development and Agile practices. You don’t have to be experienced with Agile and TDD to join Atomic, but you must be willing to learn. New Atoms should be familiar with several programming languages and have in-depth experience with at least one.
2. Computer Science Fundamentals
Atomic developers have a strong grasp of computer science fundamentals. We believe formal training teaches a lot of important concepts that you don’t learn from just studying languages. That’s why we require a degree in Computer Science or a related field, or professional industry experience.
3. The Ability to Self-Manage
Atoms work on maker-led teams. We must be focused, self-directed, and good at managing our work.
4. A Consultant Mindset
Our goal is to create a product that will provide the maximum value for the client’s investment. To accomplish this, Atomic makers develop a consultant mindset that lets us delve into the business context and closely manage our time, our users’ needs, and our client’s budget.
We frequently hire experienced graduates who embrace this consultant mindset. When we hire experienced developers, we prefer concrete experience in making public-facing products over experience improving internal products and processes.
5. Curiosity & Love of Learning
Because we try to find the best tool for every situation, Atomic developers are fast learners who can quickly ramp into a new toolset or language. You might move from developing a web app in Ruby to creating an internal application in .NET to building a mobile app in Objective-C or Java. It’s one of the reasons Teach & Learn is one of our five value mantras, and it’s why we do things like:
- Pay for conferences and membership in organizations (many of which we also sponsor).
- Ask all Atomic makers to write for our blog.
- Give brown bag presentations, hold internal conferences, and find lots ways to teach and learn from each other.
Our collective knowledge creates the “Atomic Brain Trust,” and we’re always investing in it.
6. A Passion for Development
7. Strong Communication Skills
As consultants on small teams, Atoms work very closely with clients and their users—learning, exploring, teaching, problem solving, calming fears, discussing budgets, and making smart compromises. That’s a whole lot of talking and writing, which means all Atoms must be clear, transparent communicators who can understand their audience, give them the right level of detail, and help them make smart, informed decisions.
8. The Ability to be a Good Team Member
Atomic developers work side-by-side with designers, clients, and other developers, discussing our work and managing a constant flow of feedback. Atoms put the needs of the product over their own egos.
If this sounds like you, and you love the idea of helping companies build user-friendly, rock-solid software products, please let us know. You can send questions or your resume to firstname.lastname@example.org.