Day 64 - The first two months of bills for a lean software startup

by alex 5. April 2013 18:24

I've been running the business for a few days past two months, so this is a good time to review the financial burden of the software business so far.

First, a little background info on the business. I'm running a lean startup (very lean). There's one employee (me) I'm the programmer, designer, salesman, marketer, customer support rep and janitor. The business is run from my home, and I try to be frugal in my personal life to stretch the money further. Every dollar saved is money that goes towards keeping me self-employed.

I use a Google Doc spreadsheet to forecast my budget and Mint to track all of my after-the-fact expenses. In other words, the spreadsheet tells me where my money will probably go and Mint says where my money was actually spent.

From February 1st through March 31st, my business (and me personally) spent $4,423.97.

It's a little scary to see it laid out there like that. Let's look at a break down of where this money went.

  • Gifts & Donations - $2,120.00
  • Home - $1,210.67
  • Food & Dining - $504.17
  • Education - $217.00
  • Entertainment - $193.79
  • Auto & Transport - $77.15
  • Uncategorized - $47.99
  • Shopping - $33.63
  • Business Services - $19.57

There's one outlier expense, which is the first and largest in the list. Someone close to me needed a small loan for a few months so I helped them out. I'm listing it as an expense because whenever you loan money there's always a risk that the money won't be returned. The recipient of the loan could flake out, leave the country, or be hit by a bus. My point is, I think it's important to have a heart and help people when in need, but only if you can afford to do so. I wouldn't have given this loan if I wasn't willing to not get the money back, and that's why it's listed as an expense for now.

Secondly, my biggest cost is actually paying for a place for me to live and work. This number was just about spot on with the estimates. I'm fortunate to live in a city that has relatively cheap home prices and rental rates.

I budget $10 a day for food and this is the category that I run the greatest risk of exceeding.

My "Food and Dining" breakdown includes all instances where I spent money on food for me to eat, including business lunches, groceries and going out for dinner and drinks with friends. "Groceries" also includes personal hygiene purchases such as soap and razor blades. So, considering all of this, my food budget utilization is somewhere less than 85% of the budgeted amount, so I'm quite happy with this outcome so far.

My only transaction for education was enrolling in the Copy Hackers Copy Writing Course. This course is designed to teach you how to write good copy - that is, the text on a website or magazine article - for homepages. Good copy, by the way, is text that increases the willingness of a visitor to convert (e.g., signing up for your newsletter, buying your product, etc). As a programmer, I totally recommend Joanna's course. There's a solid process to follow and she has a number of good tips that I wouldn't have thought of. This $217 was paid for by my marketing budget.

There are a number of expenses that are not represented in this time slice, such as insurance and many business related expenses. My medical insurance is about $130 a month, but I haven't been billed yet, so I'll be hit with a $500-ish bill in May.

Most of my business expenses, such as web hosting, domain names and SSL certificates, are billed yearly. In fact, aside from the copy writing course, the only business expenses in this time slice were the purchase of a domain name BuildKeeper.NET ($10) and the monthly-recurring cost ($2) of a fixed IP addressed so my SSL certificate works on

Also, one final word on the entertainment expenses - all of this went to video games. $80 bucks for Sim City, which I played in the evenings for 3 days. This probably was not a wise purchase - the game cost more than a week's worth of food and it gave me a low entertainment value in return. Also, the cost of games can be quite high if you can't limit the time you spend playing them. Like the money I spend on food, the time I spend in games is a risk (I have been keeping game time to less than 5 hours a week, on average).

The rest of the entertainment money went towards funding the Game Stick Kickstarter. I funded the OUYA a few months before quitting my day job because it was an exciting idea and it was the first crowd funded console gaming system, but the Game Stick appealed for different reasons. I foresee long-term travel in the coming months and the portability of the Game Stick was the feature that made me buy on. The idea that I could travel with my entire childhood's collection of NES and SNES games in my backpack (with a nice controller) was too great to pass by =)

If you're considering starting your own business, I'd be happy to answer any questions that might help.



Day 61 - Hibernation and resubmitting indexes

by alex 2. April 2013 17:39

Day 61: two months of freedom have passed!

