Small Update on Topre

87UB_full1000_th0x0.jpg

On a whim after I wrote my Realforce RGB article, I decided to sell that keyboard and pick up a Realforce 87u 55g instead. I kept thinking that my experience with the Realforce RGB couldn't be the norm for Topre keyboards. They're so loved by many mechanical keyboard enthusiasts... surely they're not all just misguided? After doing a bit of YouTube research into the sound profile of other Topre boards, I decided to give cup rubber another chance. I'm glad I did.

I don't have time to write a full review of the Realforce 87u, so I'll just give some quick impressions. Probably the best praise I can give the board is this: it feels exactly like I expected Topre to feel. It's soft, tactile, and gives a solid "thock" on every depression while still remaining fairly quiet—overall it's just a joy to type on.

I still have some minor concerns about the quality of the keyboard, given the price point. The case is still made of plastic, a top and bottom plastic shell that are clamped and screwed together. There is a seam between the two halves, much like the plastic case of the Unicomp Ultra Classic I reviewed a while ago, but it's nowhere near as flimsy as that. The cable feels cheap and weak; it's worse than on the Realforce RGB but at least the cable gutter works properly. Despite all of these shortcomings, the Realforce 87u still manages to feel much more like a premium keyboard than the Realforce RGB did. There's no flex, no creak or squeak, and the switches are largely consistent. The upstroke noise that bothered me so much on the RGB is almost completely absent on the 87u. Overall I have a much more positive opinion of this board than the other.

Once again, however, the elephant in the room rears his ugly mug. Not only is the Realforce 87u expensive, it's more expensive than the RGB despite the smaller form factor and complete lack of backlight. Topre is an amazing switch when well-executed, there's no denying it. At $270+ it just can't compete. The switches themselves are great, but these keyboards are built like $50 Microsoft rubber dome keyboards: very sturdy and reliable, but still plastic and with some annoyances one shouldn't have to wrangle at over $200.

Ultimately, the decision of whether or not to buy Topre comes down to whether or not you can justify spending so much on what are, in my opinion, quickly diminishing returns. For $200 you can buy some of the highest quality keyboards ever manufactured, and at $300 you can get a custom-built mechanical keyboard made from carbon fiber plates and $1-per-unit Zealios switches. Topre promises an unparalleled tactile typing experience, but without the rest of the package to back it up, it's hard to recommend such a barebones keyboard.

Revisiting 110%

In March of last year, I wrote an article discussing a prevalent issue in the software industry. There was (and still is) a serious issue with underdeveloped engineers going in half-cocked and trying to BS their way into a job. In that discussion, I praised my new-at-the-time job for having the guts to only hire folks we felt 110% confident about. I said I wouldn't change that hiring policy for the world, and I stand by that sentiment.

Sentimentality will only get you so far in the business world. In the year between that article and now, the company has continued to grow. It's quickly approaching 100 employees, and the effects are really starting to reverberate throughout the company culture, infrastructure, and team dynamics. The painful truth is that we need more developers to keep up with the business. No matter how skilled, how resourceful, or how dedicated the current team is, there's only so much work we can do in the time we have. 

The Agony of Growth

For months we worked extra hours, skipped lunches, and pushed ourselves as hard as we could to meet deadlines. Burnout was inevitable, and code quality dropped. Combined with the lack of a dedicated team lead, we were struggling. We had suddenly gone from being an A-grade shop to a C-grade shop in a matter of months. The worst part? We still bore all the A-grade expectations, so we constantly fell short. Morale took a nosedive, and the company's faith in our ability to execute projects tanked.

I could talk for thousands of words about the environment that lead our team to where it ended up. Ultimately, however, I can sum it up it only two: growing pains. The team simply has not grown as fast as the rest of the company. We quickly recognized that there was a systemic problem, but none of us were really empowered to fix it. Eventually the business came to accept that we simply weren't able to keep up with demand, and they chose to rectify it by hiring more developers (and installing a team lead, but that's not pertinent to the point).

A Tortured Metaphor

