Time to do my own thing

Today, I step out to be on my own.

I’m leaving the world of W-2 employment to become a full-time independent software developer. I’m making Hsoi Enterprises my full-time gig.

I’m excited, happy, and yes, scared. But very much looking forward to this.

Why am I doing this?

I’ve primarily worked for someone else all my life. But for over 20 years I’ve done side-project work to help scratch my own itches. Four years ago I got more formal with it when I founded Hsoi Enterprises LLC. So I’ve always been semi-indie, and one could say today’s event is just the next step in the evolution. But certainly my primary income came from being a salaried employee in someone else’s company.

There’s multiple reasons why I’m doing this. I’ll share two: one business, one personal.

My Own Road

Every good work of software starts by scratching a developer’s personal itch.
– Eric S. Raymond

I like to create useful, meaningful software that enriches and improves people’s lives. Throughout my career, things I’ve done on my own usually happened because I had an itch to scratch, a need to satisfy. The best software always is the software that the developers themselves use regularly. But often, the direction of a product is pushed by people that don’t use the software, or care more about selling the software than about the use of and users of that software – this often leads to less than good software (and the users are left unsatisfied). Long ago I came to terms about the balance between “good” and “good enough”, the need to ship even if it’s not perfect because we need to make money to keep the lights on in our ivory tower so we can keep working towards “good” (thanx, Doug!). So I grant all the realities of business. But by the same token, I firmly believe if one writes excellent software, it pays off greater dividends in the long run. This is not only in the form of revenue, but also in reputation and goodwill. Conversely, if one keeps shipping shoddy software, if users are constantly frustrated and hate your product, that just isn’t a solid business model.

I’m tired of compromising on this front. I know you can make good products, have happy customers, and still make money. Look at Apple, which is probably why I’ve been an Mac and iOS guy all my life but also why I believe you can have gorgeous, user-satisfying products, good reputation, and succeed. Look at Liberty Bottleworks. Look at EliteFTS. No, you cannot please everyone, nor should you try. But you can ensure you please yourself, that you hold yourself to high standards, and work to build a solid reputation with satisfied customers.

I want to make awesome software. I want to make more useful things. I want to make people’s lives better. And I won’t get to where I want to be unless I travel my own road.

My Family – Along for the Ride

[I] do not believe in quality time but quantity time. I do thinking creating great memories is important but not as much as “being there”. Because of this I work a lot of strange and odd hours.

– Dave Tate, owner EliteFTS, talking about his kids and who he is

When I was growing up, my Dad wasn’t around much. It was just due to the nature of his job, and his dedication to it. As a kid, I resented this because while it was nice to have money and nice stuff, what I really wanted was my Dad. So of course I did what all kids do regarding their parental shortcomings: swear to do better when I’m a parent! For me, that meant being around for my kids. (BTW, I got over my resentment many many years ago, because I came to understand Dad much better as I got older… but a story for another time).

Early on in my professional software development career, I saw how this was a job that could be worked remotely. This is not a job that requires being on-site; yes there are benefits to being on-site, but it’s not a hard-and-fast requirement. I also saw how due to this fact, you could have a bit of a non-standard life (I’m looking at you, Robin Mair and Greg Dow). This greatly appealed to me, and I set about making full-time remote/telework a hard-requirement for any job I took in the future.

Due to that dedication and focus, I was able to spend 12 years working full-time out of my house. One way I can sum it up is that when Oldest took his first steps, I learned about it via a phone call from Wife. When Daughter took her first steps, I got a phone call. But when Youngest took his first steps, it was right to me because I was home. 🙂 Over those 12 years, I got to be deeply involved with my family on a daily, even hourly, basis. That’s precious to me.

People keep bringing up those death-bed regrets, and no one says they wished they worked more, that they wished they had less time with their family.

See, much of life tends to boil down to two things: time and money. I can always get more money, but I can not get more time. Time is the more precious of the two.

