8 ms·
Rails Consulting for Fun and Profit
- jebblue 13y agoGood 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.
- wisevehicle 13y ago>> But if that’s so, then why do most engineers, even the good ones, stay put at their full-time, salaried positions? Or because you have to spend an egregious amount of time doing biz dev, and accounting, and software, and PM work, oh and don't forget about Wives, Families.
- bdunn 13y agoNot necessarily. A lot of Rails contracts tend to be multi-month, and if you play your cards right your rate should be upwards of $150/hr. Doing just one 20-week project a year (FT) could net you around $120k, which leaves the rest of the year to do whatever with the family.
- mattgreenrocks 13y ago150/hr? Seriously? Considering how much Rails does for you, that's crazy. Where is it like this?
- bdunn 13y agoA rate like that has little to do with "CS complexity" and everything to do with selling a solution that makes the client better off than they were without said solution. I'm in near-rural Virginia and my last hourly consulting rate was over $200, and I'm not anything close to being an amazing Ruby developer.
- robflynn 13y agoDamn. I need to increase my rates.
- rahimnathwani 13y agoDid you quote that hourly rate to the client ($200/ph and I expect it will take x hours), or did you quote a total for the deliverable? What was the source of the client? If they went looking for a 'programmer', I'm curious why they weren't (like many others) lured by others who are cheaper per hour but worse in every other respect.
- bdunn 13y agoThis is from a while ago, but checkout the script at the end of this post: http://planscope.io/blog/my-most-effective-newsletter-to-date/ http://planscope.io/blog/my-most-effective-newsletter-to-dat... This is how I landed many of our clients (I also did a lot of edu-seminars, etc.) Whether I was billing by the hour or the week, I always estimated in a ballpark number of weeks a project would take, which translated to an estimated budget.
- mratzloff 13y agoGreat link, thanks! I think my current job will be my last salaried position, at least for awhile. I have a broad range of technical skills and can talk to potential clients, but have always been a bit nervous about taking the plunge (Where will my next client come from? Will I just find cheapskates who want some website for $500 total? Etc.)
- aantix 13y ago+1 for Brennan's response. It's not about the technology used. It's never been about the technology. You're selling yourself. You're selling your track record. You're selling you. It's always about the solution and the peace of mind you bring to the client.
- patio11 13y agoTokyo, New York, San Francisco, Chicago, Philadelphia, Austin, Nuremberg, London, Boston, Ogaki, and anywhere else you can convince a business owner or decisionmaker that you're solving a problem worth $X for some price which is $Y where $Y is less than $X. There are projects which have the technical complexity of the Rails 15 minute blog demo which are worth $100k to the right business. Concrete example: for example, the central SEO tool for Bingo Card Creator is "a purpose-built CMS which is superior in only one hyper-specific way over WordPress." (WordPress doesn't have a "turn this blog post into a bingo card" button. BCC's code does.) That tool comprises about, hmm, 500 lines of code. It has a crank attached to it that can be turned by anyone who has done teaching. That tool plus $3,000 of teacher time equals more than $200k of software sales. BCC is very much not the only software company in the world that can get that scale of benefit out of that scale of software complexity. Or, lets see, you know ActionMailer? You know Rake? You know cron jobs? You know how you could have a cron job fire a Rake task which would send an ActionMailer email? That plus a few hundred words of copy plus a three line if statement can increase the yearly recurring revenue of some businesses by 7+ figures. You can charge $150 an hour if you can write that if statement given a description of the desired behavior. You can charge $30,000 a week (representative number, not a ceiling) if you can people what that if statement should say. Back when I was a consultant, Rails was one tool in my bag of tricks and most of my clients were B2B software companies. It is very much not the case that B2B software companies are the entirety of the solution space for "clients who a computer system could make a shedload of money for."
- girvo 13y agoBrisbane, Australia, for one.
- thezoid 13y agoIt might be good to generalize that a bit. Fear, spouses, family commitments.
- somone 13y agoNow you're going down this road: http://en.wikipedia.org/wiki/Gender-specific_and_gender-neutral_pronouns http://en.wikipedia.org/wiki/Gender-specific_and_gender-neut...
- thezoid 13y agoI 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.
- iends 13y agoShould probably save this pedantry for elsewhere.
- jonathanjaeger 13y agoNot all full-time, salaried positions are bad. He mentioned he wasn't satisfied with the meetings and late nights, but that can't be the case for everyone. Some people like stability, don't want to deal with clients, and just want to code all day. That's fine for some, not for others.
- brandall10 13y agoI did it for a little over a year. Here's my reasons, which include none of those - Spent less time coding, but more time overall on overhead to make roughly the same amount when it's all said and done. That said, I was at the point where I could have begun raising my rates significantly. - Nagging clients for payment. It's nice that payment is entirely decoupled from your work. Even if it happens every once in a blue moon it is somewhat disheartening, esp. when they give plenty of praise but "whoops, thought it was sent!" messages. This can be more of a reflection on their bankroll which should be less of an issue as you move further up the client food-chain. - I hate to admit this, but damn that was lonely. Spending days in cafes, at co-working spaces, at the park, at home, etc, sounds wonderful at first - and it is - but the novelty of that can wear off quickly depending on how you carry something like this. For those less outgoing amongst us, a cool company with bright people is quite a nice thing to have around you. - A unified 'big thing' to accomplish with said team. Working on very early stage internet startups to help get something off the ground is fun, but it lacks the depth of what I'm doing now. I can see myself returning to consulting. But I don't see employment vs. consulting as one clearly being better than the other...
- girvo 13y agoThe loneliness thing is fixed for myself by working on-site for digital agencies. In terms of pay, I get to ask for 5x what I'd get full time, so it's worth it for me anyway :)
- phamilton 13y agoIt's easy to be a product builder as a freelancer. It's hard to be a technology builder as a freelancer. The chances are good that you won't be handling millions of requests a day on a freelance contract. You won't hit the limits of the standard Rails stack. You generally won't have to do much to scale the product. That's why I stay put.
- patio11 13y agoIt actually isn't too difficult to be involved in a system handling millions of requests a day or hitting the limits of the standard Rails stack as a consultant. It probably won't happen if your client is Ma's Diner and you're building them a brochureware site. Many clients are not Ma's Diner. Many projects are not brochureware sites.
- emperorcezar 13y agoFor a lot of people health insurance is something they can't go without, and until recently, were unable to get for one thing or another. I don't know if the ACA changed that.
- OldSchool 13y agoIf the Affordable Care Act providers deliver what they seem to promise, it's tremendously helpful to small-scale entrepreneurship. Pre-ACA, once you had a family with any health claim history it became increasingly difficult, expensive and invasive to obtain individual health insurance. In some states, maternity coverage was not offered in any usable form. In short, the system was heavily in favor of being a slave to any company large enough to have a group plan. Not only does the ACA makes it easy with its "no questions asked" approach, pricing is 30-50% less than the real cost of similar pre-ACA products. Also, if you have a slow business year, you can get a substantial premium refund via the tax credit, making insurance no longer a primary reason to "get a job."
- jlees 13y agopricing is 30-50% less than the real cost of similar pre-ACA products. sure, but for many people who didn't need the full scope of what is now the baseline ACA coverage, our individual health insurance bills are much higher. (mine has gone up nearly 3x.) you win some, you lose some.
- rmc 13y agoIf it was health insurance, then you'd presume places with national health systems (like the UK) to have drastically more entrepenureship, which is not the case. There is something else going on here.
- djur 13y agoBecause of a desire to avoid "long nights, excessive meetings" even at an hourly rate. Not all salaried positions are nights-and-weekends affairs. ETA: Rereading, it looks like the article implicitly adds "at a SF startup" after "full-timed, salaried positions". Maybe those positions always involve crazy hours.
- vellum 13y agoI 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 13y agoYeah 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.
- jeremyjarvis 13y agoAgreed. At the very least, invoice the client and issue a credit note against it, so that the client can see with their own eyes the actual cost. Then they might thank you for it.
- leknarf 13y agoGreat 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.
- mgkimsal 13y ago> 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. I agree with your agreement, but... it's hard for new clients to understand that you will not nickel and dime them. My rate is rather high for my market, but I do not nickel and dime. But it takes people a while to learn that, no, I don't bill for that 10 minute phone call. No, I don't itemize parking costs when I come to a meeting downtown. No, I don't charge them double time for tackling an emergency on the weekend. And... some times clients end up going with someone else with a 'cheaper' rate, and I know they end up paying probably just about as much as I'd be charging them with an hourly or daily rate (I have both, but most people still prefer hourly, and I don't turn them down yet because of that). EDIT: "nickel and diming" on things I outlined above I don't do. Full on changes - "we need 3 new forms" - still get charged for.
- welder 13y agoGreat 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 13y agoThis 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 13y agoThanks! Here's more info on how time is logged: https://www.wakati.me/help/faq/general#what-happens-when-im-afk https://www.wakati.me/help/faq/general#what-happens-when-im-... 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.
- danso 13y agoI 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?
- busterarm 13y agoReally 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.
- weaksauce 13y agoThe only places they are getting hired are likely the ones that have hr do the hiring. I doubt there are too many places where someone who didn't know what active record was could get a job. I've done some interviewing and it's pretty surprising how bad most candidates are for technical positions.
- BrandonMarc 13y agoI once was told to help interview some potential developers to work with me, but I was then told I wasn't allowed to "ask any very technical questions." (and their threshold for "very technical" was very, very low) Of 3 people who were hired (one, then another a two years later, then another a month after that) the 3rd one turned out well. It was quite frustrating.
- djur 13y agoI 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 13y agoI 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.
- gexla 13y agoWhat'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.
- zachrose 13y ago> 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? Absolutely we can complain.
- dkuntz2 13y ago> 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? You could make the argument that these people are attempting to get jobs above their skill level, or outside of a field which they could excel in provided training. The problem of course is this silly free will thing, but that doesn't mean that wealth should be as unequal as it is.
- 13y ago
- unclesaamm 13y ago> 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.
- mccolin 13y agoGood interpersonal skills are a crucial part of most teamwork. The judgment here might be a bit over-the-top (referring to candidates as "serial killer"-like), but the idea of weeding out a candidate due to bad interpersonal skills is definitely one I agree with strongly.
- BWStearns 13y agoNot 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.
- saxamaphone 13y agovery helpful
- csbrooks 13y ago> 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 13y agoSeconded. Do you just go to all the local businesses with craptastic sites, offer to bill them introductory rates then hope network effects happen?
- napoleond 13y agoDefinitely 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.
- jeremyjarvis 13y agoThanks 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.