Interviewing at blist

Posted by Kevin Merritt on December 27th, 2007

blist is hiring across all disciplines. I wanted to take this opportunity to tell you what you can expect when interviewing at blist.

Assuming we’ve been introduced via email, I’ll usually first ask a software engineering candidate to complete a programming challenge that you can find on our website . If you’re not a programmer, anticipate some kind of project in your area of expertise. For example, I once asked an online marketing prospect to write a paper on how he’d build a database of the 500 most influential bloggers after the Technorati 100. The coding or marketing project is designed to show me a little about how you solve problems without time constraints and with all resources in the world at your disposal. This should be some of your best work. You won’t have the luxury of time or abundant resources during the interview. Take advantage of this opportunity by trying to really impress.

Assuming the candidate does a decent job with the take-home assignment, I’ll arrange for an in person one hour informational discussion. This can be in our office, at a coffee shop near your work, over lunch, etc. I try to spend 75% of the time trying to make sure the candidate understands what we’re trying to do technically and/or as a business. The other 25% I’ll use to get to know the candidate a little better. I might point out a bug or two in the code they wrote and ask them to fix it. Or I might ask why they made certain assumptions or why they chose certain algorithms. I’ll usually ask questions about their most recent role in order to understand what kind of work they’ve been doing.

If the informational discussion goes well and there’s mutual interest in going forward, I’ll schedule a full interview loop. At blist an interview loop is usually comprised of four hour-long interviews. In the case of a software engineer, it would be three back-to-back interviews with existing blist engineers, followed by an interview with me. If the candidate does well during the earlier interviews, I’ll usually continue with a deep technology interview. If the candidate doesn’t do well, I’ll usually probe in other areas to see if maybe there’s another fit.

If you are interviewing for any technical role, expect to write lots of code and to be asked to design solutions to hard problems. I know this isn’t anyone’s idea of fun, but it’s really the best way for us to discern whether you can write code here at blist. The kinds of questions you’ll get are ones that you should be able to design and/or code in less than 15 minutes. Some will take only a minute or two. Usually you can code in any language you want, although one of the things we look for is that you know how to pick the right language for the job. Here are some examples of questions you might be asked:

*) We’ll probably ask you to write one of the functions in the standard C library (strcpy, strstr or memcpy, for example).

*) We’ll ask you to write some code that works with data structures – stacks, queues, trees, lists, etc.

*) If you have SQL on your resume, we’ll ask you to write a fairly complicated query, probably needing outer joins or subqueries.

*) We’ll ask you to design a data model from scratch. For example, what would the data model look like if you wanted to be able to query for which pitchers in major league baseball throw more strikes in day games than night games.

*) We’ll ask you to demonstrate that you can think abstractly and re-use code. For example, how could you build a CRUDdy database API re-using SMTP as the transport protocol?

*) Based on some technology you’re already using, we’ll ask you to describe how it works – Rails’ ActiveRecord, a load balancer, garbage collection, Ajax, MapReduce, Berkeley DB, etc.

*) We’ll probably ask you to design the API for something you’re unfamiliar with.

*) We’ll probably ask you to extend the API of something you are familiar with.

*) We’ll ask lots of "How would you design or code the following: blah blah blah" questions. Some will be fairly concrete, like writing a function to return the day of the week without using any built-in date routines. Some will be fairly abstract, like how would you design an IM client that transmitted sounds instead of text.

*) While less likely coming from the other software engineers, I’ll usually ask some pie-in-the-sky technology design and industry questions. For example, how does high performance computing materially benefit from widespread consumer adoption of the iPod.

Hopefully you can see a pattern: A) do you have the fundamentals? B) Do you currently have good problem solving abilities? C) do you have the smarts to solve unforseen problems and grow beyond the role for which you’re currently interviewing? A yes-yes-yes is what we’re looking for.

A four-hour interview process is a big commitment. It’s an investment we make in candidates and it’s one we think top candidates should make before joining any company. After all, if the fit is good and the company and the employee are both upwardly mobile, the relationship should be a lengthy one of many happy, successful years together.

If I haven’t totally discouraged you from considering coming to work with us at blist, I’d love to hear from you. You can reach me at kevin dot merritt at blist dot com.

Emulate Products you Like

Posted by Kevin Merritt on December 26th, 2007

Do sculptors like many sculptures they see? Do chefs like many dishes they eat? Do people who work in car manufacturing plants like many cars coming off assembly lines? As someone who has spent his entire professional career developing software, I sometimes feel awkward that I like so little of the software that is produced by our industry.

