Stories about Software


Business Profit 101: A Primer for Freelance Software Developers

As I threatened in my last post, I’m starting something of a loosely collected series. Maybe I’ll even get organized and give them a WordPress category at some point.

If you missed the last post, it’s not exactly required reading, but it would help with context.  In that post, I explained that freelancers, however they describe themselves, aren’t business owners.  Not really.

And I went on to say that the primary distinction between business owners and freelancers is that the former reason about profit.  Freelancers simply plunder every last dime from their “businesses,” not understanding that this is salary, and thus a business cost, rather than profit.

But I didn’t dive too much into the nature of profit itself.

I would understand if you read that last post and said, “I get what you’re saying, but I’m not sure I grok.  Couldn’t I just arbitrarily say that my salary is 80% of what I bring in freelancing, and then 20% of it would be profit?  Problem solved, right?”

The answer is, “no, definitely not.” But I can understand if you don’t understand why that’s the answer.

In the most abstract sense, think of profit as money your business can make while you sleep (or, in general, while you don’t work). And you, as a freelancer literally selling your hours of labor, can’t make any money while you don’t work, 20% or any other percent.

But let’s clear things up in this post by examining a concretion.  I’m going to walk you through a very realistic app dev freelancing situation and talk through the ideas of cost, salary, and profit.  Hopefully that drives the point home.

Read More


Freelancers Aren’t (Yet) Business Owners

The idea for this post started as an idea for a tweet, and actually grew into an idea for a series.  (Or, perhaps, even a book, in a world where I can semi-retire for a while and have more time.)  But, lest I get too ambitious, let’s start with just a post.

And let’s start that post with the tweet that popped into my head.

“Freelancer” isn’t a career destination.  It’s an intermediate step along one of two career paths.

Path A: Employee -> Freelancer -> Employee

Path B: Employee -> Freelancer -> Business Owner

If you’re not consciously on path B, you’re accidentally on path A.

Here’s a graphical representation, if crude ASCII arrows aren’t your thing.

Now, the problem with this as a tweet is that it would have invited enough legitimate questions and discussions so as to make me break with my normal Twitter conversational pattern of “sporadic, at best.”  I can picture the objections/questions now:

  1. What, exactly, do you mean by “business owner?”
  2. That’s ridiculous, I’ve been freelancing for 20 years!
  3. What, exactly, do you mean by “consciously?”
  4.  Aren’t freelancers business owners by default and by definition?

And so on and so forth.

So, rather than try to sort all that out in a flurry of confusing Twitter threads, let me lay out my case here.  That way, I can tweet my tweet and then just reply to it with a link here, thus preserving “sporadic, at best.”

Read More


11 Realpolitik Career Tips for Junior Developers

If you’ve followed me for years (and you read the title), you’re probably thinking, “Erik, you hypocrite.”

But let’s not confuse everyone else with inside baseball just yet. There will be plenty of time to get into why I called them “junior developers” in spite of really disliking that term.

So give me the rope with which to hang myself, and stay tuned for my advice to those embarking on a programming career.

What This Post Is and Is Not

What I want to do here today is offer some tips. But if I just wrote a post called, “Tips for Junior Developers,” I’d be, by my non-scientific making up of a number, the 79,667th person to write a post with that title.

And those tips would include things like:

  • Be humble.
  • Keep a developer journal and write down your mistakes to learn from.
  • Read well-regarded books by prominent developers.
  • Learn communication skills

I’m sorry, I need to stop. No offense to people who have written these things (including probably me at times). But I’m boring myself to tears just typing out the strawman.

So I won’t write that post. I promise.

Instead, this post will have what readers of this blog and my book have come to think of as my personal spin on it, which generally ranges somewhere between hyper-cynical and coldly pragmatic, depending on your point of view.

If you’ve never read it, you might want to check out my definition of the corporate hierarchy, to understand what I mean when I describe people in organizations as pragmatists, idealists, and opportunists. That may prove helpful for perspective, since I’d characterize so-called “junior” developers (let’s say people with < 2 years industry experience) as idealists by definition.

Those formative 2 years will determine whether you remain an idealist, graduate to journeyman idealist, give up and become a pragmatist, or… well, let’s not worry about opportunists here.  The intersection of budding corporate opportunists and people looking for junior dev tips is probably the empty set.

Career-Savvy Tips for Junior Developers

