Transition from freelance themer to professional developer
It's no secret that (good) developers are in really high demand these days. With the surge of new startups, and the Saas gold-rush. So many people have ideas and dreams to be built, and the internet to make it so easily accessible, the world needs developers. Developers are the ones to bring those ideas and dreams to life.
However, if you're reading this, there is a good chance you understand what it is like to be a freelance themer and not quite feel like a professional developer.
This was me.
I knew a bit more than just the minimum with some PHP, MySQL, and had some additional experience with the stack of web development, but when it came down to it, the work I was doing regularly for clients was wordpress.
At first my clients consisted of referrals like a random friends' brother or uncle who needed a new website. Or a web-site for my father-in-law. As far as I could tell, I was doing pretty good. I had people that liked what I did, and trusted my work, and would refer me to people they cared about, and money coming in.
I was off to a good start.
What I didn't weigh into the equation, was that I had almost no expenses. No kids, no house, no pets, living with family, and a wife that worked as well.
So those of you that have expenses in the same situation might not be feeling as "successful" as I thought I was at the time.
Find a pipeline
I'd like to say I thought through the need of having a pipeline, sought it out and and found my source, but really it sort of just fell in place for me. My brother-in-law happened to own an SEO company where they were either creating or updating their clients' websites on the WordPress platform.
The first project I got from them, my brother-in-law (knowing I was a young [aspiring] developer) reached out to me and asked
"Hey how would you like to convert a website to a wordpress theme for $XXXX?"
Almost positive I could hammer it out in a few days, "Sure" I said.
Because it was a fixed price, I set my timer, and went at it as fast as I could. The faster I could complete it, the more I was making per hour. While it took me just a little over a few days, I still was incredibly happy with how much I was able to earn per hour spent.
After that, they were pleased with my work, and when I offered to join up with them as one of their primary outsources to build custom wordpress websites, they said yes.
Alex really listened to what we were trying to get at. the real business problem we were trying to solve and he'd come with ideas to solve it. Rather than just take an order...
- Todd Jensen
With a steady source of work from their SEO company and a burning passion to build on the web, I was set. Or so I thought.
After a few months of regular wordpress websites, custom themes, and all sorts of modifications to existing wordpress sites I started to feel a little restless. Although there was still plenty of ways I could have improved my theme building and wordpress skills, I was itching for more challenging tasks at a programming level.
Start saying yes
As developers (at any level) we quickly become keen on giving safe responses when someone asks if we can build a certain feature.
client: Could you build a plugin that allows this real estate company to manage all their mortgage applicants and evenly distribute them among the agents?
dev: "It depends"
Most developers are pretty detail oriented. It's sort of a requirement. Because of that, when someone asks "What would it take to build x" or "Can you build x" the flood of diverging details comes rushing into mind. The vast possibilities quickly become apparent to the developer:
- Are the applications delete-able?
- Should they be archived instead?
- Do they want random distribution?
- Sequential distribution?
- Do they contain sensitive data?
- What form of encryption will be needed?
- Key management?
- Who has permissions to add/edit the agents?
- Permissions to edit/archive/delete/view applications?
- ...on and on
This is why we almost always say "it depends" instead of Yes or a certain time-frame. Because it depends on two things:
- details not presented in the question
I started to say yes more and more, even when I wasnt sure how I was going to build it yet. I tried to make sure I had flexibility on one of the two items above.
Saying yes to slightly uncomfortable project scopes gave me new challenges, new struggles, plenty of frustration, and incredible growth.
When I was not sure how to build them yet, my abilities were stretched, and I was forced to learn new methods to accomplish the required tasks.
Lesson learned: Say yes if you think you can build it, but you're just not sure on the specifics of implementation. Say you don't know when you don't know.
Side-note: The times I failed to communicate up-front about restrictions on time affecting the details, or vice versa, were the times that usually resulted in frustration for the client, and for me. If you don't know exactly how long it will take, try to communicate it when the features are set in stone. If the time is the constraint, try to communicate there may be some features that will have to be trimmed.
As I started saying yes more, it only meant one thing: More projects.
There were times I said yes a little too quickly and easily. Pretty soon I felt a little overwhelmed with so much to do and so little time.
This is one thing I wish I had learned to do sooner. I did not start doing this until after I had started my first employment job and continued to work with a lot of existing clients. I was pretty much forced to charge more for lack of time.
Brennan Dunn is a great resource that talks a lot about increasing your freelancing rate. He has a book and course called Double your freelancing rate that you may be interested in if you are struggling with how to approach charging more.
Some by-products you'll notice from charging more:
- Clients glad to pay more for good service and quality
- Happier clients
- More free-time
If you aren't trying to juggle a full-time job and freelance clients, it should free up your time to really power up your skills focusing on quantity of projects.
Quantity then quality
In some cases, you might be able to find a full-time job with your theming skills in wordpress or your cms of choice. But to be honest, there are a large number of people who are in that category so your competition is high.
Getting to the next level is where you will find more job openings than there are developers to hire.
This requires two things:
- Added experience
- Increased quality.
I was primarily writing in PHP at the time, and had been introduced to the CakePHP framework as my first MVC-style framework. "The rapid development php framework" it was called.
So happens, I had been working on a side project saas of my own. I first built it before hearing about CakePHP. Got about 60% there, discovered CakePHP, and rebuilt it with CakePHP. About 75% of the way to completion, I learned I was doing something entirely wrong within the framework. So I started over again.
That was stupid to start over. Right? Wrong.
At the time I had the option to just go through all the code, and refactor places that might have needed changes or rebuilding. But the fact was, I wanted the whole experience again.
My goal was to be an awesome developer. Even if it meant rebuilding apps over and over again to get good at it.
There is a reason most companies say they want to hire someone with "6+ years of experience." You learn quite a bit at a job for 6 years. But there's another way. In my opinion, a faster way.
Build. And Build again.
Not necessesarily rebuilding the same exact codebase. As an example, right now, I've had plenty experience with BackboneJs and KnockoutJs, but I want to be good with EmberJs.
I've planned out a series of mini-apps that I'm going to build in my available time for side-projects. They aren't going to be perfect. They may never have a single person look at them other than myself. But I will build, assess mistakes, and build another. Hitting the quantity helps to learn the principles deeply, while each time improving on the quality of the approach.
A great (and possibly slightly extreme) example of this principle is Jennifer Dewalt. If you check out her archives you can see the 180 websites she built in 180 days to learn how to code. She started back on April 1, 2013.
Hind sight is 20/20 right
While this was another thing I did not explicitly plan on, looking back I can see that it came to me naturally. I just felt doing more at a high frequency would benefit me and the way I learn. And in the end, many of my side projects helped me to get the jobs that I have been able to get.
Build a resumé and portfolio
Some places will use Github as your resumé, some places will want to see working web applications that demo your abilies and projects you've worked on. Others will want to drill you on your ability to write code on a white-board, and many other forms of technical assessment.
I got lucky. Some how many of the side-projects I worked on seemed to line up in helping me land the job I was persuing.
Building an array of CakePHP apps lead me to Agency Fusion where they were primarily using CakePHP. In my time there we transitioned to using rails more heavily. In addition to the projects at work, I built some side-projects in rails, which helped lead me to my next job at GrooveHQ a product using rails and backbone. My time there, and building the beginnings of a password management app side-project in rails and backbone aided me to my next job at Big Cartel.
Final Words: In my opinion we have to treat ourselves like mini-businesses. Our abilities and time are our product. Employers are the customer. As with most companies, you don't want to remain stagnant for too long. You want get out new products, or upgrades to existing products. Through this approach I feel like I've always been where I need to be to enable me to transition from one place in my career to the next step.
If you are a freelance themer or an aspiring developer, I hope you can take something useful away from this article that can help you in your own persuits to becoming the professional you envision yourself to be.
Sign up for my newsletter if you liked this post:
Hate spam? Me too