Last week I mentioned that I was changing the titles on the sales page. That was a week ago yesterday, and Google search results hadn't relfected updats. So yesterday I resubmitted my site for indexing. No changes yet on the search results.

I design most of my websites to send me an email when a visitor hits a 404 or a 500 error.

Lately, I've recently been seeing an increased number of 404's from one of my older (terrible in hindsight) websites, No Dice Required. No Dice Required was designed to let people study foreign languages with activities more interesting than multiple choice quizzes. 

That's the entirety of the website available to anonymous viewers and bots. Somehow, from February 1st - March 28th, this convinced 25 people to create an account.

I don't understand it either.

Why are people creating accounts? Are they expecting to play games or study languages? Language study isn't mentioned anywhere on the landing pages (or anywhere visible to bots) so I don't think that's the answer. How did 25 people even find this site?

Unfortunately, I didn't have a Google Webmaster Tools account linked to the Analytics tracker this site has been using, so I don't have any search queries recorded. But this may be an indication that this site still has some potential.

I spent the last few days migrating some of the code into ASP.NET MVC 4 (it was using MVC 2) and preparing some dynamically created landing pages. Here's a sample of a landing page -

This page was dynamically generated from data, using word sets, layouts, categories and such. I'm currently planning that this page would be visible at but it might be better for it to be more shallow; something like I'll start with the first one url pattern because it's easiest and done already, and then introduce the 2nd and do some A-B testing.

I'm going to push this to the net soon. This version doesn't allow anyone to login and use the site, but no one has actually figure out how to play games since July 2012.


10 Productivity tips for startups to stay focused and on track

by alex 28. March 2013 18:50

As of today, I've been working for myself for 56 days. In those 56 days, I've had amazing results and learned a whole lot. But I've also had a lot of guilt and missed expectations, largely due to focus and motivation. Here are some of my personal tips to keep you on track when you have to self-manage.

1. Wake up and get started

When you work from home it's far too easy to hit snooze "just a few times." Identify when your productive hours are, and make sure you are awake and ready to go when that time comes. When you wake up, get started. Don't laze about; don't play games online, watch "just one" episode of The Daily Show on Hulu before getting started.

Instead, get dressed. Put on your shoes and step outside. You don't even have to put on clean clothes or brush your teeth. Don't feel pressured to go for a jog around the block. Take 10 deep breaths and hug the sun. Get out of bed and get moving. If you are still tired after all of that then you can take a nap.

You have to push yourself.

2. Stay off Facebook

Facebook is fun. Facebook is boring. Facebook is distracting, upsetting, angering, and endearing. Unless your business requires you to be on Facebook for the purposes of advertising or researching, avoid it. Facebook will eat your time in 15 minute chunks and you'll ask yourself where the day went. Facebook has it now, and she'll never let it go.

This goes for Twitter and your other social networking sites too.

3. Don't F5 your email

Did you just push a new software release? Post something exciting on Twitter to let your community know? Wonder if your customer survey results are in?

Stay out of your email. Waiting for information and feedback is a bit like looking forward to Santa's arrival. You know what, Santa will get there whether you are playing video games with your friends (I mean, reading a book and tutorial neighborhood kids) or bugging your mom about it.

I don't know where that metaphor was trying to go. Anyway, your information, if it will arrive, will arrive. Checking your email between every task switch doesn't buy you much and it will steal your time or distract you from what you should be doing.

Unless you're waiting for an email from the President saying "Do not press the button!", do not stalk your inbox.

4. Focus on one task at a time

Multitasking is dead.

Staying focused on completing one task is much easier and faster than trying to do two at once. I think this is double true for anything creative. This isn't to say that you shouldn't listen to music or that you can't talk to your coworkers or roommate, but you shouldn't be designing a logo while trying to do your taxes.