Saying that your company only hires candidates it's 110% confident in is like saying that you only date models. It's technically true if you're not dating anyone. In the real world, people have needs and so do businesses. Candidates (just like potential dates) are more than just their first impression and looks. Often, you can't see their true potential until you've given them a chance to get comfortable.

Dating metaphor aside, interviews are a pretty piss-poor way of hiring people. The interviewee gets nervous. The practical test is always either too easy or too esoteric. Interviewers are people, and people are complicated animals that form their opinions based partially on facts and observations but also decades worth of stereotypes and preconceptions. Hell, even the interviewer's mood and personal life play a huge part in their impression of the candidate. Yes, I know what you're thinking. "I don't fall victim to petty distractions like that. I'm a professional." Guess what? You're lying to yourself. Just because you don't see the effects they have on your perception doesn't mean they're not there. What I'm saying is that interviews are like marrying a person based solely on a two-hour meeting with them over lunch.

This all conspires to make the "110% confidence" metric a bit hazy. I won't sugar-coat it: I had major concerns with some of the company's newer hires for the team. In one case, I gave a "no hire" recommendation. That guy has turned out to be one of the most productive, hard-working members of the team. His technical skills started out rusty but have quickly sharpened. Now I consider him one of the most instrumental members of our team. I wasn't 110% confident in him when he was interviewing, but I am now.

So, does this mean I've completely reversed my stance on hiring? Not at all. If anything, the experiences over the past year have only hardened my resolve. What has happened, though, is I've broadened my definitions a bit. Not to beat a dead horse, but we still only hire people who are smart and get things done. Now we're just giving people more of a chance to prove themselves. Rapidly-growing businesses like ours don't have the luxury of—to reuse the dating metaphor—only dating models. Models tend to be self-absorbed and narcissistic anyway. Instead, we're giving the guy- or girl-next-door the opportunity to take off their glasses, get a makeover, and walk into the proverbial prom like a bombshell...

... maybe I've taken this metaphor too far.

Keyboard Review: Unicomp Ultra Classic

The Unicomp Ultra Classic

Mechanical keyboards. Love them or hate them, there is a huge community around them now and they are quickly becoming the hot commodity of choice for gamers—at least if Razer has anything to say about it. However, underneath the mainstream layer of gaming-oriented keyboards there is a deeper level. This dark corner of the internet harbors a scoffing contempt for the flashy RGB lighting and ugly illegible keycaps of keyboards you'd find at Best Buy. No, this "cult" of keyboard enthusiasts has a venerable leader: the IBM Model M.

Back in ye olden days, when the term "IBM Compatible PC" actually meant something, computers typically came with mechanical keyboards. Since the PCs were so expensive, companies like IBM often went all-out in their keyboard designs, distributing hefty boards of their own make or commissioned from third-parties like ALPS Electric, who would often manufacture custom-branded keyboards for OEMs. Many of these keyboards would go on to become legendary in the mechanical keyboard community; the idea of "they just don't make 'em like they used to" is prevalent here, and honestly there's some truth to it.

The Model M was a particularly tanky piece of hardware distributed by IBM with their computers in the 80's and 90's. It gained renown for being massively heavy, resilient, and fun to type on. In particular, the key mechanism is perhaps the most well-regarded of all keyboards, barring particularly rare examples like IBM's own Model F or the exceptionally uncommon ALPS SKCM Blue. Using a fairly simple design involving a spring depressed by the keycap until it buckles, IBM was able to achieve an extraordinary typing experience with a relatively simple and therefore durable mechanism. I'll talk more about the feeling of using a Model M in a bit.

IBM's "Space Saving Keyboard" Model M Variant (Wikipedia)

As the 90's continued, PC prices began to drop. Increasingly, manufacturers began including cheaper keyboards with their computers to keep costs low. After a short era of "somewhat cheaper" mechanical keyboards, finally the dreaded rubber dome keyboard became the go-to option for companies like HP, Dell, and so on. IBM held on admirably long, manufacturing the Model M through third parties like Lexmark for many years. Of course, even IBM had to cut costs; the younger Model M boards are notoriously lower quality than the older ones, though they were never slouches.