But every once in a while, when I find software that’s really good, it’s such a joy. Yesterday I started using SmugMug and I really like it. Our three-year old deleted some pictures off our Mac a few weeks ago and I decided that it would be a good idea to start backing our photos up to one of the web-based photo services. My wife has pictures on the Mac. I have pictures on my laptop. We needed a central place to store our family photos. Congratulations to Don MacAskill and the team at SmugMug. They’ve designed and developed an elegant software application for storing, managing and sharing photos. It’s a terrific web-based application. So what do I like about it?

1) The user interface is clean and elegant.

2) I was able to be productive without any training or reading any tutorials.

3) There are different options for people of different backgrounds and abilities. You’d think they would have one or two ways to upload, but SmugMug has five different ways.

4) There’s an API that has resulted in 3rd party tools having been created. For example, I installed the "Send to SmugMug" Windows Explorer shell add-in and it works great.

5) It’s viral. SmugMug makes it easy for me to share photos – by email, posting to a blog, etc.. By being so easy, I’m sure it helps SmugMug market itself to new customers.

There are a lot of things to like about SmugMug. If you need a place to back up and share your photos, I suggest you give it a try. They offer a 14-day trial and after that it’s $39.95 per year for the basic version.

When I find software that I really like, I like to think about why I like it and hopefully emulate those positive attributes in the software we build. So much of what makes software great is less about what it does and more about how it does it. If someone likes blist a lot, I’d hope they’d write a post about it on their blog, so that’s what I’m doing here today for SmugMug. I like their software and I’m telling you about it.

Have you found some great software? Tell us about it.

The Democratization of Data

Posted by Kevin Merritt on December 13th, 2007

One Ringy Dingy

Early to mid last century switchboards were manually operated by telephone operators, most of whom were women. In the late 1960′s Lily Tomlin endearingly characterized the role as Ernestine the telephone operator on Laugh-In. Advances in technology democratized the act of dialing a phone number and now we all do it ourselves.

In the 1960′s and 1970′s many corporations had pools of typists. If you needed to send someone a letter, you submitted your longhand request to the typing pool. Mini-computer based systems from Wang and Xerox replaced the typewriters with centralized word processing capabilities, but you still submitted your letter longhand to the pool. While these word processing systems were big advances over typewriters, they were still too expensive and too complex for the mainstream users. Remember, most typists had to be retrained on how to compose SGML in order to send special formatting instructions to the printer. Then in the 80′s, personal computers were adopted, followed at first by markup-based word processing software from Wordstar, then by WYSIWYG software from WordPerfect. These advances democratized the act of writing letters and we now take it for granted that we can write letters ourselves with Microsoft Word.

Number crunching followed a similar course. Accountants used paper spreadsheets to crunch numbers. If you needed some analysis, you asked the accounting group to develop paper models for you. Then in the 70′s McCormack & Dodge created electronic spreadsheet software for IBM mainframes. In the early 80′s software pioneers Dan Bricklin and Bob Frankston created the PC-based electronic spreadsheet VisiCalc, which later was supplanted by Lotus 123, which later was toppled by Microsoft Excel. Electronic spreadsheet software democratized the act of making financial decisions based on analysis of numerical data.

Art departments used to create foils for presentations. Making presentations has been democratized and we now take for granted that we can use PowerPoint to make presentations ourselves.

Engineering and architecture departments used to draw schematics and floor plans for us. Now with programs like Visio, we take for granted that we can create our own floor plans and technical drawings.

You could even argue that TypePad and WordPress have democratized creating simple web pages.

Why hasn’t working with data been democratized? In an odd paradox, IBM, Oracle, Microsoft and a handful of other companies have made powerful relational databases both ubiquitously available to enterprises yet out of reach to mainstream audiences. While advancements in technology empowered people to solve their own problems in all of the aforementioned areas, current database technology has failed to democratize the act of organizing and analyzing data. Instead of extinguishing a legacy profession, databases are so hard they’ve actually spawned a new profession – database administrators.

Why isn’t organizing and analyzing data as easy as creating an electronic document, spreadsheet or presentation? Stay tuned. Soon it will be. That’s exactly what we’re aiming to do with blist.

Industry Vets Give blist a Thumbs Up

Posted by Kevin Merritt on December 11th, 2007

As blist develops and we get closer to launching the service, it’s been fun and rewarding to demo the application to people who have deep opinions and pedigrees in the space in which we plan to operate. Over the last few weeks I’ve been fortunate to conduct two specific demos of this sort. I’ll admit I had some anxiety initially. It’s akin to talking about black holes with Stephen Hawking.

The first demo was with the co-founder and CEO of not one, but two significant database companies. He’s truly a pioneer in the space. He was skeptical of taking a meeting with us initially as he thought he had seen it all and heard it all already. With the help of a persuasive friend of blist, he ultimately accepted our meeting request. In three short weeks he’s gone from doubter to a big believer and a strong advocate. He’s excited about the innovations we showed him and is equally enthusiastic about where we plan to take blist. He shared with me that he’s impressed that we’re thinking and investing at both ends of the database spectrum. At one end, we’re investing in building a database as a service that scales to Internet scale. At the other end, we’re investing and making great advances in usability so that mainstream users can organize data without dependence on a DBA.