If you’re embarking on a programming career, first of all, good for you.

Seriously. You’ve selected a path that will pay you handsomely and is, in my opinion, anyway, a lot of fun.  I always thought of professional programming as “people pay me to solve puzzles.”

As a so-called junior developer (or an aspiring one), you’ve come from one of two very broad paths:

  • Recent grad with a CS or related degree, looking for that first corporate job.
  • You have professional experience, but are making a career transition, perhaps with the aid of a bootcamp.

So you’re either standing outside the club, leaning against the velvet rope and peering eagerly at the movers and shakers within, or else the bouncer has just waved you in, and you’re telling yourself, “play it cool, play it cool!”

You’ve waited and worked for this moment. The club analogy trivializes it, because you don’t spend months or years waiting to get into the club.  (I mean, I don’t think so anyway — my days of going to anything called a “club” are so far in my rearview that I’d have to pull over for them to catch up.)

You’re grateful to have that first job, and to be welcomed into the society of real software developers.  I get it, I find your enthusiasm infectious, and I’m happy for you.

But don’t let this excitement take your perspective.  Because it will, and it does for most.

To understand what I mean, let’s get into the tips.

Read More


Time Isn’t Money — It’s Inefficiency and Waste

Editorial Note: This originally started as a rant for Twitter.  But, as regular readers can attest, my keyboard tends to outrun the medium I’m in.  So I figured I’d repurpose this into a blog post, since it’s been a while.

I haven’t quit posting, either, BTW.  I’ve got draft content for the next couple of weeks.

Time is money.

The business world accepts this as basically axiomatic. But it’s really kind of nonsense.

Time isn’t money. In the context of commerce or value, time is, at best, a measure of your inefficiency and, at worst, a measure of waste.  (And I would argue that my interpretation actually squares with that of the man who coined it, Benjamin Franklin.)

I recognize that this is an extremely contrarian position and that it requires some justification.

So let me justify it.

Should I incorporate? The monopoly guy here thinks the answer is yes, and so do I.

Read More


Businesses Should Have 3 Months of Savings? It’s Not as Simple As You Think

The COVID-19 outbreak has given rise to memes the way you’d expect from the year in its name. Most of them probably die quickly on the vine, but some have shaped up to make their way into my feed over and over.

And of those a lot are poignant and hilarious.  Some on the other hand, induce a lot of facepalm in me when I read them:

  • The Venice canals have magically healed themselves, so maybe there’s a silver lining to this whole thing.
  • Grocery workers should have higher salaries because we’re collectively grateful to them at the moment.
  • The virus severity is a left-wing conspiracy to make Trump look bad (though I think that one seems to be subsiding).

But perhaps nothing brings palm to face harder than this one:

They tell us that families should save at least three months worth of expenses to cover for emergencies, but businesses lay people off and need bailouts after a week.

The relationship between meme and trope is often a tight one.  And this meme walks hand-in-hand with the “corporate fat cats vs honest folks” trope.

Remember this trope, and I’ll return to it to explain why I brought it up a little later.

My wife and I own a small business. It employs 4 salaried full timers and somewhere around 100 contractors who do varying amounts of part time work.

And, counter to the meme, we have banked enough expenses to survive (without layoffs) for three months.  But, if anything, this “of course you should have” attitude actually makes me hate the meme more, and, in this post, I want to explain why.

Painting with a Broad Brush: Not All Businesses are GigantiCorp

I want to elaborate a little about my business in particular, because the story of building this business is going to underscore a number of points I’ll make.

The business, Hit Subscribe, is a bootstrapped company. (Briefly: we’ve never taken investment capital or loans, and instead built the business exclusively on cash from sales.)  My wife and I founded it together, about three years ago, and did all of the work in it, initially.

Over the last three years, we’ve grown steadily, backfilling ourselves with contractor help and, eventually, full time employees. That brings us to the current state, with the worker situation that I’ve mentioned.

Remember the “corporate fat cat” trope? I mentioned that because the skeptics reading this are gearing up to object, “you’re not who I’m talking about — I mean Giganticorp!”

Well, fine, but two things.

  • First, in that case, you should probably qualify exactly who you’re shaming in your meme.
  • And second, the road to war chest doesn’t magically get easier as you grow.

To underscore why that is, I’m going to tell the story of growing the business and the fight to build a war chest.

Read More