Want to get more articles like this one? Join my newsletter

2015 in review: Teaching everything I know

I feel I should have done this a few years ago. I know that it’s pretty common for writers to do these “year in review”. At this point, I think it’s good for me to be open and transparent about what I do. I always admired Buffer and their values so it’s my way to emulate them a bit.

That said, it’s also useful that I have something written down. Our memory has a tendency to alter facts when we just tell the story over and over. This creates a historical record that I can refer to. (Why yes, I am a history geek! What makes you think that?)

In order for this review to make sense, I’m going to have to give you a bit of a background on my current situation. I don’t want it to appear to you that I got to where I am overnight. There’s a story and that story will give you some context about where I am today. It’ll also help you understand how I’m reviewing my year.

With that out of the way, let’s begin!

The story so far…

I quit my job in April 2012 to “start my own software business”. That’s a bit more than three and a half years ago. It’s a bit crazy to think that. It feels like it was longer ago (I have a weird perception of time).

The main reason why I did that is because I get bored with “work” very fast. I’m a quick learner and it’s hard for me to feel progress in a regular job. (I know… It’s one hell of a first world problem.)

This isn’t anything against my past employers. They’ve tried their best to keep me challenged, but it just didn’t work out. I always ended up leaving after a year or two to go backpacking.

This time, I left with the goal of starting a software-as-a-service business. Building a business is full of challenges. There’s always something to improve and something new to learn. That was my theory at the time (and it hasn’t changed much to this day).

Build a business plan A: Do an MBA

The initial plan was to do an MBA at the top US schools (Harvard, Stanford, MIT and so on). I spent much of 2011 preparing for that. I was taking extra university courses, doing volunteer work and writing essays.

Needless to say, I didn’t get in. In retrospect, I had a great GMAT score for it, but the rest of the package (a.k.a. me) wasn’t good enough. That said, it didn’t bum me out too much. I grew pretty disillusioned with the MBA program as I was applying for it.

In fact, I think I dodged a bullet. I’m not sure it would have solved my problem with getting bored at work. I would have just ended up with a huge school debt to repay. I would have been stuck working just to repay it.

And speaking of debt, I’d also spent the last few years putting money away to pay part of the tuition fees. The result was that I was sitting on a small nest egg (about $32,000 CAD).

I figured I might as well use that money and try my hand at this business thing. I’m a pretty smart guy. I’m sure I can figure it out in no time… right?

Build a business plan B: Do it yourself

As you might have noticed, I don’t have much of a software business! What happened!? Well, I made a lot of mistakes! I know it’s my mind talking, but I feel I made almost every mistake in the book.

The result is that I learned a lot in the process. I’d like to think it was valuable life experiences. Having said that, it doesn’t change the fact that none of it resulted in me building a software business.

Being your own worst enemy

The first set of challenges was more personal. I’d never worked by myself. I had no idea of the discipline that I needed to have. For those that know me, I always had an easy time building habits. I walked into a gym almost 10 years ago and I’ve been going 3-4 times a week almost non-stop since then. Same thing with meditation, eating well, etc.

How hard could it be to not play video games or watch TV shows and just work? The answer is a lot harder than I expected. I was my own boss and I wasn’t accountable to anyone besides myself.

That led to plenty of self-sabotage early on. I could lose an entire month watching TV shows (That’s why I don’t have Netflix). Or I’d pick up a new video game and play too much of it.

I also wasted a ton of time on superficial things. I’d worry about great UX and software design. I’d spend a ton of time learning puppet and server configuration management. I should have focused on the business building and less on just coding because that’s the fun part. I also fell in the trap of “build it and they will come”.

This ended up creating a vicious circle. I’d feel ashamed and depressed because I couldn’t build a business. So I’d watch TV, play games or code to not think about it which made things worse. This would happen every few months.

It took me about 2 and a half years of trial and error to break out of that cycle. It wasn’t easy, but I managed to build some good habits and become productive by myself. I also got better at focusing on the business building “stuff”.

Early 2012 to mid-2013: The “startup”