His vote of confidence matters to me.

The second demo was to James Hamilton, my boss while I was at Microsoft. James was a core architect of both Microsoft’s SQL Server and IBM’s DB2. He’s the co-author of a number of whitepapers on database theory and internals. He’s one of the smartest technologists I’ve ever known. I gave him a demo of blist and he was impressed with how much we’ve accomplished since starting development earlier this year. James and I share a passion for big scale ops – running really large web services at Internet scale. Most of our conversations over the last two-and-a-half years have been in this area, so I think James was surprised by the significant innovations we’ve made on the user interface. He’s very enthusiastic about blist.

His vote of confidence matters to me.

We’re excited about what we’re building at blist. At the end of the day our success will not be measured by what two industry veterans think, but instead by whether people adopt and embrace blist in large numbers. For now, though, I’m content with two votes of confidence from two people who collectively have more than 50 years of peerless domain experience. And while I generally think most people in this database world are too set in their thinking, these two in particular moved on from the database world because there wasn’t enough new thinking.

Their votes of confidence matter to me.

Excel as a Database

Posted by Kevin Merritt on December 3rd, 2007

I’ve argued for a long time that world’s most ubiquitous database is Microsoft Excel. After all, Excel supports a large number of columns, a practically limitless number of rows, auto-filtering and sorting. So what’s wrong with Excel as a database? Here are 10 shortfalls to get the conversation started:

1) It’s cumbersome to store elemental data that might have more than one value per row. For example, let’s say you are using Excel to keep track of applicants for a sales position. You want to keep track of each applicant’s phone number. Most people have two or three phones now. How do you organize that in Excel?

2) It’s way too hard to create a pick list and use that pick list to populate cells. Maybe you want a column called stage in your applicant tracking system – Resume Received;Phone Screen;Interview;Extend Offer; etc. This is possible in Excel, but it’s unbelievably hard. Excel’s help describes how to do this in 9 steps. 3 of the steps are so hard, they hyperlink to another help page.

3) It’s not very visual. Just plain, old boring numbers and text. When I define a range as a date range, why doesn’t Excel embed a calendar control so I can pick a date from the calendar? When I try to insert a photo, why does it feel like it overlays my entire spreadsheet instead of inserting the picture into a cell? Why can’t I simply say that I want all the cells in column to have a checkbox?

4) It’s entombed on my PC. Yes, I can email to you. But now we each have separate copies. What if you update yours and I update mine? How do we reconcile those changes?

5) It’s not multi-user. What if you and I want to work on the database together at the same time?

6) I can’t create meaningful queries. What if I’m a VC and I want to construct a query like "Show me all startups who’ve been into the office for a meeting, were founded less than 12 months ago, are in Seattle and are not yet VC backed." If you have 20 or 30 rows in your Excel database, you can just eyeball it. But what if your deal pipeline tracker has 400 or 500 rows? How do you do that query in Excel (the answer is you don’t. It’s amazing how many VCs I know who are building this pipeline management system in house).

7) I can’t easily save and load multiple views of the same data. What if I have a list of 5,000 sales leads and I want to save some predefined views:

7.1) Leads rated "A" and not contacted in the last 45 days

7.2) Leads in the northwest (southwest, northeast, southeast)

7.3) Leads with an opportunity size > $50,000 and a probability of close > "Good"

7.4) Leads where stage changed to "Lost" within the last 30 days

7.5) Leads where stage equals "New" and Date Created is less than 7 days and source is "website" How do you save these views without bifurcating the raw data?

8) I can’t easily let someone casually subscribe to updates. If I’m the sales manager, wouldn’t I want to subscribe (via email or RSS) to the view in 7.4 above? Wouldn’t I want to know that as it happens? How do you do that in Excel?

9) What if I want a data entry form on my website to insert rows into my database in Excel? How do I do that, especially when my Excel database is entombed on my PC and my PC is turned off?

10) How do I relate two Excel spreadsheets to each other? If I’m trying to create a project list and I want to keep track of which tasks are assigned to which people resources, shouldn’t I be able to embed part of my people sheet into my project sheet? Of course you should, but making that happen in Excel is incredibly hard.

What we’re building at blist addresses all 10 of these Excel pain points very nicely. It’s as familiar as Excel but designed to be a collaborative, visual database. It’s the world’s easiest database. Have you tested the limits of Excel as a database? We’d love to hear your frustrations and encourage you to sign up for our beta.