By the mid 90's, however, the writing was on the wall for the Model M. While other companies continued to make them for a few years after, Lexmark stopped making Model Ms in 1996. This is where Unicomp comes in. In what is now a relatively well-known story (at least in the mechanical keyboard community), some Lexmark employees purchased the tooling used to make the Model M boards and formed a new company: Unicomp.

Unicomp continues the Model M legacy to this very day. They're still out there in Kentucky cranking out new designs based on the Model M, using the same tooling that Lexmark used in the 90's. While purists will certainly want to hit up eBay for a real Model M, complete with IBM badge and the clout that goes along with it, the Unicomp keyboards are pretty much the exact same thing. I have been typing this entire article on a Unicomp Ultra Classic, one of their slightly-redesigned takes on the now-legendary behemoth.

Enough with the history lesson. Let's talk about the Ultra Classic. As I hinted at earlier when I said that I'd talk about the feeling of using a Model M later, the Ultra Classic is almost exactly the same. The keys are incredibly responsive. Every key has a very obvious tactile bump, occurring when the spring buckles. The bump synchronizes perfectly with the click sound, since they're both generated by the same spring action. Tactility is part of the reason these keyboards are so popular among serious typists. Feeling and hearing exactly when the switch actuates allows you to type more accurately, and it just feels great to get feedback from each key press. Additionally, the keys have a lovely springiness on the return as you let off the key as well. This is surprisingly essential to a good typing feel. Without it, your fingers end up doing more work to move to the next key. Speaking of finger work...

Unicomp Buckling Spring (Wikipedia)

The keys on these boards require a surprising amount of force to actuate. If you're not used to stiff keyboards (like many old ALPS boards or modern Cherry MX Green boards), you will make a lot of mistakes at first. As you attempt to strike a key with your ring finger or pinky and fail to press the key hard enough, you'll learn why people often compare these things to typewriters. The amount of finger-strength required to operate a Model M is a love-it or hate-it kind of deal. While anyone can get used to it, some people just can't get past it. Personally, I find that the keys are easier to actually type on than some supposedly lighter switches like Cherry MX Blue. Sure, Cherry MX Blues are much lighter to press, but the switch is incredibly vulnerable to hysteresiswhere the switch's return point isn't the same as its actuation point. Because of this, I find myself hammering the ever-loving crap out of Blues, and lifting my fingers entirely from the keys so that they reset before pressing them again. It feels more laborious when compared to the Model M, where you can type smoothly once you beef up your fingers.

Pressing keys slowly, you'd almost think you were typing on a typewriter. The sound is very satisfying; it is a loud click with a small metallic twang at the end. Once you really get going and start actually typing on this thing, well... to me it sounds like the 80's. A cacophony of clicks and clacks and pings that I personally find very fulfilling, but people around you will find miserable. The bad thing about the weight and quality of these boards is that when you use one at work, your coworkers are going to bash your head in with it. I can't stress enough how incredibly loud this thing is. Every key press sounds deliberate and important, like every stroke is a decision. When you think of movies where stereotypical nerds are hacking the Pentagon or whatever, you imagine this sound as they slap the keyboard with incredible speed to send their viruses through the firewall or some other gobbledygook. Much like the stiffness, the sound is also love-it or hate-it.

So the typing experience is amazing, if you can get into stiff but responsive tactile keys and an iconic sound that might leave you with tinnitus. There's something about the smoothness of these boards; they're legendary for a reason, although modern sensibilities might make one hard to get accustomed to. When the Model M was in its prime, loud keyboards and stiff keys were the norm, but they were built that way for a reason. It's just satisfying, in a sort of primal way. You really do feel like you're working on something important when you type on a Model M or one of its descendants. 

