Archives For

Web vs Mobile

May 8, 2016 — Leave a comment

YCombinator recently released this article about the companies that are applying to YC. I find it interesting that, although apps have overtaken websites as the platform of choice, websites had a significant uptick this year for the first time in 8 years.

We applied (and got into the YC Fellowship) with BODY, a website-first application. With BODY, users need to be able to easily position their camera and have enough screen real estate to see fitness instructors real-time. In addition, mobile is often connected to 3G, which isn’t fast enough to support WebRTC with more than 2 connections. Finally, the increasing power of Javascript and its frameworks is driving novel web-app use cases and powerful web-based mobile interfaces.

First software ate the world. Then it was mobile. Is it time for web to make a comeback in a big way?

dragonArtwork

Dragons of Destiny Game Now in iOS App Store

To all my dedicated fans – sorry for not posting anything in a while.  I’m happy to report that after ~2 months of development, I released Dragons of Destiny in the iPhone App Store today.  Built entirely in Swift, it’s a game where you fly around collecting coins and destroying arrows to survive and upgrade your dragon.

I was originally planning on making this multiplayer (player vs. player), but beta testers loved the relative simplicity of this single-player version.  It has a bit of a learning curve to master the controls, but should only take you a few attempts to get the hang of it.

I did all of the coding / design except the main logo dragon above, which my friend Deyna Cast designed.

I welcome any/all feedback! You can check it out by clicking on the picture above.

I recently invested in Experfy to help companies find data scientists.

Continue Reading...

How to be a Strong Leader

February 19, 2015 — 2 Comments

Advice from Chong-Moon Lee on how to be a leader and entrepreneur.

Continue Reading...

DNA sequencing is following an exponential technology curve and is one step on a path towards controlling our own biological destinies.  From eliminating hereditary diseases by fixing specific genetic mutations to choosing physical and mental traits in our children, we are on the brink of a genetic revolution.  However, using DNA to store data is already possible and may be a game changer in the near future.

Let me explain 

In 2010, Dr. Craig Venter proved that DNA contains all of the necessary information for life by creating the first synthetic life form.  At the most recent Abundance 360 summit, he pointed out that the 4 building blocks of DNA (A, T, C and G) can be converted into binary (1s and 0s), which is the boolean system used by computers.  By converting ATCG into binary, it is possible to store and manipulate genetic code digitally.  Saving data to a synthetic DNA ‘hard drive’ works by converting binary back into ATCG.

DNA has evolved over billions of years to efficiently store information.  In 2012, researchers fit 700 Terabytes of information into a single gram of DNA. Storing that much data on digital hard drives would require hard drives weighing ~151 kilos (333 lbs).  This technology is improving exponentially and the very next year, researchers tripled the storage density to 2,200 Terabytes per gram of DNA.

IBM predicts that 35 Zetabytes (35 billion Terabytes) of data will be generated annually in 2020.  That’s ~7.6 billion kilos (8.4 million tons) of additional hard drive capacity required annually.  The average skyscraper, like the Sears Tower, is ~222,500 tons, so we would need to build 378 new skyscrapers in 2020 just to house our data from that year.  New York City has ~250 skyscrapers, so imagine building a new data storage city as big as NYC each year.

Even assuming that DNA data storage density doesn’t improve from the 2013 rate of 2,200 Terabytes per gram of DNA, we could store all 35 Zetabytes of annual data in ~15,909 kilos (17 tons) of DNA.  That’s less than 2 buses worth.

The primary thing holding this technology back is the current expense of sequencing DNA to convert the data back to binary.  Current DNA sequencing techniques cost ~$12k per Megabyte, which means that sequencing DNA that contains a 1 Gigabyte movie would cost $12 million.

DNA sequencing is an exponential technology and the cost is falling quickly.  Given the amount of data we will soon be generating and the physical space that would be required using hard drives, DNA data storage may be our only hope.

