Blogging about technology, government, and life, for fun and (no) profit.

The Future of Software: Venture Capitalists vs. Scientists

Today was our last day here in San Francisco. Tomorrow morning, we’re getting on a shuttle down to Palo Alto/Mountain View and the GooglePlex!

This morning, we met with Ann Winblad, of Hummer Winblad Venture Partners. (Ann’s VC firm was one of the early funders of Brad’s startup, NetPerceptions). Ann is an incredibly engaging speaker, and she gave us a great intro to the world of venture capital, and a lot of description of where she thinks the world of commercial software development is going.

One of Ann’s main points is that software development is no longer a task where an isolated startup or other company will write a product from the ground up. Instead, software development comes down to connecting existing components together, leveraging existing corpora of data or databases of prepackaged software components (e.g. Maven).

I found myself thinking about this a lot, and I’m still not sure if I totally agree. It’s very true that it’s easy to build cool pieces of software simply by leveraging other existing software. For example, I’m working on a web application that’s a prettier, friendlier front end to the Calibre ebook management software. I’m (obviously) using the interface exposed by Calibre to get book metadata. I’m using Bootstrap to lay out the interface (a designer I am not!). I’m using a framework called Angular.js to handle displaying data and updating it easily.

On the other hand, doing this still requires a fair amount of “glue” code. I have to design a user flow. I have to make sure the right data is shown at the right time. Even with Bootstrap, I have to make at least some effort to make sure it looks decent.

Another perspective on this came from Phillip Alvelda, a serial entrepreneur and scientist, whom we also met with today. Phillip’s counterpoint when I mentioned what Ann had talked about was that I should take anything said by a venture capitalist with a grain of salt. They aim to find investments that are low risk and have a very high potential payoff. Designing software that builds on already existing software takes less time and programmer skill (i.e. lower risk) and consequently has a better chance of “getting big.”

Phillip’s point is that while the type of development Ann favored is a quick way to make money, it’s not a good way to truly innovate. Things that require scientific research, or hardware investment, or both, are risky and expensive. While they often have a chance at a huge payoff, venture capitalists are very hesitant to fund such ventures. (Phillip gave the specific example of Elon Musk’s now-abandoned hyperloop idea: it had the potential to be extremely innovative, but was expensive and very risky).

I’m also taking what Phillip said about VCs (and Ann Winblad specifically) with a small grain of salt: he mentioned that he’s asked Hummer Winblad for investment for three different ventures, and has been turned down all three times…

Bizo, MoovWeb, and Sara Ellefsen

Today was a really long day! We visited three groups, all doing very different things.

This morning, we met with a company called Bizo. Bizo does B2B (business to business) Internet marketing. Their customers are other businesses who want to run advertising campaigns on the Internet. They had some interesting perspectives on their business, which is in many ways bigger than a startup but still a pretty small company, but the most interesting part of the conversation for me was in the interview and career advice they had near the end of our visit.

They emphasized that when they interview people, one of their primary concerns (beyond a minimum technical bar) is that the candidate matches their culture. I heard over and over, “is this [candidate] someone I would enjoy working with?” I couldn’t help but draw comparisons to the way that Matt at VMWare talked about hiring. He was much more concerned about technical ability and problem solving; he said several times that he wanted to work with “the smartest people in the world.”

Brad (our professor) had an interesting perspective on that: the people at Bizo are doing interesting things, but they aren’t doing revolutionary or innovative computer science. They’re just “pushing bits around”. On the other hand, VMWare is obviously tackling some very difficult engineering problems. The ablilty of the candidate is much more important than their “culture fit.”

We met with some developers from a company called MoovWeb for lunch. MoovWeb’s service is one that allows businesses that have an existing complicated desktop web site to convert it to a mobile-friendly version with much less effort than simply re-writing the whole site. It was fun to get a chance to have some informal and in-depth technical discussions with the developers. They’re doing some cool stuff with dynamically regenerating sites using a server side architecture (written in Go, no less!)

The last meeting of the day was with a personal finance planner, Sara Ellefsen. Sara works with mostly individuals and families to help them plan and manage their investment portfolio. As a broke college student, it’s difficult for me to think about investing and financial planning, but she had some really good advice for how to approach saving and investing, and it was intriguing to see her approach to risk management.

Sara is certainly a (successful) entrepreneur, but of a very different philosophy than many of the startups we’ve been meeting with. She doesn’t have any employees, and isn’t particularly interested in expanding. She likes what she does, and doesn’t have grand visions of making millions and starting a global empire.

Pinterest and Strava

Today, day 9, we visited Pinterest and Strava.

