

Ask HN: When is a programmer good enough to freelance? - thumbtackthief

I started coding about two years ago (Python&#x2F;Django).  I&#x27;ve been employed as a web developer with varying success.  I built my own personal website as a learning exercise and it&#x27;s about to be deployed.  I&#x27;d like to freelance to earn some extra income, but the last thing I want is to take on a job I&#x27;m not ready for and deliver a substandard product.  This profession doesn&#x27;t seem to have established benchmarks--how do I know when I&#x27;m ready to take on a project on my own?
======
beat
I was freelancing things a couple of years into my career. The trick isn't
skill at the job (so long as you don't get in over your head), it's getting
the gigs in the first place. Honestly, I really wish I'd stuck with it and
pushed harder down that road, rather than settling into corporate work.

Among other things, I saved Christmas! (Way back in the dawn of the web, a
little printing company in Iowa managed to get the christmas.com domain, and
were printing letters to Santa for kids. They were getting creamed
performance-wise. I helped get it runnable.)

------
acesubido
When you've reached a point where your technical skills in your chosen set of
tools only comes second (Web, Python/Django)

Frankly they won't care about the libraries you used or how you coded the app,
but at the same time freelancers should be technically sharp enough to write
maintainable code with proper version control and automated tests, but more
importantly, programmers should be skilled enough to propose proper solutions.

Example: Given a problem that can be resolved with an in-app chat solution,
that chat solution shouldn't be based on polling a SQL database. I've seen one
in production and what happened after it was released wasn't pretty.

Example: Given a problem that requires multiple POS machines with their own
offline data to sync on a central database, a solution shouldn't be based on
installing full SQL databases with purchased licenses armed with massive
stored procedures moving data around. I've seen one in production.
Maintaining, both financially and technically, costs so much for both the
client and for their in-house dev team.

Technical skills should come naturally because freelancing is beyond code,
it's about business development.

Freelancing/Consulting isn't just about coding/designing but its more on
knowing what your client actually wants/needs, educating them about your
proposed solution, delivering that need, knowing how to deliver that need
through proper communication, and making them go through a process with a
tight feedback loop that is both pleasurable, emotionally and on paper, that
would make them go back to you and/or refer you to others.

Most software out there are just CRUD apps, or as I would like to put it:
glorified excel sheets. Other than delivering a standard website with
Wordpress/Drupal as your solution, custom software and building on top of
other poorly written custom software from previous developers will be your
toughest challenge if your technical skills are still being sharpened. But if
you feel your technical skills are sharp enough, you can already go out there
and do something on the side :)

------
roderick3427
Whenever someone is ready to pay you for your services. I'm sure you can solve
a lot of business problems with what you know already. You just have to put
yourself out there and find some clients who are need of your services.

------
kennethtilton
Kudos for asking, and for your concern over letting a client down. The
"varying success" comment suggests a problem, as does no more than "I built my
own personal website" as a calling card. I would suggest offering to do things
fixed price so you take the hit on the learning curve, but then the client
still has the risk of you never delivering. I would say keep extending your
own site with more and more amazing things until you do not have to ask this
question. When you get there, your integrity manifested here will make you a
great free-lancer.

------
mcx
It boils down to the project scope. As long as you are comfortable with
delivering what they're asking for, you should go for it.

For example a client might ask, "I want to a simple web app that does x and
charges users a monthly subscription for access." Can you build out the
functionality to carry out whatever x is and set up something like Stripe? If
so, take the job, if not say you're booked and move on/forward them on to
someone else.

Also keep in mind, if they knew someone better for the job, they probably
wouldn't be talking to you (for example, your non-technical friend approaches
you to build a simple webapp, you're probably the most technical person they
know, if they knew a rockstar or whatever, they probably would have asked them
instead).

------
ElongatedTowel
I thought about freelancing too a while ago, especially because I don't need
the money I'm earning and I'd rather work, say, 6 hours a day instead of 8
even if I end up with less. That flexibility is not a given with "normal"
jobs.

I think I'm good enough, but I'm pretty sure I'm far too slow. I do everything
by hand and even though I use stuff like preprocessors and project templates
it takes much much longer than what some people are able to hammer out with
bootstrap, some modifications to it and a well designed workflow. I test
everything and abstract as much as possible (e.g. only use raw SQL for
performance rather than beeing lazy about writing models) and that only adds
to the amount of time required to accomplish even the smaller stuff.

------
crooksey
When you stat answering more questions on irc and stackoverflow than you ask
about complicated areas.

Building basic sites ans blogs is easy, but say someone asked you to read data
from an old database or connect to a payment backend that doesn't have a
django plugin, could you write your own? You also need to be able to support
every plugin you use if/when that plugin gets dropped by the author.

If your going to freelance I would get very familiar with your own cms and
blog system so you know it inside out, or best yet, write your own from
scratch, then you aren't maintaining other people's code.

My $0.02

------
collyw
I am about the same as you. Nearly three years of full time Django. Looking at
Hacker News makes you feel dumb in comparison to some commenters, but looking
around my colleagues at work, I realise I am reasonably good. I would be able
to build the bulk of a complex database for them but I am worried if they
asked for something I haven't done, like a billing system.

I liked someone's suggestion of a fixed fee so you take the hit on learning
stuff, but how do you counter the problem of feature creep in that case?

------
dsutoyo
Sometimes you just need to start and try it. Get the inertia going.

You can start small. Help a friend or relative and charge them. Get practicing
on itemizing cost, project proposal, contract negotiation, collecting money,
figuring out how to get paid etc. These are importance freelancing skills
outside of just coding.

------
thumbtackthief
Note, I could link to my github if needed... I don't know if this question is
even answerable. I guess I'm looking for "If you can do xyz, then take it on,"
but I don't know if that sort of answer exists.

------
essersteven
If you can meet a client's expectation, then you are good enough to freelance.

------
davidsmith8900
\- In my opinion, freelancing made me a better programmer and marketer. I
started out as a beginner and Im not saying Im an expert, but from the jobs I
received, I became way better.