I’ve spent many of my commuting hours over the last year listening to podcasts from Stanford University’s DFJ Entrepreneurial Thought Leaders lecture series.  These lectures have taken place every Wednesday for the last ~9 years, so there are hundreds at this point.

I started with the lectures in ’05 and have been working backwards.  Below are some of my favorite presenters from ’05 and ’06.  I’ve included select quotes, but each of these has dozens of quotes that are equally insightful.  Despite being nearly a decade old, the advice and themes presented in these lectures are timeless.

Stay tuned – I’ll release the rest of the 2006 speakers in my next installment.

Mark Zuckerberg in ’05 (Facebook) – From Harvard to the Facebook

Starting at 49:40

“As organizations grow, a lot of the issues and structure that’s put in place is put there because a comfort level breaks down in people communicating freely, in a way that they can when they’re friends… If you’re working with your friend, you can tell him or her whatever you’re thinking and it’s not going to offend him or her and they’ll probably comprehend it similarly to how you imagined it… A lot of the stuff, like saying take 20% of your time to go put it into action an idea that you might have is necessary in a large organization where people can’t necessarily speak the same language or where ideas can’t get out freely…

One of the things that I do focus on at Facebook is making sure that the culture is very friendly in that people hang out. Instead of having 20% of people’s time spent working on their own projects, I make people hang out with each other…  I can’t force people to hang out outside of work, but I can make it so that people are more comfortable with each other and can communicate more freely… By doing this, we create a culture where people just talk to each other about stuff and get what each other is thinking more clearly than they would if the organization was more bureaucratic or if people wouldn’t be heard.  Since people are always talking, ideas get bounced off each other and then eventually someone starts making something and then, we’re done.”

Joe Liemandt in ’05 (Trilogy) – The Passion and Perseverance Behind a Start-up

At 23:20 “When you’re doing your startup, it is so much better to be lucky than right.”

At 27:00 “Fortune 500s don’t want to buy from startups, but if you’re the only one that have it and they want it, the corollary is that they are price insensitive because they are only buying it from you because they have no other choice.”

Tom Byers in ’06 (Stanford) – Ten Enduring Success Factors for High Technology Entrepreneurship

9:06 “I’d love to be ready to have another 50 year career because stuff, whether it’s in IT or nano or bio or my favorite one here, the environment and energy.  It’s really the intersections of these (that’s most exciting).”

15:00 “Great leaders have a this wonderful ability of keeping this in mind: vision drives strategy, which drives execution.  CEOs and founders have to evolve as people.  It’s really interesting to watch and track that.”

Janice Fraser in ’06 (Adaptive Path) – Entrepreneurial Leadership Qualities

5:52 “You have to chose your partners based on who you want to go through the rough times with.  Every single entrepreneurial venture, whether it’s very successful or a dismal failure, will go through rough times.  You’re going to have to make really difficult decisions.  Every day, you’re going to have to wake up and decide what to spend money on or more importantly, what not to spend money on.  You’re going to have to decide which of the ten ideas you have is the one you’re going to do.  And you’re going to argue about that, at least if it’s good.  If there’s potential, you’re you’re going to have really hardcore meaningful arguments every day.  So the most important foundation piece for any business that you want to start is having a solid partnership.”

16:50 “You need to create meaning not just in the world, you also have to create meaning for the people who are making this entrepreneurial venture go.  It takes tremendous effort to get a new venture off the ground.  You have to be 100% passionate about it.  You have to keep your feet on the ground and be rational, but at the same time you have to live this dual life where you are just zealously pursuing this opportunity.”

Marissa Mayer in ’06 (Google) – Nine Lessons Learned about Creativity at Google

11:40 “It turns out when we were small we launched really rough things that weren’t very good all the time. But the key is iteration. When you launch something, can you learn enough about the mistakes that you made and learn enough from your users that you ultimately iterate really quickly? We make mistakes every time, every day, thousands of things wrong with Google and this product that we know we could fix, but if you launch things and iterate really quickly, people forget about those mistakes and they have a lot of respect for how quickly you build the product up and make it better.”

