Software Side Project/Business Checklist

So you’ve got an idea. Maybe The Idea. You need to do it, and you need to start now, maybe you already did. Here is a list of things to do, or at least keep in mind before you get too far. They mostly won’t slow you down, but in the event your project actually takes off, I guarantee this will pay off in the long run in terms of saving money and time and avoiding hassle and heartbreak.

Many of these steps (especially the early ones) apply to any business or project, but my experience lies mostly in software so this list is tailored to that.

Note: This is a living post, in that I intend to come back and update it when there is more to add, so be sure to bookmark it somewhere!

Step 0: Clear It!

If you are a knowledge worker or work for a company big enough to have HR or lawyers, you probably had to sign something when you got hired that assigns ownership of inventions/copyright/patents/etc. to the company while you are an employee there. If your thing ever becomes valuable, that will matter. Do not rely solely on the fact that your state has laws about this or that you think management is reasonable. Write up your idea in a reasonable amount of detail and get a waiver in writing from the company. Most good employers will have no problem with this if it’s not related to their interest and the better employers will even encourage this as a way for you to grow and hopefully bring some energy and new experiences back to your job.

Do not do anything until you have this in place. Don’t write code, don’t register domains, don’t collaborate with others about business models, nothing that could come back and see your efforts snatched in a lawsuit. The bigger your company, the more important this is as they have broader interests and more lawyers.

Step 1: Name It

Names have power. If your idea doesn’t have a name, it will struggle for attention and likely wither away. Your name doesn’t have to be permanent, you can give it a codename, but name it something.

Domains

If you think this might turn into a real thing someday, align your name with your domain. It doesn’t have to be a perfect match, but close enough. Even if you’re not planning on building a website (e.g. an app, etsy store, etc.), you’re likely to build one eventually or at least want an email address for it.

If you can’t get the .com domain because a possible competitor has it, pick a new name, not a different TLD (e.g. .net, .io, etc.)

Codenames

Codenames have a knack for survival. They will be around in some form for the life of your project, in documents, emails, code comments, and so on. Don’t call your new project something embarrassing or offensive because “we’ll change it later”. You’re better off picking something meaningless and common like “Green Tea” or “Fortitude” if you can’t come up with something better.

Social Media

Once you’ve got a name and a domain, set up whatever social media accounts/pages/handles you think are relevant. They don’t have to be perfect matches, but the closer the better. You don’t want someone else to do it for you, as it can be impossible or expensive to get it back.

Step 2: Register It

If you’re in the US, and you think your project will generate any revenue or expenses this year, you’re better off to get it set up as a business as soon as possible. It’s pretty easy and cheap to do so.

If you’re doing this with other people, you’ll want to set up a partnership/LLC/Corporation. Even if it’s family, get this taken care of now to avoid tears later.

If you’re doing this by yourself, go to your city/town hall and register as a DBA. There generally isn’t a penalty for not doing this, but it may come in handy later when setting up things like bank accounts or making commitments like contracts or commitments.

Once your entity exists, go get a tax ID. As a sole proprietor this isn’t required, but it’s free to do it and will keep things better separated down the line.

More to Come…

I’ll add more to this list later, but if you can get those steps above done before you invest too much, you can proceed with far more confidence that you’re not forgetting something important.

How do you do, fellow kids?

I’ve spent the last few years sequestered away in “big tech” which has been an interesting and mostly positive experience, but one of the more unexpected side effects, especially as an extreme generalist, has been the specialization on the technical side of things.

From when I first started coding for money in the mid 90s I was always a true “full stack” engineer, even before that was a term. Give me a bare server and a sketch and I could handle the rest, even some basic UI design. As backends became more complex and interesting I gravitated that way, but was still pretty up-to-date on front-end technology for a nearly 20 year stretch.

The front end world got increasingly difficult to keep up with on a casual basis as single page apps became a thing and powerful frameworks took over. At Mondogoal I was entirely back-end from late 2013 onward, although I was also the product owner and oversaw design and branding. At Facebook I worked on maps and geocoding, writing mostly backend C++ code. At Google I’m deeper yet, working on the networking team.

