

Ask HN: Freelance web developer advice - shire

I&#x27;m a young 22 year old guy I work at a warehouse by my house which pays $12&#x2F;hr and feels like slavery work. Honestly I want something better than this I was in college for 2 years but I wasn&#x27;t sure what I wanted to major in or my passion so I took time to work at this labor warehouse.<p>I&#x27;m the type of guy who likes to stay home and play video games I guess the lazy type. Is freelancing the right choice for me as a career? I&#x27;ve thought about it and it sounds like something I would enjoy but I have no clue where to begin and I have questions.<p>What is the pay I can expect as a freelancer?
What language will land me projects and clients soon?
Where do I begin my career as a freelancer?<p>By the way I&#x27;m familiar with some languages and frameworks but not an expert or anything.
======
zackmorris
I want to chime in because I did EXACTLY the same thing you did. I took a $10
furniture moving/warehouse job out of college back around 2001 so that I could
finance my struggling shareware game business. I worked seasonally, 7-9 hours
during the summer and a few 6 hour days a week during the winter, for 3 years.

It was one of the worst decisions I ever made.

I lost the next decade of my life to profound depression after the loss of a
close friend, crushing debt, no social life, just really endless problems that
were exacerbated by the regressive political climate of the times. I felt a
strange duty to give up my dreams and put my nose to the grindstone to make up
for the cushy years of the late 90s when the future was so bright you had to
wear shades. It put me so far behind that I was just coming out of my funk in
2007 and had no reserves to prepare for the housing bust even when I saw it
coming a mile away. I got another dead end computer repair job for 3 more
years only to see $1000 per month go toward my credit card debt (which never
went down even though I haven’t used a credit card since 2008) which led to a
falling out with my business partner and total implosion of my finances which
I won’t go into. So in many ways my career didn’t begin until around 2011 or
so when I started over.

But, in the 3 years since, I worked very hard every day to make it as a
freelancer and it seems the effort is beginning to pay off. I started small on
freelancer.com, getting $100 jobs that I completed every 1-3 days and began to
see that it was a possible replacement for a regular job. I supplemented my
income by flipping old Macs on ebay and craigslist. Then I moved up to elance
and odesk and began taking jobs in the $1000-1500 range. I’ve worked with a
couple of clients in the $5000 range and had a 6 month contract at my hourly
contracting rate which allowed me to save enough to live up to a year
afterward with no outside income. I’ve started getting so many leads filling
my inbox that I can’t answer them all. The catch is that this is mostly for
iOS work, which can be extremely taxing/tedious if you bump up against
limitations in the APIs (which seems to happen often in the projects I take on
because I like the fringe stuff). So there is definitely work available, but
be prepared to put in a lot of hours both on and away from the computer.

The biggest challenges I face now are lean weeks between gigs and just general
anxiety from everything resting on my shoulders. I’ve found that the right
client there makes all the difference. If you remember the old adage “good,
fast, cheap - pick any two” then the default mode tends to be good and cheap
if you are a perfectionist. So clients that are well educated and/or patient
tend to be more copacetic than clients that are merely wealthy or business-
oriented. YMMV though because I tend to be a lazy programmer who likes to
write the best solution once (as opposed to iterating) so I do the majority of
my problem solving in the background of my subconscious. In my younger days, I
was kind of the opposite, and would have made a better rockstar hacker in a
startup doing good/fast work had there been more opportunities after the dot
bomb.

I feel like I’ve been a bit of a broken record about this stuff but it’s
because I wish there was a road map available for new developers so they could
avoid the same mistakes I made. For example, always charge at least your
overtime rate which in your case would be $18 per hour. So that means if you
bid for a flat rate job, draw up your hours estimate, multiply it by 3, and
multiply that by $18. So say you think something will take 2 weeks or 80
hours, you would bid at least $4320 for it. On paper it looks like you’re
charging $54 per hour, but in reality it could be 2 months before you get
another gig, allowing for downtime. After you do a couple of jobs like that
and track your time, you can begin to refine your estimates and get closer to
actually making $50 per hour, and then gradually raise it to $75 or $100 or
whatever you feel comfortable with. That mostly depends on how much in demand
you are, so in the beginning it’s more important to land a couple of gigs than
charge top dollar IMHO.

