Monthly Archives: October 2012

Great Interview Questions

Interviewing is not a one-sided conversation. If you land a job by only worrying about successfully impressing interviewers, you will almost certainly be surprised, and you may be unhappy once you start the job.

It is critical that you understand that an interview is not about making the company happy and fitting their mold, it is about finding a good match for both you and the company.

How do you make a good choice in choosing the next place to work? Simple, you ask questions! And how do you make the best possible choice? You put some effort in and come up with some great interview questions.

Don’t do what some of your crappy interviewers will do and google something random right before going to the interview, actually take some time and think about what matters to you.

There are obvious things you would want to know about a company, such as what hours you’ll be working, and how much you’ll be paid. But, there are also tons of subtle but important things you can figure out before receiving the offer.

If you don’t have a list of questions organized, The Joel Test is a great place to start.

I strongly recommend making your own list of questions, printing them out, and bringing them with you to every interview you attend.

You will not have time to get answers to all of your questions, but I recommend making an exhaustive and prioritized list of questions anyway, so you can work out the answers that matter to you or concern you as your interview process wears on.

I have my own list of questions that evolve over time. My questions are almost certainly not going to perfectly capture what truly matters to you on your next job hunt, so be sure to put some effort in and make your own question list.

From my experience, I would highly recommend getting as many details out of the recruiter up front, rather than waste everyone’s time if they’re not planning on paying well or have insane work hours, or whatever else.

It is also important to ask the following two questions to each person you speak to, no other questions will reveal more about the truths of a company, the culture, and the employees than these:

  • What is your favorite thing about working here?
  • What could be better?

Keep in mind that not all interviewers are honest (at times for fear of losing their jobs, sadly), so if you intend to deduce a not-so-great truth, it’s best to ask questions that require an answer beyond “yes” or “no”. For example, don’t ask if the interviewer likes working at the company, instead ask them what their favorite thing about the company is.

And, if you really want the true truth, ask for it like a detective would from separate witnesses, that is, ask the same question to each person who interviews you. In the best case, you’ll have a more robust picture of a truth at the end of the day, and in the worst case you’ll have different stories and know to avoid the company.

If you find that the company’s interview process is not welcoming to your questions, the company is telling you immediately, with perfect clarity, how they treat their employees and how much they care about this position.

Here’s my list of questions:

recruiter questions

  • location?, multiple offices?
  • if far: telecommute ok? flexible hours?
  • offer range?
  • is the position full time? salaried? contract?
  • if contract: expected length? contract to hire? 1099, or w2? paid overtime?
  • is telecommuting an option, as needed, permanent?
  • how much travel involved?
  • team size?, division size?, company size?

questions for each engineer

  • how long have they worked at the co?
  • what is their favorite thing about working here? what could be better?
  • are developers empowered to do their job?
  • are developers empowered to speak up and get problems fixed? are other people (UI, business, mgmt, qa, ops, etc)?
  • who do they work with? (dev lead, project manager, multiple managers, other teams?)
  • how would they characterize the co’s culture?
  • what is a typical work week like?
  • how many hours per week avg?
  • how many weekends worked past year?
  • what are their responsibilities?
  • what else do they recommend i ask?

position questions

  • what would my responsibilities be?
  • are there remote or telecommuting team members? if so, how is collaboration done?
  • how is work split up amongst the team?

project questions

  • how long has the project been in development, and when was the last release?
  • how long is the current phase of the project codewise, and when is release ballpark?
  • are subsequent phases of the project currently planned?
  • how many projects or project releases are worked on at once?
  • what languages, libraries, and technologies are used for the project?

process questions

  • what dev methodologies are used, how long are project iterations? what tools are used?
  • source control? what type?
  • how is product, api, and code documentation? who does it? how often?
  • builds: one-step build? nightly integration builds? automated tests run?
  • how are product dependencies managed?
  • how is 24/7 support managed?
  • how are live deployments & support managed?
  • what sacrifices are made when product completion nears? (pushed deadlines? cut features? cut quality?)
  • are there annual busy or slow seasons?

tools

  • process tools? (scheduling, resolving I.T. issues, comm ticketing systems for other groups)
  • dev tools? (OS, IDE, debugging, profiling, building & packaging, DB, libraries, dependency management)
  • remote collaboration tools? (conference calling, im, video conferencing, screen sharing)
  • live/test tools? (OS, deployment, monitoring, automated testing)
  • documentation tools? (wikis, etc)
  • work environment? (laptop, desktop, multi monitor, test hardware, etc)

