
Rails Consulting for Fun and Profit - Veraticus
http://joshsymonds.com/blog/2014/01/14/rails-consulting-for-fun-and-profit/
======
leknarf
Great article overall. I particularly liked the three mistakes you pointed
out:

 _I nickled-and-dimed a client on change requests, alienating that client and
making myself appear less professional. ... I would have been better served by
her loving me than making a little more money._

I completely agree. In fact, this is part of the reason new freelancers often
regret setting their hourly rate too low. It's important that you set a high
enough rate that you can throw in unbillable work now and then without
destroying your earnings. The best freelancers consistently under-promise and
over-deliver.

 _For pricing my services, I need to start high and work my way down. I
generally start client conversations on my hourly rate at what I would
consider a reasonable ultimate number, and then allow myself to be driven down
from there — generally because the client wants a long-term contract and
expects to save on my hourly based on the length of the engagement._

Constant haggling will make every new project a frustrating experience. I
usually recommend setting a fair rate and then holding the line when clients
ask for a discount. That's tough to do with your first few projects, but
becomes easier once you're more confident about your rate and abilities.

 _More projects, less hourly. When starting as a consultant, I was really
selling only my hours. Now Symonds & Son is a business in its own right, and
I’ve hired designers and developers to help with my workload. Working with
other talented individuals makes much more sense on a project basis, where I
can package their (and my) hours together._

