Tracking the Books

I need to find a replacement for Goodreads, because I hate using it.

Its UI is terrible. It looks like something I would’ve designed back in high school, and I’m a color-blind back-end developer that wouldn’t know a good font choice if there was only one to pick.

The performance of the site is terrible. Searching for books takes too long, and (and!) if you type too much of the book’s title into the search bar, the one you want will go whizzing by, replaced by books that are nothing like the one you’re looking for.

Even when you finally do locate the exact book you want to add to one of your shelves, if you later want to, say, find a list of all the books you’ve read this past year (as I tried to do back in January), you’ll find that Goodreads does not fill in the date every time you mark a book as read. I think somewhere between a quarter and a third of all the books on my “read” shelf have no dates attached to them, so they end up in a jumble at the bottom of the list, no rhyme or reason to them.

But what choice do I have? I have a few hundred books in hard copy in my house. Another two hundred or so scattered across various ebook formats: Kindle (follies of youth), Nook (ditto), Kobo (simply the best), and iBooks (don’t judge me). All of which I need to keep track of, if only to keep myself from buying a book I already own. Goodreads, for all its flaws, at least lets me do that.

I suppose as a developer I’m supposed to build my own solution. And I’ve thought about it; I could write an importer to take the xml junk Goodreads’ api barfs out, clean it up, and then shove it into a text search engine (probably Elasticsearch) for easy retrieval later.

But that’s a fair-sized project, and if I can, I’d rather take advantage of someone else’s work (and pay them for it, gladly).

So: Are there other, better, apps out there for tracking a personal library? If you use one, which one, and why?

The Problem with Programmer Interviews

You’re a nurse. You go in to interview for a new job at a hospital. You’re nervous, but confident you’ll get the job: you’ve got ten years of experience, and a glowing recommendation from your last hospital.

You get to the interview room. There must be a mistake, though. The room number they gave you is an operating room.

You go in anyway. The interviewer greets you, clipboard in hand. He tells you to scrub up, join the operation in progress.

“But I don’t know anything about this patient,” you say. “Or this hospital.”

They wave away your worries. “You’re a nurse, aren’t you? Get in there and prove it.”

….

You’re a therapist. You’ve spent years counseling couples, helping them come to grips with the flaws in their relationship.

You arrive for your interview with a new practice. They shake your hand, then take you into a room where two men are screaming at each other. Without introducing you, the interviewer pushes you forward.

“Fix them,” he whispers.

You’re a pilot, trying to get a better job at a rival airline. When you arrive at your interview, they whisk you onto a transatlantic flight and sit you in the captain’s chair.

“Fly us there,” they say.

You’re a software engineer. You’ve been doing it for ten years. You’ve seen tech fads come and go. You’ve worked for tiny startups, big companies, and everything in-between. Your last gig got acquired, which is why you’re looking for a new challenge.

The interviewers — there’s three of them, which makes you nervous — smile and shake your hand. After introducing themselves, they wave at the whiteboard behind you.

“Code for us.”