Blog

  • How to start a startup – for developers

    Creating your own startup is easy. You don’t need an MBA. You don’t need an expensive law firm. You don’t need an ‘older more mature CEO’ to hold your hand. And if you can afford 6 months without an income and $5k to get started, you might not even need a VC or Angel investor.

    You just need to be OK with researching to find the info you need and acting on it. I’ve written this as a very basic guide to getting started for under $5k – or $4985 to be exact.

    Inc yourself – $415 + $50 for Nolo books

    You need to create a corporation so that you have a degree of legal protection. You get to choose from a C Corp, an S Corp or an LLC. Forget about partnerships or Sole Trader. I’ve always used a C Corp because it’s the only structure that lets foreigners invest in your corporation, and that’s a requirement of mine.

    I’ve always Inc’d myself and not used a law firm. I don’t think it’s necessary and I’ve sold C Corps that I’ve Inc’d myself without any admin issues. Visit NOLO.com and buy a book for your state and do it yourself.

    We are incorporated in Delaware and Kerry just sent me the following data for your enjoyment:

    Delaware startup costs: $90 filing fee, $50 for a registered agent ($140 total)
    Delaware annual fees due end of year: $60 filing and franchise taxes (up to 3000 shares authorized), $50 registered agent ($110 total)

    You also need to file as a foreign corporation where the corp does business or has a physical presence. Washington fees are as follows:

    Washington startup fees: $205 filing/license fees, $70 registered agent ($275 total)
    Washington annual fees due end of year: $90 filing/license fees, $70 registered agent ($160 total)

    Trademark yourself – $2,200

    Sure you’ve got an awesome domain name, but if it’s cocacola.com you’re in trouble. Use a lawyer to do a trademark search. It’s going to cost you $300 to $500 bucks and it’s worth every cent. You can do an initial search on the USPTO website for free, but get a law firm to do this for you because there are more databases than just the USPTO.

    It might come back with some pizza joint out in Smallville USA that has a name vaguely similar to yours – just ignore that. You’re worried about companies that target the same market as you do.

    Then use a lawyer to file your trademark with the USPTO. Once you have it on file and can start counting down to that magical 5 year date when your trademark becomes incontestable. This will cost about $1,700
    I had the unfortunate experience of getting sued over trademark infringement a few years ago, so this is now one of the first things I take care of.

    Provisionally Patent your technology – $2,000

    If you’re wicked smart and invented something new, then file a provisional patent. This buys you 1 year during which you must file a full patent. The provisional patent can cost as little or as much as you like.

    You can write and file your own provisional patent for as little as $200. That’s a bad idea because when your company is worth something and it’s time to sell, and you’re doing due diligence with your future acquiror, they’re going to ask which law firm did your provisional patent and you’re going to say proudly that you did it yourself and the conversation will move on as if your little patent doesn’t exist.

    Use a law firm.

    The full patent that you must file within a year may cost as much as $25,000, but by that time you’re hopefully making so much cash out of your wicked smarts that you can afford that.

    Do your own accounts – $300 (quickbooks pro license + course material)

    I put myself on an accounting course a while back.I also did a quickbooks course. Once complete, I had enough knowledge to manage my own corporate accounts and promptly turned our books over to my amazing wife who now handles all our accounts and legal stuff. (evil grin) She’s actually lying downstairs reading a book on intellectual property as I write this. Crazy woman!

    If you’re going to do your own accounts, learn the fundamental double entry system and basic accounting equation. Then also learn how to use your accounting software – Quickbooks is awesome for corporate accounts. Quickbooks abstracts a lot of the internal stuff away from you, like the double entry system – and that’s ok for a while, but eventually you’re going to hit something a little complicated and you need to have that basic knowledge to bail you out. Or you can just buy a CPA for $50/hour and get them to help you out when you get stuck.

    Alternatively…

    Just outsource your accounts. Quite a few of my friends do and that works for them too. Just make sure you get a competent accountant and at least have enough knowledge to ask the right questions and double check some of their work.

    Learn basic finance – $20.00

    Read this book. Read the whole book. Do not pass go, do not think you can outsource understanding your balance sheet or understanding the time value of money. You need a basic knowledge of finance.

    Now, drop everything and just do it

    Once you’ve got all this basic but necessary stuff out of the way, build your business as fast as you can!!

    If you think it’s going to take a month to create your prototype, give yourself 2 weeks and do it in 3. Your time is your most expensive commodity, so haul ass and make it happen!!

    Just don’t forget to listen to your customers and let them shape your product because they are, after all, the only reason your business exists. More about that in a future entry.

    Disclaimer: This is not legal advice and I am not a lawyer.

  • SEO, the long tail approach

    I recently guest blogged an entry titled the long tail approach to SEO on a friends new blog. It’s based on some of my own experience and was inspired by a post on webmasterworld from someone who is about to exceed 1 million uniques from SEO with around 100k pages of content, which isn’t much at all.

  • Lessons from three weeks of intensive I18N

    When we launched LineBuzz on May 10, we had no idea that most of our press coverage was going to be Japanese. A site called 100Shiki.com put us up as dot-com of the day. All of a sudden we had lots of Japanese users. A few days later, a very popular blogger in China gave us a mention and we had lots of Chinese users too. Within a week we had over 15 languages on the site.

    Three intense weeks later we launched an I18N version of the site.

    Here’s a brief summary of some of the key issues we had to deal with when i18n’ing an app that has 50/50 client-server code and lots of communication between the two.

    The code that is LineBuzz is very text intensive by the nature of the application. We provide inline comments without a browser plugin. One of the unique things about LineBuzz is that it doesn’t matter which page you post an inline comment on. The comment will appear anywhere on the website where the text and its surrounding paragraph appears.

    So as you can imagine, we use a lot of regular expressions, character code conversions and text lengths.

    Safari – not the worlds best browser

    The first thing that broke was Safari. Safari’s regex engine in Javascript is seriously busted. It doesn’t support unicode characters at all. IIRC it simply returns true for any regex with unicode. So their claim that it’s the worlds best browser really irks me. So I had to write a fix-safari layer for anything that involved processing unicode.

    No round-trip for jp charsets

    The next thing that bit me was Japanese character set support. The Japanese use two main character sets: EUC-JP and Shift_JIS. The latter is a product of windows and the former is from unix. These both caused a major headache because they don’t round-trip convert to Unicode. Translated, that means that you can’t convert these characters to a unicode character set like UTF-8 and then convert them back to their native character set and expect the original to equal the converted characters. The solution: Store the raw character data for all character sets as binary and only convert to unicode if I absolutely must. I use UTF-8 on linebuzz.com, so that’s a scenario where I convert from binary to UTF-8.

    When is a space not a space

    Another thing that bit me was space character codes and spaces in regex. In unicode there are about 20 different space characters. Some regex engines are smart and recognize them all. Others only recognize the traditional ascii space character. So routines that for example, removed spaces, had to be hand tailored to deal with every unicode space.

    String.charCodeAt() == lies lies lies!!

    Character codes differ across operating systems. Some character sets contain characters that have a different character code on OS X than on Unix. Yes, even in the same browser using the same javascript engine (firefox for example), the character codes are different. So any routines that rely on consistent character codes across platforms have to deal with this little nightmare.

    All this is behind us now and the Linebuzz code handles any character set in any language beautifully.