If a customer call comes in, stop what you are doing (if it's appropriate), deal with the customer's request and then get back to work.

If you're working on a new logo, stop fretting over the code that you don't know how to write. Don't think about website color schemes while writing your copy. Don't tweak and play with the CSS in your media player when you're cutting audio.

Staying focused on one task will make the work go faster and with better results in the end.

5. Don't stress out

It isn't good for anyone, especially you and your friends and family. Take a breath. If you're getting frustrated or depressed, step away from the issue. Switch to a new task. Or lock your computer and go outside. This doubles as exercise, which is all around good for you because you can eat more bacon later.

That was a joke. Don't stress out.

6. Don't gaze aimlessly into your monitor 

If you find that you have stopped working and are now looking at your desktop wallpaper or reading random garbage on the internet: stop. Get up, walk away, do 10 pushups, wash the dishes, fold laundry, walk the dog, clean your room, prep your dinner, dance around, call your mom.

You have things you need to do and reading another Reddit article is not it. You do not need to change you wallpaper again. Stop trying to find the perfect profile picture.

7. Avoid games during work hours

Games are good, games are great. You might be creating games, and that makes you cool. But don't play unrelated games during your work hours. It is all together too easy to play for longer than you planned.

I like games too, but schedule game time after your work is done for the day. It doesn't necessarily have to be after your tasks are completed, but make game time after work time is over. Don't play games and call it work time. Don't play games and have guilt because you should be working. If you should be working, then do it.

8. Don't over-eat

Over eating leads to over sleeping. If you get tired after eating a meal then you probably ate too much. Try reducing the size of your meals and eating smaller meals more often throughout the day. It will keep you alert, avoid the mental fuzziness of Thanksgiving and it is also healthier for you. Don't make me find a citation for that, mister, because I know they are out there and I will if anyone questions it.

Avoiding over-eating will keep your work time at its max efficiency.

9. Don't over-caffeinate

Ah, caffeine. Let's take a moment. . . .

Coffee can make the mind sharp and it can snap you into the mood to get stuff done and accomplish the world! And if you have enough coffee you might not care that "accomplish the world" doesn't really make any sense. But if you have too much caffeine you'll become jittery, anxious and easily distracted.

Find your magic sweet-spot number of coffee cups or tea mugs and stay in that neighborhood. Too much coffee hurts your productivity and your health.

10. Make a task list

Every morning, make a list of what you need to do and what you can reasonably accomplish today. It will help you focus your effort and attack your tasks in the correct priority.

This will lead to a feeling of accomplishment - you get to check things off the list and larger projects can be completed more easily with a focused, targetted effort.

When you complete a task, you don't have to mentally regroup and shift back to a high-level to survey the field - just choose the next task on the list.

No muss no fuss.



Day 56 - Get back to work you rotten kids

by alex 28. March 2013 18:05

Today I'm refreshing and recollecting my thoughts on what needs to be done.

Programming tasks

Integrating the sales site with the production release manager

When someone makes a purchase on the sales site, their card will be billed and then they get an email with a download link. This download link is not good; the file it points to is rotting. I'm pushing new releases to a publicly accessible installation of Build Keeper. I need to integrate these two sites together, and it has to be easy.

There are two separate databases right now, one for the releases sub domain and another for the www sub domain. They each have their own user list management - they use a common library, but they don't share a data store so users can't log in to

If a visitor logs in to releases with a user account that is a member of the "Active subscriptions" group, then they can download releases.

Ultimately, the problem to solve is "How do I securely get context about a user's activity in Site A into Site B?" Specifically, in releases I need to know if an authenticated user (I don't care how they were authenticated, forms authentication, Facebook, Open ID, whatever) has purchased the software on www.

I have a few ideas to integrate the sites:

  1. Keep the user lists separate - 
    • Push credentials to releases via a web service, restful API or something and have it register a new user account and add the user to the "Active subscription" group. This solution would be difficult to make secure - there would probably be holes that an attacker could use to get access to my downloads. This solution would lead to issues with keeping password changes in sync since there are technically two separate accounts - the creation of the second one is streamlined.
    • Enable a federated security setup in releases to allow it to accept claims and credentials from www. A www user could then login to releases and releases would trust credentials from www. This would probably be a solid solution, but it would have a heavier startup cost because I would have a bit of learning to do. However, adding federated security is a feature that is in my future-wish-list item pool. This might require 3rd party certificates to sign communications. This solution avoids the password management issue from the previous example (because releases wouldn't have a password for the user) but other account details would be duplicated.
    • Expose the available downloads from releases in the www site via a restful API. This is another future-goal, but it doesn't resolve the issue that releases needs to have knowledge of a permission set for a www user.
  2. Create a shared user store
    • Re-architect how Build Keeper stores users. In the current DAL, all database tables exist in the same database. I could change the User Repository to connect to a second database - the www database or a new independent DB. This constitutes a product change.

 Or something else. I don't want to dwell on implementation details right now.

Finish product features

  • Searching
  • Form updates (documentation, tab order, appearance)

Advertising tasks

  • Finalize logo
  • Trademark logo
  • Put logo into the product and the product sales site
  • Update features page on product site
  • Review copy on the home page of product site and make no-brainer improvements


Build Keeper.NET logo drafts

by alex 28. March 2013 01:50

Tree logos

My first idea is that since Build Keeper is used to cross reference different versions of software releases, it could be represented by a tree. And what better way to illustrate a programmer's tree than with Visio? =)

That idea gave rise to these two images. Some feedback on the first image was that it didn't invoke the image of a tree in the viewer's mind. This doesn't necessarily make it a bad logo, but it misses the mark so I tried adding a few smaller green leaves. I'm not totally in love with either of these images, but I still like the original idea.

Cloud logo

For a brief moment I considered a cloud logo, with the bubbles on the standard cloud logo being nodes in a small dependency graph. I don't know what I was thinking and this was quickly abandoned.

Castle logos

The second idea, probably a bit more obvious, is centered around the "keep" portion of Build Keeper: castles, towers, and such.

2D Iconic castles

I tried some quick drafts of simplified 2D castles but I wasn't particularly fond of anything that was happening here. The first is very Cisco.

3D Rendered castles

A castle tower or turret is kind of interesting and I thought I might be able to get an interesting design with simplified colors. I fired up my 3D program of choice and built a (very) simple turret. Two directional lights cast high-contrasting colors at either side.

Using a standard up and aim perspective camera, looking up at a shallow angle, I rendered it with high-contrast colors and then again with two colors from the product site. I kinda liked it, but it felt a little boring, so I tried cutting a hole in the middle of the tower, to make room for an icon or something. Barf. But it was fun because who does boolean operations on polygonal solids these days? =)

All cameras are not created equal and the next experiment used an orthogonal camera. Ignore the black parallelograms on the bottom - that's the underside of the turret and it'll be stripped off later.

I liked that well enough to scratch a bit.

Using Gimp, I created a bottom edge (this same look could probably have been achieved with a perspective camera with tweaked out settings to make the vanishing points shoot far off... probably something to do with ISO settings [j-playing at the end there]).


The brand name also makes an appearance here. The contrast between the blue-side and "Build" is nice, but it requires the tower to be tall and the text is quite wide, so the silhouette looks strange - bulk to the left and wide and thin to the right. It's almost key-shaped. But I feel like I could be on to something with this shape. 

I tried shortening the turret a bit, but I think it went a little too far in the 2nd image - it looks squashed and the 3D-ness of it starts to break down.


Vectorizing the raster - inking

Everything to this point has been low-quality, rasterized bitmaps and they were a bit fuzzy in places. I imported the latest version (the shortened tower with the brand) into Inkscape and traced all the edges. This process involves drawing math-powered lines on top of the bitmap and then filling it in.

These shots in are:

  1. The traced source image.
  2. A taller turret with deeper "teeth". And I also somehow swapped the colors. That wasn't intentional =)
  3. Two tests of how it would look on the product site and in the product itself; the product will use a transparent version to let the menu header shine through.


Finally, here's what it would look like in the product itself and on the sales site:

I think I like this logo. It can easily be 1-bit, which makes it cheap to be printed. The colors can be varied to fit the medium and the message.

If two colors are used (like the orange and blue of the product site) I may remove the black outlines.

What do you think?

Edit: The smallest icons - in the last two samples - gets a bit blurred at the top, while the middle is a wasteland of color. I could see trashing the middle "tooth" and have only 2 per edge around the top. That might turn out to be funny looking.



About the author

Something about the author

Month List