As for where to get gigs, I’ve done a couple for friends in the $1000-1500
range, and if you want to do web development, just look at prominent
businesses in your area that have a lousy web presence. I tried cold calling
and hitting the pavement once but only had a list of 50 businesses and didn’t
get any hits. You should probably aim for at least 100 businesses if you go
that route since it’s maybe a 2% conversion rate. A better way is probably to
start with immediate family, talk to their friends in various businesses and
narrow it down to 2 or 3 and meet them casually over coffee or dinner and make
your pitch like it’s old hat. Then your conversion rate might be 50% because
you can get right to their sore points and once they are interested in what
you can do, charge maybe 50-100% of the going rate in your area, depending on
your experience level. The hardest part about that is being on call afterward
as the friendly neighborhood computer guy, so have some sort of plan in place
for incidents and charge accordingly, say $75 per hour with a 2 hour minimum
so they only call you when they really need you.

I just want to close by saying that this is probably a means to an end. My
goal now is to be part of at least a 5 member team of consultants (what
contractors used to be called in the 90s) and charge hourly business rates,
which probably are in the $100-250 range, even in rural America. Either that
or save up enough money so that I can bootstrap my own apps. A possible route
there is selling ownership in your business, say 10, 20% for X many tens of
thousands of dollars but I don’t know enough about how the new micro investing
laws work so I will probably have to think of something clever enough for
kickstarter. I’m hesitant to go that route again though because I failed so
painfully in the past and am really looking for a sustainable business model.
This last part seems to be one of the great pains of our time, so I’m
optimistic that somebody might provide a turnkey solution, but I’ve been
waiting 15 years for it. Grouptalent, gun.io, freelanceinbox and others of
that sort seem promising so you might have luck there. If you want to get
started right away, I recommend odesk and have heard good things about guru as
well. You can definitely do it, so don’t settle for labor because most of the
safety nets have unravelled and they prey on people with no leverage. You know
how they say not to be the smartest person in the room, or the best player in
the band? Well don’t be the only guy in the warehouse without an addiction,
criminal record or kids on child support. The ridicule I endured at that job
was at least as damaging to my psyche as the low pay and backbreaking
workload. Get out as soon as you can.

~~~
shire
Wow that was actually very helpful, thanks a lot for this info. Just one last
question as a starting freelancer is PHP and Wordpress a good tool for
learning to become a Freelancer web developer or is there something you
recommend?

~~~
zackmorris
Ya I used Wordpress as a CMS for my first few clients and it is a good way to
learn the ropes because you can roll out a site rather quickly. The main issue
is maintainability, which I will explain below. I really enjoy PHP in
particular, but it's not a very well-formed language. It's kind of like
English, it's evolved over time to do everything under the sun and has a lot
of contradictions. That said, I've never found a language that lets me work
faster to prototype an idea. I have high hopes for Go though, and keep in mind
that PHP and Javascript are nearly identical except for a bit of syntactic
fluff like the $ and how Javascript kind of goes off the deep end when you get
into things like prototypes.

There is a whole spectrum of C-based languages like Python, Lua, Java, D, C#,
C++ that are all worth learning. I started with C++ and worked my way up to
higher level languages, which is why I tend to be more of a back end
programmer. I’ve never quite wrapped my head around Perl or Ruby because in my
mind they tend to mix functional concepts with imperative code in kind of a
weird way (lots of regexps, sets, filters, stuff like that, but still
requiring the elbow grease of C) so it's probably better to start with a
language like Lisp or Scheme before learning them so you have the
fundamentals, or else your code might turn into spaghetti.

For what it’s worth, I ended up moving away from Wordpress because it can be a
target for hackers. You may have to update sites each year as security
vulnerabilities are fixed. But Drupal and Joomla have the same problem since
they are built on PHP (they are also sledgehammers when a pencil would do). So
if you have the option, it might be better to go with Node.js or Go because I
think they are probably the future of servers. Node.js has the achilles heal
of callback hell, but, I think generators and coroutines will eventually
alleviate a lot of that pain, and futures might be a stopgap until then. If I
do web work again, it will probably be with static sites generated by
something like Jekyll or Phrozn, with jQuery and Foundation/Modernizr for the
fluid layout, and only write a few back end scripts when needed. I used to
host on Linode but found that companies taking the Rackspace approach are
really operating at too low a level than what most people need. I highly
recommend Firebase and their CDN hosting for this, because you can avoid
having to maintain a server or write back end code altogether.