During that time, I worked on two separate products. The first was a personal trainer SaaS “startup”. The idea was to help their clients be consistent with their exercise. If they kept their clients longer, that would be valuable to them.

I spent several months at McGill going over sports psychology papers. I looked at a lot of the work done around habit building. I wanted to know what others had attempted already. The irony isn’t lost on me that, in the meantime, I was struggling with my own habit building issues.

At the time, I was also all aboard the lean startup hype train. I did interviews with personal trainers to do customer development. It just didn’t go anywhere for me.

In the end, it wasn’t a painful problem for personal trainers. They were more worried about getting paid by their clients. Keeping their clients didn’t matter as much. Also, as they became more successful, they’d develop a pipeline of prospective clients. They’d replace the ones they’d lost with them.

I also learned that I just didn’t like the health space that much. I loved the science around it, but not the industry itself. It’s got a lot of snake oil vendors in it and other shady business.

The startup scene was also a poor fit for me. I just didn’t want to raise money and become addicted to it. I just wanted to build my own business without having anything hanging over me.

Mid-2013 to the end of 2014: Bootstrapping

In early 2013, I started looking into bootstrapping. I’d found Amy Hoy’s writing and some talks she’d given. I started following other people bootstrapping their business. I also joined a solo entrepreneur group during that time.

I started looking at networks I could leverage. That was one of the core problems with my previous attempt business attempt. I didn’t know anyone in the fitness industry. I wasn’t anyone there either.

WordPress felt like the obvious choice. I was a WordCamp organizer in Montreal. I’d worked in an agency doing enterprise work with WordPress. I knew it well and I’d encountered plenty of “painful” problems I could solve.

I also wanted to pick a problem where I’d do WordPress, but also regular PHP (like Symfony). Something where I could make something complex, but valuable to a lot of people. So I picked error management for WordPress.

Error management? What’s that?

The easiest analogy to describe it is a super powered query monitor. It sends monitoring information back to my service. Back there, I can do more in-depth analysis, send alerts and all that good stuff.

I always had that problem with WordPress. I’d get a call that something isn’t working, but you didn’t know what to look for. I had nothing to help me debug what was going on the server. You’re trying to find a needle in a haystack. The idea was to build something to help with that.

That said, the fact that I have to explain it isn’t a good sign. It means it isn’t something that’s painful enough to buy. You should aim for the top two problems that your ideal client has.

Trying to start on a better footing

Regardless, this new project felt new and exciting. I went into “building mode” almost right away. The “build it and they will come” mentality was still going strong. I had a network to leverage this time! It wouldn’t play out the same this time (famous last words).

As an attempt to motivate myself and set deadlines, I also created a challenge. It was like the one I’d seen another bootstrapper do. I also did a special sprint week with my bootstrapping group.

It’s around that time that I tried writing on a regular basis again. I had some failed attempts in the past. But I knew I needed to write to “get out there” so I gave it another shot.

Still doing a lot of mistakes

The deadline for the challenge came and went. I didn’t help me stay consistent that much. I still had some issues with my old enemies: TV shows and video games.

I also spent too much time building stuff again and doing premature design optimizations. I couldn’t help myself. I just love learning so much! It’s like an addiction that I have to manage.

For example, I must have spent two or three months on the design of report collecting REST API. I felt that a REST API is a pretty static thing once it’s built. You can’t make changes whenever you want like you can inside an application. So I spent a ton of time on it to “get it right”.

I also learned domain-driven design for designing the application logic. I was decoupling all my code and open sourcing it as much as I could. It helped my programming skills a ton, but not my business skills.

The beginnings of my writing habit

My writing habit was a bit better this time. At first, I was writing in spurts and not in a consistent manner. Then, in march 2014, I published “Single responsibility principle, WordPress and You“.

It was the first article that I wrote that had any sort of success. It got shared a bunch and I got a lot of compliments about it. And it felt good! It’s at that point that my writing became consistent. I gave myself a two-week deadlines to write something and it worked!