test/live env questions

  • is there a test env? how does it differ from live?
  • is there a qa team?
  • are there unit tests, or automated test suites?
  • is there an automated build?
  • are test suites automatically run periodically?
  • what types of testing are done? correctness? usability? load/performance?
  • does dev and qa write tests?
  • is there a bug tracking system?
  • how are live and test issues debugged?
  • how is deployment done?
  • what are some typical examples of issues found in live (scaling issues, data consistency, install/config consistency, etc)?

work/life/culture questions

  • are there quiet working conditions?
  • how are career goals (advancement, raises, etc) managed?
  • how does the company make (or plan to make) money?
  • how is current funding?
  • how often are layoffs?
  • how much pto per year, and do people use it?
  • what kind of team or company events are there?
  • what kind of on-campus amenities are there? (food, beverages, pool tables, trails, sports, gyms, parking, etc)
  • does company sponsor or encourage training, conference attendance?
  • does company encourage contribution to open source?
  • what are core hours? do all engineers work exactly 9 to 5? or do some come in ealier/later?

hr/offer questions

  • relocation package offered?
  • stock options? RSUs? vesting schedule?
  • bonuses? if so, how (cash? stocks over vesting period)?
  • signing bonuses?
  • 401k? what kind of matching?
  • other benefits (health, dental, vision, sabbatical, parking, etc)?

Hyphenated Names and Job Security

The hyphenated name fad is a conspiracy to keep software engineering jobs secure. What will we do 20 years from now (and every 20 after) when two hyphenated named people marry?

We’ll have a y2k-scale crisis of last name field lengths in forms and databases, that’s what.

When Mike Smith-Jones-Anderson-Smith-Snow marries Jane Doe-Jones-Anderson-Jackson-Williams, and little Bobby Tables is born (with last name Smith-Jones-Anderson-Smith-Snow-Doe-Jones-Anderson-Jackson-Williams, 67 characters), all hell will break loose. Then, 20 years later, when the common last name has 120+ characters, all hell will break loose all over again.

That’s why I always make my last name db columns type longtext.

Edit: Apparently we’ve been here before, check out this comment by bediger4000 from hacker news on this post:

Laugh at this guy all you want – the late medieval heralds had much the same problem. See Wikipedia on “Quartering“, specifically the arms for the Temple-Nugent-Brydges-Chandos-Grenville family.

IOS 6 app store crash on your iPod touch 4? Restore.

For weeks the app store has crashed constantly on my iPod Touch 4th gen after the over-the-air IOS 6 update. Restoring the iTouch to a fresh install of 6.0 on iTunes fixed the problem and now the app store works better, not perfect, but better.

Symptoms: I would search for something, and swiping left or right on the cards would crash – sometimes I would be able to see some cards if I let the app sit for a half minute and pre-fetch everything, but when I got to item 24 or so I’d be gauranteed a crash again. I’d have similar problems browsing categories of apps and trying to install them. Sometimes I’d tap the “Free” or “$1.99” button for an app, and the button label would switch to the size for “install”, but actually be blank… at that point tapping on the button did nothing. Every time I tapped “updates”, then “purchased” to install something my wife had recently put on her iPod – crash.

Attempted Fixes: I run a lean machine, I dont do iCloud, I minimize the number of notification center apps (basically facebook, and mail, that’s about it), and I tried to alleviate the crashes by closing all background apps. No dice. I also tried restarting the device several times, which still did not fix the app store on my device – it was simply messed up.

Device History: This device was a 4.x IOS stock install, updated to 4.2 and/or 4.3 later via computer tethering. Later it was updated to 5.0 via computer, and then to 5.1.1 over-the-air. Finally it was updated to 6.0 over-the-air. I never once restored the iPod to a “fresh” install for any of those versions IOS, and I suspect there was some minor update bug that rears its head when you’ve been through a number of update cycles from version to version in the past without a clean/fresh install.

How to Restore: Restoring your iTouch is easy, you hook it up to your computer, let iTunes backup your apps and app state. You then tap the “restore” button. iTunes will then install a fresh copy of IOS (without retreading upgrade cycle ground), reboot your device, and then put your apps/music/etc and app settings back exactly the way they were before. Before I restored, I backed up my photos, notes, and other things I’d miss if something went wrong, just in case. I’d recommend that you do the same.

