Tuesday, January 26, 2010

Content Management System Advice?

Dear Lazyweb,

If you've not seen the OpenGamma website yet, you'll note that it could best be described as a "holding page." It says that we exist and are hiring, but not a whole heck of a lot more.

We're currently writing content for a Real Web Site where, amongst other things, we'll actually say what is that we're doing. For that, we need some way to manage content.

Our current four contenders is:

Confluence
We like Confluence as a wiki, and are using it for our internal wiki as well as the Fudge Messaging web site. Other people we know use it as their primary web site management platform. Should we follow them?
WordPress
Not just a blogging system, but a whole content framework! What's not to love! Aside from the performance of course, but just bung more VMs at it and we'll be fine.
Movable Type
Movable Type differs from WordPress in one primary way that we can see: it's primarily static in nature, which we like as it simplifies the hosting and performance quite a bit. Should we roll that out?
Drupal
Personally I've never actually used it in any way (unlike everything else above), but there are lots of very happy users.

We're trying to figure out which one we're going to roll with, because much will then guide our choice of the person/people who actually do the web site generation for us (we're financial technologists, not web technologists, and we're not stupid enough to try to do it ourselves).

With that in mind, Internet Flamewar/Fanboi War ON.

Love,
Kirk

Sunday, January 03, 2010

Chris Dixon's Startup Requirements: My Perspective

I like Chris Dixon. I've never met him, though I hope to, but his writing across Twitter, his Tumblr log and his blog are so evocative of his personality that I feel as though I know a few things about him already. Okay, enough of the fellow-startup-blogger-gushing.

Onto the posting.

Some of these are right on. Some of them aren't. Some of them are culturally relative. I wanted to pick out a few of them.

Stuff Chris Says You Need

Beer on Fridays
Come to London. We have good pubs. Everywhere. Beer everyday.

In fact, Thursday Is The New Friday here in London. So many people get out of town for the weekend we seldom go out together on Friday, because that's really intruding on Family/Friends/Personal Time (keep reading for that).

So in summary: Beer Good; Beer Not Only For Friday.

Proximity to Public Transportation
Again, come to London. Yep, our transport system largely sucks. But it sucks in the same way that the NHS "sucks", in that it transports more people more miles every day than virtually any other system in the world.

Nobody would even think to have a startup in London without being close to public transport, although Shoreditch is pretty much the worst Zone-1 location I could think of, and that's where most startups have located. C'est la vie.

Proximity to Park
This is where we kick ass over Manhattan. Y'all have like 2 parks. We have parks on virtually every other corner it seems. Almost no matter where you are, there's a park right around the corner. Sometimes it's big, sometimes it's small, but you can't really go a half mile radius without seeing a tree the way you can in Manhattan.
Mac laptops with second monitors
I like this idea, and when I saw the Cloudera offices in person, they had this policy. OpenGamma is at the "employees choose what they want" stage, so I'd say that from our perspective, if you're not doing a pure web startup, the better phrasing here is "whatever computers are necessary for developers to succeed." I prefer to let them decide that [1]. The key takeaway here to me is "don't have stupid Corporate policies regarding computers; focus on nonstop productivity."
Health care plans for everyone
OpenGamma is in London. We have the NHS. We love it. By virtue of merely residing in the United Kingdom of Great Britain and Northern Ireland, we don't ever have prospects saying "I'd come to work for you, but I'm worried about health care and COBRA and blah blah blah." Every single startup in the US should be pushing for a single-payer system.

Stuff Chris Says You Don't Need

Fancy (Aeron) chairs
Okay, lemme get on my high-horse here. Ergonomics matters. A lot. If you lose 2 days per quarter due to someone having back or shoulder pain, you're net negative on the cost of the chairs.

Don't get me wrong, I completely understand where Chris is coming from where the Aeron is, in essence, the very symbol of DotCom excess. I get it. But saying "buy the cheapest chairs you can" is completely counterproductive. Aerons have actually come down in price (and you can get them second-hand and reconditioned for pretty competitive prices against second-tier new chairs), so you're looking at a price that if you search out a new chair significantly cheaper, you're basically buying something from Office Depot that's going to hurt everybody's backs.