I still had issues with where to post my content to get traction. I’d post on /r/WordPress and on WordPress Montréal Facebook group. Those were the only places I knew at the time.

I did branch out a bit after a while. I can’t remember when, but I started posting in the Advanced WordPress Group. I think it might have been after I saw the WP Tavern article. I also noticed Brad Williams posted my article on /r/ProWordPress. So I started sharing there as well.

I also put up the landing page for the book in August 2014. This started off as a test to see if it would help newsletter signups. I had 62 newsletter subscribers at the time. I figured the worst that’ll happen is that there won’t be any interest. In that scenario, I’d just take the page down and no one would be the wiser.

Moving towards a launch

As 2014 went along, I still kept working on the error management software. The whole timeline is a bit hazy at this point. (That’s why I need to write this down.)

I know spent a lot of time learning copywriting. I had no idea how to brand the pain I was trying to solve. I kept researching and looking around at what other products were doing. But they all had the same problem.

They all felt interchangeable. They had the same landing pages, same feature list, etc. There was nothing to set them apart. The worst was that none of them described the pain from the customer’s perspective.

This led me to try long form copywriting. It forced me to dig deep into my ideal customer’s pains and dreams. It was a tough exercise in empathy. That said, I think it was the most important exercise I did all that year.

Click to see the entire landing page

Writing this landing page took me so long! I read it today and I still love it! To me, that speaks of the quality of the work I did for it.

The goal of the landing page was to drive interest in the academy program. This is an idea that I stole from Nathan Barry. The academy would serve as a high-touch concierge service. That way, I could figure out what worked and what didn’t work with the product.

It was still a problem no one had

Ok, this is a bit harsh. I spoke to a few people who thought it was brilliant and wanted it right away (<3 Mike). Matt Cromwell was also kind enough to forward it to a few people as well. But all this effort didn’t change the reality of the situation.

Like I hinted at earlier, this wasn’t a top two problem for most WordPress developers. I tried to frame it as one, but it just wasn’t. Only the most advanced developers had this issue and it wasn’t that painful.

This was all driven home at WordCamp Toronto. I spent the week leading up to it putting finishing touches on it. I demoed it all weekend long, but I was getting more confused looks than anything.

It’s at that moment that I knew I’d have to hustle like crazy to make it work. There was just a lot of education around the problem that I needed to do. I’d have to get my hands dirty and do it all. The whole thing felt like a gigantic mountain to climb.

At the lowest point, I was ready to throw the towel and just go back to “work”. I dug myself out in a day or two (I’d had to do it a few times at that point). I knew I couldn’t keep working on that project anymore. I also couldn’t keep doing things like I’d done the last two and a half years.

Teaching everything I know

I felt I was on to something when I started thinking about education. I couldn’t build a business that I loved if no one cared about the same things as me. The blogging was going well at that time so I decided that’s what I’d do in 2015. I’d teach everything I knew to the WordPress community.

I knew this wasn’t how you did content marketing either. You find things people care about and write about that. I was going to do it the other way around. I’d be creating content no one had asked for.

I figured that if, by year’s end, I still hadn’t made any meaningful progress I was in fact just crazy. But I would have given it a good shot! I felt I could then move on to other things in good conscience.

And now for 2015

So this is where the storytelling end. For 2015, I decided to forgo the chronological order. Instead, I broke things down into sections. Each section will cover a specific thing I did this year. I’ll give my thoughts on what went well and what didn’t. I’ll also try to explain what I’d like to improve in 2016.

That said, I’m going to stay away from projections. I still feel so new to this. I’m not sure giving myself long-term goals for 2016 is a good idea. We can review if that went well next year!


Without question, writing is the most important thing I did this year. It’s the main medium that I use for teaching. It’s also where I spent most of my time.

I didn’t do any sort of time tracking, but it wouldn’t surprise me if it was around 90% of my time. It’s a huge part of my life even if I don’t always enjoy it that much. That said, I’m super happy with how writing went this year.

Developing a writing habit

Before February this year, I used to write on a schedule. Like I explained earlier, I’d give myself about two weeks to write and publish an article. The system had a huge flaw: I like to procrastinate until deadlines.