What works better: After restoring, I am able to easily navigate hundreds of search result cards deep, and install multiple apps from the categorie top X lists without a crash, but I’m still unable to view previous purchases without a immediate crash. I’ve purchased hundreds of apps over the past few years, so that could have something to do with it. I also still see the button labels being broken after tapping the “Free” price button on apps I’ve never installed before, but now tapping that button a few times after a few seconds eventually flips to “installing” and all is well. I’ve succesfully had the app store running while installing 3 apps, still browsing, an no problem at all – it seems much smoother, but I’m just happy it doesn’t insta-crash when I try to do almost anything anymore.

There are some threads floating around on the issue, and numerous bugs opened on apple’s bug reporting site. I’ve seen some discussions where some users try restore and claim it’s not working well for them, your mileage may vary.

So-called “Terrible” stock performance

A few days ago, Google slipped up in releasing quarterly earnings reports before they were PR-ified, popular media referred to their results as ‘terrible’:

What Page couldn’t apologize for, however, is that Google’s results were pretty terrible. The company’s profits plunged 20 percent from a year ago, according to the Wall Street Journal (source)

Today, AMD released their quarterly, and results were also ‘terrible’:

Just one day after the company posted pretty terrible quarterly earnings (“Net loss $157 million, loss per share $0.21, operating loss $131 million”), followed by a 16 percent drop in the company’s stock price and job cuts of 1,800 (15 percent of its global workforce), two financial analysts have now downgraded the company. (source)

In both cases, the companies made less than expected, except, Google’s so-called ‘terrible’ results are a profit of $1.74B on $14B of revenue (which was a 45% increase from a year previous). In other words, Google’s margins are getting tighter, but they’re still making nearly 2 billion dollars in profit every 3 months.

When google’s quarterlies came out, the world was aflame with news stories heralding the coming of the end times. A day later, AMD is making zero profit at all, and somehow in the same category of ‘terrible’ as far as investors (or at least investment media..) are concerned.

Investors want you to set a target, and exceed that target, so they grow rich off of you breaking your back for their hft algorithms that make money while they sleep. Don’t hit your mark, eat a little cost, and make $2 billion dollars while doing it, and their good will and faith goes right out the door.

Sounds familiar.

Users aren’t stupid, your UI is.

tl;dr; version: Get your head out of your ass, stop adding complex features that 90% of the world won’t care for. Instead, learn to stop, breathe, and make your software products simple by focusing on usability consistently.

Users aren’t stupid, your UI is.

In a big bad world of federated software product development, Usability is usually a bullet item way down at the bottom of a list of priorities for anyone but designers, at best. When your entire product team (including designers, developers, qa, etc) lives and breathes a particular software product for a period of months or years, *any* product becomes easy to understand. It’s easy to understand because you’re paid to think about, live, and breathe that product for 8 hours a day or better, for very long periods of time.

It’s no wonder when your amazing product ships and the users come out en masse and tell you what you’ve made is shit in one way or another.. your users don’t get paid to deal with your poor choices, in fact, in many cases, they’ve invested their own money (or at least their time) to endure your lack of focus and attention to detail. A user doesn’t have the time, or take the time to deal with something that’s difficult to understand or work just so.. unless of course, like you, they’re paid to think about, live with, breathe.. your product.

It follows then, that the holy grail of software development is truly internal tooling and products: the users have esoteric problems to solve, they’re paid by the hour to deal with your junk product with zero competition. And, best of all, all that matters is if you can measure the hours saved by converting that insane spreadsheet they were using before into a simple web app for the invoicing department, then you’re a hero. But, internal tooling and products aren’t the real world, and I’d argue that even internal tooling should have the same designer love, care, and attention that something you’d ship externally does (if you can afford it..).

Usability should be the primary concern for everyone involved with your product. That includes parties you’ll usually have to drag kicking and screaming into caring about usability, such as developers, qa personel, and dev managers. There’s always a bit of a trade off between perfect and good-enough, and while requirements estimated to the hour may look great on paper, if the product’s hard to understand on your ship date, what will the green check marks by deadlines buy you then?

So how do we learn about Usability? For starters, I’d highly recommend any or all of the following books, which were recommended to me by mentors and peers:

If you don’t have the time for books, the roundabout way to learn about usability is to start paying attention to the details in the apps and products you already love. Do you ever automatically attempt to pull a door with a handle, only to discover it pushes instead? Do you have to figure out which step is next in one app, while the next seems to just flow from step to step in an ordered fashion without worry? Have you ever endured godaddy’s checkout process?

