Getting a Job as a Developer

My students are always asking me how to get a job as a developer. Where I currently work we have a program that’s specifically designed to help guide students through that process. Whether you’re a man or a woman, young or old, there’s a place for you out there right now and our team gives you great advice about resumes and job hunting and how to fill in your LinkedIn profile but nevertheless students are always wanting to know, first hand, how to get a job as a developer from an employed developer’s experience. So here’s the story of how I got job as a software engineer (an upgrade from developer) and how you can too.

Step 1: Learn to code

This is obvious but you’d be surprised at how many programmers/developers/coders or whatever they call themselves have no clue what they’re doing. They set up Wordpress once and they know what PHP is and they call themselves developers. The ability to create a static web page does not qualify you for a career in this field. You can freelance a little but you’re not job-worthy. Was that harsh? So is capitalism. Sorry kids, you gotta know what you’re doing first.

What to learn

There are so many niches in programming that no one person could possibly be proficient in them in all within their lifetime. Here is a list of skill/technologies you’ll either need to know or at least be familiar with. Hold on because it’s a doozy:

  • FTP
  • PHP
  • LAMP stack
  • MEAN stack
  • HTML/CSS/JavaScript (front end development)
  • LESS
  • SASS
  • SQL
  • Database engines
    • MySQL
    • PostgreSQL
    • SQLite
  • Non-relational databases
    • MongoDB
  • Key-value stores like Redis
  • Node.js
  • Git
  • Version control in general
  • SSH
  • Deployment
    • on PaaS platforms (Heroku, EngineYard, AWS)
    • VPS (server administration)
  • Ruby
  • Ruby on Rails
  • Sinatra
  • Amazon Web Services (at least the basics)
    • S3
    • Cloudfront
    • RDS
    • EC2
  • Task Runners
    • Rake
    • Grunt
    • Gulp

I’ll stop there. There’s a lot more but those are the skills I’ve had a decade to either master or at least be proficient in. Caveat alert: there are some areas of web development that’ll require you to know iOS or Android or Microsoft technologies like Java and .NET.

The other thing you need to remember is that technology changes fast. That’s why the tech game is generally a young man’s game. You need to constantly be up to date on the latest and greatest. It took me ten years to master that list. When you first start out you just need to know what is out there, pick a few from the list and then start learning one skill at a time. It’s just like development; you solve one problem and then you move on to the next.

Getting experience

My first job was free. I began as a freelance developer focusing on marketing and the front end because I thought it was easy. So I took every business card I could find, looked through phone books then looked up every business I could to see if they had a website at all or if it could be improved.

My first 3 clients were game changers.

Client 1

I quit a job as a fry cook/fast food manager with literally $20 in my pocket. I saw a mechanic driving through a snow storm and took down his number. After looking up the company I asked if I could build their site for free. In return all I asked was that they give me referrals. (Side note: in hindsight I now know to never do free work unless it’s absolutely necessary. Also, don’t work for family or friends – they’ll inadvertently take advantage of you).

I created a simple Wordpress website, did some basic SEO work on it, and advised the owner on how to get his rankings up.

That was it. A free job to add to my portfolio.

At this point I began visiting chamber of commerce meetings and local business gatherings. I was networking. I also paid $5 to register as a sole proprietorship operating under the DBA “Clever Web Design” so I could truly claim to be an official business.

Client 2 and 3: The referral and the “white whale”

My second client was a business I had to cold call for weeks. I researched them, put together a proposal, and then tried to get in contact with them. It took weeks. I even went to their office and left them an envelope full of quotes and my proposal – all clearly and professionally branded of course. Just when I thought all was lost they called me out of the blue and asked for a meeting. I made $300 on thAt deal. I was overworked and underpaid but I delivered because I was motivated to move up in the world. Plus my work at the time wasn’t the best either. My students do better front end work than I was doing. I was self-taught after all.

That same week I got a referral from my first client. It was a straightforward redesign job, very similar to my first free work. I was paid $600 for that job. Again, not what my skill was worth but I was young and dumb. All together I made $900 that month. Not much better than a minimum wage job. But I was moving forward.

Clients 4 and more

Once I had 3 clients under my belt I kept going. Kept cold calling. I asked to speak to a decision maker, explained how a website could grow their business (in other words “give me $x and you’ll get $y profit), then asked for a meeting. There I would learn all about their company, negotiate a deal, and begin work.

My standard contract stated that the proposal and spec doc would be approved, I’d get 50% up front, then the rest upon completion. I always gave them full control over the code and infrastructure but still had a trap door in case I wasn’t paid.

My rates went from Free to $300, to $600 then $1,200, $5,000, and up. I went from simple front end Wordpress/static sites to more complex web apps. Along the way I took on jobs I wasn’t sure I could deliver on but I learned to be a fast learner and never let a client down.

Of course there were disagreements and even fights with customers but when you freelance that’s unavoidable.

How I got to the present

I’ve always gotten to be my own boss even when I had a boss and I did it by earning the trust and respect of my employers. Most importantly I learned the business I was in and always found ways to make my job obsolete. When you make your job obsolete you open up opportunities for yourself, save the company money, and it’s a win-win situation.

Since my humble beginnings I’ve worked for a well funded startup, got funding for my own tech company, did consulting work for a well known educational institution near Chicago, held a seat on the board of a recognized charity, and have taught three (so far) web development courses. A few days ago I turned thirty which, in this industry, makes me a little nervous. I’m hoping to continue teaching others what I know but I have a need to get back to my roots as a software engineer. I’m looking forward to getting behind a desk and writing mission critical code.

Getting a job

So how do you get a job? Have a good portfolio. Network. Most importantly, stay hungry. Make those cold calls. Be creative. Chase down leads like your life depends on it. When you first start out, nothing is beneath you. Be prepared to work your way up the ladder.

Thoughts, Web development

« Using Bookshelf with Node.js Breaking the rules of the MEAN Stack »