This depends on what type of projects you're looking to take on. Landing pages
and presentation work will probably pay more if you charge per project (since
clients won't believe you can more 10x faster than cheaper devs), but building
new product features for startups is probably better at an hourly rate (since
startup clients always change what they're looking to build).

If anyone is looking to get started as a freelancer/consultant or just looking
to expand their existing business, take a look at our startup:
[http://getlambda.com](http://getlambda.com).

~~~
dworin
Great additional advice, two other thoughts building on it:

1) Make sure the client knows that you're doing work that's out of scope, but
that you're not charging for. Otherwise they just think it's part of the
package, and will expect it next time. I've seen consultants get upset that
clients didn't appreciate all the extra work they were doing, when the clients
didn't even know it was extra.

2) Stay firm on your rates, but offer discounts to clients for things that
cost them nothing and help your business. Knock 10% off if they pay up front:
it gives you cash in hand, saves you from having to follow up with accounts
payable, and makes it harder for them to cancel the project. Offer a discount
as part of a retainer or an ongoing support contract. Show them where there
are opportunities for someone on their team to do the work, rather than
engaging you. If you show them that you're a partner in helping them reduce
costs, they'll value your services more.

~~~
elemeno
Your second point is also a good way to deal with late payment penalties -
something which it can be hard to add to a contract (as in, $x if you pay
within 30 days $x + 10% if you're late).

Selling it as a discount for paying early is generally going to be easier to
get a client to agree to - who doesn't like a discount? So it's $y normally,
but $y - 10% if you pay within 30 days.

It's no effect on your bottom line, but it does make for happier clients!

~~~
rmc
For the record, some regions have "late payment" (with interest & charge)
laws. Notably the European Union.
[http://ec.europa.eu/enterprise/policies/single-market-
goods/...](http://ec.europa.eu/enterprise/policies/single-market-
goods/fighting-late-payments/)

I agree with your general point that an early-discount, as opposed to a late-
fee, is an easier sell.

~~~
leknarf
The US also has usury laws, which I found fairly surprisingly when I was just
starting out. I previously thought usury was a strictly a historic crime, like
adultery or eating bacon on the sabbath. But some people are very much
offended by the idea of lenders charging too high an interest rate.

They actually become relevant for late fees, since you usually do want your
fee to be punitive enough to encourage timely payments. The usual practice is
set your fee to 1.5% per month or the highest percent allowed by law (i.e.
just below usury if that's applicable in your state).

~~~
fizx
IANAL, so ask one first if that's your thing, but what I've done is offer 20%
off if paid within 15 days. Set your billing rate higher to compensate.

------
vellum
_I nickled-and-dimed a client on change requests, alienating that client and
making myself appear less professional. ... I should have just sucked it up
and done the work, leaving both of us with warm fuzzes in the end, even if I
took a slight loss on the contract._

It's interesting the OP lists this as a mistake. I'd say he made the right
move, as some clients will "just one more thing" you to death. Once the
changes go beyond the agreed-upon scope, you should start charging.
Alternatively, adjust your estimate to take into account client changes.

 _Said client did not have a whole lot of money, and while the initial
contract amount was commensurately very low, she really didn’t appreciate me
charging additional for some very minor changes._

This was the real mistake.

~~~
jwilliams
Yeah agree. Death-by-a-thousand-change-requests is a more common norm. Every
change costs money, they need a price attached, otherwise it's just free
candy.

------
gexla
What's mind blowing to me is expanding this "terrible candidates" point to
more than just web developers. Anything which gets into a similar level of
skill work probably suffers from the same issue.

When I went to college, the school had recently introduced a writing test as a
requirement for graduation because employers were complaining about poor
writing skills of students coming out of the school. The first year of the
test, a ridiculously high percentage of people failed it. Several years later,
almost nobody could pass it on the first try. I took a technical writing class
in which the instructor was one of the graders for the test. She told us that
good writing is a skill very few people have and that we should all expect to
fail the test the first time.

As jobs become more technical, this issue will become more important.

Also mind blowing is to wonder if the inequality of our economy is simply a
reflection of this. If 8 out of 10 candidates for X job are shockingly
incompetent, can we complain that the the wealth of the world is owned by so
few?

It's so important to get the right education. We need mentors. We need
technical training for the real world to supplement typical college course
work. We need for the people involved in these programs to be working
professionals. I hate that as I look back at my life there is so much I had to
figure out on my own which really could have been taught in schools. If I
didn't stumble upon these lessons myself, I had to get lucky and come across a
teacher who would go off the lesson plan occasionally to tell us how things
really worked.

~~~
markkanof
I think you may be conflating a couple of different issues. The wealth of the
world being held by a relative few seems to be a problem with our economic
system, not the educational system. For example, using monetary wealth as a
measure of ones education would imply that Bill Gates has literally a million
times better education than I do. You could make arguments, but it seems
likely that while he may have started out with certain skills that were better
than my own, he also benefitted from some amount of luck and the momentum that
seems to be generated by the formation of a corporation that has some initial
success.

With regard to getting young people the right training, yes I agree. I don't
think the purpose of school should be job training. It should be learning how
to learn, how to critically think, and how to develop ones own viewpoint on
the world. That being said, a lot of students can greatly benefit from finding
an area of interest (that may not be available at school) that inspires them
to learn and becomes the catalyst for increased effort towards their education
in general.

It sounds like you feel strongly about this topic. I'd encourage you to get
involved in fixing this problem. A lot of schools these days are looking for
"industry mentors". Especially at the middle school and high school level, you
can make a real difference in kids lives. Not only can it allow you to address
the problem you brought up, but it is also incredibly rewarding to know you
are changing the course of people's lives for the better, even if in very
small ways.

------
jeremyjarvis
Thanks for sharing your experiences. I would urge you (from many years
experience in a "previous life") to look for clients who understand the true
value of what you offer. That's the only way the client will have "warm
fuzzes" in the end and you'll have warm fuzzes plus a healthy business.

If at all possible, I would try and work in some sort of agile process, where
the client is paying you by the hour but has absolute visibility into progress
and choosing which features to prioritise. In many cases, they will enjoy the
experience and insight dragging features around in a kanban board gives them.

------
danso
I can't believe no one has yet commented on the quality of developers the OP
has found. Did the Great Frameworks War end this afternoon? Even as a Rails
dev, I have to both laugh and also think, "yeah, I could see that" to the OP's
experience of interviewing a "Rails engineer" who didn't know what
ActiveRecord was.

Maybe it was a railroad engineer?

------
csbrooks
> There are enormous industries out there that need skilled programmers but
> lack the sex appeal of a startup or coverage in TechCrunch...

How do you find them?

~~~
lotyrin
Seconded. Do you just go to all the local businesses with craptastic sites,
offer to bill them introductory rates then hope network effects happen?

~~~
napoleond
Definitely not, unless you want to be making brochure sites for the rest of
your freelancing career (nothing wrong with it, and I did that for a long
time, but that's not really my idea of fun and it's generally not where the
money is, either). You possess the ability to build _tools_ for businesses,
which help them save/generate $X00,000 every year--don't waste your time
building brochure websites for $2000 when you can be doing _that_. (Of course,
for certain businesses the website is just such a tool--and those businesses
will be willing to invest far more in their websites. But a business that
currently operates with a "craptastic" site probably isn't that kind of
business.)

Think of everyone you know, that you see or speak to on a semi-regular basis.
Friends, family, colleagues, etc. Where do they work? Where do their
spouses/significant others work? What did their parents do when they were
growing up? Write down the answers that you know, and make a mental note of
asking them next time you see them or speak to them. Then ask them more about
it. (Oh, your wife works in the office at ___? What does she do, exactly?
Actually, what does the company do, I've always wondered...) This isn't an
interview, and these aren't "leads"\--you're just getting used to talking to
people about work things, and familiarizing yourself with different
industries. You'll probably realize that you have several contacts working in
the similar industries--that might be important later.

Now, register a business name. Print some business cards. Make yourself a
really simple single-page site. You're a "software development consultant" and
you help businesses increase their profits by increasing revenue and reducing
expenses. You build tools that save employee time by automating repetitive
tasks. You build tools that help sales & marketing departments identify their
best leads. You build tools that increase public exposure and make it easier
for consumers to buy from your client (if the client business is consumer-
facing), possibly directly online (I'm talking about websites/mobile apps).
Now, buy a ticket to an event sponsored by your local chamber of commerce.
You'll be directed to a table (or pick one, I guess, depending how things are
run). Introduce yourself to the people at your table. Give them your business
card. Ask them questions about their business, and _genuinely give a shit
about what they say_ (if you can't do that part, at least most of the time,
this isn't going to work).

No one is going to hire you after that first event, because none of them will
understand what you had to say. Practice communicating what you do. Also,
think about everyone you met and try to imagine the problems they must face in
their business every day. (You should have asked them that when you met them.
They may or may not have had any good answers.) You don't have to pitch them
on your ideas, not the first time around--it's just a mental exercise.

Rinse and repeat. You will eventually find someone who has been looking for
your services. They're your first client. Once you get the hang of building
tools that make business owners richer, and especially once you gain a track
record of doing so, your services sell themself. When you get to that point,
it's just a matter of closing. You go to networking events, you talk to people
and exchange business cards. Later that day you send them an email saying
"Hey, after we chatted I couldn't stop thinking about the problem you
mentioned. Would it work to [X, Y, Z with software]?" They will be interested,
you'll then tell them you can do it. You set up a meeting to discuss
specifics, then you sell them your services.

That's the secret!

PS. A helpful side note, which I probably picked from reading patio11 at some
point: you should basically think of your business as trying to replace pen
and paper, or giant Excel spreadsheets, with custom software. You can easily
book yourself solid just doing that single task for every business you come
across, and you will be providing an exceptionally valuable service. Suddenly
the information which used to be in a stack of filing cabinets is no longer
vulnerable to a office fire or a office flood (as long as you implement a good
backup system--which is an upsell--and store their files in a remote server)
and their giant collection of Excel files gets replaced with a database that's
easy to search, with fine-grained access control and multiple users editing at
once.

~~~
pselbert
Excellent distillation of dozens of patio11 posts. The key, and what I think
is the blocker for so many potential consultants, is the amount of human to
human conversation that it takes. It is certainly a stumbling point for me!

------
busterarm
Really great read.

Are there really Rails devs out there getting work who don't know what
ActiveRecord is or what gems do? That's a bit shocking to me. Maybe it'll be
easier for me to get work than I thought.

~~~
djur
I think that might just be a really, really bad recruiter. Of the couple dozen
or so developers I've been involved in interviewing I've never met a single
one who was that clearly incompetent. And that includes a lot of junior
candidates.

I definitely do not believe anyone is hiring devs that bad at $100/hr. That
makes me deeply suspicious of the recruiter. Hiring for Ruby jobs can be
difficult but it's not _that_ difficult.

~~~
bdcravens
I was at a Ruby meetup tonight. Out of maybe 20 people there, 6-8 said their
company was hiring. I'm in Houston, which isn't exactly a hotbed for the Rails
world. Given enough demand and enough developers who talk a good game, that's
not that surprising.

Also this info was coming from a recruiter. It's entirely possible that's what
the staffing firm was billing, in which case the developer wasn't making that
much bank.

------
welder
Great advice getting non-sexy clients with proven revenue streams. During my
contracting experience I found startups usually easier to talk with but
wanting to pay lower rates.

Also for fellow contractors, I built this free automatic time tracker to
automate that clock-in/clock-out drudge:
[http://wakatime.com](http://wakatime.com)

~~~
kintamanimatt
This looks like a really good tool that I'll make a note to try! Just a
pointer: you might want to elaborate more on how time is logged and show
people how it works. At first I was thinking it was only measuring the time I
was actually hammering away at my keyboard with maybe 30 seconds until it
stopped the timer or something.

Also, I haven't checked the Vim plugin yet (so this feature might already be
there!), but if it's possible, you want to have a little icon that shows when
it's tracking time, and maybe even the ability to log time manually from
within Vim. Having said all this, I've never written a Vim plugin, so I'm not
entirely sure what's possible.

~~~
welder
Thanks! Here's more info on how time is logged:
[https://www.wakati.me/help/faq/general#what-happens-when-
im-...](https://www.wakati.me/help/faq/general#what-happens-when-im-afk)

Would you prefer:

1\. embedded video on the website

2\. interactive walkthrough after signup

> if it's possible, you want to have a little icon that shows when it's
> tracking time, and maybe even the ability to log time manually from within
> Vim.

Both those are possible. The status icon would be great as long as it works
with all types of vim configurations. Logging time manually is possible but I
probably won't build that since there are already many start/stop timers out
there and my goal is to be invisible and just work.

------
jebblue
Good article.

>> But if that’s so, then why do most engineers, even the good ones, stay put
at their full-time, salaried positions?

Fear, wives, families.

~~~
thezoid
It might be good to generalize that a bit.

Fear, spouses, family commitments.

~~~
somone
Now you're going down this road: [http://en.wikipedia.org/wiki/Gender-
specific_and_gender-neut...](http://en.wikipedia.org/wiki/Gender-
specific_and_gender-neutral_pronouns)

~~~
thezoid
I actively practice using gender neutral nouns whenever I write stuff.
Sometimes I'll slip up, but I'm pretty confident this isn't the case with the
HN crowd.

Using they, spouse or partner is pretty safe and only the only people that are
likely to get offended are more than likely already a part of an entitled
group anyway.

------
saxamaphone
very helpful

------
unclesaamm
> and one knew all this but had the interpersonal skills of a serial killer.
> The creepy kind, not the mesmerizing kind.

Wow, I didn't like that line at all. What an arbitrary, immature, and harsh
criteria to dismiss someone.

~~~
BWStearns
Not immature. If s/he is going to be client facing at all, taking calls,
sending emails, anything, then s/he needs to be able to not cause visceral
discomfort just by speaking, or at least fake it for long enough not to
alienate clients. I had to work with a contractor (non-programmer) for a while
who was like this and eventually our boss got rid of the guy because people
were physically avoiding him, and he was co-located with their desks.