Some usability sins are worse than others, but every sin is a chance to pay attention to underlying drivers of your frustration or annoyance. When we notice the design in things, we get a little closer to the zen of appreciation, and we sharpen our usability skills all the while.

More or less: listen to Steve Jobs, go take a walk and think about your product more abstractly; keep things simple, then simplify them again; make the most used bits of the product the easiest to get to, and don’t be afraid to require a little more effort for the less oft-used functionality; usability test with someone who is *not* a coder or designer or paid employee if you can help it; build analytics into your site or app; build easy/great feedback mechanisms right into your product; provide a customer service email or number, make them easy to find, and take every single customer complaint or criticism to heart.

Knowing usability in theory will not be enough, it’s nigh impossible to disassociate yourself enough from a product you’ve lived and breathed to understand the flaws in your immaculate design. And, if you can achieve the zen master state of dissociative “new user” nirvana, you’ll never be an idiot user.

Who or what is an “idiot user”?

An idiot user is 90% of your user base. That is, someone who is using your software to do something they want or need to do. They have zero interest in “learning” for your product to be useful, and they have an equal amount of interest in figuring out all the neat whiz-bang things your product can do. If they have to think about your software, your software has failed, and some poor techie in the family or IT dept is getting a phone call. It’s as simple as that.

Fun fact, did you know the #1 search term on google is almost always the phrase “yahoo”? Think about the implications of this for a moment. This means *most* (i dare say: the vast majority of..) users are opening their browsers, seeing the google web page, and typing “yahoo” to get to their mail and entertainment news. This means *most* users do not know what an address bar is, or what a url is, or that a browser has some hidden feature to make yahoo their starting page. This is your idiot user.

Nice-guy analysts will tell you users aren’t as dumb as the numbers suggest, people have just defaulted to using the search bar rather than the address bar because it’s quicker. I call bullshit, because I’ve seen it, and surely you have too. Why should our non-technical friends or family know or care about a default starting page in a browser, or an address bar that only shows them errors rather than guesses at the correct answers for them? It frustrates us techies to no end to say for the millionth time “Stop clicking on attachments!!!”, but the truth of the matter is simple: software is not yet user-friendly or simple enough.

It’s getting there: a 4 year old can use an iPad without being able to read, your mother in law can find and play any number of amazing casual games online on facebook with her friends and family, world of warcraft style. But we’re not there yet, especially as long as you and I keep making crap software where usability is a “maybe” priority at best.

Another fun fact: you and I are idiot users, too. Remember your first time trying to find the network preferences pane in your new shiny Vista or Windows 7 install after years of the Win9X control panel layout? Ever tried to make sense of iMovie ’11+? The fundamental difference between idiot users and idiot techie users is that idiot techie users have the patience, curiosity, or perhaps control issues that allow them to quickly try-discover-fail-and-iterate. The real question is perhaps, which user is really the idiot, the one who fails fast and gives up, or the one who deals with the absurdity of our software complexity and therefore continues the cycle?

So what does usability mean in the real world? A small example:

My buddies and I created TumbleOn, a photo viewing app for photos from Tumblr.

When we started making TumbleOn, every Tumblr photo app we could find made it nigh impossible to quickly view photos in a simple stream view. Most apps only allowed users to view their “dashboard” (like the news feed on facebook), and nothing more. Tumblr limits the dashboard to 300 posts total, so that gave us an easy metric to time: “how long does it take to see all 300 photos in these other apps?” answer: 5-10+ minutes depending on the app. Answer in tumbleon? 1 to 3 minutes on average. Success! … or so we thought.

We released TumbleOn, dreaming of riches, and picturing ourselves heroes for blessing the world with time savings on their dashboard. Then the feedback started to come. Users found bugs, they had crazy ideas, and good ones, but one comment we consistently received was “I want to see more photos on my dashboard!”.

Our app made it possible for 90% of the users to reach the end of the dashboard, where other apps were so limiting that perhaps 10% of the users would spend the in-app time and effort to ever hit the end, and yet our users were complaining! The nerve! This was not success, this was a usability failure.

Being smart little college-educated developers and designers, we set out to solve this usability problem in one of those esoteric and too-technical ways that only college-educated developers can: we added complicated features that nobody understood, and made the problem worse.