Don't go crazy on the chair front, but don't just say "good chairs were a sign of DotCom excess and therefore you shouldn't have them at all." I actually bought an Aeron for home; I don't expect that my employees or I are going to work on something worse than I'd be willing to work on for my home-time hacking. Will OpenGamma get Aerons? Maybe. Will we get the cheapest chairs on the market to show how hard/31337 we are? No.

Vacation policy
I completely agree that you shouldn't track it, but at least here in the UK your employment contract will stipulate a minimum holiday policy. We don't currently track it; we trust people not to abuse it. At some point we'll grow to the point where that doesn't work anymore, as it will at every startup.

But don't excuse that with saying "our Vacation Policy is that nobody should take one." That's short-sighted and stupid. Startups are a marathon, not a sprint, and nobody can maintain a massive long-term effort without taking time off to rejuvinate. You pressure people to never take proper time off and you'll end up with zombies who aren't functioning at 100%. And I at least would much rather have people at 100% for 90% of the time [2] than tapering down to 70% for 95% of the time. Because I can do math [3].

Business cards
I thought this too. But OpenGamma sells into a vertical, and we know we're going to be an enterprise sale. Tried to postpone it as long as possible, but if you're not consumer and need an enterprise presence you actually have to do this and stationary and the rest of the things that make you seem more than a few guys and a serviced office. It sucks, but you have to suck it up.
Phone system
See "Business cards." Plus, I would never expect an employee to have their personal mobile number as their work number. See "Vacation policy" and switching off: you work 100% when you're at work; when you leave, it's family/personal time.

I'd be tempted to try an experiment where we all have company-provided mobile phones, but here in the UK thanks to Caller Party Pays you can tell instantly if you're calling a mobile phone just based on the number. It doesn't seem professional. So if I have to setup a whole call forwarding system, I may as well setup a VoIP system.

Central air conditioning
You ever tried to work in an office in London (or Manhattan for that matter) in August with a pretty high concentration of workstations and 30" monitors? Windows opening doesn't help when all air is stagnant, high humidity, and hot.
Update 5 minutes after posting. Chris was originally talking about the types of systems where the building controls your A/C and you don't have per-tenant control. Now I agree with him 100%. You need A/C. You also need 24/7 control over it to the point of individual zones in your offices.
Carpeting
OpenGamma's moving to a permanent office shortly. It has hardwood floors. We asked them to put in carpeting. Because we care about people having the ability to work quietly, and hardwood floors and open plan offices don't work well to minimize noise. Carpeting is great for sound reduction, which is critical to allow people to work effectively in an open-plan environment. That and monstrous headphones.

Conclusion

Chris, you rock for giving me a good excuse to blog about a whole bunch of small matters that I agree are important to startups (it's just that my list is somewhat different to yours).

Next time you're in London, let me buy you a non-Friday beer. Next time I'm in NYC, let me buy you a Friday beer.

Footnotes

[0]: Yep, I used the dl tag. Bringing it back old-skool, yo. werd
[1]: Interestingly, we offered all employees the choice. 2/3 of current OpenGamma employees are running Linux on the desktop for development, even when offered the choice of a Mac Laptop or Mac Pro. 1 runs a Mac Pro, 1 runs Windows 7. Of the 3 company owned laptops, 2 run OS X and one runs Linux.
[2]: Yep, we get 24 days plus public holidays here at OpenGamma. We're typical of London.
[3]: In that I can do simple sums. We have a quant team at OpenGamma because I can't even fathom the mathematics necessary to drive our system. Have I mentioned that I'm the only founder without a PhD? Yeah....

Thursday, December 24, 2009

Confluence, iSCSI, NetApp, Flexiscale, Fail

We've been hosting the FudgeMsg website using Confluence (and mad props for the free Open Source license by the way!) on a VM hosted by Flexiscale. We chose Flexiscale for the following reasons:
  • Confluence is ridiculously tricky to cluster, meaning that you can't benefit from the scale-out capabilities of the Amazon EC2 model. (Edit 2009-12-24 - We're not attempting to cluster it; this statement is to indicate that because it's so tough to cluster, we're not trying to. Confluence is thinking we might be, and crashing as a result).
  • Getting your AMI+EBS+ElasticIP for such a single-point vendor app is very difficult and time consuming, again meaning that the Amazon EC2 model isn't ideal.
  • We didn't want to go for dedicated hardware for a low-volume application stack.
  • We don't have a stable enough internet connection to host the application stack ourselves.