During my last job search I initially still had “full stack” on my resume, but realized that I didn’t think I met that bar any more, namely because I didn’t really know any of the things most people were using these days, like React or Angular. My skills in that area, (e.g. jQuery), are no longer in demand at places I’d want to work for, supplanted by experience with scalability and distributed systems.

And don’t get me wrong, I have no regrets about this, at all. Back-end experience and knowledge decays much slower than the front-end, so now that I’m often the oldest person in the room, that’s a feature, not a bug.
Back-end work also tends to pay more and offer more paths to leadership roles. But I think I’m still a full-stack developer at heart, and the deeper I go the more wistful I get for being able to make something you can see and touch.

Enter, the Side Project

I haven’t had a software side project in years. With all that’s been going on, especially becoming a parent, my energies have been allocated elsewhere. But there’s been an increasingly more noticeable hole there that I need to fill.

I brainstormed a few ideas and kicked them around until one of them, a browser-based game, settled out that checked off most of the boxes:

  • Learn how to build a modern front end.
  • Give me a reason to explore the Google Cloud offerings (since those products are effectively my customers for my day job).
  • Get back up to speed on things like analytics.
  • Scratch an itch I’ve had for a long time (a nerdy economy-based game).
  • Doesn’t risk any conflict with my day job.
  • Give me something to blog about!

Now what?

I’m going to talk about this in more detail in a future post but after spending a bit poking around the current front end world, I feel like I’m basically starting over. React, Angular, Vue. Yarn, webpack, JSS. The list goes on and on. Even my JavaScript is out of date, with all of the additions over recent years, and TypeScript being a serious option now (it was still kind of a toy last time I tried to use it back in 2012/2013).

This is a bit intimidating, but more so exciting. There’s so much to learn I haven’t even really started to think about the actual project or how feasible it will be to launch. Stay tuned for updates!

Do People Even Blog Anymore?

Hello again! It’s been a long time, nearly 4 years since my last post. While not writing blog posts, I, in order:

  • Lost my dad.
  • Had a child.
  • Went to work at Facebook on maps.
  • Lost our cat Cory.
  • Moved to a new house.
  • Lost our dog Maddie.
  • Got a puppy, Archie.
  • Left Facebook and now work at Google on networks.

I’ve thought on and off over that time about the blog and how I enjoyed writing for it, and recently resolved that once I got settled in at Google I would resume. I hereby commit to 5 more posts in 2019 and at least 30 in 2020!

Role Model

When I was growing up, people often asked me who my “role model” was.  Saying “I don’t have one” would lead to strange looks or awkward conversations, so I would typically say “Bill Gates” or “Wade Boggs” or some other easy answer.  Those weren’t lies, I did admire certain facets of these people, but I certainly never emulated them.  A few years ago, decades past the point where people ask me that question, I realized I finally have an answer.

I’ve been lucky enough to have several great dogs in my life, all of whom have been very unique, but Stella is, unexpectedly, the closest thing I’ve ever had to a role model. I admire, and try to emulate, how much she lives in the moment.  Her ability to grasp the excitement, or the mystery, or even just the simple peace of any given moment is amazing.  Even at 6 years old, she takes every minute as a new adventure.  I am not, nor will I ever be nearly as effusive as she is, but I do find myself noticing and appreciating the immediate moment even more.

As I observe this furry creature living her life, I’ve collected a some rules that she seems to live by, and that perhaps we all should too:

  • If something bothers you, bark at it.
  • If someone bothers you, leave them alone.
  • There is no such thing as too many hugs.
  • Do not eat when you you’re not hungry.
  • Do not sleep where you don’t want to.
  • Do not be alone when you can cuddle.
  • Do not care how ridiculous you look when you’re comfortable.
  • You don’t have to be happy about it, but share your toys.

Metahobbyism

I’ve been on a bit of an organizing kick lately, the source of which is a mystery, but the net effect of which I’m very happy with. As I sort things into labeled bins and ask myself if I will ever use something again or how much it costs to replace it, the number of hobbies I’ve found evidence of keeps adding up. I am starting to think that my main hobby is trying new hobbies!