We added a nifty “analysis” feature, which analyzes a user’s posts on their dashboard and shows blogs the images come from, so the user can easily go view more or perhaps discover a new blog they’ll like. We added the feature, made it almost impossible to find, along with a few other new features, and patted ourselves on the back for another release.. heroes again, this time, surely, triumphant! Just look how smart we are, look at our neat new complex analysis feature and behold its glory, if you can find it, mere mortal!

Another cycle of complaints and confusion later, we made a little hint auto-popup to show users where we hid these treasures in the app. Even so the analytics showed abysmal numbers, for every 100,000 dashboard views, perhaps 100 analysis events would happen.. the top percent of a percent of our users even knew or comprehended what analysis was, in other words: the techies understood, and 90% of our user base thought we were out-of-touch idiots, rightfully so.

We then put the 300-post-limit usability issue on the backburner, essentially accepting defeat. We added some foot notes to in-app help documents that users never read. We also added a video about the features that users never watch (statistically speaking), because that video is also buried in the in-app help system. Users don’t have time for a 3 minute video, they use the app for less than 3 minutes on average as it is.

A few months passed and for whatever reason this review sparked a flood of the-right-way-to-do-it ideas from our subconscious:

The idea was simple, which is a sure sign you’re on the right track in terms of usability or anything to do with software development really. We simply needed to make it easier for users to use the analyze feature, without even requiring a super technical understanding of what post analysis meant. We added a “view more” button at the end of a photo stream, changed our verbiage about why the dashboard ended, and provided simplified “view top 10 xyz” views into the analysis data, like this:

Results? Between the verbiage and the view more options, we’ve done something right, because users no longer complain about the dashboard limit or perceived shortness. The users simply click “view more”, find something related to what they just saw, and almost instantly fall into a #lol tag with thousands of posts. They don’t even see or consider the “analyze posts” or other 5 options shown in the popup above, they see what they want, and go for it.

Are more users finding and understanding the “proper” analysis feature after our improvements? Not really. And that’s okay, because thousands more users are using the feature without even knowing it, because that’s how great software design works: as if it were transparent.

Great software is transparent to the user. It’s not about someone using your app, hitting the fourth wall and thinking “gosh, the software team behind this must be really really smart, it’s so complex!”. What sells is sparkle, shine, animations, and fundamentally transparent design. The shine will get them in the door, the transparent “it just works” attitude will keep them coming back for more.

Sometimes the first, second, or even the third version of your feature is not the feature that ultimately works, but taking the time to mentally iterate on an idea using quick wire frames will go a long way toward the product you truly want to deliver. For wire frames, I recommend pencil and paper (an idiot user’s choice) in a meeting with designers and developers actively involved, or something like balsamiq if you really must have a fancy tool (you idiot techie user, you..).

Getting from “neat” to “transparent” isn’t easy, because it requires us to be still, and simple. Creative professionals want to create, not philosophize, but fundamentally that’s exactly what Usability is all about: a philosophy of slowing down the feature cram-fest and spending a few more cycles iterating on simplification. We want to create the next hacker news worthy big thing with some esoteric and exceedingly complex technical feat that less than 1% of the users in the world will understand, but we need to learn to force ourselves to remember that the #1 search term in the world, 24/7/365 is the term “yahoo”. Your users don’t need analysis features that take 3 paragraphs of help documentation to explain, they just need “view top 10 xyz”.

“There aren’t stupid users, only stupid user interfaces.” – A great designer I know.

Regularly losing hard drives? Try clean power.

A few years back, I was losing 1 to 2 hard drives a year, every year. I was purchasing quality drives (for consumer grade..), and it did not seem to matter if a drive was internal or external, the life span was just junk.

Your computer’s parts are highly sensitive pieces of equipment in terms of power. They operate correctly in a narrow range of voltage levels and wattage. Giving your hard drives or motherboard a bit too much juice or just a tad too little, and your hardware could become damaged.

There are three basic problems with power that you could encounter. I’ll bet you’ve only heard of these two:

  1. A surge or spike in power – this is when something goes wrong up the line from your house, such as a lightning strike nearby, and far too much power comes down the line to your house. This is protected for by a surge suppressor.
  2. A brownout or blackout – this is when power cuts off or dips enough below regular levels that your computer shuts off, potentially losing data while you were in the middle of something. We protect against this with a battery backup system (aka: ups system).

The third problem that you can encounter with power is voltage regulation issues. That is, when your voltage level at your socket isn’t quite what it should be during certain times. You can occasionally see a dip or spike in voltage levels around your house if you see your lights dim slightly or become brighter for a moment every time some large appliance (or, in our case, our A/C system) puts a huge burden on the power system as it powers up.