After the 12 years at home, I took a job in an office. I spent 2 years there. It was an educational experience in many regards, and I’m happy I went back for the experience because I learned much from the good and from the bad. But the biggest thing I took from it was that that was not the life for me. The precious time wasted being stuck in traffic every day. The orchestration of life around a time-clock and someone else’s notion of what “productive” meant. It just wasn’t working for me. This isn’t a slight against any employer in specific, it’s regarding that sort of life in general. It is not for me and does not enable me to best satisfy myself and provide for my family that which is most important — me.

Working at home gives me the ability to be around my family all day every day (helped in part because we homeschool). Yes, some people think, as a result of our work/school situation, we live an insular lifestyle. No, we just are a tight family. This work setup, the ability to have a more flexible work schedule, allows me to provide my children what I believe is right and best for them, including mentorship as they embark on their own business ventures. What’s funny to me is I’ve thought about having daily “stand-up meetings” with the family. Yes Dad, your daily asking of “Son, what did you do today that was productive?” has come full circle. 🙂

Yes I know. The life I’m leaving is the life many of us live with. Understand this is a personal preference for the road I wish to journey down. I have friends who prefer working in an office; it’s just not my preference. I have friends that consider commuting to be a useful endeavor; I don’t. I know what my priorities are in life, what I want out of the life I have left on this Earth, including what I wish to provide for my family, and well… tho I’m scared and have no idea how this will work out, I’m closing my eyes and taking the plunge.

What’s Ahead

For the immediate future, it’s about getting established. I have infrastructure to firm up.

I already have some projects to work on, and I actually will  be contracting back with my (now) former day-job for a time and helping them find a replacement for me and transition to that replacement person. For the record, I am thankful for the support and mentorship I’ve received from Lee and Carrie Little, founders and owners of Bar-Z Adventures.

If you or someone (some company) you know is looking for a solid software developer, drop me a line. 🙂

Meantime, I forge ahead. I don’t know how this will work out, and honestly while there’s much about this situation that I’ve done before, there’s much that’s new and novel — I don’t know how it will go, or even if it will wind up being the right road for me to travel. But still, I look forward to the challenges, to the new experiences, and the hope for the life I wish for myself and my family. If nothing else, it’ll be an interesting experience, and I’m thankful for the opportunity.

The hard drive saga gets worse….

So that hard drive swap? The story got worse.

After the long weekend of swapping and getting back up to speed, I finally go back to work. Close the lid on the MacBookPro, lift it to put it into my bag… and there’s this buzzing noise coming from the hard drive. It sounded like a lightsaber (best way to describe it).

That can’t be good.

I contacted Other World Computing about it. It only makes the sound when on… doesn’t have to be going to sleep, could be lid open and in the middle of doing whatever, pick up the machine and tilt it (not even a quick tilt, just gently) and noise. So it’s not say a loose bracket or something. They opt to send me a replacement. I got the replacement just before this past weekend, and just time.

See, all the week while I had the new drive in, I had strange crashes. Some background daemon would crash, or Xcode would crash in a non-normal way (yeah, Xcode 5.0.2 crashes on me, but the crashes seem to be fairly deterministic and reliable — these new crashes were out of character).

Made worse? All day Friday while at home (the great Austin Ice Storm of 2014!) I kernel panicked 3 times. Well, more than that, but after the 3rd one I figured it was time to stop work for the day and investigate. All my crashing and panicking was coming out of processes like mds and backupd, which starts to point to disk i/o. Hrm.

