Stories about Software


Becoming a Freelance Developer and Taxes

It’s been a while since my last reader question post.  That was the one where I confusingly announced on a Tuesday that I’d be doing reader question Mondays.  Well, today I start a new streak of doing reader question posts on Mondays.  My apologies for dropping the ball on that, but I took on a full time consulting gig for a few weeks while also running my content business evenings and weekends.  It was a busy run.

Anyway, let’s get down to business.  Both in the Developer Hegemony Facebook group and through other media, people have asked about some nuts and bolts freelancer/entrepreneur type things.  And, after recent videos about creating an EIN and filing for an LLC, the pace of those questions has increased.  So, apologies to those who come to this blog looking for rants about the perils of global state or unit testing.  Today, we talk taxes.

If I’m thinking of going off on my own, how do taxes work?

Nobody has asked me the question in these exact words.  Rather, this is a composite of what various people have asked.  So, without further ado, let’s dive right into the least interesting subject on the planet.  I’ll do what I can to make it fun.

Obligatory Disclaimers

Mercifully, I am neither a lawyer nor an accountant.  Nothing against either profession, per se — they’re just not for me.  I mention that here so that you understand the context of this advice.

I am going to describe what I have, myself, done, along with my understanding of how it works and various other options that I might have.  I’m pretty confident that I have a relatively complete understanding for a layman in those fields.  But there may be finer points that you’d need an accountant or lawyer to illuminate.

In the context of the software world, think of me as a the equivalent of a guy with 3 years of .NET experience teaching newbies.  I’ll get enough right to help them a lot, but I might not nail some of the more arcane language points or sophisticated design strategies.  Caveat emptor.

Non-US readers, this is also entirely US-centric.  I hope some of it helps, though.  I’ve had people from other countries tell me in the past that some of my videos/posts along these lines are helpful.

Taxes in the Wage Labor World

For the sake of easy math, let’s say that you take a job for $120,000 per year.  Let’s also say that the employer pays you monthly, at a nice, round $10,000 per month.  That should make it easy to figure out how much you’ll pay in taxes, right?

Wrong!  There’s no figure round enough to make it easy to figure that out in the US.  You go to a calculator like this, expecting to type in $10,000 per month and seeing that you owe something like $2,200 per month in taxes.  Instead, it wants to know whether you’re single, how many “dependents” you have, and something about “exemptions.”  And that’s a simple one.  Some probably ask you about your mortgage, whether you live in a flood plain, and how many blind uncles named Dwayne you put in rest homes last year.

Read More


From Employable Generalist to Successful Efficiencer

For regular followers, I bet you thought I forgot about reader question Fridays last week.  I didn’t.  Friday is a relatively low traffic day for bloggers, so I’ve decided to switch over to reader question Monday.  But, on Sunday night, I did forget about the post draft, so the first reader question Monday is actually Tuesday’s post.  I know.  I’m a little disoriented too.  But we’ll figure it out.

About a year ago, I wrote a post about niching down.  I asked readers to imagine if, instead of listing the services that they provided, housing contractors described the number of years they’d spent using their tools.  “I have 6 years of hammer, 3 years of reciprocating saw, etc.”  From that, they left it up to you to figure out if you could translate those skill into something useful, like fixing your garage door.  That’s us, in the software development world.  “Here are my experience tuples, and now I just need some kind of manager to figure out how to turn me into a useful resource.”

Given my tone, you can probably infer that I advise against this approach.  In fact, I frequently suggest specializing and figuring out how to solve business problems.  But as a few people have now pointed out via reader questions, I’ve not offered a lot in the way of advice to bridge the gap.   A reader in the Developer Hegemony Facebook group put it quite succinctly, in the parlance of my old post.

How do you translate 3 years C#, 6 years C++, etc… into “I can fix your garage”?

It’s a good question.

Read More


Find Clients and Win Them Over

Ah, the mission to find clients.  Critical for any business, obviously, but especially daunting for the newbie solo consultant or freelancer.  Today’s reader question solicits advice on how to tackle this.

I like your ideas for future topics. I’d love to see more on how to find and win clients. Not just general marketing, but actual sales.

Now, please forgive some introductory digression here.  But I honestly can’t conceive of how to talk about sales without talking about marketing.  Reason being, your marketing (or lack thereof) will heavily influence your sales strategy.

Personally, I don’t do a lot of sales.  At least, I don’t do them in the traditional, numbers game sense.  When I look back over the last couple of years, almost all client-facing work started with clients seeking me out.  The only exceptions included past clients, where sales looks a lot different.

As you might expect, this dynamic heavily influences my sales discussions.  I’m almost always in a favorable negotiating position, not really needing the work.  And the mission to find clients?  I haven’t historically needed to do that a lot.  All this because of my years-long investment in personal branding and marketing.

I say this not to brag, but to illustrate the degree to which your marketing affects your strategy for identifying prospects and pitching to them.  And now, I’ll seize an opportunity to stop talking about myself and start talking about the general would-be freelancer/consultant.  But I will have to talk a bit more about the marketing (though not in the how-to sense).

The Silly Market for Software Work

If you put on a marketer’s hat and look at people selling software development labor, you’ll have a hard time knowing whether to laugh or cry.  I saw this site, recently, called “Code Fights.”  Assuming I understand its charter correctly, it perhaps epitomizes the bizarre market for our labor.  The site encourages you to compete with tens of thousands of people for extremely similar work.

We don’t think anything of this when it comes to finding generalist programming jobs.  But recall how I’ve talked about generalist programming not being strategic.  And if you want to go into business for yourself, you can’t afford to tilt at algorithm trivia and programming competition windmills instead of being strategic.