In my house, when my A/C kicks on, the voltage to my sockets drop or rise from 120v to something a few volts lower or higher, many times per day in the summer. Over time these “dirty power” fluctuations take their toll on your computer and other electronic equipment in your house, and in some cases ruin your equipment. The dirty power in my house and my apartments previous to the house were regularly eating my hard drives.

For voltage regulation issues, you need a voltage regulator. A voltage regulator is a device that maintains a constant voltage rate, in other words: clean power. It instantly dumps off excess power or boosts the power enough to maintain a constant clean power source that you otherwise would not have.

Most battery backup systems also have surge suppression built in, and some high end battery backup systems also have voltage regulators built in, but not all. Further, some high end power supplies for your computer may have some amount of voltage dip/spike tolerance built right in, but most do not, and you’re almost guaranteed that the $5 wall-wart power supply for your $50 external hard drive enclosure has no such protection built in at all.

The voltage regulator I bought was about $50. I bought this model: the APC LE1200. The voltage regulator has a plug for the wall, and 4 sockets on the back of the unit. It also has three LED indicators on the front of the unit that indicate dirty and clean power situations: high, low, and just right. The unit makes a satisfying (but not too loud) “click” sound when it jumps into compensation mode for high or low input. I can always tell my A/C is about to come on in a few seconds when I hear that click.

I haven’t lost a hard drive since I purchased my voltage regulator almost 4 years ago.

If you don’t have $50 to burn on a theory for your outlets feeding your computer, entertainment center, and so on, I would highly recommend buying a kill-a-watt for $20 and checking out your voltage levels around the house or apartment from time to time.

A kill-a-watt is an amazing device for learning about power consumption and dirty power. In voltage mode, you’ll be able to see your voltage drop from 120 to 118 when a dirty power event hits, and in the far more useful wattage modes you’ll be able to see precisely how many watts are drawn by your entertainment center in an instant. The kill-a-watt also features a KWH counter which is very useful to see usage over time, you simply leave the kill-a-watt between your outlet and your plug, and check it a few days later to see how many KWH of power your devices have eaten.

The story of Freddie Kreuger, the brave three-legged cat.

This is the story of Freddie Kreuger, the cat who taught me what patience and love are, and what it means to be brave.

Freddie Kreuger and her 3 siblings were born in a neighbor’s backyard in May of 2010. The four kittens were born to a feral mother, who we mistakenly named “Mr. Bond” before we realized she was a she.

Mr Bond was named as such, because she was very sneaky and clearly feral and scared. She would only come to our back porch to eat in the dead of night, and only when other animals were not around.

One evening Mr Bond failed her mission, and a neighbor’s cat, named Cinderella, fell in love with her and gave her babies. Cinderella, a sweet male cat, was jokingly named Cinderella because we knew his owner was a little girl who we could picture dressing this super sweet orange tabby guy in dresses and having tea parties with.

A few weeks later, we started seeing kittens on the other side of our fence.

Our neighbors did not realize the kittens were there, because Mr Bond had sneakily hid them under their tool shed in their back yard, right between the tool shed and the fence. Every so often, we’d see a little kitten fight break out and one of the kittens would accidentally roll out under the fence into terrifying sunlight in our yard, then scramble back to safety.

My wife and I started the kittens out with some baby oatmeal, eventually switching to normal cat food when the time came. Even weeks later, the kittens were deathly afraid of direct sunlight and the big huge world in our backyard that was so much more vivid, and scary, than their 1 foot wide playground of darkness between the shed and the fence.

Even so, it became apparent, almost immediately, which kitten was the bravest.

Every day, little Freddie Kreuger would be the first to tentatively pop out from under the fence and have her meal. She’d eat first, and her siblings would wrestle with each other and avoid the sunlight until Freddie was done. Her siblings were not as brave.

Right from the start, my wife, Amanda, insisted that she would “train” the feral kittens, and be able to pet them and “make them” love her.

Amanda grew up in the high desert in California, a few hours north of L.A. When she was young, she had many adventures in the desert with her friends and family, constantly encouraged by her parents and her surroundings to be brave. Or maybe, maybe she was brave naturally. There’s a story of police men coming to her parents door because a neighbor across the street could hear baby Amanda screaming bloody murder. Amanda wasn’t afraid of the man, even as an infant.