Kathy Eisenhardt in ’06 (Stanford) – Research Lens on Understanding Entrepreneurial Firms

Starting at 36:40

“If there are a lot of opportunities around a space that’s a really good place to be.  On the other hand, there are some really bad places to be and that’s in complicated markets.  That’s a market where you have to get a lot of things right to be successful.  Biotech is a classic example of a complicated market where you have to get FDA right and you got to get a whole bunch of things right to be successful.  You want low complexity, high velocity.

If you’re in a highly ambiguous market (unclear business plan, don’t know who customers are), it doesn’t really matter what you’re doing.  You can just do a bunch of stuff and it’s mostly about luck.  In contract, a low ambiguity market is all about skill and about being at the right structure.  If you’re in a really ambiguous new market, you want to structure it.  If you’re a skilled person you want to get rid of that ambiguity by structuring it.  If you’re not so skilled and you want to learn it then don’t want it to structure.

If it’s an unstable, uncertain market, then what you really are trying to do is find the optimal structure. As you go in an uncertain market, what you typically want is less structure and you typically want to manage the amount that you have. What makes uncertain markets so hard for big companies is they’re coming from markets where it didn’t matter how much structure you had and they’re going to a market where it does matter. The risk for young companies is they don’t get structured enough. In my experience most of the best entrepreneurial companies have more structure than their peers.”

Over the past few years, I have helped many of my friends understand options in their employment contracts.  Most candidates have a general misunderstanding and discomfort when it comes to options, so I’ll give a brief overview to try and shed some light on the issue.

First, options are not equity.  If you receive options, you won’t actually own any of the company yet.  You are being given an opportunity to buy shares at a later date for a fixed (and predetermined) price per share.  You will make money by buying at the predetermined price and selling during an exit event at a new, higher price.  Without an exit event (sale, merger, or IPO), you won’t be able to sell your illiquid shares and your purchase will represent an investment in the company’s future.

Options vest (become exercisable) over time based on your vesting schedule.  If you leave the company at any point, you will typically have ~90 days to exercise your vested options or you will forfeit them. If you are leaving the company because it isn’t doing well, it’s unlikely that you will want to invest cash in exchange for shares.

On the flip side, if a company gets bought for a valuation that is 10x larger than it was on your grant date, you can immediately convert your vested options into shares and sell them for a 900% profit (assuming no dilution, which is highly unrealistic).

Almost every company will insist on a 1-year cliff so that none of your options vest until you’ve been with the company for a full year.  But what happens if the company gets bought after 10 months of your being employed there?  If you don’t have an acceleration clause (and most contracts do not come with one), you get nothing.

Things you should look for in your contract

  1. A grant date – Important for many reasons including determining when your vesting schedule / 1-year cliff begin and for tax purposes.
  2. A strike price – At what price you can buy shares of the company.  Options are exercised and converted to shares by paying the company the strike price per share.
  3. Total # of options granted – With this you can determine what your cash outflow will be if all your options vest and you buy shares at the strike price.  Keep in mind that the company will probably issue additional shares to you each year or with each promotion.
  4. Total # of shares currently outstanding or % of the company your options represent – How much of the company will you own (prior to dilution) once all of your shares vest?  If they give you the total shares outstanding, you can just divide your # of shares by the # of shares outstanding.
  5. Dilution – This is where the company issues additional shares, which they will do for multiple reasons.  You should assume that your % ownership will be 1/2 of what it is now by in an exit event.  They probably won’t give you dilution protection, but it doesn’t hurt to ask!
  6. Vesting schedule – Typically 4 years.  Vesting is the rate at which your options become exercisable.  Before any of your options vest, you can’t convert them into ownership and there is typically a 1-year cliff on vesting.
  7. A 1-year cliff – Will likely be in every contract and prevents the employee from having any options vest in their first year.  If you have a 4-year vesting schedule, 25% of your options will vest on your 1-year anniversary.  Be wary of any cliffs that have a longer duration, especially if you don’t have an acceleration clause.
  8. An acceleration clause – Single trigger if the company is acquired and double trigger if acquired and you get fired.  At a minimum, 25% of your options should vest in a single trigger and another ~25% in a double trigger situation.  Many contracts won’t include anything about acceleration, so make sure to bring this up.  This is particularly important if the company is doing well and has already raised significant ($2m+) capital, as they are more likely to be an acquisition target in the near-term.