The first visit was to the Pinterest headquarters in the Soma neighborhood of San Francisco. (If you aren’t familiar with Pinterest, it’s a “social pinning” site where users can pin pictures, links, and notes about stuff that interests them on virtual bulletin boards.)

We had a chance to meet with John and Dan, two data scientists at Pinterest. As data scientists, they’re responsible for analyzing metrics related to the service that Pinterest provides, and making sure that issues are resolved. On a technical basis, that means using things like the R programming language, the Hadoop database engine, and various other analytic tools to measure metrics from user engagement to site reliability to demographic information.

One of the most interesting challenges that Pinterest is facing is how to expand its user base from their historically predominate demographic: American women. They want to change the gender balance to include more men, as well as expanding to more international users.

One of the components of this that Dan and John talked about is that in many ways, they don’t really understand exactly why Pinterest is so popular (among women), and so it’s very difficult to figure out how to attract more male users. Is it because there isn’t enough content that’s interesting to a male audience, or is the content there but there just isn’t a critical mass of male users?

The other (unrelated) aspect of the Pinterest visit that struck me was their open office layout. Every employee is assigned a small desk as their home. All the desks are out in the open and very close to each other. What this means, especially for programmers who need quiet to concentrate, is that they have to find other places to get real work done. I’m skeptical of this approach; it might make collaboration easier occasionally, but as a programmer myself, I think that it would be a death knell for my productivity.

The other company we visited is Strava. Strava makes a service (including a web app and mobile apps for iOS and Android) that allows athletes to track their runs or bike rides. Strava has a social aspect that allows users to compete with themselves and with other users over common routes.

We met with Michael, a co-founder, just-stepped-down CEO, and current president of the board of directors. Michael is an excellent speaker (he used to be a professor…go figure!) and is clearly passionate about entrepreneurship. He gave a lot of advice, but the piece that resonated most with me was what he said about going to business school (I’m sort of applying this to grad school too). He said that if you’re interested in starting a company, whatever you do, don’t get an MBA. If you do, you’ll gain skills and a piece of paper that will make you very desireable to many established companies. More importantly, it will most likely put you in the significant debt. When you graduate with the degree and the debt, going to work for a company that will pay you a safe salary will seem very appealing (and you will be recruited heavily).

Instead, you should just start your company as soon as possible. You can get advice from other people on most aspects, and avoiding the debt incurred in going to business school (or grad school) allows you a lot more options in pursuing your own company.

Sqwiggle and MSLGroup

Today, we had our first meetings here in sunny San Francisco. (Seriously, after not seeing the sun for the entire five days in Seattle, it feels like a religious experience to go out for a bike ride in shorts!)

The first group we visited this morning was the PR firm MSL Group, where we met with Bryan Scanlon. Before going in to this meeting, I knew almost nothing about what a public relations firm really does (besides, you know, public relations).

MSL Group is in the top five global PR firms, so they obviously have some pretty big clients. The biggest client that Bryan works with is PayPal, so it was pretty interesting to get a glimpse into what he and the rest of the MSL Group staff do.

One of the things that stood out to me is when someone asked Bryan what kinds of stuff he does when he starts a new campaign or signs a new client. He said that coming up with cool ideas and PR stunts is relatively easy. The hard part is figuring out what effect a particular action has on the customer. Does it help their brand? Does it (accidentally) portray them in a poor light? Does it do anything at all?

Bryan clearly loves his job, and it really came out in his enthusiasm in talking to us. He says that as a PR exec, he has to really learn to know a customer forward, backwards, everything. He has to completely understand their business, their market, their target audience, their challenges, and their image. What this means is that he gets to do wildly different things all the time, and he is always getting to learn new things. One day, he might be writing a blog post for the PayPal corporate blog, while on another day he could be researching the genealogy services market for

We also met with Eric Bieller, co-founder of Sqwiggle. Sqwiggle is a startup that’s focused on a telepresence solution that’s aimed a businesses that want to support remote workers.

Sqwiggle allows a business to have a “room” that everyone is connected to during the entire day. Each person is represented by a black-and-white still image from their webcam, updated every ten seconds. This provides an at-a-glance check to see if the user is busy, available, etc. From there, it’s a matter of clicking on one or more users in the room to start a quick video chat with them. The aim is to replace the action of stopping by a co-worker’s cubicle or office to ask them a quick question.

I was a little skeptical at first, but after seeing some impromptu demos, I think I’ve been convinced. At a couple of points during our meeting, one of Eric’s co-workers pinged him on Sqwiggle. He just said he was busy (or in one case introduced our group) and moved on. The interaction felt really natural and seamless.

