Stories about Software


From Developer to Consultant

Editorial Note: Next week, I’m going to Panama to explore the canal.  I have no idea how much internet access I will see, so next week could potentially be a quiet week for DaedTech posting, if I can’t log in to publish a few cross posts.

If you write software, but not for the company that signs your paychecks, this title may sound strange to you.  “What do you mean, ‘from developer to consultant,’ when you can be both?”  I have answered that question previously, so I won’t rehash it here.  Suffice it to say writing code for someone other than your employer does not a consultant make.  (But read that post, seriously, because it becomes even more important later in this one.)

A few readers have submitted variants of the same question, so I’ll capture it simply, and as a composite.

As an independent, how do I go from doing app dev work to consulting?

I added the bit about independent status because it matters.  Without that, I could answer trivially by saying, “get hired by a consulting firm that wants you to consult, and let them train you.”  But if you go from contract to contract slinging code or if you write code as a W2 employee, you have a less obvious transition.

The Nature of Both Beasts

Before I lay out a tactical set of steps, I need to define the underlying nature of both roles.  In the taxonomy post, I approached the matter in terms of definitions, as one might expect from a taxonomy.  Here, I want to talk philosophy.

I once gave seeking app dev work a satirical treatment.  I asked the reader to imagine a world where, instead of “I’ll fix your garage door” contractors advertised their services with “I have 5 years of hammer, 2 years of table saw, proficiency with 6 kinds of metal, etc.”  As an app dev contractor or W2 employee, you offer the world the latter.  You say, “here’s a brain dump of stuff I’ve done, so all I need is someone who knows how to make me useful and who also signs checks, and we can get going.”  You offer exactly the sum of your experience tuples.


A consultant, on the other hand, offers services akin to general contractors.  “Call me if you have a problem with your garage door, and let me worry about finding someone who can do the job and how many ‘years of hammer’ they need.”  An app dev free agent solves one problem (writes code for someone who can’t) even as he presents another (figure out what skills are needed and manage that person during execution).  A consultant steers clear of execution and offers only guidance.

Read More


How to Get that First Programming Job

If I think through the corpus of posts I’ve published, it seems they rarely focus on concerns at the entry level.  Or, at least, at the entry level of software, specifically.  Today, I’d like to look at a reader question about getting that first programming job.

My question is, what if I’m not exactly a developer yet?  I’m just wrapping up one of those full stack coding bootcamps, and I’m anxious about finding that first job.  Can you offer any advice?  I want to show that I care about doing things right.

First, I’ll offer a few caveats.  Nothing in the reader question spoke to how much experience the asker had outside of the programming industry.  That can matter, but I’ll write this post in such a way where it won’t.  Secondly, because I’m not entirely clear on the context for the last sentence, I’ll assume it exists as a way to show (and provide) value to prospective employers.  In other words, I’ll assume that “I care about doing things right” means “I want employers to see that I have good work ethic and care about the craft.”

The Entry Level Conundrum

When I graduated college at the end of 2001, I graduated into the teeth of the .COM bubble bursting.  Offers I had received dried up, and interview invitations I had received evaporated.  A new reality emerged — a reality in which entry level folks found themselves subject to a paradoxical conundrum.


Nobody wanted to hire software developers without experience.  And I couldn’t get any experience without getting hired.  I did what anyone in my position would do and went to work at Radio Shack.  I’m actually dead serious about going to work at Radio Shack.  That’s how bad things got in my search, and I needed money.

Eventually, after almost a year of peddling cell phones, freelancing a bit, and looking for work in my spare time, I landed a job as a “Software Quality Engineer,” or, as I like to think of it now, “Software Engineer with Training Wheels.”  I took the job, shed the training wheels and never looked back.

While my story eventually ended in joy (or at least employment), I believe the entry level conundrum holds true in the industry to this day.  Developer fortunes as a whole have improved substantially since I graduated with my CS degree.  But it can still be hard to find that first gig.

