New Years’ Resolutions (WIP)

I’m realizing my (work in progress) New Years’ resolutions could apply as much to product as life. Would love to hear from people, on here or on social media, with thoughts to help me refine my thinking on these? Got good ones of your own? I’d love to hear them!

1. Simplify
2. Ship or Shelve
3. Measure
4. Everything in Threes

1/ Fewer distractions, fewer (but more important) goals, delegate the less important. Meditate on what matters. Want only to not want.

2/ Breadth, hobbies, experiments are great, but find an end point. Whether great or not, finish it. (eg open source, art-, or side-projects)

3/ Pick what success is ahead of time, even the next small step. Have goals in mind. Be specific. Ideally, measurement is automatic (see #1)

4/ Code: Refactor on 3rd use. Books: read on 3rd recc. Buy someone lunch the 3rd time you hear about them. It’s all noise until 3rd time. Act on what makes it through the filter.

30 Days of Programming Interviews

I’m starting a new 30 days experiment! This time with my good friend from University of Maryland, Koffi Kpetigo. Each week we’re picking one chapter from this book on programming interview questions: Cracking the Coding Interview: 150 Programming Questions and Solutions

Each chapter is themed (Arrays & Strings, Object Oriented Design, etc) so each week will be a focus on one of our top four topics. If it goes great after 30 days, then we’ll keep going until every chapter is done. Each morning, I’m waking up at the same time as before (8:30am) and doing a one-hour interview as if someone were asking me questions from that chapter. Then I’ll attempt to document that effort here, for posterity. Then, once a week, we’ll call each other up and do phone screens on questions from the “Medium” and “Hard” chapters (which are miscellaneous unthemed chapters that seem to represent the kinds of questions I’ve actually been asked in interviews.) The weeks are going to be this ordering, with today being Day 1 of the first week:

Week 1 – Chap 7: OO Design
Week 2 – Chap 3: Stacks & Queues
Week 3 – Chap 4: Trees & Graphs
Week 4 – Chap 9: Sorting and Searching

I expect I’ll get two things out of it, with hopefully a few surprise leanings thrown in as we go:

  1. More confidence in a variety of interview questions. Right now I typically go in to an interview with the belief that I’ll be able to figure out most problems, and a solid (though not perfect) understanding of common data structures. But I’ve never studied interview questions themselves, so I always feel like there’s something I’m missing. I’m definitely not one of those people who remembers their sorting algorithms, and I don’t feel like I’m at the point where I can say something like “Ok, this question falls into <question grouping>, which usually depends on <data structure here>, and they’re really looking to see if I can <thought process here>.” Even though I’ve been on the other side of interviewing for years, I still don’t feel like I’ve “pulled back the curtain” 100%. This should change that, or at least start.
  2. A couple new interview questions to use myself. I’ve been using the same one or two interview questions for a couple years now, and I’d like to switch it up. I like my current favorite a lot: it starts with basic algorithms, expands requirements in the middle, and ends up in a larger systems design conversation. But two problems I have with it are: (1) if you’ve heard a similar question for the algorithm part before, you’ll get further, and it’s close enough to a more common interview question that that’s happened a few times. I can correct for this, but I’d like to not have to. (2) I’d like to ask a harder initial question in general, so I can make a more granular evaluation of the top candidates.

Here we go!


500 Words. Day 30!

I did it!

Day 30 of my 500 Words experiment is here, and I managed not to screw it up. (See Day #1 here). I’m absolutely amazed at what I’ve been able to do in just 30 days, inspired by such a seemingly small change in my morning routine.

I went from feeling like the usual “I don’t have enough time in the day” to checking off a couple major goals in my life, and coming to a major realization about how my psyche works: not making progress on any personal goals in my life actually creates a significant stress, but subconsciously. It wasn’t until I started making great progress that I noticed the relief I was feeling. Off the top of my head, here are some bullets on what I was able to accomplish: Continue reading

500 Words. Day 29.

In an awesome turn of events, Ashley asked me to be a guest writer on her fashion and tech blog. She really enjoyed my post on the broken state of men’s online clothes shopping, and I’ve been talking to her about my experiences with TrunkClub. It looks like I’ll be doing a guest article on TrunkClub – my experience, what’s worked, and what’s not – in the next week or two. Out of curiosity, I asked her what the norms are when two writers are arranging how a guest post will work. I was interested, since I don’t consider myself “a writer” and I’m not super familiar with the norms there, whereas she’s been interviewing people for years.

According to her, you’re usually either asked to post on a certain topic, or more likely you pitch article ideas to the editor/owner of the blog. Typical terms would be that you get a link back to your site (for readers to know where to find you, but also negotiate the link text for SEO); that you link to your guest post the day it’s published; and that you Continue reading

500 Words. Week 3 & 4 Recap

Last week, I wrote these bullet points down. I had planned to do it Monday, but on Monday about 100 of 114 people at my last company were laid off, which changed most of the week’s plans. Some of these still make sense and none of them ever became a proper post for last week:

  1. Feel like while I did the words every morning, I felt like I don’t accomplish as much as week 1.
  2. Didn’t put my thoughts from last Sunday (week 2) to practice.
  3. Didn’t go back and read them, maybe that would’ve helped.
  4. Think I also front loaded a lot of productivity by putting off other life things (returning my kindle, turning art, and trunk club packages; haircut; social stuff).
  5. Also did steak night which took up all morning and most of evening productivity after Tues so maybe that’s really what I’m feeling.

I think for the most part those points still stand. I’ve let myself slip on some of the details of the experiment, due to one part Continue reading

500 Words. Day 27.

I’m curious if there’s a ranking of WordPress themes (maybe even plugins) by the quality of their code and how clean the markup they create is. From my experience hand-editing the “twenty eleven” theme (the default that ships with WordPress) even that one has terribly formatted PHP code, and the markup it generates isn’t much better. Even if they just fixed the indentation I’d be much happier. I wonder if they would appreciate an offer to fix that for them. That’d be a pretty cool project with a reasonably big impact, and as someone I interviewed this week said: “I felt the pain, so why not build the pain-killer?”

Continue reading

500 Words. Day 26.

Uunggghh this experiment does not mix well with having a social life. I went to the Causes Happy Hour last night and met up with Ashley and a few ex-Lolapps people, some of whom I hadn’t met before, and some of whom I hadn’t seen in almost a year. In an awesomely improbable turn of events, I also saw a guy who I new from University of Maryland, who I did not know would be in San Francisco, let alone that party. We hadn’t seen each other since probably 2005 at the latest, and did a double take when we saw each other there. Toward the end of the night, Ashley, most of the Lolapps crew, and I ended up grabbing a late-night dinner at Chaat Café and heading back to the old Lolapps office (The Lolffice) for a few drinks, ping pong, and hanging out. (There were even more people I hadn’t seen in forever already there doing the same thing!) After we all left there Continue reading

500 Words. Day 25.

I feel distracted this morning. I wanted to reference something I found from the Internet, so I cheated a bit to find the quote, then got sucked in to a few other things I’d been curious about (How many views on recruitingfail so far? How’s the SEO for my personal site? What was that StumbleUpon site I wanted to send to Ashley?)

One of those distractions was totally worth it: I’m rank 3 and 4 on the Google search results for the “Jonathan Howard”!

Ranking for Jonathan Howard and "Like Python" over time

SEO has been an unofficial goal of mine for quite a while now, and one of the lesser reasons I wanted a good personal site in the first place. (Unofficial because I haven’t acted on it but it would obviously be nice to rank #1.) And since was taken by a guy in the Midwest, with one page about his kids and no Continue reading

500 Words. Day 24.

Crap, I slept through my alarm (or forgot to set it) so I’m going to have to do this fast and stream-of-consciousness style.

In general, I feel like I’ve let the structure of this experiment get away from me in the last few days. On Sunday, I forgot to do the weekly re-cap and planned to do it Monday. On Monday, my last company Lolapps ceased to exist, so I dropped my plans to go see them, and planned to do it Tuesday. On Tuesday, my 500 words made it onto the front page of Hacker News and I had to deal with scaling issues and planned to do it Wednesday. I’m not sure what happened Wednesday, but between LinkedIn references, messaging Lolumni, and a really persistent server problem at work, Continue reading

500 Words. Day 23.

Well yesterday was crazy. Unexpectedly, my reaction to the Lolapps layoffs made it onto the front page of HackerNews, and stayed there. Same with proggit (reddit programming). This was my third time getting this kind of traffic to something I did, but the first time it was to a database-driven page, so there were some interesting learning experiences.

The biggest lesson here was how Rackspace Cloud servers perform and scale while they’re under heavy load. Continue reading