 Welcome to Computer Science E1. My name is David Malin. This is lecture 12, Transformous LLC. Well, as you can see here, I'm not the only one talking tonight, and my words will be brief, as I'm here to introduce a gentleman by the name of Omri Trob, who is a dear friend of mine and long ago colleague. In fact, I made the mistake several years ago of working for nothing more than a smoothie for Omri. And this is a story he likes to tell quite often, so I thought I would beat him to the punch this year. The year was 1998 or 1999, and he and two of my other dear friends were starting their own company, literally out of the proverbial dorm room and then later a proverbial apartment. I offered, out of the kindness of my heart, as I like to tell it, to write a small component of the software that they were developing, specifically the installer that would install their software on millions of computers. Well, at the time, they were rather strapped for cash to the extent that among the big business decisions of the time back then were whether or not to buy an air conditioner for the apartment in which they were to be working that summer. Well, I offered this to work for nothing more than a strawberry banana smoothie from the wrap. It was delicious, but it was about all I got out of what turned out to be a wonderful experience and company for them, Transformus LLC. So if you would welcome with me Mr. Omri Trob. Thanks, Dave. Thanks for that introduction. I've been doing this with Dave for a number of years now, and every year I come in and some new gadget appears. So guys are cutting edge of technology here. I hear podcasting is on this semester. I'm wearing not one by two microphones. It's great. I never understood Dave's fascination with gadgets. I knew that he was in trouble when he started his graduate degree by settling into his office and then installing his own email server and a firewall right in the office. He's always had a love for gadgets and technology and I think he does a great job with this class. So I'm here to tell you a little bit about the crazy days of the Internet bubble and tell you a little bit about my experience at that time starting a company that never made it quite so big, but it was a small scale success story and some of the fun I had doing that. Some of the things I've been doing since and so I'll be kind of talking in two different parts. One is about the story and back in 97, 98 what it was like. And some is about my more recent experience. I work now at Liquid Machines. It's a startup company out of Wolfam and I'll talk a little bit about what is it like to develop software for business and some of the things that I've learned since the crazy days of me and a couple of friends trying to start a company of the dorm room. What I've learned about the real world and the real process of developing software and what a modern day startup is like. Not quite like back in 97, 98. So where were we? This is September 97. I just graduated the year before from Harvard where I met two friends. I met Carl Chogrin who is kind of the visionary among us and our third partner is Alex Floyd. Carl was a junior at the time and undergraduate and Alex had just started as a freshman at Harvard. So I was the oldest although not by much. I was just starting my graduate career. I had decided to stay at Harvard and start a PhD in computer science. Well that PhD I never felt quite finished but that's kind of jumping ahead to the end of that story. So Carl, Alex and I got together very early on in that year in September. I remember because Alex was sort of busy doing what all freshmen do in their first week which is go to all these little plant parties, talent shows. He had the ice cream social. If you ever get to know Alex it's not quite his scene. So he was happy when Carl pulled us together with a couple of other people and said look I've had this summer job and I'm actually quite excited about starting this business around this idea. Now Carl, I would never have come up to that conclusion. As much as I love technology I was going to get a PhD in computer science. My first inclination of whoa this is a cool technology was not let's start a company but Carl was this kind of person. I started programming at age five or something. In high school this is back in the mid-90s he was running a bulletin board service out of his bedroom. So he had like 20 phone lines going into his bedroom. I don't know what his parents thought. And I was writing this like dial-up service that he sold at the end of the year for some local phone company for apparently enough money to finance his first year of college. So that's kind of his early success stories since continued to be successful of course and he's now actually working at Google as does Alex, my other partner. Anyway so Carl is obviously the entrepreneur among us, gets us together and says I have this idea. So I'm telling you a little bit about the idea and what he came with. He was working at the summer for a local company that was a bank, an investment bank that had a service whereby you can trade stocks online. So everybody was trading stocks online then. I remember I got into investing. I think actually after meeting Carl and I was buying all these tech stocks. I had like Amazon and IBM and Microsoft and for a while there my portfolio was doubling every two months and I thought wow I could do this. I could really trade. And nowadays in my portfolio it doesn't look like that and I actually stopped trading altogether. It's a disaster. So it went up and then of course that portfolio went back down. Anyway those were the days. Tech stocks were like going through the roof. Everybody was really excited. It seems like if you're not starting a business you're stupid. In fact my girlfriend at the time when she heard that we're going to start a business she's sort of mad about it. She's like what do you three kids? I mean she's not 10 years old or anything. You three kids you think you're going to start a company and you're going to be successful. But it seemed like hey everybody's doing it. How can we miss out on it? Anyway Carl was working at this bank. That's how I got into it. Trading online. The bank had the idea. Look not everybody wants to log on to this and this website. Why not have the ability to sell our services, our trading services to any other bank and let them customize the way the web interface feels so that it can be the Bank of America online trading site or probably a smaller bank like Bank of Harvard Square or something. So to be able to customize that web interface and have another bank offer that services if they were there. So that kind of exposed a problem at the time with the flexibility with which people were building websites. So you've learned about HTML and some CSS and some of these technologies. The way people are writing HTML then is the content itself, the look of the page, not the look but the services that the web page was offering whether it was the trading or the stock research were really embedded deeply with the presentation of that page. So those tags, whether the fonts or the colors were right mixed in with the actual content and to actually separate them was very complicated because it was kind of one big mess of software that was both producing the data, taking the feeds off of those stock tickers and merging them with the presentation. It was very difficult to separate. So Carl's project for the summer was to come up with kind of an early prototype using a new technology for how to separate the content, the stock information, the account information, the trading form from the presentation in order to be able to package it to other customers. And at the time XML and XSL that I'll talk about were just kind of new on the scene. XML was a little bit more prominent. I think you guys talked a little bit about XML. People love the idea of being able to not only have data but have metadata tags that describe the data, so-called self-describing data. So people actually could look at the data and say, oh, I understand. This is information about individual stock. Here's the price. Here's the last close price, et cetera, et cetera, et cetera. So XML was starting to gain prominence. It was pretty clear that it was going to be something. Microsoft was backing at IBM, all the big players. But then there was this other standard XSL, the extensible style sheet language that was new on the scene. So XML had already been ratified as a W3C, World Wide Web Consortium standard, while XSL was kind of very early on in the specification and standardization process. So Carl's idea was, hey, XSL is this new way that was going to be used to write style sheets in a way that was much more flexible than CSS, the cascading style sheets. And at the time he thought, and other people thought, that XSL may be the key to this new separation of content from presentation. The way people were going to write their dynamic websites was to have all the data feed in XML and have all the presentation expressed in XSL. And at the time, that summer, he was typing XSL in Emacs or whatever his favorite editor was at the time and realized just how difficult it was to actually get the syntax right, type all the tag names correctly, and there were no tools for it. So there are mature tools to build websites, to deal with HTML. There was Microsoft front page, there was the home site back there. Our layer had cold fusion and all these pretty sophisticated editors and tools for working with HTML, but nothing for XSL because it was so new. Anyway, his idea to us is let's write an XSL editor. Let's write something that's really aimed at developers who are playing with this new technology and obviously the business idea was let's be the first to do this, right? And so that's kind of the challenge that he gave and that Alex and I were smart or foolish or whatever it was to accept. And so we set off the three of us to do this and we were savvy enough to actually incorporate, we formed this little company to do this, but in many ways it was still three young adults just figuring their way the first time through starting a company and making a business. So, of course, the first thing we do is starting to write the product. Now, in hindsight in 1997, the right thing to do if you had an idea was to go raise money, get some venture capitalist VC company to give you $10 million and go hire 15 people and marketing department, but we were kind of the mind that we should have something to show first. So we started working on this product. So, you know, Alex very quickly got out of the ice cream social business and started not paying particularly much attention to his Harvard classes and I was trying to do some research, but really pretty focused on this idea. We did a lot of the work through my grad student office in an old building before Maxwell Dworkin was built if you've been to that part of the world there. So we kind of decided to divide up the tasks. So XML and XSL, what were some of the components that we needed? So obviously we're building a tool, we need some sort of a GUI environment. That's where Alex really shown. He was our UI wizard. I don't know how at the age of 18 master the art of building Windows GUIs which is extremely difficult. It's a program in this ridiculously ancient kind of API that Microsoft has since had three different ways to do that are all different. But at the time it wasn't simple to build a nice-looking snappy Windows UI and so he was great at that. I was sort of the academic in the group having done research as an undergraduate. So I got the task of writing an XSL processor which I'll describe in a moment and Carl got the task of building an XML parser. So what is this all about? Just draw you a very quick diagram. So in XML you may have something like information about a student, right? And a student may have a name, Omri is my name, and an ID number, et cetera, et cetera. So does this syntax seem familiar? Start tags, close tags. Similar to HTML, right? Except that instead of saying table, font, whatever, these are sort of arbitrary tags that you define to describe the data that you have at hand. So maybe this is what information about a student is. And this is the XML. The XSL piece is actually written using XML syntax. You write tags that say, you know, XSL for each. And, you know, you can write some sort of a loop like that to say for each student in your XML file, you know, create, and you can say something like this. You can mix in your file XML HTML, right? So here's an unordered list. And then you can say Li. And then you can say here something that would actually display the name of the student. So you're mixing things that are in XSL, which is the kind of the processing instructions and what you want to do with the data with components that are in HTML which is how to present the data. This is a very high-level overview. So this is the XSL. So the two pieces I was describing, the XML parser. A parser is a piece of code that looks at some sort of a language and teases out the individual elements. So a parser would be able to tell that this construct here says this is the beginning of what looks like a student. So you would have the ability to, through code, say, okay, I understand the student element is starting and then would, for example, parse this as just a text that's embedded inside this element called name, et cetera, et cetera. So Carl was writing this piece to kind of be able to just baseline the processing of this XML. And I was writing this piece that said, okay, I have an XML input file. Now let me run the instructions here like for each student to do something here and let me produce the HTML output, okay? So this was a very basic kind of baseline thing and we quickly discovered a couple of wrinkles. For example, we discovered that Alex was entirely too much of a perfectionist when it comes to the GUI. So he spent actually, that are part of a week, worrying about the following control. We had a big application and we had the window divided into three parts. This is where you saw your XML input. This is where you wrote your XSL processing style sheet and this is where you saw your HTML output. This thing in the middle, this T-like thing, could be used to resize these windows. The problem is in windows, and this is an arcane window, it's okay to be able to resize two windows but there was nothing built in to let you drag this exact joining point of three separate windows and resize it. He spent a week mastering this. So it was beautiful. You grab, you click the mouse here, you drag this around. You didn't see any flickering, it was flawless. After he got that done, he decided the XML is in a hierarchy, right? There's a certain tree-like structure here. Just like there is an HTML where the top level element is HTML and then you have body and then you may have a table and then you may have a table entry, table row, table data, et cetera. So there's a hierarchy and that hierarchy is very naturally expressed in a tree structure. Well, instead of using some sort of a built-in control for a tree, he decided that he had to write this beautiful tree. So if this is what I have on the left there, this would be the student element. It would have this beautifully drawn plus sign that when you expanded it, it would, you know, graphically show you that a student was composed of both a name and an ID. So looking at this graphically as opposed to just the text here of the XML would give you a feel for the structure of the data that you're processing. Well, Ali, I don't know how many weeks he spent on this one, but when you clicked on this plus sign that turned into a minus sign, the idea is that you're expanding the substructure of this element. The graphics there, I mean, it was like he was developing an animation picture. It would like slowly expand this graceful way and, you know, it was really a work of art. The first thing we did after we got bought, which is, you know, jumping way ahead, the guy, the manager, he said, you know, I love your product, but this tree has to go because, you know what, if you have a lot of data, first of all, you get sick of this beautiful, like, slow, orchestrated expansion of the tree, but it just doesn't scale. I mean, you don't have that much space on your screen to see that much data because, you know, you're wasting all of the space just drawing this, you know, beautiful drop shadow rectangle, but it's not good for a lot of data. So that was very difficult for Alex to take. I mean, they had kind of a good relationship after that, and hopefully that was kind of a rocky start for them. Anyway, that was one of the early hurdles. We were all perfectionists, though, and never in that year that it took us to build this product did we actually have any sort of a plan. You know, Carl being kind of the slightly control freak that he is, started using Microsoft Project. Does anyone here use Microsoft Project? This is, you know, this tool to track any sort of project, really. So you come up with tasks, and then you talk about the dependencies of the tasks and what percent of the task have you actually finished on this in this date and who is assigned to which task and you can actually automatically assign people the tasks. Of course, we had three people working on this thing that we had never done before. So he made some attempts to do some sort of project management, and I'll talk a little bit later when I talk about how I've discovered kind of real software gets written. That's an important component that we sort of ignored. So no real planning, right? We did decide that in order to be a respectable software product we had to have some fancy buzzwords for what some of our features were. So one of the things that Stylus, which is the name of this product, did from a, we were slightly worried that it was the name of a printer, and we later found out that it was the name of a car and a suzu stylus I think, but we decided that we're probably okay from a copyright point of view. But one of the things Stylus did was when you type in, for example, it's a good example, when you type in the word table in HTML, right? What are some of the other things you might want to type before you close this element name? What are those called, first of all? Come on, HTML. Table. Attributes, thank you. So table in HTML has attributes. Any element can have attributes. What are some of the particular attributes with, yeah, what else? What's that? It's been a while since I've coded HTML, but some sort of a border, right? I mean, et cetera, et cetera, et cetera. So have you all memorized exactly which attributes go with each HTML element? Right, sure. You know, some people have been doing this, but still it's a lot of typing. So what Stylus did is when you type in the word table, they would automatically have this like beautiful kind of drop down control with all the possible attributes that you could be typing at any point in time. And if you hit the tab, it would complete it. So Microsoft Visual Studio, which is kind of the developer tool, calls this IntelliSense. And so we decided to name our feature Sensex. Carl came up with that one. You know, so we had Sensex and hit all these kind of fancy names for our various features. This is the way before we were writing any kind of marketing copy or brochures. Anyway, so my particular experience with this Excel piece was borderline traumatic because what was happening is this, I don't know if you're familiar with the way specs move through the W3C, but somebody submits it. So Microsoft submitted an initial idea and said, here's a language for processing XML. Let's call it Excel. What do you think? And then they formed it, first of all, they accepted it, and they formed a committee, a working group that included people from, you know, IBM and Adobe and kind of all the big players that said, okay, let's work on the standard together. Of course, once you get enough people in the room, things start changing. So what would happen is I would implement complete support for the latest spec for XSL. And then the next week, they would come up with another spec. And, you know, because this was so early on, it was changing all the time. So there were about three revisions that year, three major revisions that kind of had me back at the drawing board or the keyboard reprogramming a lot of what I had done. So that was sort of the experience of trying to be that first person, not waiting for the spec to be ratified and not changing anymore. I remember it's funny how certain memories kind of stick with you for a long time, but one of the things I was doing that semester was I was auditing a music class at Harvard that was chamber music. Any chamber music fans here? Couple. Good. This was Robert Levin, who's a great professor, the most arrogant man I've ever met. Sorry, this is going online. He's a brilliant guy. I enjoyed his class thoroughly. He'd start every lecture, you know, with a student group, quartet, quintet, demonstrating whatever piece. And he'd talk about it. He's an amazing pianist. He records and performs. He's an extremely engaging lecturer. So I just sit in and audit his class, and Carl was actually taking it. And I remember the day, the morning, that they announced the most complete overall of the XSL spec. He was doing this Brahms quartet, I think, not quintet. Extremely intense piece. And he was talking about, you know, giving him an interpretation of what this is about and he's talking about the existential terror that grips, you know, the artist who's writing this piece. And I was talking to Carl afterwards, and I was thinking, hmm, not a bad word to describe what I'm feeling at the moment based with this rewrite the fifth time. Anyway, we kind of survived and went along rewriting the stuff, struggling with the rest of the pieces. And, you know, finally, about midway through the year, we felt, hey, we have something working. We have something to show. Why don't we release it as kind of an alpha release, not even a beta, to some interested people on the internet and see what they think. The night before we were supposed to release this, we said, hey, why don't we try, you know, still testing. I'll talk about software development, testing is a key part. At my company now we have almost as many testers as we have developers. We kind of forgot about that part. So we said, hey, I can download on the internet an XML version of Midsummer's Night Dream. Okay, so, you know, it was early in the day. It's kind of one of the toy XML things was an annotated version of all the Shakespeare plays. You know, play, name equals Midsummer Night Dream, you know, playwright, author, William Shakespeare, and you go on, you know, act one, act, you know, number one, you know, I'm describing the way the XML is annotating. Scene one, and then it would say speaker, name equals, who can name someone from Midsummer Night Dream. Come on. Yeah. Puck, is that the name of the ghost? Yeah, whatever. So, we fed it into our editor, into stylus, and you know what? 20 minutes later, the GUI was still frozen trying to load Midsummer's Night Dream. You know why? Because our editor, of course, that displayed the XML, was doing beautiful syntax highlighting. So the syntax highlighting, if you guys worked with anything but, you know, Emacs or Notepad to type in HTML or something, do you know how the word table or under the list is like in red or something, and, you know, something like a text like this would be in black. You know what I'm talking about? Just highlighting different parts of the syntax with different colors. If you have a comment in there, it may be shaded differently, just to visually set apart the different elements of what it is that you're typing. Of course, we had to have that. I mean, the basic thing that you expect from an editor. Well, it turns out that there are algorithms for processing the editor component to apply the different colors was taking way too long. You know why we didn't discover this? Because for the entire duration of our development of this product, everybody was testing with two files that were called omri.xml and omri.xsl. You know, and I'll advise maybe the XML was 20 lines long and the XSL was 30 lines long, right? So much for our testing of the product. So we had an emergency discussion. We said we can't ship to anyone a product that only handled omri.xsl and omri.xsl. So we tried to solve the problem, which we ended up doing was throwing the whole component that did the editor piece for us and redoing that whole part from scratch. So we kind of lost a month kind of failure after failure trial after trial. One of the so one of the things we did as the summer came about is we decided that we need more help. I was crazy enough at the time to even at the summer not treat this as my only job and I actually taught the summer school class they said at school and I was actually taking a full-time job at HP labs, research labs and Cambridge sort of trying to do my whole research thing. So I was working kind of three jobs that summer and we decided to hire a couple of interns. So I'm going to tell you a story about one of the interns because I thought how we hired this person. So we kind of interviewed a bunch of people right again. We never interviewed in our lives. So this guy, this kid, Harvard student he was like a sophomore at the time told us the story of what he did as a high school student. So this guy is into amateur radio, M radio I don't know a lot of people do that these days but he was really into it but he was also really into computers. Well, it turns out that he discovered that when he was talking to people from wherever they were he heard a lot of typing in the background because you know people were talking on little radios and typing. And he decided wait, I know that when you type you're sending all these signals from the keyboard to the computer that travel over the wire, not to speak the keyboard cord, the wire and I bet that that's actually picked up by the radio that's transmitting the voice. So he wrote software that attached his computer to his radio processed the analog signal that came in and actually filtered out the elements of the signals that corresponded to the keystrokes and were kind of able to decipher what the other person was typing. I heard this story and I'm like we've got to hire this person. He was great. We hired another person who was sort of a disaster. Got arrested halfway through the summer for like drunken stupors walking into the residence of one of the tutors in this dorm. Anyway one good person and one bad person. That person is not Dave Mellon. So neither one but he worked great and he really helped us out. And that summer we realized that we were finally ready. Midsummer Night's Dream was really snappy all these optimizations were really happy. We were ready to share, we discovered small detail, actually having to install that software as opposed to just having it running. So Dave was kind enough and he kind of stole my thunder there to do that for a smoothie. It shows you something about his negotiation skills I think. Asking for a few options in our company would not have been a bad idea at the time. But at this point we were working out of an apartment in Somerville that Alex and Carl rented together. So it was fun. A lot of fun memories from that summer. Well at the end of the summer this big moment came and we sent an email to an email list out there on the internet called XSLList This is kind of our idea of marketing at the time. It's a single email to this list. But the thing is, anyone who was anyone who cared about XSLL those days subscribed to this list. Some number of hundreds of people. Huge long religious debates about XSLL and CSS and which one is going to win out. I remember this one email called XSLL Considered Harmful this whole thread that somebody was this whole long argument about why XSLL was never going to make it we're kind of monitoring those discussions with interest. We sent a single email and said look we are a Transformers LLC we developed this great product for editing XSLL try it out. Of course once again any half intelligent company at this point would have a publicly available beta. We thought that our product was so sensitive that the chances that Microsoft is going to see it. In two months a competitive product that was going to totally blow us out of the water was that risk was so unacceptable that we actually in order to download our product everyone had to sign this binding non-disclosure agreement that they were never going to talk to anyone about it. So we actually went through this people had to fax in a copy of this signed NDA but still a couple hundred people went through the trouble of downloading this thing and trying it out. And of course the reason I'm here to tell you the story is because one of them decided to violate their NDAs actually a couple of people. One person of course went to tell Microsoft about it the other person went to tell a local company called Object Design out in Burlington about our product and so that summer we got a call from Object Design when we did a demo for them. Now they are a database vendor that has object oriented databases and I won't get into database details as a whole there was a whole debate in the 90s between relational database like Oracle SQL server IBM's DB2 between the relational world and the object oriented it's kind of a different type of database and object design, object store the product was one of the big ones. It turns out that the object oriented database was particularly well suited to storing XML so XML presents data data wants to be stored in the database and these guys were developing an XML database they were kind of one of the first to do it nowadays there are a bunch of other people doing it. Well they had the server product the database product but they had no tools for working with XML and Excel and we're very interested when they met us so we had this discussion about maybe packaging our tool with their software. Well it turns out that a day after we presented this tool from our design saying that the chairman of object design would like to meet with us so we went back and we had this nice little presentation to them and I remember these guys were talking about Java and EJB and I had no idea what they were talking about it was this whole world of enterprise software that has nothing to do with anything that I'd ever done as an undergraduate or anything so it was just kind of a scary experience afterwards I had to ask Alex what is an EJB an enterprise Java bean so it's kind of a little bit because it's out of the water there but at the end of the discussion the guy turns to us and says how would you feel about merging with our company it's some sort of a phase like that and we were like hmm I suppose we would consider such an offer so we had a day or two of these guys who were making an offer to buy our company and we actually got another offer from this other company so all of this on the strength of one email to this mailing list it was quite incredible now so where were we the truth is that we were considering what's the next step we kind of have a product now but we need to start thinking about sales marketing, testing, support all the things that software companies actually do so we were actually getting ready to plan and go to VCs and ask for money and do all of that and one of the big things that we debated was are we really serious about this are we going to actually quit school and go and do this full time and this was probably the most difficult decision much more difficult than the decision to actually start this company Alex finished his first year at Harvard was he going to stop Carl was a year away from finishing I was starting on what I was hoping and so we had all these discussions and then this offer came and of course part of the offer is not just to get the code but to get the people to join and are we going to take some time off and join them and I remember Alex was very pro joining these people working for them for a year or two then going back Carl thought hey maybe we should give it a shot if these guys are ready to buy us now why not give it another year see where we can get finally Alex sort of won over and you know I was sort of of that opinion too and we sold the company now we did okay we had some amount of cash up front which is good because I know a bunch of people at that time who sold companies for stock only and never made anything afterwards but a large part of our compensation was option I'll tell you that story in a moment but Microsoft a week after we joined the guy who was kind of the champion for us at Object Design came to us and said I got to tell you the story the day you guys were signing the offer I was out in Washington and Redmond talking to some Microsoft guy and he said yeah Transformers I've heard of these guys you guys better close the deal quickly with them because otherwise I'm flying down to Boston next week to make the one offer so for every my career I'll have to wonder if we waited another week the truth is I didn't want to move to Seattle so I'm sort of happy things worked out this way anyway we moved to Object Design and things are terrible can you imagine the energy around this like three person startup enthusiasm you go to work for this large company and it was like you know the world of Bill Byrd come true you know this like VP of marketing guy you know so predictable like all the buzzwords synergy between our products and this competitive and you know we're not doing particularly well at the time but every meeting the CEO would talk about how we're poised for success you know actually the skepticism came later because we joined the stock was at a dollar within six months of joining seven and a half okay now you think I may have made a ton of money my first vesting the first time I could sell any options was a year after I joined so you have if you haven't lived through this you have no idea what it's like to work for a publicly traded company with a stock that is going from one dollar to twenty seven and a half I mean people were giddy people like singing in the hallways and the amazing thing to me is these people had like a thousand options it's not like they're gonna make millions but the idea that this company was like climbing through the roof I mean Google is doing that now Carl and Alex are working for Google now which I'm kind of just jealous of but it was amazing but twenty seven and a half hit the internet bubble burst and the corollary to the statement you have no idea what it's like to work for a company that goes from one dollar to twenty seven and a half to twenty five cents and I was there for that decline too so more all you know in the gutter everybody you know acting all depressed rounds of layoffs people getting laid off so that's when you know the whole like we're poised and the synergy is great that kind of sounded less convincing anyway Dilbert kind of style I decided to look software engineering this whole like fighting software for a living it's not for me and I actually went back to Harvard to work my PhD so that's kind of the end of the first chapter of my life in the professional software development field and it was probably the most exciting time of my life but I made some money from it I never got to sell any of my options of twenty seven and a half I had I had a window of opportunity there I think at the ten dollars I thought hey it's going to go back to twenty seven any day now so of course I didn't sell as many as I should have but it was crazy so I want to spend the rest of my time telling you a little bit about liquid machines and what it's like to work for what I think is a great software company that actually knows how to deliver software and doing it at a time that's kind of less crazy than 1998 so yeah question great question so we came into object design got renamed Exelon we'll continue working on the product we added some great features and today if you go to stylusstudio.com you will see this I get solicitation emails from stylus now these guys are giving away like a coffee maker if you buy by the end of the year these guys are crazy I mean you can buy the enterprise version of stylus studio now for seven hundred dollars it's now much more than just an XSL editor it's in like version six now it's got an XML editor and an XSL editor and an XNL schema editor and an XQuery editor it's a whole development environment for like all things XML so we transform as we were definitely the first to get to the XSL editor market the truth is now we're not this product it's probably number two behind another product called XML spy that somehow managed to get enough traction on the whole XML environment I think we're probably number two but still this product gets hundreds of downloads a day from people trying it out it's making money it's got a good size development team I could probably be making more money at this point working for these guys I'm working for my little startup but it's um I think overall it's still there and still working and there's still some parts of my code running and the XSL engine is still there so it's fun so at some point in 2000 my advisor at school Mike Smith he's a professor here decided to start his own company he actually started it with a guy who was my boss at HP that summer I sort of did not do a very good job at HP labs that summer I was a little distracted but you know a week before the end I said to Voss my boss look I've got a I don't think I can finish my last week I think we're getting bought tomorrow by this other company I have to do all this stuff and I think part of it is seeing all these people around him doing the startup thing that made him want to do it my advisor to technology idea that they were working on it evolves into a product that protects documents we now have a product that protects emails the idea is that a lot of companies get really embarrassed by either employees walking away when they're fired with all of the important data of the company or memos getting leaked isn't there like a website leaked memos.com or something where you can like find all these like CEOs saying all these embarrassing things and it's a real liability for companies so our product encrypts documents on disk so if you just get a hold of the file on disk it won't do you much good but more importantly when you launch Microsoft Office or Acrobat our code runs inside those products and enforces a certain security policy so if you send me a document as the security policy attach a document they say that I may be able to read a document but not to print it or unprotect it or save any changes so our code enforces those policies anyway I don't have much time to talk about it or give you a demo or anything but it's a fun place so what would happen is my advisors started this company and very early on I became a consultant and I started doing early prototype work for them it was in an area that was very closely related to the research work that he and I had been doing at Harvard and so slowly the company was growing that hired so I started to go to a VP of engineering and I continued working for them until about two and a half years ago I decided wait there's a different way of writing software I could be working for a company that's fun that only has 10% Dilbert and not like 98 and that's when I left to join liquid machines full time and I sort of became a developer there and most recently I actually managed one of the two development teams that we had what's fascinating me nowadays is not so much you know what's the best way to write code what is the kind of the coolest solution to a technical problem the way that I was asking myself when I was doing research what is a great algorithm or data structure so kind of these kind of intellectual pursuits around technology and code I sort of discovered the whole different size which is how do you successfully develop software how do you manage your software development project and sort of I had my own experience in transform three guys hacking on some code and kind of learning from mistakes the hard way, no plans some vision but no real rigorous process around what are the features that we want in this are people actually going to want this or buy this it was easier for us to imagine what people would want in an Exacell editor because we were technology people developers or self who would use such a product but if you're working on a product that's for manufacturing widgets or something and you have no idea I mean somebody in your company has idea about manufacturing or widgets but you're the developer you don't know anything about it it's kind of hard to know what features to put in so there's a whole process around gathering requirements feeding them into the development cycle getting them approved doing design before you jump in to start implementing so I became really fascinated with that problem of how do you do software development well and the thing about it is that you can read these books and they talk about how 70% some such number of all software projects fail and they fail for a variety of reasons they fail because of budget overruns they fail because of missed deadlines it's very hard to write software a lot of pieces have to come together people draw analogies to engineering to constructing a bridge or something well it was pretty clear that when the three of us started constructing the software project we had no such training if the three of us set out to build a bridge it would collapse for sure so there is no formal training in software engineering what they teach you at Harvard undergraduate in the computer science degree has almost nothing to do with the skills you actually need to do coding for a living it's kind of the hard way by potentially trying to hire people it's great that you can compute for me the complexity of decrypting whatever I'm sort of sore point for Dave Millen who is engaged in an academic career in computer science I think there is a great place for an academic career in computer science and people in the academia have a lot to contribute but it's very different to write code to do research projects or to put together a prototype and very different to write code to do something that would run as part of an enterprise server or that has certain quality standards and robustness and there's a kind of a different process you have to follow and people are by and large not really trained in it actually the Harvard Extension School has a very good program I think a lot of the classes that you can take are actually much more applicable to what you need to know to be a software developer than the classes I took as a Harvard undergraduate and the classes that Harvard undergraduates are still taking and getting what they're getting taught so I think that in many ways it's not surprising that the Extension School is very much in touch with what people who are really working and who are taking classes need to know and I think that's I don't know where you're all at and what your aspirations are in this field but I think there are a lot of great things going on here at the Extension School so on the one hand software development, software engineering is very difficult people fail at it all the time but on the other hand the premium for doing it well is extremely high and I learned that too you know if you can be part of a company that does it well that delivers, that has revenues, that builds products that people buy the rewards are amazing and so that's kind of where I'm at and where I'm at is you have a team of developers how do you get people to write software, how do you it's one thing for me to think maybe I can do this task better than so and so and it's not just me it's maybe so and so things he can do it better than the other person but how do I actually get all the people on the team with their different strengths and weaknesses to work together and to get a job done and there's a whole kind of people aspect to it that you can't underestimate the other interesting angle I have on the whole software company is that I went to this conference on software development best practices in Boston a couple months ago and I went to a session on introverts and extroverts at the workplace you guys are taking the Myers-Briggs personality test some of you are nodding it's the whole idea about personality types one of the major things is are you an introvert are you an extrovert and there are maybe 20 people there from software companies it's amazing how consistent it is and it's like in my company all the developers are introverts and all the people in management are extroverts how do you deal with that I was in that session and I was telling some person I'm kind of in a management role today I want to go over to someone and say what do you think about this idea or when are you going to get this done should I just walk over to him or should I send him an email and this other guy who was kind of the introvert at the table said absolutely send him an email and I said well I can see where you are if he's in another location but look he's sitting right next to me I have a cube here isn't it awkward to send him an email he's like send him an email so he opened my eyes some people don't like to be interrupted all the time by an excited manager telling them what do you think about this idea can we do this and this and this so there is a whole lot to the problem than just solving a technical problem that's kind of what makes it fun that's my new new angle on that so I need questions from you guys anything yeah go ahead interesting you asked that we're experimenting with it right now for the next release of our product we have one of our components a server component being built by a team of people in Bangalore, India whole new dimension on the problem first of all we have to have our act together about what we want built it's one thing to change our mind and tell the person in the next cube by email or personally oh I changed my mind on this but in India there are 10 and a half hours away did anyone know that you have time zones and a half hour that it's possible to have somebody 10 and a half hours off no I had no idea anyway cultural differences language barriers these guys are doing a good job but it's a whole new thing that we're playing with the cost though differences is amazing I mean I can't give you numbers but I know what we're paying the people on our team and these guys I know what we're paying them for the whole project and how many people they have on it I suppose I can do the math but you know we will never outsource a significant portion of our business we want that component for this next release we intend to take it back and maintain it and maybe we'll use people like that in the future but I don't know if any of you are concerned about all the software jobs going into India I don't think that's going to happen anytime soon question now liquid machines is now about 40 people today I actually made my first ever offer if you don't count the two interns that I hired years ago we're growing no so my options of liquid machines are worth absolutely nothing at the moment yeah one day one day CEO likes to talk about how he's going to we're going to become the next big technology company in Boston you know he worked at EMC and at Akamai he wants to build this next great company and I'm sort of hoping that if the right offer comes along in the process that he'll take it and we'll see where we end up so you're going to see a startup.com right? typically after me so it's kind of the the opposite side of that story tell me what you think about that yeah now I think it's people care about this Microsoft has kind of a complimentary product we're working with them so IBM, Adobe all have similar products I can see them being interested and our customers are like banks it's not their information it's not like CIA type I don't want to hold everyone up but if you have any more questions feel free to come up and give me more details but thanks