We thought we were pretty darn clever to be honest, but then we noticed that things started going wrong. In particular, we started getting this error a lot:


We were running a relatively complicated Java setup (jsvc to run as chrooted user, on Tomcat, with multiple web applications running), so we thought we had done something wrong. After all, the first rule in software engineering is always, always, assume you have caused the break.

We were wrong.

What we've since found out is that the entire Flexiscale model is that your VMs have effectively no local storage whatsoever, and everything is iSCSI hosted off of a NetApp cluster. That means that your storage is fully persistent, and survives migrations of your VMs across physical hardware. Which is a great concept when it works.

Except that the Flexiscale NetApp cluster is borked. Essentially, sporadically the iSCSI services will completely shut down. Sometimes for a second, sometimes for 4 hours. Your processes will still be running, but if they attempt to hit disk for any reason, they'll hang and ultimately timeout. Your processes are still running, but they can't talk to disk.

In the case of Confluence, which was actually trying to talk to PostgreSQL, which itself was trying to talk to disk, Confluence detects the complete timeout hang of PostgreSQL as a cluster violation, and puts itself into crash mode.

You want to know the best part of this? When you're in this state, there's nothing you can do. You can't SSH into the VM, because it can't read the password file to let you in. The Flexiscale tools won't even let you hard bounce the machine. And they won't tell you when it's back up directly, so you just have to keep trying until you can finally get into the VM, to restart your servlet container.

This has caused no fewer than 20 instances where Confluence has died for us, sometimes lasting hours until we can actually recover the VM, and twice now in 2 days. It makes us look like morans who can't even run Confluence, much less guide development of a message encoding system.