Now for the bad news. One of the other reasons that IBM Model M boards were so revered was their legendary durability. Unicomp's Ultra Classic lacks a lot of that toughness. While the keycaps are incredibly high quality, the chassis of the board itself is quite lacking. My Ultra Classic has an obvious seam on the front of the board, where the top plastic shell meets the bottom. It's right below the space bar, and it feels incredibly cheap. It even seems like it's separating at times, prompting me to press down on the bezel to try and secure it. The board is creaky; whatever plastic they built this thing from is not strong enough to hold the beefy materials within, because just pressing on it causes it to creak like a crappy toy. It doesn't feel like it's going to break under normal use or anything, but even the younger IBM boards were built better than this.

Some drawbacks of the board are shared with the Model M. For example, the keyboard does not have N-key rollover, meaning in many cases you'll only be able to press two keys at the same time. In my testing I found that any two of WASD, plus E, Q, or R could all be pressed at the same time, so clearly some thought went into making the keyboard usable for gamers. However, given the huge amount of force required to press the keys, it's not fun to game on a Model M or the Ultra Classic. You're not going to enjoy trying to repeatedly tap any of these keys.

For the most part, the keys on the Ultra Classic are pristine. However, the End key on my board sounds like the spring is misaligned; you can hear the spring scraping when you press it. The Page Down key sounds like the plastic of the keycap is rubbing against something, and it seems to actuate lower than the other keys. In fact, key consistency is a big problem on this board. The Escape key sounds amazing, with a deep thock sound, while the Caps Lock key barely sounds like a buckling spring at all. For what it's worth, the keys you're going to be using 95% of the time—the alphanumeric keys—all feel pretty consistent. However, when compared to an IBM-made beast, the Unicomp comes up short in a few ways. To be fair, Unicomp boards are vastly cheaper than even the youngest IBM-made Model Ms were, especially accounting for inflation. In some ways I guess you get what you pay for.

That's the Unicomp Ultra Classic. An amazing piece of history, slightly misremembered through the fog of time, made so that a new generation of folks can appreciate the typing feel of an old legend. If you like the idea of the Model M but don't want to deal with the potential quality issues of the Unicomp boards, you can always take your chances on eBay. Authentic IBM Model Ms are always available, but quality and cleanliness will vary significantly. New-in-box Model Ms are quite expensive and still not guaranteed to work since they've likely been sitting around for 25-35 years. I totally recommend picking up a Unicomp instead. They're new, they're USB, and while there are a few quality problems, they're honestly pretty affordable boards when you pit them against the latest RGB lightshow from Razer. With a vastly superior typing experience, but admittedly inferior gaming experience, these are truly satisfying keyboards for typists and programmers alike.

Is the World of Warcraft Team Afraid of Legacy Servers?

By now you've probably heard that Blizzard recently forced a World of Warcraft private server, Nostalrius, to shut down via cease and desist. Nostalrius was very popular, attributable mostly to it being fairly well-scripted and 100% "blizz-like" (meaning it pretended to operate just like the official World of Warcraft servers would have operated back in 2006). As a result of its popularity, the shutdown of this private server has generated a tempest of controversy on the Internet—what doesn't, these days?—and a voice has started crying out louder than ever for Blizzard to provide official Legacy/Classic servers for World of Warcraft. It's clear that there is a non-trivial segment of the WoW player base that craves a Legacy server. I am among that crowd.

But Blizzard remains silent. Despite being well within their legal rights to force the operators of Nostalrius to cease and desist, the amount of negative PR and fan backlash generated by this move is quite large—larger, I assume, than they expected. Yet there has been no official statement by the company addressing it one way or another. As far as I am aware, there haven't even been any unofficial statements on social media (e.g. on Twitter).

To anyone that has followed Blizzard over the past couple of decades, their silence is probably no surprise. Communication has never been their strong suit; this is an issue they have been supposedly working to correct for the past few years. In fact, when it comes to Legacy servers especially, Blizzard has said very little at all. The only real example I could find is the famous video of a Blizzcon Q&A session, where a guy asks about it and receives—in my opinion—a very passive-aggressive answer. Even the longer version (starts at around 30 minutes in), where he goes on to discuss the drawbacks of old WoW, comes off as dismissive and almost reductive.