If you decide to move some of the code to the front end, Backbone.js is a good
thing to know, but inordinately complicated for some reason. I think REST
APIs/CRUD are great but either build them from the start or keep them in mind
as you structure the site so they can be dropped in easily. React.js might
alleviate some of the front end pain eventually. Maybe skim or ask
Stackoverflow for the best CMS that can optionally generate static code and
that either has a nice GUI for layout or supports Markdown (if you find one,
lemme know!). That way you can keep your content separate from your
presentation in a more maintainable way than the old methods like pulling it
from a database, and compile your site like you would any other application.
The web evolves so quickly that any content that is mixed with the site itself
will eventually become unmaintainable. Techniques like that will let you also
roll out to mobile or other viewers. Allowing users to edit content easily is
still an open problem, so for now I would recommend taking contracts that
don’t require it. Either that or give them a simple Markdown or other
interface and store their body copy in the database, but don’t worry too much
about letting them edit the structure of the site because most clients don’t
end up needing to. Better to generate that from some high level description
IMHO. That’s where frameworks like Foundation come in, because you can begin
to think of the site as data instead of code and let someone else worry about
the inevitable browser incompatibilities.

Everything is moving towards SASS, because most of the uncertainties in web
development will eventually become ubiquitous tools, so check out appfog and
learn how your back end can call a service’s database, email, or whatever
other API you need so you don’t have to build that stuff out yourself. It’s
worth a few dollars a month to have someone else worry about the edge cases
and failure modes. Actually, after writing this out, that’s really the best
advice I can give you, is find people who are getting into SASS (either
providing it or utilizing it). Maybe see if there are any local meetups in
your area, or at a university if you have one close. It would be good to start
a blog as soon as possible and document the hurdles you encounter them,
because others can learn from it and you’ll get some job leads from it
eventually. I’ve been meaning to do that myself so that I could just point to
a link instead of being so verbose on forums! I hope I haven’t said too much
here, I just am trying to convey the pitfalls I encountered so that maybe you
can avoid them. Just pretend it’s always a year or two from now and keep your
eyes on the latest and greatest stuff and you’ll do just fine. Be skeptical of
anyone claiming to know the “one true way” and always remember that fatal
flaws in every approach are eventually exposed, to the future is a moving
target. But where there’s trouble there’s also opportunity. Good luck!

------
sj4nz
There's a lot of ground to cover to become a non-starving freelancer. You need
to find mentors and other working models quickly and some grit. You may need
more education and training. Since you're looking at web-work, you need also
to start building your own portfolio of sample-work in order to prove
yourself, I recommend learning everything you can about github.com and making
yourself a name there with a github page--version control systems like GIT
will become your ultimate UNDO/REDO system and will save you hours of agony
when you make mistakes. Make mistakes. You can't learn anything without
learning how to recognize you've made a mistake. But networking on github is
just networking on the Internet, you'll also need to find communities of
people to associate with in real-life to network. You're young, there are a
lot of other people out there to discover how things worked best for them--
their experiences can help you guide your own.

Here's some more rabbit-holes to fall into, you'll come out of them fine:

