CodeBrief

The Twelve Hacker Archetypes

The other day I compiled this list of hacker archetypes. These represent the types of hackers I have come across over the years. To be clear, this is just for fun and all of these types of hackers are talented, but have distinctively different styles.

1. The Unicorn

Better known as the Pixel-Perfect Developer, this hacker has been cursed with both impressive coding chops as well as a discerning eye for design. Being just as comfortable in Photoshop or Fireworks as he is in his text editor of choice, no pixel is out of place in his finished product and couldn't have it any other way. One of the limitations of the Unicorn is that he is forced to use an operating system that supports Adobe products.

** Favorite Technologies/Languages: ** SASS, Stylus, CoffeeScript, JavaScript

2. The Metaprogrammer

The Metaprogrammer develops for other developers. He has a strong opinion on the usage of include and extend in Ruby and secretly wishes that Smalltalk would have taken over the world. The definition of this archetype is not restricted to literal metaprogramming, but also encompasses hackers who obsess over defining convention and making the lives of other developers easier.

** Favorite Technologies/Languages: ** Lisp, Ruby, Ember, Anything convention over configuration

3. The Brogrammer

The Brogrammer has mastered the art of reaching and maintaining the Balmer Peak. This, combined with his expertise at employing the latest conventions, enables the Brogrammer to achieve deceptively high levels of efficiency. Quora also informs me that Brogrammers like to play beer pong with cups arranged as commonly used data structures.

** Favorite Technologies/Languages: ** Django, RoR, Express

4. The Lost Soul

The Lost Soul has been held captive in a particular enterprise technology stack for years. As a result, the Lost Soul has developed a proclivity towards engineering for the sake of engineering and shudders at the idea of working within the confines of a framework that does not support dependency injection and inversion of control. Perhaps this is within reason, however, as he regularly deals with process and software complexity that dwarves the likes of most other projects.

** Favorite Technologies/Languages: ** Java, Spring, Hibernate, .NET, Eclipse, Visual Studio

5. The [Mad] Scientist

The Scientist is brilliant in his own right and is adept at solving hard computer science problems. He is up to date on the latest machine learning methods and can tell you the fastest algorithm to multiply two n-digit numbers. In practice, however, the Scientist can tend to over-analyze and under-engineer problems which are more basic in nature.

** Favorite Technologies/Languages: ** C/C++, Python, Java, F#

6. The Architect

The Architect revels in assembling the best technologies for the problem at hand, often times planning ahead for unattainable scale. Being aurguably the most opinionated of the archetypes, he is more than willing to inform you of the problems with your tech stack.

** Favorite Technologies/Languages: ** Redis, MongoDB, CouchDB, Riak, Hadoop, Cassandra, Web Sockets

7. The Bare-Metal Programmer

The Bare Metal programmer likes to live as close to the hardware and machine code as possible, straying away from higher-level languages and abstractions. Being an expert at low-level optimization, he can explain the fast inverse square root implementation from Quake III Arena and come up with similar optimizations on his own.

** Favorite Technologies/Languages: ** C/C++, Assembly, Shading Languages

8. The Lambda Programmer

This hacker knows that the Y-Combinator is not just the name of a prestigious startup incubator and can probably derive it for you in your language of choice. Despite refusing to accept the underlying imperative paradigm of computing, he is well acquainted with functional concepts such as Monads, accumulators, and tail recursion.

** Favorite Technologies: ** Haskell, Lisp, Erlang, Scala, F#

9. The Neck Beard

Of all the varieties, this hacker is the least likely to use his mouse, including browsing the web inside his terminal using Lynx or w3m. The dotfiles configuration on his system will rival the complexity of some of the largest software projects. A strong believer in the FOSS movement, the Neck Beard will go out of his way to use, develop, and evangelize open source software.

** Favorite Technologies: ** C/C++, Posix, KDE, anything GPL

10. The Hustler

Not to be confused with the non-coding hustler, the Hacker hustler has a keen sense of what people want and the ability to actually build it. Driven by metrics, he is a first-mover in building fart apps and making a mint weeks after the app store was launched. Being motivated by users rather than technology choice, no platform is safe from the hustler hacker.

** Favorite Technologies: ** PHP, Perl, Anything that gets the job done

11. The [Fanatical] Tester

In an ideal world, the Tester would like to see paragraphs of testing code in the form of pseudo-english for every line of application code written. He believes in the latest BDD testing techniques and regularly writes tests for the the testing infrastructure behind his other tests. Bugs being a thing of the past, the Tester doubts stable software can be written without similar levels of coverage.

** Favorite Technologies/Languages: ** Cucumber, RSpec, RCov, Capybara, anything BDD

12. The [Re]Inventor

Would rather compose a dozen micro-frameworks than use a single framework for the same purpose. Not to be confused with the Bare-Metal Programmer, the Inventor embraces abstraction, but shies away from convention. A firm believer and active fulfiller of Atwood's law.

** Favorite Technologies/Languages: ** Zepto, Backbone, Sinatra, Node

What type of hacker are you?

comments powered by Disqus