Think of it this way.  Imagine that someone came to you and solicited your advice on starting a business.  Would you say the following to them?

Here’s what you should do.  Take something that tens of thousands of other companies are doing, and do that.  It’ll be hard to differentiate yourself, but don’t worry.  There’s this website where you can practice by playing games…

It’s so preposterous that I’m going to stop right there because I’m actually laughing as I type it.  In the business world, you don’t respond to market competition this way at all.  Instead, you seek to differentiate your offering in a way that plays to your strengths.

Read More


Freelance Programming without a Marketing Presence

Happy Friday, everyone.  I’ve had no shortage of questions about freelance programming and consulting since I started reader question Fridays.  I’ve talked about speaking to buyers and about moonlighting, among other things.  And in all of these posts, I bang the drum for building a marketing presence over the course of time.  But today’s reader question concerns freelance programming when you don’t have time to play the long game.

In that first post, I encouraged people to start building a marketing presence and brand immediately.  I invoked a saying about trees.  The best time to plant a tree is 20 years ago; the second best time is now.  In response to that, a reader asked the following.

How about making it a little quick?
I like the example of sowing the plant now and I do understand its strength but not everyone has that much time cushion in his/her life to keep doing his/her thing continuously…

Fair enough.  What do you do when you want to get going as a freelance programmer immediately, but haven’t had time to specialize or build a brand?  Well, to answer that, I’m going to take a small detour through the concepts of marketing and sales.

Marketing and Sales

Plenty of sites will tell you about the nuts and bolts difference between marketing and sales.  Generally they’ll advise you that marketing involves brand awareness while sales involves closing the deal.  And, that’s true.  But I’m going to draw a different distinction.

Simply put, marketing is “here’s a sense of the value we provide” and sales is “let’s talk about you giving me money.”  So, if you’re anything like me, personality-wise, marketing is okay, and sales is distasteful.

In fact, I’ve actually come to like marketing.  I’ve even created a business where we help tech tools and training companies with content marketing.  Basically this involves leading with value — creating content that prospective customers find interesting, but without trying to take money from them.  You attract their interest, offer them information or entertainment, and then hope that builds goodwill for the brand, eventually resulting in sales.  But you also hope that, by the time a sale becomes relevant, you’ve already given them something of value and made them an enthusiastic buyer.

“Here’s the thing we’re selling, and we think it speaks for itself — let us know if you’re interested.”

Imagine a sales process like that.  Software developers are cynical, savvy, and sales-averse, so a pitch like that is a way to our hearts (and wallets).

Software Developers as Salespeople

Ironically, in spite of our leeriness toward sales, we, as software developers are sales people.  And, we’re not even the easygoing, friendly type.  We’re the sharkskin suit, slicked back hair, high-pressure type.  We want you to hurry in for these great deals while supplies last!

Is this guy doing freelance programming or selling cleaning supplies?

Okay, I can almost see your skeptical look through the information ether of the internet.  But, seriously.  We do this when we sell our labor.  It’s called a job interview.

Read More


Competing with Software Consulting Companies

Thanks, everyone, for sending in your reader questions!  I’m flattered by how many folks have submitted and definitely have a healthy backlog from which to choose.  Today, I’m going to answer one about competing with software consulting companies.

I believe this question came from a post I wrote two weeks ago, about speaking to your buyers, rather than to peers.  We as software developers seem to love to speak to our peers.  We speak at conferences and write blog posts for the love of the game, without realizing that impressing peers is unlikely ever to pay the bills.  So in that post I talked about how to speak instead to buyers through your blog.

Here’s the follow up question.  (He actually provided more context, which I’ve elided)

What motivates buyers to buy? In my experience, the big companies buy from other big companies — ones with infrastructure and support in place. Starting off, lest we share the fate of Ahab, we NEED to chase the smaller fish to cut our teeth in business. So, for the beginner chasing smaller fish, isn’t it more important to compete on price, given small fish don’t have the capital of big firms?

There’s a lot to unpack here, in terms of explanations.  So let me start out by drawing a meaningful distinction.  In that previous post, I talked specifically about freelance software developers.  But here we seem to be talking instead about consulting.  Or, at least, we’re talking about someone with a defined specialty.

Generalist Freelancers Don’t Compete with Firms… or Really Anyone

Why do I infer that we’re talking about someone already specialized?  Well, first of all, that was the whole point of my previous post.  But, beyond that, getting work as a generalist freelance software developer is too generic for the question to make much sense.  You might as well talk about how every maker of bottled drinks in the world could compete for a guy named Steve who’s in a gas station right now and thirsty.  It’s too generic a transaction to bother considering it as appropos of anything beyond the moment.

If you’re a software developer that does web apps using ASP MVC, Javascript, and C#, you’re conceptually competing with hundreds of thousands of people for every gig that you get.  And, worse, you’re competing with all of them via the interview process.  And job interviews basically just amount to picking people randomly and retroactively convincing yourself that there was a method to the madness.  So, as a freelance supplicant to the interview process, you’re kind of just playing game after game of roulette until your number comes up.  Or, you’re one of a hundred soft drinks and iced teas, hoping that Steve feels like something grape flavored and carbonated.

When you're a random soda, you're not competing with software consulting companies

To put a more emphatic point on it, think of it this way.  As a generalist freelance software developer, you needn’t bother thinking about your competition.  Your competition is too nebulous, and low leverage opportunities too plentiful to bother.  Just play a numbers game.  Throw your resume at contract matchmakers and recruiters, and line up regular interviews for yourself.  That gets enough people into the gas station that one of them feels like grape soda.

Read More