[http://thefoundation.com/](http://thefoundation.com/) (Entreprenuership)
[http://5by5.tv/quit](http://5by5.tv/quit) (Grit, psychology of going-it-
alone, passion) [http://www.danpink.com/books/free-agent-
nation/](http://www.danpink.com/books/free-agent-nation/) (Work ethic and
networking)
[http://www.personalkanban.com/pk/](http://www.personalkanban.com/pk/) (Self
management) [http://www.lifehack.org/articles/lifehack/a-review-of-the-
ar...](http://www.lifehack.org/articles/lifehack/a-review-of-the-art-of-
learning.html) (Learning)

And finally, if you have any debt, by hook or crook find ways to eliminate it.
Stay off the debt path, it will only cause you suffering after short-term
gain.

------
eabraham
Motivation is the key factor in becoming a successful freelancer. I freelanced
for about 2 years and in that time I learned 2 new languages and countless
libraries. My average week would be about 50 hours of which I was billing
between 30-35 hours at $100-150/hour (NYC area). The other 15-20 hours was
finding clients, writing proposals, dealing with self-employment business
issues (taxes, accounting, invoicing). Its definitely not the easiest life but
the pay was good and the problems were more interesting than corporate
development. Looking back on freelancing I appreciate the many skills I gained
(both technical and soft-skills).

Tips:

1\. Pick a programming language and complete a comprehensive tutorial. Then
start to find clients at $15/hr rate (check elance.com and odesk.com). Your
goal should be to fill up 35 hours of your weeks with billable time. Once your
weeks are full and your skills increase, creep up your rate by $5/hour until
its difficult to keep your week full.

2\. Look into local entrepreneurship/business Meetups as a good source of
clients and avoid equity-only business people who don't value your time.

~~~
shire
I like your advice, what languages and tools were you using to bill clients
$100/hr.

~~~
147
It's not necessarily about the languages or tools, but more about selling the
value of what you're making to the client.

------
wikwocket
_> What is the pay I can expect as a freelancer?_

This depends on where you are, and how well you can communicate the value of
what you deliver. Commodity hourly freelancing might be $10-40 an hour.
Business-savvy consulting might be $60-80 an hour. High-end consultants will
pitch and deliver projects in the $X0,000 range, which when divided by time
spent can easily equal $X00 an hour.

Note that all of these people may be doing functionally the same thing:
defining projects with customers, building websites/apps, and delivering them.

 _> What language will land me projects and clients soon?_

Programming languages will not land you projects or clients. Nobody hires a
photographer because of the brand of camera they use. Nobody goes to a
restaurant based on where they buy their groceries. Anyone with purchasing
power will generally just want something that meets their need, or removes
their pain point/bottleneck/problem.

Your goal is to communicate that you can do this, in words and in actions. Not
to communicate that you use HTML9 Responsive Boilerstrap JS. [0]

 _> Where do I begin my career as a freelancer?_

yen223's advice is good. Build a website or simple app that you like, that
could solve a realistic business need. Feature it as a demo or just keep it in
your back pocket as proof you can solve problems. Then the hard part: convince
someone that you are able to solve problem X for $Y dollars. Start small,
within your network: maybe your brother-in-law is a caterer without a website.
Maybe your aunt is a real estate agent always complaining about keeping in
touch with her leads. Maybe your dentist keeps all their files on paper
instead of in a computer. Discuss problems with people, brainstorm solutions,
communicate that you can solve their problems with technology, put together a
proposal, and deliver.

After a few gigs, if it's working out for you, formalize the whole process.
Look into contracts, incorporation and proper accounting, etc. There's a
million Ask HN's about these topics.

 _> By the way I'm familiar with some languages and frameworks but not an
expert or anything._

If you can make a website that says "Hello world, welcome to our site, here is
a brochure of information on our products," then you are basically a wizard in
the eyes of many many people. 80% of the world's professionals would say, "I'm
not an expert at this, I can just get things done." My plumber is probably not
an expert on bleeding-edge state-of-the-art industrial water treatment. But he
makes the faucets run and the toilets flush, and I am happy to exchange money
for this service.

[0]:
[http://html9responsiveboilerstrapjs.com/](http://html9responsiveboilerstrapjs.com/)

------
yen223
As a guy who's making the transition between newbie freelancer and
professional go-to guy, here are some things that worked for me:

1\. Prove to yourself that you can deliver by building at least one site that
you're happy with.

2\. Go for the most popular language that you know. PHP, Python, Ruby, and
Java are good starting points.

3\. No one's going to come to your house to offer you a job. Go out there and
market yourself. Every month there's a freelancer thread on Hacker News. Post
there.

4\. How much you should be getting depends heavily on your level of skill, and
your location. But it's definitely going to be more than $12/hr, easily. I
highly recommend charging per project, instead of per hour.

------
seekingcharlie
Without any programming experience & knowing that you're really just looking
for something better than your current job, I would totally advise to start
with Wordpress. Learn to build websites in Wordpress.

You can easily charge $1000 for a basic, responsive Wordpress website & you
will find that there are a lot of family, friends etc that need/want websites
built. This will also introduce you to some fundamentals of web development
(deploying, communicating with a client etc & some PHP).

Perhaps your first few websites you will have to charge less to build up your
portfolio, but honestly, charging $500 in the early days for a website is
going to be a lot better than working 50 hours for the same money at your
current job.

If you do actually want to be a web developer as your career (rather than a
lifestyle job), learn an actual language. You will learn very basic PHP from
Wordpress, but I would recommend Ruby as an actual programming language & Ruby
on Rails (a Ruby framework) or Javascript as there is endless work there.

Read a lot. Follow Hacker News & the tech sites to keep you motivated /
interested. Sign up to one of the online education platforms (RailsCasts,
Codeacademy, Treehouse etc).

------
shire
Thanks a lot everyone for your help. I'm going to go with PHP to start of my
freelancing business is that a good choice?