Here are all of the activities I have come across, in no particular order.  Some of these I’ve spent mere hours on, others have entailed thousands of hours:

  • Collectible card gaming
  • Furniture making
  • Paper making
  • Cooking
  • Board gaming
  • Miniatures gaming
  • Computer building
  • Barbeque/Smoking
  • Novel writing
  • Blacksmithing
  • General photography
  • Macro photography
  • Portrait photography
  • Camping
  • Wood carving
  • Wood turning
  • Home theater
  • Programming
  • DIY/House Renovation
  • Pen making
  • Miniatures painting
  • Model scenery construction
  • Paper crafts
  • Electronics/Soldering
  • Chemistry
  • Piano
  • Harmonica
  • Saxophone
  • Beer brewing
  • Baseball
  • Softball
  • Fantasy sports
  • Reading
  • Gardening
  • Exercise
  • Home automation
  • Wood burning
  • Golf
  • Poker
  • UX Design
  • Freshwater aquariums
  • Game design

TV in 2015

I think most people, including myself sometimes, watch too much TV, but I don’t think the right amount of TV is zero.  We really are in a golden age for the artform and with the putrefaction of the film industry, I don’t think there’s anything wrong with enjoying it in limited quantities.  My thoughts on some current and recent shows:

American Ninja Warrior

This show has been on for a while but I had never even attempted to watch it because it has a terrible name.  I caught part of an episode last year and realized it was not some campy parody of a Japanese game show but something else entirely.  If you’re not familiar, it is a relatively simple concept.  Contestants run an obstacle course with the primary goal being to finish the course and the secondary goal being time.  The twist here is that the course is incredibly hard.  Most people fail.  They don’t get any practice and if they make one mistake they are done.  In this age of coddling and positive reinforcement this show takes us back to the days when video games didn’t have save files, when the 10th best hitter on the baseball team rode the bench all season, and cars would explode in minor accidents if they didn’t impale you on the steering wheel first.  It reminds us how satisfying hard work can be and there is no doubt that the frustration and happiness of the contestants is real.

Hannibal

Recently cancelled, hopefully to be picked up elsewhere, I am surprised it even made it this far.  It is a very dark, very deliberate, very long story.  The imagery, music, and sounds are often vague and pretentious, but they are always detailed and highly crafted if not beautiful.  And with all due respect to Anthony Hopkins, Mads Mikkelsen is amazing as Hannibal Lecter.  I recently watched a bit of Silence of the Lambs and Hopkins’ take on the role is almost clownish.

Halt and Catch Fire

A couples romance where the main conflict driver is entrepreneurship.  The show captures what feels like a very authentic bleakness about 1980’s Texas.  After two seasons, the writing has become a bit aimless but the characters are authentic and the acting is very good.

Mr. Robot

This show is brand new, but the pilot was amazing.  If someone said they were going to do a mashup of Dexter and Fight Club and maybe throw a teeny bit of Sherlock Holmes (Elementary-style) in, I don’t know what I’d expect but this show pulls that off.  The pilot could have easily been tweaked into a good movie and is one of the best I’ve ever seen.  The rest of season one was not as good but more sustainable, and has maintained the thriller aspect.  Christian Slater is television poison, but he has a limited role that doesn’t leverage his usually hamminess, so we’ll see if the curse can be reversed here.

52 Word Review: Mad Max: Fury Road

George Miller pulled off an impressive feat with Mad Max: Fury Road. After a 30 year hiatus, he managed to craft a movie that is better in every conceivable way than the previous 3 installments. It’s everything an action movie should be: fun, fresh, relentless, uncompromising, and extreme but, perhaps most surprisingly, not dumb.

Monty Hall Problem

A classic brain teaser is the Monty Hall Problem. It fools people with a basic understanding of probability (i.e. most of us), and even after a good amount of consternation seems unintuitive. If complex mathematical formulas don’t convince you, then you’ll likely have to see it actually happen to believe it, as I did.

I came across it again today, and I was unhappy with the idea that this remained a difficult hurdle for my brain to jump, even though at this point I know the answer.  I came up with the following explanation that I think is as simple as it gets, so if it still sticks in your craw as it did mine, perhaps this will help.

If you never switch:

  • 1/3 of time you pick right door, and win.
  • 2/3 of time you pick wrong door, and lose.

(1/3 * 1) + (2/3 * 0) = 1/3

So if you never switch, you will win 1/3 of the time.