We all know that old World of Warcraft had a ton of problems. Class/spec balance was all sorts of screwed-up, the leveling experience was a grind (to put it nicely), and PvP was horribly broken. The game had imperfections, and Blizzard must believe that the modern World of Warcraft is, in every way, an upgrade on the old one. However, something they are failing to consider is that many of us loved classic WoW in spite and, in some cases, because of those imperfections. Classic WoW is like a beloved, loyal dog that sometimes pees on the floor and tears up your shoes. It might be inconvenient, but it's also kind of endearing.

The old World of Warcraft was a game that felt like it was made by MMO fans, for MMO fans. It had a clear designer's touch to it (a concept I hope to cover in greater detail some time in the future). It felt like it was designed as it was because the designers wanted to play that game. To contrast, much of modern WoW feels strongly designed-by-committee. It feels like, in so many places, the designers said "what's going to please the most people most of the time?"

The result of the dissatisfaction is obvious. Players had flocked to Nostalrius, and other private servers, in numbers that dwarfed many AAA MMO's still operating today. The desire to play WoW as it once was is undeniable. In the aftermath of Nostalrius' shutdown many people are making a strong effort to be clear: we are willing to pay. So why, then, is Blizzard not tapping into this market?

For one, I think Blizzard is afraid of Legacy servers. As a company, as a team, and as a juggernaut of the games industry, Blizzard is deathly afraid that legacy servers would be too popular. It would invalidate the hard work of hundreds of dedicated employees over years and years of continued development. It would announce to everyone that yes, they were right: Cataclysm/Mists of Pandaria/Warlords of Draenor did all lack something that the first three iterations of the game (Classic/Burning Crusade/Wrath of the Lich King) had—some intangible missing attribute that made the experience feel hollow when it should have felt epic.

Let's take a step back from that accusation for a minute. Let's assume that Blizzard isn't afraid of Legacy servers, but instead would rather do them "right" as opposed to just slapping a server up and charging extra to play on it. They are probably concerned that the old software has no way of fitting into their current infrastructure. The security team likely knows about several exploitable flaws in the old client that have since been patched, so Blizzard would have to update the old code to, at a bare minimum, back-port the critical security fixes and infrastructure changes. Suddenly you've now got a fork of the WoW source that must continue to be supported, even if only at some minimal level, on top of the continued development of modern WoW. On top of that, it's possible that they don't even have the old code anymore. Maybe they could find an archive of their old server software, but what if their scripts (the in-game logic code) have only ever moved forward?

Hell, Blizzard being Blizzard, they would probably want to go the extra mile and simulate a staggered release of the expansions. Beginning with Burning Crusade after six months or so, they could unlock the expansions in order for six to eight months each. Eventually, they reset the server again and everyone starts fresh, at level 1, in Classic WoW. It's kind of like how seasons work in Diablo 3, but phased over a much longer period of time. Setting it up like this would require a significant effort to create a hybrid version of the WoW client/server software that could work in this way.

These are all issues that a company with the vast resources and talent at Blizzard's disposal could easily conquer. Each of them introduces a cost, however, both in up-front development and long-term maintenance. Combined with the fact that they very well may be afraid to see just how well the Legacy server would do... well, now you can see why they haven't invested the resources. Would I like to see a Legacy server? Absolutely, especially if they took my "staggered expansion release" idea. Will we ever see one? Probably not, and that makes me a very sad Pandaren.

On the quality problem of today's software engineers

Over the past few months (pretty much since I started a new job in October) I've been conducting a lot of interviews. This new company I'm working for is growing rapidly and has a desperate need for more developers. Normally, this is pretty straightforward: you gather some resumes, do some interviews, and narrow them down until you find a good candidate for the job. However, this company has a very refreshing point of view on hiring. It's a point of view I wish more companies could follow: we will not hire anyone unless we feel 110% confident that they'll be a good fit.

Now, that might seem obvious. "Who hires people that can't do the job?", you ask with a smarmy little smirk. "That's why you're doing interviews." 