So I swap in the new drive (so we have “original drive”, “replacement drive 1” and now “replacement drive 2”. I put replacement 2 in, and start the process again of restoring things. Hrm. Long story short, first restore attempts fails for some unknown reason. Try again, and it appears to have succeeded but didn’t, because reboot and while booting it panics again (couldn’t find ‘init’. That’s bad). So again I go around and around. Yeah, it starts to panic again.

And I tried tilting the machine. Sure enough, replacement 2 makes the same vibration lightsaber noise.

Well crap.

It’s unlikely to have 2 faulty drives in a row, possible, but unlikely. What gives?

I did a bunch more experimentation. After talking it over with my buddy W, it came down to a simple thing: time vs. money. To try to further diagnose this problem would require a lot of time, perhaps a week or two without the machine. I cannot afford that. If it was just for email and Facebook, whatever. But as a developer, the machine is vital to my daily existence. Time is more critical here.


I am now the proud owner of a MacBookPro11,3 — the 15″ retina model. 🙂 And the big model too, because these machines can’t really be modified or upgraded after the fact, and 16 GB of RAM and 1 TB drive space matters given what I do in a day.

No, I’m not happy to have suddenly dropped 3-grand (and yes, I got AppleCare — always do), but I’m thankful that I could.

So I’ve used Migration Assistant and things seem to be getting back to normal.

As for the other machine….

While doing some of this restore work, I had put their “replacement 1” into an external case (see their DIY upgrade kit). On a whim I tried it… I just tilted the naked drive. Sure enough, it vibrated. I’ve been in communication with OWC’s tech support, and just sent them a follow-up with a little video of the vibration noise. We’ll see what they say.

I was convinced the old MacBookPro was dying a hardware death somewhere, but now I’m not so convinced. Nothing I can do about it now… I guess it just means the kids get a nice MacBookPro for school. But we’ll see how everything shakes out in the end.

The story continues…. but I just hope that I’m nearing the end of it, at least the major headache portions.

PanemQuotidianum 1.0 is now available

December 13, 2013 (Austin, Texas) – Hsoi Enterprises LLC announces the release of PanemQuotidianum 1.0 – an iOS (iPhone/iPad) app bringing you Daily Bread for your Daily Life.

PanemQuotidianum is “daily bread” for your Catholic life.

Every day you can wake up (or go to sleep) with a bite of spiritual bread to nourish your soul. It’s light and simple, but filling and satisfying.

Simply set when you’d like to receive your panem, and you’re done. Each day at your set time, a notification will post. Respond to that notification to view that day’s posting.

PanemQuotidianum represents a labor of love, and the first collaborative effort to grow Hsoi Enterprises LLC as family business. Thank you for supporting our efforts.

PanemQuotidianum is available now in the Apple App Store for $1.99. A portion of the proceeds will be donated to Catholic charities.

PanemQuotidianum – Your Daily Bread for your Daily Life.™

kwikkEmail 1.0.3 live in the App Store

I occupy my time with writing and releasing software. The latest — kwikkEmail 1.0.3 — just went live in the App Store.

Thank you for your support.

PracticeDeck 1.1.2 released

One of my iPhone apps, DR Performance Practice Deck for iOS version 1.1.2, is now available in the App Store.

Just a minor bug fix update, but an update nonetheless.

Thank you for your support.


I’m trying to emerge from one of the worst burnouts that I can remember.

It happens. It’s the nature of the business I’m in… and I think it’s also the nature of me.

I try to live a balanced life, but by the time I figure out how to balance things, there’s something new in the mix that imbalances everything. And I have enough drive and dedication to things that sometimes I push too much, and it’s… well… too much.

I think to some extent I just have to accept that this is me and how I run. It does better sometimes to go with the flow instead of fighting the current.

It finally came to a head a couple weeks ago. I just cracked. Was really short-fused and couldn’t focus on anything. No motivation for work or other stuff. I made a long Labor Day weekend, taking 5 days to do nothing. And while I did some stuff, the main focus was on sleeping and eating. I slept a lot. Heck, I woke up on Sunday after about 9 hours of sleep, ate breakfast, then went back to bed for another 2 hours. I then took another nap later in the day. Yes, everything was shot. In fact, I think if I could take another week off of “life” I’d come out in really good shape.

As it is, I feel a lot better. And one thing that is most significant that I didn’t realize was an issue? I don’t feel stiff and creeky. I figured it was just being beat up from the weights. I do think it was that, but it was… silly. Trying to just kneel down then get back up? It was a chore. OK so squatting 295×2 isn’t huge numbers, but if I can squat more than my bodyweight, why is it difficult to kneel down and get back up? I guess because I was so shot. After all this time resting, I don’t feel stiff and creeky any more. I can just squat down, kneel down, get up, and it’s no problem.


But it taught me a lot, and gave me a lot of signs to look for in the future. Catch it before it gets bad, because a lot of these signs are new signs.

Sleep is key. I need more of it.

But food is another.

Trying to diet down, seeing how it hurt me, running counter to my true goals. I also believe the restriction on food contributed to things because I didn’t have what I needed to build myself back up. I’ve learned over the years to listen to my body. Sometimes I’ll get a massive craving for something, like fruit. Listen to it. Eat until body says that’s enough. and it’s never really a want to pig out and gorge. There’s a limit and eventually the body says it’s good.

As much as I hate to keep the belly flab, I think I need to just keep eating more. It makes sense. But I do think along with listening to my body more, I can do things to be cleaner and, if I stick to things more long-term, it should work out alright for me. I’ll get there, but it will take time.. perhaps a lot of time.

I’m going to eat well, 250g of protein a day I think is minimal, don’t sweat the fat (tho don’t be stupid about it), and moderate the carbs. For example, if I have a piece of whole fruit with breakfast, fine. But that’s probably all I need. If I can have a carbless lunch, great. Then if Wife makes something for dinner that has some carbs in it (e.g. rice), just roll with it. If I have a scoop of ice cream before bed, fine, just don’t do it every night. I think all the “artificial” program following I’ve done has been good because it’s taught me a lot and shown me a lot; learned a lot about my body. I’m finding my groove, and right now, it’s a shit-ton of protein and moderate everything else… where my body is nourished to the level it needs, and it will tell me.

So, to anyone I’ve ignored or snapped at in the past some weeks (or months), I apologize. I let a lot fall by the wayside because I was burned out but had to keep chugging on key things (e.g. day job). I was tapped out and didn’t see the signs, because a lot of them are new ones. There are no excuses, just asking your forgiveness and thanking you for your patience.


If you could give me one piece of advice…

…about running a small business, what would it be?

I know other small-business-owners and entrepreneurs read my blog. So if there is one thing you can share with me from your experience, please do.

A lesson learned.

A mistake made (and how to not repeat it).

A wise principle.

A guiding concept.

Whatever it might be, towards helping one achieve success.

For example, Michael Lazerow says the #1 mistake entrepreneurs make?


Successful entrepreneurs focus exclusively on efforts that matter and are able to tune out the rest. People who focus succeed. It’s that simple.

So, what can you teach me? I’m ready to listen. Please add a comment.

Commitments and Priorities

I saw the above image posted to the DangerouslyHardcore Facebook page. In case the image goes away it says:

Commitment means staying loyal to what you said you were going to do long after the mood you said it in has left you.

Very true.

I’ve had a bunch of things rolling in my head for a while, and seeing the above image/text along with something that happened in Wife’s life a few days ago… it changed my priorities regarding my commitments.

I had committed to being more involved in shooting competitions, like IDPA. That’s going down the priority ladder.

I had committed to working on a new iPhone app. This commitment was made some time ago, work started, but has been treading water for too many months. This is going up the priority ladder.

I only have so much time and energy. The app went down the ladder because after staring at the computer all day and busting my ass all week for the day job, I just didn’t have the desire to look at the computer any more. I was (am) drained. Other things went up the priority ladder because they were not-computer things. They gave me something else to do, something else to occupy my mind and energy. Plus they were things that needed attention.

Well… the lack of app commitment also strikes a little closer because this particular app project is very personal. It’s something I’m doing with Wife, and it means a lot to her. That I haven’t been able to give it the attention it’s due is not right, and I feel horrible. It’d be one thing to not honor the commitment to myself, or to anyone else. But to not honor this commitment to my wife? That’s not right, and that hurts me deeply. It wasn’t not honored out of malice or anything bad, just exhaustion. I need to do something about it.

And in some regard, the mood for the app has left me. It’s mostly because I’ve been away, had too many false restarts, and it’s just hard to get motivated yet yet yet again. But I know once I truly get back into it, I’ll roll along alright. I need to rediscover my commitment, and see it through.

So, since much of my “free time” is on the weekends, that means I need to spend it working on this app.

That means shooting matches is out, for now. I don’t expect the app will take me all year to do, so I reckon later this year I should be able to make it out to matches. As well, so long as I keep dry firing at home and regularly shooting, like when I go out to KRT to teach, that’s alright. I mean, if I can run through a few magazines, run a few drills, assess state of things, then go home and dry fire to bring up the skill, then go back and shoot to measure progress, really, that’s OK. That will hold me for now. That I’m just shooting live at least once a month is well, about what shooting competition would be. Granted, there isn’t any of the pressure or environment, but this is the trade-off for now while I live up to my more important commitment. I just have to keep up with dry fire and ensuring I put at least a mag or two through the gun (for myself, with purpose) when I go out to teach.

I’m not abandoning my commitment to shooting competition, just changing course a bit. I have to, because Wife is more important. 🙂  And hopefully it brings other commitments back, like more regular dry fire and practice.

I can only look at this as a good thing, as long as I remain committed. 🙂

What we (programmers) want

I’ve poked at computers for decades… yes, I’m dating and aging myself.

And programming always appealed to me. I guess it’s been my craft, my calling. I’ve had opportunities to move into management, but I refuse because I know what I’m good at and what I love (and that I don’t like being a paper-pusher). For example, right now I’m working on one of the more challenging programming tasks I’ve dealt with in a very long time. It’s very complex, very complicated, very frustrating. But because it’s such a huge challenge (and will be a HUGE win when I pull it off), I’m happy to let it engulf me. Part of my poor sleep this past week has been due to Daylight Saving Time throwing me off, but also because the moment I wake up my brain churns on this problem because well… it’s just what I find exciting. Geek that I am.

Over my years, over my jobs, my bosses, my companies, the projects and groups… I’ve learned what I want and don’t want. Geeks do tick differently, and we aren’t satisfied by the same things a lot of other officer workers are. It’s welcome when the company and bosses get it, and frustrating when those that “run you” don’t get it. I don’t expect people to bend to my way of being, but I can say if you can understand folks better, you tend to get further.

This article by Michael O’Church about “What Programmers Want” is insightful and pretty spot-on about us.

If you have to manage geeks or interact with them, take the time to read it and gain some insight into us.

Or if you just want to understand us geeks a little better, it’s worth your time too.

Senior Engineer

John Allspaw writes “On Being a Senior Engineer“.

In my long career, I’ve met lots of people with the title “senior engineer”. We’d joke and call them “señior engineer” because it was all too often thrown around as some title of arrogance or tenure, but was about as meaningful as a “perfect attendance” award  — sure it’s great that you showed up and have been here a while, but that didn’t mean you knew anything.

Or were mature enough.

So with that, I’ve often cast off the title because it’s tended to be meaningless, maybe useful for business cards or at most on your résumé. But John’s article gives a perspective that the title is meaningful, if applied to someone who actually fits the role.

Of course for it to truly be meaningful, the title needs to be properly applied over the course of a career, not just because you’re the lone coder at some startup you and your other 20-something-year-old friends put together over beers one evening fresh out of college.

In the end, it’s just a title. It doesn’t really matter. But the merits and qualities of a senior engineer, as John lays out, are what really matters and what are worth striving to be.