Have you come across anything that I’m missing?  Please let me know in the comments or shoot me an email.  I’m happy to dive deeper into any of these topics or speak with you 1-on-1 if that would be helpful.

We are on the cusp of the personal robotics age.  The most optimistic think that it will only be another 2-3 years until we all have personal robotic assistants, drone deliveries, and robotic entertainment for accessing information and interacting with the world around us.  I think that we won’t begin seeing the beginnings of that paradigm shift until sometime in 2018, about 5 years from now.

For those that don’t believe domestic drones will ever be legal – laws passed in 2012 require the FAA to allow commercial drones in domestic airspace by 2015.  Just a couple months ago, the FAA released a roadmap for drone legalization by 2015: http://www.faa.gov/about/initiatives/uas/media/UAS_Roadmap_2013.pdf.  In it, they set the stage for legalizing drone use by law enforcement, businesses, universities, and hobbyists.  Although they may not hit that exact deadline, it is likely that we are about to witness the emergence of a multi-billion dollar industry seemingly overnight.

Unfortunately, many people associate drones with military operations and the press has primarily cast them in a negative light.  The word drone makes most people cringe as they think about the dangers of militarized drones and possible reductions in privacy.  However, this way of thinking is akin to fearing computers in the 70s because of the possibility that they could be used by black hats to wreck havoc on society.

There are thousands of domestic applications for drones that will enhance our world.  Drones will be used in agriculture for targeted weed management, watering, harvesting, and transportation resulting in less pesticide use, less water waste and fresher food.  Restaurants and grocery stores will deliver food more quickly, Amazon will deliver packages within hours (though Amazon’s timeline is pretty optimistic), and logistical issues like traffic will be monitored real-time.  Little league games will be videotaped as though professional, weddings will be filmed from previously impossible angles, extreme athletes will more easily capture epic moments, and journalists will take pictures and video of previously inaccessible areas.

Other benefits to humanity include search and rescue operations, fire and wildfire control, ecological monitoring, deep ocean surveillance (yes, these are technically drones despite not flying), medical first responders, medical supply transportation, transporting food and water to impoverished areas, and disaster relief.

Drones can also be used for entertainment.  Imagine a stadium filled with spectators watching a game of drone quidditch (think Harry Potter), where the snitch is also a drone.  The drones are controlled by humans where their right arms control movement and their left arms control a primary mechanism depending on whether the drone is defense, offense, etc.

The future is coming – can you hack it?

https://github.com/liebeskind/leapdrone

What I’m Doing

I initialize my Node.js server, plug my Leap Motion into the computer’s USB port and hold my hand in the air.  I make a gesture that looks like left-clicking on a mouse, but am not actually touching anything.  Suddenly, with a whoosh, the rotors on my drone buzz to life.  This particular model, the AR Drone 2.0, has a quadcopter structure with 4 rotors in a square shape, which gives it enhanced stability.  The drone lifts into the air and hovers there, waiting for me to issue a command.  I move my hand forward and the drone edges away from me.

The further away from center I move my hand, the faster the drone moves until I realize, almost too late, that it is quickly approaching a tree.  I drive my hand down and to the right and the drone dodges to the right and under the looming branches, narrowly escaping disaster.  I point with my finger and make a circle in the air counter-clockwise and the drone rotates so that it is facing me.  Moving my hand forward again, the drone accelerates towards me.  Glancing back at my computer, I can see myself getting closer in the drone’s video camera, which is streaming in my browser.   This is only the beginning of my drone journey.

