Freelancer Profile: Adam Kangas

Adam Kangas is an freelance software developer and technology consultant based in Melbourne, Australia. He holds a B.S. in Computer Science from Harvey Mudd College and spent years working on emerging technologies at Idealab a leading incubator of technology startups in the Los Angeles area.

We met Adam working Native Digital, and wrangled him in to telling us how he does it.

What do you enjoy most about working for yourself?

Working for myself has renewed a work ethic and love of learning that I lost track of after finishing university. The five years I spent in the corporate world after getting my Computer Science degree were great for me in many ways (networking, learning about the business side of startups, paying off my student loans, etc.), but after a point I began to put my feet up and coast by on my existing technical skills instead of building new ones.
 
Now that I’m freelancing, I’m constantly taking on projects that use technologies which are not only new to me, but are often new to the community in general. I used to sling low-level C code for Linux servers, which doesn’t come up too often in most traditional freelance projects these days… so I taught myself how to make killer Rails and Sinatra apps, then Facebook apps, then iOS/Android apps… and now I’m knee-deep in Javascript MVC frameworks and Spotify applications.
 

I’ve also been motivated to become much more productive with my tools and workflow, as any time that I save now directly benefits me (especially on fixed-rate projects).

 
What’s the worst problem you’ve encountered with a client, and how did you deal with it?

When I first started freelancing I was fortunate to encounter a few amazing clients in a row. Then I hit a dead spot and had no new work coming in, and grasped for any client I could find. This led to my first “bad client” experience.
 
I recognized the red flags early with this new client, but ignored and accepted them because I needed the money and nobody else was offering me work. The client lowballed me on my rate, threatening to walk if I put up a fuss. Requests to add things to the project specifications came in left and right, with no offer of increased compensation for the extra work. My requests for clarification on certain issues would be ignored or misunderstood completely. Work that I felt matched the specifications exactly was often rejected as “not being good enough” with no explanation as to why.
 
Needless to say, this was a terrible mess. Not only was it a bad deal for me, but as other clients came back into the picture and offered me work, this project was actively keeping me from getting back on track with the good aspects of my business. Eventually I sacked it up and FIRED the client, offering a few options for how we could compromise on the cash that had already been paid vs. ownership of the work that had already been done. Luckily the terms of our contract allowed for this to get sorted out in a rather straightforward manner. Which leads me to…

 
What’s your top tip to freelance developers?

Take the time to make sure you’re signing contracts you’re happy with, that have YOUR best interests represented just as much as the client’s. Talk to a lawyer if necessary.
 
Common things I tend to address in a contract:

  • Whether I’m selling source code to the client, or just a license to USE source code that I’ve written
  • My ability to own and/or open-source any utility libraries (e.g., jQuery plugins, Ruby Gems) I may develop during the course of the project
  • Defining the point at which ownership of intellectual property transfers, such as when I’ve been paid in full
  • Setting an hourly rate which I will get paid for any work which is above and beyond the agreed-upon scope

 
How do your market yourself as a freelancer and find work?

When I first started freelancing I spent some time revamping my personal website to make it more attractive and informative — basically indicating that I was for hire and actually knew what I was doing. Next, I spent a lot of time cold-calling potential clients, design studios and talent agencies in an attempt to find leads for work. This was a decent way to break in, but was stressful, unreliable, and led to a lot of projects that I wasn’t in love with. In addition, I quickly grew fed up with the way I was being treated by my handlers at the various talent/headhunting agencies I was dealing with for occasional placements — more like a meal ticket than a valued member of the team.
 
A few years later, and I’m fortunate enough to have a built up a decent network of ex-schoolmates, all-star clients, brilliant former coworkers, and passionate developers/businesspeople from the local tech community as well as some online communities. It’s through this network that I’m currently getting most of my work, and most months I’m actually able to turn down projects because I have so much on my plate. There is still the occasional lean month, but most of the time simple word of mouth from people in my network keeps me afloat and leads to new opportunities. These relationships build exponentially as long as you’re doing great work for people, which creates an amazing positive feedback loop.
 
I still get the occasional lead via my portfolio website or public LinkedIn presence, but most of the time I’d rather take on work from a trusted member of my network than from someone who finds me through an internet search… among other benefits it eliminates the need to spend time vetting a bunch of potential new clients every month!

Simple Invoicing & Time Tracking

Quit worrying about tracking time, invoices and estimates and complicated software. We got you.