Read More


Securing Yourself a Better Title

Tonight marked the vice-presidential debate and the start of the baseball playoffs.  With two spectator sports on television, I thought I’d draw some inspiration and answer a reader question about office politics.  This question came to me from a reader whose problem tracks back (in my opinion) to need for a better job title.  And it came in lengthy format, checking in about 1,100 words!

For the sake of both poster anonymity and brevity, I will summarize with as little information loss as possible.  My summary is as follows.

I finished a CS degree and took an entry level position.  From there, I took a job that involved writing code — automation around Selenium to be used by a QA group for testing.  I believe this mimics the role of Google’s “Software Engineer in Test.”  That said, the conferred upon me the title of “QA Engineer.”

For two years, I enjoyed the development work in this role and made inroads toward an advancement.  Before that happened, however, my company shuffled departments, and I found myself in a new part of the company, under a new boss.  This new boss only saw me for my title, rendering my progress moot.

I approached him about my situation and he agreed to put me on a more classic development team, but on a “probationary” basis.  He said that he’d consider a formal change in six months if I could work on defects and get my fix rate up to a certain number per week.  Six months later, at a review, he said that I had made definite progress, but that my rate of X per week was just not QUITE high enough and that we could talk again next year at performance review time.

What are my options?  What should I do next?  I feel that I’ve now fallen behind people of a similar, salary-wise, and I feel stuck in a rut.


Title Matters

Let me start by offering a quick bit of context.  Recruiters and people offering you jobs with bad titles will tell you that titles don’t matter.  Don’t listen to recruiters and people offering you bad titles because titles do matter.

They matter because a job title counts as what I’ll call passive bargaining material.  When you navigate the waters of your career, you will have negotiation points where you look for more salary or benefits or whatever.  The actual negotiating constitutes the active component of this dance, and that matters.  But so does the passive portion: your previous/current title, salary, benefits, etc.

Don’t believe me?  If you’re a developer, cold-apply to a bunch of dev manager or director gigs.  No responses?  Try adding a fictitious 5 year stint as “Director of Software Engineering” to the top and try again.  Bet you get at least a few calls.

Read More


Wherefore Art Thou, Tech Debt?

About a month ago, I re-posted something that I had written about tech debt for the Infragistics blog.  This turned out to be a popular post, and it generated some reader questions.  Today, I answer one of those questions, which basically amounts to “wherefore tech debt?”

What generates tech debt?

No doubt, you’ve heard the Shakespeare-as-Juliet ask, “Romeo, Romeo, wherefore art thou, Romeo?”   Most people imagine Juliet, standing on the balcony and offering a maudlin request blindly into the night — “where are you, dude?”  Interesting bit of trivia.  Juliet does not ask where Romeo is, but why he is.  She poses a much more interesting question.  “Why do you exist?”

Accordingly, this post concerns the wherefore of tech debt.  Why do we find ourselves saddled with this stuff?


Read More


How Do I Write Good Code?

My life has been undergoing some task thrash of late. That, combined with a decent amount of time doing car trips, has thrown me off of my recent reader question streak, in favor of cross posts.  But, today I remedy that.  A reader has a pretty straightforward question: “how do I write good code?”

Here is the question, verbatim.  It references a post that I wrote a while back that has definitely sparked some discussions and follow-up questions.

You write about how to “de-brilliant” your code. I have worked with “brilliant” code in the past and can say that experience is anything but. I’m starting my career as a software dev now and one of the things I’ve been wondering about recently is how to write good code? I think generally that I can recognize well written code from poorly written code, but I want to get even better and I’m not sure how.

First of all, congratulations on the new career!  You’re off to a good start.  I’d say you’re beginning auspiciously by asking a question that is important, easy to understand, and really, really nuanced to answer.  But, let’s try.  Here is my general take on how to write good code, in order of priority.


Read More