I made a short comment while I was semi-drunk last night on a post in reddit’s r/personalfinance about my wake up call as a shitty developer. I started getting a lot of “hits close to home” comments and private messages. Surprised me, I thought it was just going to get buried.
I guess there’s a lot of us out there. Those of us that taught ourselves to code. Those of us that made/make a living developing by themselves. I figured I should share my story.
I’ve freelanced since I was 18. I went to undergrad for interactive design (no coding, all flash) and graduate school for Marketing and Management. I suck at both.
I got a job out of grad school as the Webmaster for a large hospital. After that I got $180k funding for a start up idea I had and I tried to build it by myself over the course of a year and a half… it failed. That’s a whole different story in itself. Then I got a job as a Webmaster for a University.
Notice a trend here? Coding solo. No code reviews. No requirements or standards.
The title “Webmaster” is so antiquated and seems to relate to public or government institutions. It also means coding alone, typically.
Getting By
I had no problem with my work or how I did it. People needed shit built or managed and I did that. When I delivered it, it worked. But it also broke… all. the. time.
I’d patch shitty code with more shitty code. The source was disgusting. But I had no idea, I figured it was fine. Classes? git? An IDE? Local environment? Who needs that shit, I’m building stuff just fine in Notepad++ and a couple huge files with intense amounts of logic mixed into views and db calls. Hey, they shared a header file and sometimes a footer. I know how to INSERT and SELECT and UPDATE… who fucking needs a JOIN statement when I can just run 10 queries and a dozen for loops and nested if statements to get the data I need.
I Was Getting Paid
The hospital gig was $58k right out of grad school and rose to $70k over three years with insane benefits. The University job was shit pay but the workload was so ridiculously light and the benefits were phenomenal. I had so much time to freelance.
I regularly pulled in between 70-90k throughout my 20s. Why would I think I needed to learn how to do things better? I could pick up new languages or frameworks with ease. I was writing VB.NET and action script for the first five years, then oh, everyone’s using WordPress now? It’s php? Ok, I’ll learn php.
That was easy. I mean, coding languages are all basically the same on the web, or so I thought. You have variables, functions, you get the request variables, you go in and out of a database and you display your shit in html with, in my case, some nasty fucking javascript and inline styles.
WordPress was super easy. Grab a free theme and some plugins. Then I could just edit the plugin files to do what I wanted or hack through a themes templates and css. Updates? Who needs updates, it works as is.
Chris Wiegman
Obviously, now, this is a problem. A big one. I hadn’t grown as a developer in ten years. I was building sites that were getting hacked like crazy. I always found a way to blame it on the client or WordPress and never myself. Clients believed me, I kept getting paid, but the nightmare situation of all going to hell was building up and I had no idea.
I decided wearing nice clothes to an office 35 minutes away every day just wasn’t for me. I was losing my mind, honestly. I’m extremely ADD and terrible at corporate environments. Then I met a guy. A WordPress guy.
My favorite pub in town is a craft beer bar called Mr. Beery’s. I met a guy there a couple years ago and we became friends. Found out we were both primarily working in WordPress and started talking about it a lot. He told me how he worked from home full time. I was like… that is what I want. No, that’s what I need.
Later on I found out Chris built a huge plugin and sold it. iThemes Security is his work. My mind was blown. Dude who built one of, if not the biggest security plugins on WordPress, possibly on the web since WP is now 27% of it. And he was my freaking neighbor.
I had talked myself up, very confidently to Chris. He told me to apply somewhere and that there are tons of agencies out there that hire remote WordPress devs. So I submitted an application to 10up, the biggest WordPress agency out there (I think).
I was feeling good about it. I’m a very personable guy. Very social, good communicator and wrote great cover letters. I got hit up by 10up almost instantly. They wanted an interview. OH MY GOD IT’S COMING TRUE!
The Interview
I had a video chat with a lovely lady from 10up. We had a great time. Talking about culture, my family, my background, all my amazing websites I’ve built and so on. They hit me up asking for another interview. At this point, I felt like I had this job in the bag.
We had a second interview. Nailed it again. Now came the code review.
I was supposed to submit some code samples to them. They said send them links to git repos or just some files. I decided on files because I had no clue what git even did.
So I zipped up some stuff I’d built and sent it over. Kept telling my wife how excited I was, job was totally mine.
First reply was “hey, do you have any more code you could send over?” I didn’t know why they’d ask that. I sent my best stuff. So I scraped together some more code and sent it.
Then I got the email along these lines, “hey, we don’t think your coding level is where it should be for this position. We really like you and would love to have you at our company so please feel free to apply again when you level up.”
Motivation
I was depressed man. That shit stung more than any break up, more than any shut down, more than anything. I was distraught. I felt like the biggest loser, faker on the planet. I knew nothing. My code was shit. I should probably just switch careers.
But Chris wouldn’t let me stay down. He pushed me. He told me I could level up. He said explicitly, “let’s level you up.” I’d never had a mentor before, he didn’t even realize he was one.
Having someone believe in you is a big deal. I didn’t know that but now I was experiencing it.
I gathered a serious amount of motivation. First goal: build a plugin for WordPress that can be released in the public repo. You have to submit it for review, so your code has to be at least somewhat decent to get in.
Leveling Up
I made a people lister. It had a custom post type for people. You put in their name and some meta data like a position at a company. You could sort them then use a short code to display the listing in a nicely laid out format.
I look back at that code now and it’s shit, but man, it was LIGHTYEARS better than anything I had written before and it got into the repo. I leveled up.
Next level was using a proper IDE, I got php storm and used it and only it. I setup a git account and started making repos for every project. I installed vagrant and VVV as a local environment.
I forced myself out of WordPress for a couple projects and learned about system architecture, routing, autoloading and so on. I was asked to contribute to a project with some new friends I’d made in the WordPress world so I had to learn about npm and gulp and sass.
I threw myself at any opportunity to build with others. I truly believe that was the #1 thing that has got me to where I am.
I learned NativeScript for building mobile apps. It’s such a small community right now that when I started blogging on things I learned while developing in it I got a ton of traffic. I still do get loads of google traffic to NativeScript articles. I was discovering first time solutions and got indexed early.
I started applying to speak at WordCamps and surprisingly, I was accepted to five in 2016. That was an amazing experience.
Don’t Give Up
As I grew confident in my skills and began building a small name for myself in the WordPress community I decided to give the job hunt another try. I was told the Modern Tribe (Update September 2017: I now work full time for Tribe, just hit 90 days with them!!) was hiring. I redid the resume, I had this website up by then and I had a much better code catalog.
They contacted me fast and setup an interview. I interviewed with two different people. A culture person, then a code person. Both interviews were awesome and they really enjoyed me as a person.
Code review was fine, they said I was moving to the final stage and they were going to give me a small 8 hour freelance project. I was pumped, even more than last time. I had confidence this time that was legit and founded.
I finished the project and handed it in. A week later I had a video call with them.
I didn’t get it. They were upset as they really wanted me but they didn’t want to set me up for failure. They hiring a senior level developer that really needed to be a system architect at the same time. I just wasn’t there yet.
I wanted to give up, but again… I refocused and stayed motivated.
Still Growing
So here I am now, working from home. Got a killer full time gig for a WordPress agency based out of Toronto. I love my team and truly love my job. I barely freelance anymore, just a couple long term clients that I help out a few hours a month for some extra cash.
I’m a good developer now and I can say that with earned confidence. I still have a lot to learn and I’m leveling up regularly. I want to be the best. I want to write the best code. The motivation has gone no where.
Are You A Hack?
I wrote this to hopefully motivate some others out there that were the same as me. I’m 33 now and try not to think about it, but I probably could’ve been doing this 7 or 8 years ago if I’d started the process. But I’m happy where I am and you can be too.
P.S. If you want a code review, hit me up. Ready to pay it forward!