That’s because I like working under pressure. So I’d always slack off until a few days prior. I’d then write the article and publish it. The result wasn’t always that great because I didn’t like writing that much. I’d rush to get it out so I could do something else that I found more fun.

I decided to give another go at a daily writing habit. I’d tried to write 1,000 words a day before. Nathan Barry had written about how it changed his career so I’d given it a try.

The problem was that writing 1,000 words a day is a LOT for someone who never wrote much. It was stressful and frustrating because I’d never even get close to hitting that goal post. I ended up giving up on it and doing the two-week schedule thing.

This time, I took my knowledge of habit building to craft a habit that worked for me. I set a word count that wasn’t as intimidating and unrealistic. I would write 100 words a day.

It was small enough that I wouldn’t have too much of a problem hitting it. It was large enough that I’d have 1,400 words article after two weeks. It was also easy to do more if you got in the zone that day.

This worked great for me! I was able to build a consistent writing habit because of it. It’s now my default recommendation whenever someone asks how to write on a regular basis.

The other thing I liked about it was that you could also bump it up if you started to feel like you could handle more. This helps give you a sense of progress and increasing competency. This is what happened this fall. I bumped my word count to 150 words a day. It’s a lot harder to do that when you start with 1,000 words a day.

Growing the newsletter

The number of newsletter subscribers was the only metric I cared about this year. I felt it was the best proxy to know if there was interest in what I was doing. While I wanted this to grow, I didn’t want to use any gimmicks or anything I didn’t feel comfortable with.

In January 2015, I had 135 subscribers. As of today, I have 467 subscribers. That’s a 346% increase which is great!

One of the main drivers of growth was the email course that I launched this fall. It added a lot of subscribers in a short period of time. It died down a lot now, but I expected it.

I also built a small slider under the main navigation. I wanted to replace my call-to-action that I had at the end of each article. My articles are quite long and I felt I that most readers wouldn’t get to it.

That said, I’m not a fan of the exit popup at all. I know it works well, but I wanted something less aggressive to you, the reader. I felt the slider was a good compromise. I could show something without intruding too much on your reading experience.

Those were the two “big” things I tried around the newsletter this year. I’m happy with how things went as a whole. It’s a great sign that things are working and there’s some interest.

About “the book”

And speaking of interest, there’s still “the book” to talk about. I get asked on a semi-regular basis when it’s coming. The answer is maybe next year.

The reality is that writing it is going to be a lot of work. I want to offer different packages that include code samples, videos and more. A conservative estimate looking at a few other writers is something like four months of work. The current size of the newsletter makes this a poor use of my time.

It’s a better if I just keep writing free high-quality articles and keep growing the list. Looking at other writers, the magic number seems to be around 1,000 newsletter subscribers. This could happen next year if the growth trend continues.

That said, I’m doing a lot of little things in preparation for it. I switched to ConvertKit to create my email course. Anyone who completes the course gets put in a second “course”. The goal of that course is to structure the content and examples so that I have a good starting point for the book.

I also started converting the WordPress security talk that I gave earlier this year into a small handbook. The idea was that it would give me some practice on the publishing side of things. I put it aside to work on the email courses, but I think I’ll go back to it next year.

Writing is still too slow

Even with all this great progress, I still take way too long to write anything. One solution is to continue what I’m doing and increase the amount of words I write each day. My hope is that I’ll also grow to be more efficient in the process.

That said, I feel maxed out. Spending most of my days writing isn’t what I want to do in the long run. It’s what I need to do right now, but I also want to start spending less time on it.

That’s another reason for switching to ConvertKit. I started working on automating most of the emails that I send out. I don’t send an email broadcast for every new article anymore. Instead, I add them to a “course” which structures all the content.

This puts every subscriber on the same page in the long run. They’ll all see the same articles in the same order. It lets me improve things for both current and future subscribers. I also like that I can write emails where I can reference something I sent before.

But this is just one of the engines that I need to build around my writing. I’ll need to continue to explore this next year. I have to find more ways to make my slow writing work harder for me.