Why Node opens the door for programming robotics with Javascript

A few years ago, it was virtually impossible to control robots using Javascript alone because it was so slow that any application that required a reasonable response time would not function properly.

With Google’s V8 Javascript Engine, Javascript’s day has arrived.  V8 is written in C++ and compiles down to assembly, so it is very fast.  Recent benchmarks put it ahead of PHP, Ruby, and Python – second only to C itself.  Despite being initially designed to run in Google’s Chrome browser, V8 has since been adopted by several javascript frameworks, including Node.

Node is used to make web applications responsive by quickly pushing javascript from the server to the client.  Node also functions asynchronously so that multiple data streams can be queried simultaneously.  This non-blocking data transmission means that Node is able to process a second and third command without waiting for the first command to succeed.  Another unique feature of Node is that it leverages callbacks (functions that run upon success or failure to receive data) to chain instructions so that you can create a series of commands that will run in order upon completion of the previous command.

The implications for robotics are that multiple commands can either be processed simultaneously or chained to occur in a particular sequence.  Languages like Ruby and Python are not asynchronous and commands block one another, which may result in disaster if a single command gets stuck and takes a long time to process.

Why I used Leap Motion and The Future of Controllers

Leap Motion is the first viable product in a paradigm shift that is changing the way we interact with technology.  For those that don’t know, Leap Motion is a small camera that plugs into a computer’s USB port.  It can detect and track each of your hands and every finger’s movement in the half-dome-shaped space above it.  There are several applications, including playing video games, computer interfacing and, now, flying drones.  I used the javascript framework leap.js to translate hand coordinates into drone commands, then published instructions to my Node server using Faye (a simple publish-subscribe messaging system), and issued movement commands to the drone.

At this point, Leap Motion’s software is in need of an upgrade and isn’t very effective at detecting finger movements if, for instance, you turn your hand to the side.  As a result, I used hand movements for everything except takeoff / landing (done by gesturing with pointer finger as though left-clicking mouse) and rotation (done by making a circle in the air with pointer finger).  I have heard that Leap Motion is upgrading their firmware in the next few weeks and am excited that one of the features is much more precise finger tracking. In the meantime, I am leveraging Leap Motion’s X, Y and Z axes hand position detection to control left/right, up/down and forward/back actions.

Devices for interacting with the world around us are rapidly increasing in effectiveness.  Imagine if you could use something like Leap Motion without being tied to a computer.  In early 2014, Thalmic Labs is releasing the Myo, an arm band that detects electrical activity in muscles associated with finger movements to wirelessly control digital technologies.  In the near future, I may be able to build a pocket-sized autonomous personal drone that follows me down the sidewalk while sending a video feed to my Google Glass, then disengage autopilot and control my drone assistant through hand gestures.  I could also send my drone on missions to pick up a burrito, survey surrounding traffic, mow my lawn, take an aerial picture of me and my buddies, and thousands of other possibilities.

In part 2 of this article, I’ll go through some of the challenges facing the emerging drone industry and why we are on the cusp of a hardware revolution.

To Be Continued…

Hey everyone, check out this chat app I built today using Node.js and Angular.js: Node & Angular Chat App

Node and Angular are both relatively new javascript frameworks that pack a lot of power.  Node is a platform for building really fast network applications that can run on many different devices.  It is great at processing multiple connections without blocking and is one of the most important javascript developments in the last 5 years.  I’ll likely use Node extensively in the future running on Raspberry Pi to build some cool Internet of Things devices.

Angular is a javascript framework, maintained by Google, that can serve as a backbone for single-page web application.  It augments browser-based applications with MVC (model-view-controller) capability and enables rapid prototyping with easy-to-read code.  Angular’s two-way data binding reduces the amount of code that needs to be written and brings templating responsibilities to the client side.  Angular is often compared to Backbone.js, which relies on boilerplate code instead of two way data-binding.