If you always switch:

  • 1/3 of time you pick right door, Monty will open either of the empty doors, and then you will open the other empty door, and lose.
  • 2/3 of time you pick an empty door, Monty will open the other empty door, and then you will open the door with the prize and win.

(1/3 * 0) + (2/3 * 1) = 2/3

If you always switch, you will win 2/3 of the time.

Diagrams and formulas aside, the phrase “the other empty door” is what made it come together for me.

Driverless Cars

I completely agree with the headline of this blog post, but not with the overall sentiment.  Driverless cars are going to change the world, and for the better.  I’m not sure how much they will do so in my lifetime, it’s hard to believe that anyone born before 1985 or so is going to completely trust them.

The car insurance industry will cease to exist. These cars aren’t going to crash. Even if there are hold-outs that drive themselves, insurance would be so expensive they couldn’t afford it, as no one else would need it.

These cars will crash.  For as long as humans are allowed to drive, they will be causing accidents, hitting other driverless cars and each other.  There are also a number of causes of accidents that are still going to happen, such as those involving wildlife or severe weather or mechanical failure.  The robocars will handle these situations far better than humans, but they will still happen, and people will still be injured and killed as a result.

If the cars don’t crash, then the auto collision repair / auto body industry goes away. The car industry also shrinks as people don’t have to replace cars as often.

The car industry will likely shrink over time, just as any other technology-driven industry as.  They will be forced to evolve to new products.  This will happen slowly enough that if they’re properly managed, they should be able to shrink through attrition.

Long-haul truck driving will cease to exist. Think how much money trucking companies will save if they don’t have to pay drivers or collision and liability insurance. That’s about 3 million jobs in the States. Shipping of goods will be much cheaper.  On that note, no more bus drivers, taxi drivers, limo drivers.

This is definitely true.  I bear no ill will towards professional drivers but I think we can find jobs that are more rewarding for people than driving goods or passengers from point A to point B, and often drive back to A with an empty truck.  Trucks also account for the vast majority of road wear, a single tractor trailer can do as much damage to a road as nearly 10,000 normal cars.  The main reason we load so much weight onto a truck is so you only need one driver.  It will be more efficient to send smaller loads by robotruck, as they can be better targeted (think one truck per state rather than one truck per region), which will result in smaller trucks.

Meter maids. Gone. Why spend $20 on parking when you can just send the car back home? There goes $40 million in parking revenue to the City of Vancouver by the way.

Considering much of that revenue is probably supporting the collection of that revenue (meter maids, infrastructure, towing, courts,etc.) I don’t think this is a net loss.  Also, fewer parking spots means more pleasant streets with less traffic problems.

Many in cities will get rid of their cars altogether and simply use RoboTaxis. They will be much cheaper than current taxis due to no need for insurance (taxi insurance costs upwards of $20,000/year), no drivers, and no need for taxi medallions (which can cost half a million in Vancouver). You hit a button on your iPhone, and your car is there in a few minutes.  Think how devastating that would be to the car industry. People use their cars less than 10% of the time. Imagine if everyone in your city used a RoboTaxi instead, at say 60% utilization. That’s 84% fewer cars required.

Absolutely!

No more deaths or injuries from drinking and driving. MADD disappears. The judicial system, prisons, and hospital industry shrink due to the lack of car accidents.

Let us hope that we don’t see MADD exhibit the Shirky Principle (“Institutions will try to preserve the problem to which they are the solution”) and simply fades away to an irrelevance we can all agree is a success.

Car sharing companies like Zip, Modo, Car2Go are all gone. Or, one of them morphs into a robo-taxi company.

I think they will definitely be robotaxis, but there will also be a need for specialty cars like pickups.  We may even see an increased diversity of car designs available for rental where you can have a special grocery-mobile sent over, or a van with 12 seats, or one with extra entertainment options for your long trips, and so on.

Safety features in cars disappear (as they are no longer needed), and cars will become relatively cheaper.

Very unlikely, as people buy fewer cars and use them less frequently the prices will go up accordingly.  We’ll also probably require, through legislation, even more safety features, simply because of an inherent distrust of the technology.

I’m  really hoping that robocars are a reality within the next 30-40 years when I will be at the point where I shouldn’t be driving any more, and I’m happy to see that we actually seem on track to do that.