Speaking is another thing I did a lot of this year. I hadn’t given a talk since 2010 where I spoke at WordCamp Montréal. It was and still is a pretty insane talk. I covered way too many topics at once. It’s also when I realized that I was maybe a bit more advanced than the average WordPress developer.

That said, I was ready to give it a serious shot again this year. The result was better than I could hope for! I spoke at 3 WordCamps (including the inaugural WordCamp US). I also gave a talk at WordPress Montréal meetup.

I already have WordCamps lined up for the first half of 2016, but nothing I can announce yet. I’m not sure where I’ll apply for the second half. WordCamp US is the only one that I’m pretty sure of.

Speaking as asset building

I think it’s worth making a small parenthesis for this. I’ve approached these speaking opportunities as a way to build an asset. This ties into the idea of making my writing work harder for me.

If I give a talk, I retire it right away so I can create a new asset instead of reusing it. This didn’t work out for WordCamp US because the deadline was at the same time as WordCamp Toronto. They ended up picking the same talk so I had to give it a second time. I didn’t like that as much.

I also write every talk as an article first. I then convert them to slides. This is a variation of a recommendation by Zach Holman. He suggests ways to expand your talk to give it a better bang for your buck.

I like doing it because it gives me an even stronger grasp of the material. That’s because I just spent hours writing an article on it. For that same reason, it also helps me memorize the talk. That way I can just go off the slides and improvise because I already know what to say.


This year I was able to keep my urge of coding somewhat in check. I didn’t code much besides the coding examples for my articles and my consulting gig. It was hard to not do more, but I think I did alright.

That said, I couldn’t quite stay away from it. I still did a bit of coding for personal projects on the side. This year I focused my coding on two problems:

  • Building modern WordPress systems using object-oriented programming
  • Automating and standardizing the configuration of WordPress servers

The first one is still in its early stages so there isn’t much to talk about. That said, the good thing about it is that it makes for good writing material! You can see glimpses of it in a few articles that I published this year. The most obvious one being the one that goes over designing a routing system for WordPress.

The second one is about exploring what I think is a painful problem in the WordPress world. The WordPress server stack is getting more complex as time goes on. You can’t just run WordPress on any server and expect the site to be fast. This ends up affecting how clients view your work.

At the same time, servers feel like another area where I can help the community a lot. I used to hate sysadmin work, but that all changed with the arrival of DevOps. Now, you could do “CodeAsDocumentation” for server configuration with tools like Puppet and Ansible.

I used that passion to build “DebOps for WordPress“. I released it this summer and kept working on it this fall. It now has:

  • SSL support
  • Plugin management
  • Multisite support

I’m now working on supporting a local development environment using Docker. I’m super excited about the project. I hope to do a better job promoting it next year.

Potential business?

I feel there’s space for something between pure hosting and “I have to build the server myself”. I’m thinking something like Laravel Forge or ServerPilot. I did receive some feedback that was “This needs a GUI and I’d pay for it.”

But is it a problem that’s painful enough to build a business? Is it the type of business that I want to build? I’m not sure about any of it yet. That’s why I’m using the GitHub project to feel it out for now.

Creating an organization

I plan on releasing more things next year. I’m thinking it would be nice if they were all housed under an organization on GitHub. It would also be nice to have a dedicated site to promote them. That way anyone who wants to keep up with the projects can do so without joining my newsletter.

Personal Finances

It’s time to talk about money! I kept the “most important” for last. How did I do this year from a financial perspective?

Before I begin, I know that a lot of us (myself included) are always thinking in U.S. dollars. That said I’m from Canada, all amounts discussed in this section are in Canadian dollars. I just don’t feel like putting “CAD” everywhere! (What can I say? I’m lazy and I can use this for my taxes :P)

The bank account

In December 2014, I had $7,775.23 left in my personal bank account from my initial $32,000. Although, I didn’t have $7,775.23 left to my name. I still had some extra money that I’d stashed in my savings accounts for RRSPs (Canada’s 401k). I just had no plans to use any of that money.