But you're wrong. You—the imaginary you that I've invented as a straw man for my argument—are an idiot if you think that most companies aren't just hiring the least stupid person that walks in the door, because they are. In many cases, they're not even bothering to make people write code in their interviews.

I could write an entire article about how a company ends up hiring people that are obviously not qualified for a job, but that's not what I'm most worried about. What I'm worried about is that in the nearly 6 months we've been doing interviews, we haven't been able to hire a single person.

The State of Things

Since November we've interviewed at least 10 people for a Senior Software Engineer job. This person is expected to be very comfortable in C#, know ASP.NET MVC and Entity Framework pretty well, have experience in web development (preferably using Angular), and have a working understanding of SQL. That description applies to both our Level 3 position and our Senior position; the difference between the two is that a Senior is expected to have more experience and a set of intangible qualities that would make them a good leader.

Of those 10 people, only two of the applicants have even met the requirements for our Level 1 position. Let me stress that again: of the ten people that have applied for our Senior Software Engineer position, only two of them were even qualified for an entry-level position. What the hell?!

Some of these applicants were leads or seniors at their current/previous jobs. Some of them were barely-out-of-college kids who thought that playing around with a technology for a few hours meant that they had a firm grasp on its complexities. Yet eight of those applicants couldn't answer basic C# questions. Here's an example question from our interview checklist:

"Tell me the difference between a reference type and a value type, and provide some examples of each. Why would you use a value type over a reference type?"

Only one of those eight could provide any kind of intelligible answer to that question. How does this happen? Who is going around applying for senior-level positions when they're barely capable of producing "Hello World"? Lots of people, apparently. The worst part is that most of these folks, I'd wager, have no clue just how much they suck.

The Formula for Suck

Getting back into the "companies are hiring the least-stupid candidate" idea, imagine this for a second: you're a middle-tier manager at a company (let's call them Golden Persisting) and you need to fill a Level 3 Software Engineer position. You've only got a shoe-string budget, because upper management keeps telling you that your department is an expense and keeps chopping it in half. Instead of the market salary (X) you can only afford to pay a fraction of that (0.75X or less).

Naturally, all of the skilled candidates know that they can make X instead of 0.75X. Instantly you lose those folks. What you've got left are fresh-faced newbies, who are a gamble but will take lower pay, and people blowing smoke up your ass. Both of these types will overestimate their skill level, but dammit, you have to hire someone or else you're going to miss your deadlines! To top it all off, if you wait too long to fill the position, upper management will cut it out of the budget, because you clearly didn't need it, right?

As a result of your need to make a hire and the lacking budget, you end up hiring the least stupid of those newbies or smoke-blowers. Now, that person has a higher-level position on their resume. They are suddenly "worth" that position. Once they decide they're ready to move up, they'll find that Golden Persisting has no opportunity for advancement. Suddenly, our under-qualified Level 3 developer is on the prowl for a Senior-level position.

That's how it happens. Well, that or any of the hundreds of similar scenarios that corporate development produces. Those fresh-faced newbies are likely to end up as the next wave of smoke-blowers as they find themselves in jobs they're not quite prepared for. The old smoke-blowers end up in management, usually due to their tenure in their lead positions. It's a vicious cycle of suck.

The Fateful Eight

I wish I could sit here and tell you that this rampant quality problem has a simple solution. The issues are myriad, however, and there's little to no chance that most of them will ever be fixed. Let's look at a few of our fateful eight Senior Engineer candidates for some less-than-elegant examples of why this problem is endemic:

  • One of the candidates attended a school infamous for its poor IT program and literally admitted he had never hand-written a line of code in his life; he had only copy/pasted.
  • Another candidate spat out all the buzzwords, but when pressed to elaborate came up empty. He ended up being a Java-only developer who had never touched C# before.
  • The most promising of the eight developers told us a story about how he made a "bold" move one night and ripped out half the codebase and replaced it overnight, without telling anyone about it. He mentioned that "it caused problems and bugs for months". He told us this story in response to a prompt asking for a time that he had taken charge and led the team.

At this point, you're probably asking a very relevant question: why didn't you filter these guys out before they even made it to the interview stage?