Sqwiggle is doing some pretty sweet stuff technically. Their existing product is based on WebRTC with peer-to-peer connections. That stack supports a call with up to four simultaneous users. (The limitation is bandwidth in a P2P setup – each user has to have a full video stream to every other user). They are working on a federated server model, where they run infrastructure that allows for a conference with more than four users. That system will be based on a Node.js backend.

It was pretty cool to talk with someone as knowledgeable and passionate as Eric. He gave us a lot of really interesting information on the process of forming a tech startup, getting funding from various sources (including AngelList, something I’d read about but didn’t know a whole lot about), and how (not) to hire early employees.

Apparently, Sqwiggle might be open to hiring interns…I might just send them an email!

Today, I saw the future

Today, we spent most of the day on the Microsoft campus in Redmond, Washington (a short bus ride from downtown Seattle).

The first part of the day was a tour of the Microsoft Envisioning Center. The Envisioning Center is a place where Microsoft can demo technologies that they think will become common in the next 5 – 10 years.

They have the Envisioning Center divided up into a few different sections, representing the future workspace (i.e. the corporate experience) and a model domestic home.

Probably the most significant change that Microsoft thinks the future will hold is in the proliferation of interoperable touch screens. Our tour guide demoed several scenarios where content on a phone or tablet could be “thrown” onto a big screen to display to a group or simply to see in a bigger format.

Another cool example was a series of networked digital picture frames scattered throughout the model home. The guide could do things like select a series of photos from a family album and have them rotated throughout the home.

The model kitchen was also really interesting. The kitchen had projectors everywhere, allowing recipes to be projected on the the food preparation counter, cooking times projected directly onto the pans as they heat on the stove, and video conference consulting with professional chefs anywhere in the world on a large wall screen.

Microsoft is also making a big push to put Kinect motion sensors everywhere, so that interaction with digital objects becomes really easy. We saw a demo of a virtual potter’s wheel: a Kinect was used to quickly scan a pottery flower pot and build a digital model of it. Then that digital model could be virtually reshaped simply by moving your hands in front of the sensor, with the effects showing up on screen.

It’s hard to describe everything we saw, but if you want to see some of the stuff in the Envisioning Center, Microsoft has a video showing some of it.

We also got to meet with Neal Leslie, on the Windows Phone Product Evangelization team. His job is to convince developers to write a version of their apps for Windows Phone. Part of the problem that Windows Phone has faced in competing with Apple’s iPhone and phones powered by Google’s Android is that in a lot of cases, people choose their platform based on the available apps. Neal said that until recently, for example, the increasingly popular Instagram was only available on iOS and Android. He was directly involved in the process of convincing Facebook (who own Instagram) to write a version of Instagram for Windows Phone.

The third and final person we met with at Microsoft was Dave Maltz. Dave Maltz works in Microsoft Research as an engineer working to develop networking technologies for the next generation of data centers. He gave us a ton of information on how networks are organized and built at a large scale, as well as regaling us with some great stories about mishaps he’s witnessed.

Visiting Amazon

Today was the first full day of my January-term trip (Entrepreneurship in Silicon Valley) to the West Coast. We’re in Seattle, and this morning we visited Amazon’s headquarters.

We met with a guy named Sam. Sam works in the legal operations department, although he isn’t a lawyer. We spent about an hour talking with him about what he does, what Amazon does, and how Amazon is looking at the future of its various businesses.

I had a chance to ask Sam about the areas that Amazon is most concerned about in near future (~5 years), and he gave me three issues (with a bonus fourth).

Privacy and Data Security

The first was issues of privacy and data security, which is really interesting to me. Amazon obviously has a massive database of user information, including the usual contact and financial information that any e-retailer has, but they also have a vast corpus of information about people’s preferences: what they’ve bought, when they like to buy, what kinds of stuff they would probably consider buying the future.

Sam used the example of the recent Target breach to show how quickly a brand can be damaged by a security issue. Amazon has yet to have a large-scale data leak, but that doesn’t mean that people aren’t trying.


A second major concern that Amazon has about the future is a big one (hehe): antitrust. As Amazon gets bigger and bigger, and has its fingers in more and more pies, they are concerned that federal regulators will start to take notice. Sam didn’t elaborate on what Amazon is doing to mitigate the risk, but it doesn’t take much looking to find lots of examples of the results of past antitrust investigations (from the break-up of Ma Bell in 1982, to the web-browser choice settlements that Microsoft has faced in Europe, or the FTC-blocked attempted acquisition of T-Mobile by AT&T).

Brand Image

Sam also mentioned that brand image was a major concern of Amazon. They specifically don’t want to “be seen as another Walmart.” This really isn’t unique, although he tied it strongly to the issue of data security and privacy: a major breach would be devastating to their brand image.