By Contrast, I grew up very cautiously. Reared religiously as a child, learning far too late in life what “fun” was, and learning way too early what “regret” was. As such, I’ve always been a cautious, flippant, and not-so-brave person, like Freddie’s siblings. When my wife told me she’d “Make them” love her, I thought she was crazy, and laughed. Feral kittens are feral, I thought..

Then, this happened:

Amanda would sneak up to the fence ever so slowly and steal pets while a kitten was eating, and the kitten would perhaps pur for 2 seconds at the most, before realizing what was happening and again scrambling to the safety of darkness. Every time this happened I’d laugh to myself, relating with the kittens, it’s a big scary world out there, Amanda, you’re silly, I’d think.

For the next month, as the big vivid world became familiar, the kittens would steadily explore more and more of the backyard. We then moved the food bowl across the yard to the back porch, encouraging the kittens to come find it. I’ll never forget how funny it was to see the kittens inch ever-so-slowly across the shadowed part of the yards, stop at a sunlit area, and scramble like mad as fast as possible across the lighted strip to the next dark patch.

Amanda had already named all four of them. Freddie was named Freddie Kreuger because when she ate, she would eat alone. If any of her siblings came to eat at the same time, she would sink her claws in the top of their heads and either hold them down while she ate or push them away.

By the time the kittens got to the back porch, Freddie had her own bowl, and the other three would share another.

As time went one, the only male of the litter, Jerkface, turned into a feral thing like his mother. We still see him from time to time. The mostly-black kitten was found exploring in a neighbor’s yard, and now she lives a happy life inside that neighbor’s house. Freddie and her sister, Annie, stayed around and lived on our back porch.

Weeks turned into months, and all the while, Amanda kept trying to pet the kittens. Even at six months old, the only way you could pet Freddie was by touching her while she was face-down in food and not realizing what was going on.

Annie was the one that started proving Amanda right, and me.. wrong.

By the time Annie was 6 months old, she was a snuggle bug. Adorably cute to pet and play with, her feral upbringing morphing into this hilarious little habit where she’s cute and cuddly while you pet her, but as soon as you stop she swipes at you with claws, pulling your hand in for more pets.

Meanwhile, brave little Fred was at the same time extremely cautious, and scared. She always kept her distance.

Annie was the content one, basically living on the back porch. She only moved from the back porch when another cat, Blinkers, was giving her hell for being so pretty and desirable. Otherwise she was fine to stay in her little world, perfectly content with a one-back-yard-sized vivid world.

Freddie, on the other hand, was nothing but still. She was constantly exploring the back yard and beyond. We’d often find her standing on fences, walking along them for fun. She was also the first cat that discovered how to open the outside food bin, she was exceedingly clever.

In the Summer of 2011, Amanda and I went on a vacation. When we came back, we saw Annie and Blinkers, but not Fred. After 3 days of not seeing Fred, we told ourselves she must have finally joined her Mom and Jerkface’s feral cat gang, and we’d see her eventually.

4 or 5 days after we came home from vacation. We were watching T.V., and Amanda went downstairs to get a drink of water. It was late at night, pitch black outside, but Amanda could barely make out a kitty feeding on the porch. Amanda screamed with joy across the house, “Freddie’s back!”. I started down the stairs to see our little wallflower, when half way down, Amanda shrieked in the tone of voice I fear most in my life, she screamed “JASON, FREDDIE’S HURT, BAD, COME HERE, QUICK!”.

Freddie was eating, slowly, and she appeared to be dragging one of her legs. When pet, she tried to get away, but was clearly drained of all energy and very probably close to death, it was one of the most terrifying sights of my life.

We grabbed her, took her inside, and took her to the vet. The next 72 hours were a 72 I’ll never forget, as our entire lives felt upside-down. The vet kept her overnight, to clean her wounds and make her better. The vet discovered Fred was running a super-high fever and pumped her full of antibiotics, but her wounds were already heavily infected and her leg needed to be removed. She sent Fred home with us, telling us to keep a close watch on her, and schedule the surgery immediately.

Fred was in bad shape, really bad shape, and probably terrified. But she was also exceedingly brave. She lived in our bathroom for a couple of days until the surgery, and not once did she bite, hiss, or scratch at us.

A few days later, Fred had her surgery, and, amazingly, she got up and walked around the same day her leg was removed.

With only three legs, Fred was destined to become an indoor cat. She lived her first month of indoor life in our small guest bathroom, healing from her surgery.