If you average things over two and a half years, that’s a loss of about $800 per month. That’s not that bad all things considered! That said if my personal bank account hit $0, that was game over for Carl.

In reality, my losses weren’t linear like that. By the time 2015 rolled around, I had this reduced my burn rate to half of that. Otherwise, I would have run out of money this year.

I’m happy to say that that didn’t happen! Even better, I finished the year with $11,234.32. That’s a profit of $3459.09!


Let me start by saying that it’s a bit hard for me to calculate expenses. That’s because everything is going through the same bank account. I’ve covered expenses for friends and things like WordCamp Montréal. Everyone paid me back of course, but it complicates things a lot when keeping track of things.

That said, I’ve always tried to keep my personal expenses low. I spend between $900 and $1200 each month on basic necessities such as rent (not living at my parents!) and food. I’m quite thrifty and made a lot of life changes so I could get things that low.

Why do that? Well, I never knew when I’d get a regular paycheque again. I didn’t want to run out of money and stop this because I couldn’t control my expenses. It’s worth noting that my expenses have grown a bit this year. I’d say I averaged a bit over $1200/month during 2015.

The main cause for the increase is that I started traveling again. I was in:

  • Mexico for a wedding
  • New York for a vacation
  • Toronto for WordCamp Toronto
  • Philadelphia for WordCamp US

The Mexico wedding was already paid for. Otherwise, it would have eaten more of the profits.

I’m also thrifty for my business expenses. I don’t have a lot of them besides my GitHub account, Google Apps account and server costs. I started using ConvertKit for my mailing list this fall. It’s $40 ($29 USD) a month and dwarfs all my other business expenses.


What’s changed this year is my monthly income. Over the years, I started doing a bit of consulting on the side for my friend Jeremy. He works at a non-profit called Global Voices. They run dozens of WordPress sites in over 35 languages.

It’s important to note that I’m not looking to do consulting full time. I’ve kept the hours as low as I can. I still managed to make $17,515.00 from consulting. This was more than enough to offset my expenses so that I’m not losing money anymore.

This year I also added my first small product: ProductPress. It’s a small plugin that connects WordPress to the Gumroad API. I built it with Justin Jackson who handled the marketing side of things.

It’s been a great experience! It helped me get a bit more comfortable with selling things. It was also my testing ground for a lot of my WordPress object-oriented ideas. On top of that, it made $1,382.50 which helped me be a bit more in the black.

This puts my total revenue at $18,897.50. That’s just from my own work. I also received some money from the government because I made under taxable income in 2014.

Staying in the black

The main goal for 2016 is to stay in the black. I expect my expenses to increase quite a bit. I plan on speaking more which means more travel with a weak Canadian dollar. I’d also like to do a trial run at a month or two stay in another country.

I also have to replace my equipment which is growing quite old. My Macbook Air is a mid-2011 model. It still works great, but the 4 gigs of RAM is a growing problem. My iPhone 5 is also pretty close to dead. The battery doesn’t work that well anymore. I plan on replacing those two devices in 2016 which is about $2,750.

I also expect to do a few other consulting projects for friends. I still say no to 99% of the offers coming my way. I don’t want to get stuck because I’m spending too much time doing consulting.

This is a common pitfall when you’re trying to build a product business. You start doing consulting to pay the bills and it takes over all your available time. I’d rather stay away from it as much as I can. It’s why I don’t have a contact me or consulting page.

That said, I’m ok trying with small projects where I play more the role of a subject-matter expert. I can come in for a bit, help a client and then step back. The time commitment is lower. At least, that’s my theory.

Thank you!

So that’s a rough gist of what’s going on with me! I still feel I left a lot of things out, but this gives a good overview. How do I feel at the end of 2015? Thankful to you.

I feel that this crazy gamble to teach everything I know paid off! But it wouldn’t have been possible without you. Without you, I wouldn’t have any validation that there are people that care about the same things I do.

So thank you! And if you have other questions, feel free to ask in the comments!

Photo Credit: Elida Arrizza

Creative Commons License