The Problem With 110%

We didn't filter these guys out because in each and every case, their resumes and phone interviews were just fine. We tend not to give a lot of weight to a resume. After all, as we've seen a hundred times, a resume is usually more filler than thriller and its accuracy is dubious at best. Instead, we rely on a phone interview conducted by our in-house recruiter as the first line of defense. God knows how many potential candidates she's eliminated using the phone interview; I haven't asked and I don't want to know. The ten folks that we've interviewed in-person were people who passed the phone interview filter.

Our phone interview is no joke, either. We ask about 12 questions that run a gamut between basic C# to advanced topics, but there's only so much you can do over the phone. The questions have to be designed in such a way to prevent long, rambling responses (the recruiter is smart but she's no techie; she would have a hard time distinguishing the correct rambling answer from the wrong one), while also getting a quick gauge of which position they'll be recommended for. The Senior-level recommendations answer at least 8 of the questions correctly and (importantly) do not try to BS the other four.

The only explanation I have for some of these folks is that they were googling the questions as the recruiter asked them. Honestly, though, some bad apples were always going to slip through. Phone interviews are not an amazing way to filter candidates, and we might as well not even look at their resumes for all the good they've done us. Ever since I started doing interviews I assumed that I would end up face-to-face with some stinkers occasionally... but an 80% stinker rate shocks me.

Now, finally, you can see the downside of only hiring candidates who fit in 110%. Our team is still woefully understaffed and overworked with no end in sight. The idea of taking the plunge and hiring some of the most promising of the candidates is looking better and better. Of course, if you take "most promising" and put a negative spin on it, you get "least stupid".

How We Can Do Better

I still wouldn't change the hiring policy for anything, though. The value of employing people who are smart and get things done far outstrips the cost of being understaffed. The question is, how can we do better? What can we—employers, educators, current and prospective engineers—do to improve the overall quality in our field?

If you're an aspiring engineer, allow me to pass some advice on to you. Be good at what you do and take pride it in, without being prideful. Teach yourself new things for the sake of it, because you have a passion for programming. Learn how to sell yourself without lying or exaggerating. And most importantly, realize that everyone has to start somewhere and you're not ready to start at the top. No one has anything to gain from hiring a disingenuous developer into a position they're not ready for, not even you.

If you're an educator teaching programming to those fresh-faced newbies, don't just have students memorizing syntax rules for regurgitation on the test. Teach them how to apply what they've learned. Engage them in the power of code. Make them think like coders. There will always be students that show up just to get the degree so they can go earn a paycheck; don't spend too much time on them. Learn to spot the promising ones and get them involved, so that if they didn't already have a passion for programming, they might develop one.

And, for the employers out there hiring under-qualified dunces into positions way over their heads, let me tell you: I feel for you. I've interviewed them, I've worked with them, and I've been a victim of the smoke-blowers. I understand the corporate world; I know our departments tend to be the first to get cuts and the last to get appreciation. I encourage you to read The Mythical Man-Month, a classic tome of wisdom that too few in our industry actually take to heart. Remember that one smart engineer is worth three average ones, and... well, have fun explaining to your bosses that you can't just hire a million monkeys to reproduce the works of Shakespeare without producing a million monkeys' worth of feces while you're at it.

The Legend of Notch