Every day Amanda would come home from work, and sit in the bathroom with fred for hours at a time. And every day, Freddie would prove me right. She’d growl and hiss and even spit sometimes when you tried to touch her. All the while Amanda insisted just sitting in the same room with her would go a long way. Amanda was brave, and patient, and loving, which is more than I could say for myself.

In time, Freddie bravely stepped into another big world, 1500 sq feet of kitten bliss. She had two new roommates, our 10+ year old cats.

In some ways Freddie was karma for our youngest indoor cat. Amanda had one cat first, and the second one bothered the first one *all the time*, for life. When Fred entered the picture, Fred became our second cat’s bother, and the first one was left alone. Now our second cat doesn’t bother any kitties anymore, and smarts at the continual pain-in-the-ass of lifelong karma in the form of Fred.

When Fred was released from bathroom isolation, she was still obviously quite feral, standoffish and at times, a pain. She’d almost constantly have those saucer-size eyes and a look of mild-insanity combined with terrible fear, and you’d never know what she’d do next.

If anyone visited the house, Fred would instantly scramble into a little ledge hidden a few feet up in our fireplace, only to emerge hours later covered in soot. Over a period of months, Fred cleaned our fireplace, and nowadays she goes in and out of there without any soot emerging with her on the way out.

Fred’s been our little feral/crazy inside cat for a little more than a year now, and all the while, day after day, Amanda has been loving and patiently working with Freddie to “make her” love us. For many months Amanda continued doing this, all the while occasionally deflecting cold-hearted/critical noise from me about feral being feral and people/animals never changing their true nature.

For what seemed like eons of time, Fred was on my side, more or less. Amanda would pet her, or hell, every once in a while, I’d give it a try. Every time I tried, she’d systematically claw me, possibly bite me, and then scramble around me to safety somewhere (probably the fireplace). Every time I walked into a room, Fred’s eyes would go wide, no matter how far and safe from me she was, and she’d start her scramble to the other end of the house. She was a lost cause, I thought, and she was proving my point.

Still, Amanda, ever brave, peaceful, loving, and amazingly patient, would give fred a go every other night or so, whenever the kitten’s crazy eyes were ever so slightly not-as-crazy.

After a year of effort, earlier this summer, this happened:

Amanda “made” Freddie love her.

Seeing Freddie Kreuger, the kitten who stabbed siblings for food, rub her face on Amanda’s face is a memory I cherish and will not soon forget. It was nothing short of a miracle.

In recent months Fred is even so brave as to sleep on the bed with us, and stay in the same room without the insta-scramble of before. Fred is truly a brave and clever girl, learning against all odds to love and be loved, all thanks to Amanda’s amazing patience, care, and unending capacity for love.

It took some time for my stubborn soul to realize the lessons in Freddie’s story, but the parallels to Amanda’s and my’s relationship are too obvious to ignore. Like Amanda, Freddie was amazingly brave, willing to try anything once, including losing a leg. And yet, like me, Freddie was full of fear, distant and cautious of anything and everything. When Freddie hurt her leg, the moment only re-inforced my inner fear of the unknown, and doubly reinforced my caution about Amanda’s constant bravery.

Through Amanda’s loving care, and above all, her unending patience. Freddie learned to overcome her instinctual built-in fear, be brave, and venture into the unknown. For Fred, the unknown was being loved, and because she was brave, she now regularly experiences the other side of the unknown: the fantastic.

My siblings, friends, and family will not at all struggle to see the parallels of Freddie’s story and my own. I’ve always been, and perhaps always will be, a cautious grumbly stubborn gus jerkface who’s slow to warm and quick to spite. And yet, Amanda walked into my life about 7 years ago, and her effect on me has been as astonishing as that she has on Freddie, albeit, sadly, at a much slower rate, because after all, I am a stubborn jerkface.

The point is this: Venturing into the unknown is scary, but without bravery, you may not ever experience the fantastic. If you’re smart, and exceedingly lucky, like me, you’ll find a better half who can hold your hand, and occasionally drag you by it, kicking and screaming, into the unknown, toward the experiences and memories you will cherish.

Nowadays, Freddie Kreuger is a happy indoor cat. All the time, finding new experiences inside her 1500 sq foot wonderland.

She gets to see her sister from time to time, and one of the greatest moments of the year, every year, is the first day of Fall when we can turn the A/C off, and open the back door so Fred and her sister can catch up on their stories of adventure and bravery.