Labor Relations

The bonus fourth issue is labor relations. The reason I’m saying it’s a bonus issue is that Sam mentioned this issue as one he personally thinks will be an area of concern. (In other words, Jeff Bezos probably wouldn’t mention it). Basically, Amazon has gotten, and continues to get, a lot of flak over its labor practices.

The aspect of this that I know most about is the concerns over how Amazon treats its hourly employees in its fulfillment warehouses. Called “pickers”, these employees have to work very long hours in very physically demanding conditions, often for low pay. This article is an interesting description of some of these issues.

Dynamically Load Content With jQuery

This post is more for my reference than anything else.

I’ve been working on a fairly simple static site, based on Twitter’s Bootstrap framework. I don’t really want to add the complexity of a templating system or anything like that, but as the site has started to grow, maintaining a bunch of static pages has gotten a little unwieldy (yesterday I caught myself copy-pasting the footer div to 6 different files…yuck!)

The solution? Dynamically load content that’s repeated across a lot of pages, using jQuery.

Here’s how I did it (I’ll use the footer as an example):

First, I put the repeated content into a separate HTML file (footer.html).

Then, on each page I want to have this footer in, I put in an empty div in the place I want the footer to be loaded in:

<div id="footer"></div> <!-- footer loaded here -->

At the end of the document, I use a jQuery function to load the content of the footer into the current page:

$(function() {
    async: false

The call to ajaxSetup with the async: false parameter is optional. I put it in there to try and reduce the visual “flicker” that happens when the content is loaded after the rest of the page. There’s still a small delay, but it’s not really noticeable. It’s also probably not necessary for a normal footer, since it’s likely to be “below the fold” anyway.

IdeaVim: Pycharm, Vim-Style

I’ve been using Vi (actually Vim) now for about a year as my primary code-editor. I really don’t like using a mouse when I can help it, so the Vi keyboard-centric philosophy has been a pretty nice change to my workflow. I’m by no means a Vi expert, but for most things I’m quicker doing it in Vi than a more GUI based text editor. (I will still sometimes use GEdit or Sublime if I’m going to be doing a lot of copy-paste work).

However, I’ve kind of missed having an actual IDE. Code completion1 is nice, as is symbol-based code navigation. I doubt I even need to mention how nice an integrated debugger is! I used Jetbrains IntelliJ IDEA as a Java/JavaScript IDE at an internship a year ago, and really fell in love with it. The attention to detail and the level of polish really can’t be matched by any of the open source offerings. Since then, I’ve also used Jetbrains PyCharm for various school projects. PyCharm has the same core and mostly the same interface as IDEA, but with superb Python support baked right in. (PyCharm also has the same JavaScript, HTML, and CSS support that IDEA does, so it’s perfect for web development.)

I just discovered that there is an excellent plugin for PyCharm2 that adds really, really comprehensive Vi-style editing. IdeaVim supports a pretty large subset of Vi commands. In fact, in my (admittedly pretty novice) usage of Vi commands, I have yet to run in to anything I can do in Vi that I can’t in PyCharm with IdeaVim.

Here’s a list of supported features (copied from the docs):

Read on →

Encrypt your email with Mailvelope

During last week we’ve all heard a lot about the previously secret NSA covert surveillance activies. Through the PRISM surveillance program, the NSA has at least some access to a lot of user data from many different Internet services, including Google, Facebook, Microsoft, and others.

In addition to this latest revelation, some already-existing laws have the potential affect the privacy of our Internet communications. For example, the “abandoned email” provision of the Electronic Communications Privacy Act (ECPA) allows the U.S. government to access emails that have not been read in the last 180 days without probable cause and a warrant. This includes previously read emails that may have been archived or otherwise stored, even in a still-active email account.

Obviously, this is a little disconcerting; our Internet communication is less significantly less private that we previously thought.

One of the ways that we can try to protect our privacy is by encrypting email communication. I recently discovered a handy plugin for Google Chrome called Mailvelope. Mailvelope seamlessly integrates with the Gmail web interface to provide an easy way to encrypt and decrypt your emails using the OpenPGP standard. (It also seems to support Yahoo and, although I didn’t try it with those providers).

When you compose an email and then encrypt it with Mailvelope, the text of the email is replaced with the ciphertext. This means that even if someone (cough NSA cough) accesses the email from your Gmail account, all they can see is the encrypted message.

When the recipient recieves the email, they will have to decrypt it to see what you sent them. They can either use the Mailvelope plugin also (if they have it installed) or one of many other 3rd-party programs that support OpenPGP messages.

Here’s how to set up Mailvelope so that you can send and recieve encrypted emails.

Read on →