So until we manage to get off of Flexiscale (haha, can't even get in to back up the data at the moment), if you see that error when going to the Fudge Messaging website, now you'll know why.

There are two morals of the story:

Wednesday, December 23, 2009

2009 Predictions Revisited

As promised, I'm coming back to revisit my predictions for 2009 to see how I've done. As predicted by virtue of my fuzziness, I was mostly right on most subjects. Let's go into particulars!

Messaging Breaking Out
I think I did pretty well there. We've still not got a final AMQP 1.0, but just following Twitter and blogs I'm seeing a lot more people, particularly from the non-financial world, starting to use messaging in their applications.

Cloud Becoming Less Buzzy
Complete strike-out here. The same people arguing amongst themselves over what is "cloud" is still going on. That being said, the use of utility computing (as I prefer to call it) is on the rise, and Amazon has come up with so many innovations in the space that it's hard to keep track.

Java Stagnating
Mixed bag on this one I have to say. Java has definitely stagnated, and we still don't have a Java 7. That being said, it looks like the delayed Java 7 may actually give us the chance to see JSR-310 and closures coming into the language, which would be a very positive development.

Java stagnating leads nicely into my next subject (yes, I'm going out of order now):

Non-Traditional Languages Breaking Out
I think I hit this one right on the head. The stagnation of Java, and prominent proponents of systems like Scala and Groovy, are seeing people being more willing than ever to consider these languages the "next Java". Scala in particular has gone from an interesting programming language to one which is seeing mass adoption in enterprises and in web shops.

C# Over-Expanding
To be honest, I have no idea how I did here. I've found myself completely and utterly outside of the C# ecosystem, so I'll have to leave it to one of my faithful readers to fill me in on how I did here.

Social Networking Losing Money
Yep, I failed here. Twitter's probably profitable, Facebook is almost certainly gearing up for an IPO. I was completely wrong here.

But it's not just the social networks themselves, social gaming has gone from an interesting idea to one that makes lots of money, indicating that the space of social networking has started to turn profitable not just for network providers, but also for network ecosystem partners.

Sun Radically Restructuring
I think I can say I was right here, in that they're radically restructuring themselves into Snoracle.

Next year's predictions on the way!

Monday, December 14, 2009

My Open Letter to the European Competition Commissioner

Monty urged me to help save MySQL. I couldn't possibly refuse such an offer.
Dear Competition Commissioner:

I am the Chief Executive and Technology Officer for OpenGamma, a financial technology startup located in the United Kingdom. I am writing to urge you to immediately and unconditionally approve the merger of Oracle and Sun.

I have a long standing history with both the Open Source and Database communities, having worked for a number of database startups in the United States of America, as well as working at early-stage companies making use and refining a number of Open Source technologies. I also have experience working at Oracle during a summer internship while I was attending the University of California at Berkeley.

Furthermore, in my more recent career as a consumer (rather than producer) of database technologies, I have setup and managed numerous, large MySQL installations, including one with more than 10 nodes and 150GB of active data (and several terabytes of archive data) in the financial services industry. I have also been a customer of Oracle's database technology for systems even larger.

In my mind, there is no logical reason to reject this merger based on considerations for the MySQL technology.

First of all, as a consumer of database technologies, I can tell you that Oracle and MySQL simply do not compete in the marketplace. While customers have replaced Oracle with MySQL, the applications based on Oracle that were ported to MySQL were never good candidates for Oracle and would have been ported to another database engine in due course as Oracle moves to the highest end of the market. Customers have numerous options for porting their applications off of Oracle onto a lower-cost database engine; MySQL simply has the most brand recognition in this space. Furthermore, MySQL has been used as a pricing lever by Oracle customers rather than an active option for migration.

That implies that Oracle's ownership of MySQL might see a reduction in competition for Oracle's core product, but there is a flourishing Open Source database market these days (which there wasn't when MySQL was originally created): Ingres, Firebird, LucidDB and PostgreSQL are all far more applicable to the Oracle customer base than MySQL is. Even if MySQL development were to come to an immediate halt, this wouldn't harm consumers in a such an extremely competitive environment.

However, the continued uncertainty over the Sun acquisition is potentially far more anticompetitive for consumers of technology as a whole: Sun has a number of competitive products with far greater applicability than MySQL (including their storage, networking, and computer chip technology). Allowing those products to die because Sun ran out of cash during this phase of its life would be extremely and permanently damaging to the overall computer industry inside Europe, and reduce competition significantly. Delaying this merger over the matter of MySQL would result in far greater anticompetitive results to European consumers of computing technology than even the worst case arguments of biased, self-interested advocates in this matter.

Thank you for your time, and once again, I urge you to approve this merger unconditionally and without further delay.

Sincerely Yours,

Kirk Wylie
Chief Executive Officer
OpenGamma

Thursday, December 10, 2009

Document Stores: Please Give Me A Standard API

Although I'm a long-standing RDBMS guy (having worked on Broadbase, Kidar, and Eigenbase/LucidDB [indirectly through Kidar and Broadbase]), I'm quite excited by the emerging document-oriented database movement. While I'm not a pure "SQL is bad and old-economy and you should throw it away" guy, I do think that document stores, like their Hierarchical Database precedents, have their uses in modern architectures. In particular, practical (as opposed to theoretical) aspects of the use of a hierarchical/document model allow for advanced scalability and performance optimizations to be made for modern scale-out architectures.

That being said, even though we're at early stages, I think the major proponents of the technique need to learn from the RDBMS guys in one important aspect: unified APIs are key to widescale adoption.

If I'm writing an application that's going to be backed by a relational database, if I'm in a sensible programming language, I've got a standard API that I can code against: JDBC, ODBC, ADO.NET, et. al. It doesn't shield me entirely from differences in the underlying database implementation (or else there would be no opportunities for product differentiation), but it makes those differences minimal and relatively easy for a software developer to abstract.

Ditto for message oriented middleware: I can use JMS at the code layer, or AMQP at the network layer (and thus at the code layer as well). While different MOM implementations have underlying differences, which are particularly obvious if I want to push the technology to its limits, the product-specific differences are noticeable in the breach rather than in the general.

This isn't the case right now for document stores. I know that MongoDB and Riak and CouchDB and SDB and others (which I'm sure commenters will point out below) are pretty darn similar in their functionality. I know that the conceptual models are relatively similar. I know this logically. But I still have to do custom code for each one for my own application.

With multiple implementations out there, and with users (e.g. me) looking at the different systems and seeing them logically similar, it appears that it's probably time for the teams to start working together and come up with a code-level API that I can code against, much like JDBC or JMS. While this might seem like early stages for such an effort, trust me, it'll greatly lead to increased adoption because the perceived costs of evaluating different implementations will be greatly reduced.

It doesn't mean that you can't differentiate; it doesn't mean that you can't be superior or inferior to other implementations. But it does mean that I, as a consumer of these systems, can more easily support multiple implementations. And if I can do that, I'm more likely to move to one in the first place.

Thursday, November 26, 2009

Giving Thanks 2009

I wrote this on a plane over the Atlantic heading to Chicago to visit my family for Thanksgiving, followed by a trip to San Francisco (my spiritual, if not familial, home). Maybe it's the maudlin sentiments from watching Julie and Julia, but I realized that I've got a lot to be thankful for this year.

The last time I was coming into Chicago was on a flight from San Francisco, all of 6 hours after I had found out I didn't have a job to come home to. It wasn't a particularly easy trip for me, and it was a pretty bittersweet trip to see my family not really knowing what I was going to do when I returned back to the UK (other than show up to be formally made redundant). Really, I didn't feel like I had a whole heck of a lot to be thankful for this time last year.

This year, I feel like things are completely different.

When I got back to London I immediately set about taking the idea which was OpenGamma and converting it to a Real Company. I pulled in two amazing cofounders, we started doing formal market research, refined the business model and strategy, and started working with potential funding sources. As I've mentioned, we closed a Series A round of investment, have started building the system that was little more than an idea and prototypes, and are pushing as hard as we can to make this a successful company.

It wasn't clear this time last year that it would happen, and a lot could have gone wrong along the way (more than actually did). I'm in a particularly rant-free mood, so let me give some thanks here.

First of all, I want to thank Jim and Elaine for joining me on the OpenGamma journey. Startups really are about founders, and I want to thank Jim and Elaine for trusting me when OpenGamma was nothing but my late-night emails and wildly-gesticulating concepts outside The Audley. You guys took a leap of faith and there's no way that we'd be where we are without all three of us working well together.

Second, I want to thank everybody who helped us pre-incorporation. We talked to a lot of people, and bounced a lot of different ideas off a lot of different people. Without people spending the time to talk to a bunch of crazy guys looking to disrupt financial technology, we never would have come down with a vision capable of being executed into a company. You guys spent time with us when you didn't need to, and when there wasn't any clear payoff to you. Thank you for spending the time and helping us refine our ideas.

I want to thank my family for standing by me and having faith in me and what we were doing. It hasn't been an easy year for all of you guys, but you've been rocks when I've been wavering and had doubts and went through difficult times. It's tough for me to keep in touch from 5,000 miles and 6 time zones, and I don't see my nieces and nephews anywhere near as much as I should do, but thanks for being there for me.

For the people at Big Bank B who took yet another leap of faith, thanks for not only giving me the opportunity to work for you while I was cementing OpenGamma, but for supporting me while I was doing it. I know I wasn't the typical candidate you were looking for, and I only hope that despite my abrasive nature and mercurial temperament I managed to perform at the level you were hoping. Your trust in bringing me in for a contract that gave me the freedom to actually launch OpenGamma hasn't been forgotten.

For my investors and board members, thanks for committing your time, energy, intellect, and capital in OpenGamma. Together, I think we'll create a fantastic business, and I thank you for joining Jim, Elaine and I on the journey.

Finally, I want to thank my husband. I know I've been all over the place over the past 12 months; I know at times I've been completely impossible to be around. I also know the sacrifices you're making giving up your partner to that harshest of mistresses, the early stage startup. But at the most critical time, when OpenGamma was one phone call from not happening, you were there for me. Sometimes I might seem like I don't appreciate you as much as I do, but trust me, I do. Thank you most of all for just being there. Without you, I doubt I would have had anything to be thankful for over the last year.

So yeah, I guess I do have a lot to be thankful for this year.

For all my USAmerican readers, eat some extra Thanksgiving dinner for me. For all my non-USAmerican readers, get yourself some turkey.

And don't worry, I'll be back to my usual abrasive, obnoxious, sarcastic, snarky, angry, ranty self soon enough.