Over the past few days, the media has gone into a mild frenzy covering some recent tweets by notch (the guy that originally created Minecraft, if you didn't know). Here's an example of the tone and content of these tweets:

The problem with getting everything is you run out of reasons to keep trying, and human interaction becomes impossible due to imbalance.
— https://twitter.com/notch/status/637562496056995840
Hanging out in ibiza with a bunch of friends and partying with famous people, able to do whatever I want, and I’ve never felt more isolated.
— https://twitter.com/notch/status/637563038258868224

Mr. Persson walked away from Mojang with over a billion dollars as part of the Microsoft deal. Most of us would trip over ourselves for the opportunity to make even 1/1000th of that, and everyone likes to grandstand about what they would do and how they would spend it. But most of us have never been in this situation.

Notch (Official GDC, via Wikimedia Commons)

Notch (Official GDC, via Wikimedia Commons)

My impression of notch—and this lines up with other impressions of him from various con-goers and media personalities—is that he is your stereotypical "basement programmer" type. The kind of guy who might have turned to programming and computers when real social interactions were more difficult than learning code. The sort of man who strives to prove himself based on his own ideas and merits. When you thrust an unimaginable amount of money into the lap of a person like this... well, I can see the makings of a storm of existential crises.

See, guys like notch are always working on new ideas because they like working on new things. The idea of making something that people enjoy is thrilling; it's the driving force in these peoples' lives. When you give them essentially unlimited money, that drive dies. No longer do you have to work for anything in your entire life. You can be content to just sit back and "enjoy yourself" until you die. Why do anything that looks like "work"?

All of that, combined with the "first-world problems" of being a rich person, have probably taken a toll on notch. I'm sure he will adjust, and I predict that he will get bored of having everything in the world just a credit-card swipe away. The question is, what does a guy like notch, with over a billion dollars in the bank, do once he gets bored? He returns to his roots.

So, I believe that the Legend of Notch does not end on a somber note. Rather, I'm betting that his legend is ongoing. He might never have an idea as good as Minecraft again, but I doubt we've seen the last of notch in the game development space.

Satoru Iwata's legacy and the death of fun in games

Photo By Official GDC [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons

As anyone with even a passing interest in games knows by now, legendary developer and CEO of Nintendo of Japan Satoru Iwata passed away last month. His influence on Nintendo's direction is unmistakable, and his nature as a fun-loving "games first" kind of guy was unquestionable. The loss of such a juggernaut (still in his prime) is one that has resonated throughout the industry.

Truly, Iwata was unique; he was not just another spoke in the ever-grinding wheel of the games industry. The outpouring of respect for him in the wake of his passing goes to show that even though he may not have been as well-known as Miyamoto, people have an appreciation for his work and what he stood for.

Now that he is gone, the question looms over our heads—that ominous specter of "Where will Nintendo go now?" Iwata had a very clear vision, and was the steel wall of defense against the shareholders' push toward quick, cash-in mobile development. Without his guidance, can Nintendo stay on course? Everyone is asking this question; it's adequately covered in a thousand other places, some of them more respectfully than others.

More pressing to me, however, is the loss of the ideals that he championed. Nintendo, with Iwata behind the wheel, was the "fun" company. You go to Nintendo's console when you just want to have fun. Whether it's the Wii or the Wii U, no one can dispute that Nintendo's games have an intense, laser focus on pure "fun" without any of the cruft that weighs down modern games. I'm willing to bet that Mr. Iwata was a driving force behind that focus. 

That spirit of "fun" is so sorely lacking in the industry right now. Games are more serious than ever. Every time I hear the word "cinematic" in relation to a video game, I cringe. I don't need every game to be a Hollywood-esque drama, slamming me in the face with heavy topics and overdone cutscenes. Sometimes I just want to pick up a controller and have fun for 20-30 minutes. Guess what? Every time I find myself wanting to do that, I turn on the Wii U.

Without Iwata, will Nintendo continue to be the "fun" company? Probably. That's their niche now and most of the games they announced at E3 this year fit into it well enough. Indie games also frequently concentrate on raw fun factor. With the games industry in Japan waning, however, and the western studios busy working on their $100 million Hollywood-style blockbuster games, how long can Nintendo alone carry the torch?

What we need is more studios willing to sit down with a game and really chisel it down until nothing is left but pure fun. All of the "pet features" of the designers and developers need to be on the chopping block. If it's not fun or essential to facilitating the fun, cut it. We need more studios willing to say, "Video games are meant to be just one thing. Fun. Fun for everyone."

Anyway, that's my two cents on the issue. I hope no one thinks that I'm piggybacking on Iwata's death to push my own viewpoints. Rather, I think these issues are very core to who he was as a developer and CEO of Nintendo. I believe they deserve more discussion that they get, and I think he would have agreed.