2015 year in review

One thing I absolutely LOVE about this time of the year, is reading everyone’s update posts on how the year went for them.

It’s very inspiring and makes me even more motivated for the year to come.

I’ve only ever done one year in review post and that was for 2012 but I’m going to start doing them every year. I’ve been thinking about doing monthly updates too as I follow quite a few blogs that do this and also find it very inspiring.

In any case let’s get on with the review.

What went wrong in 2015

If I look back over the past year I feel more went wrong than went right. It’s really disappointing to me, but at the end of 2015 I turned it around in to something positive. So there is a light at the end of this tunnel.

Here is why I felt disappointed with the year…

  • I will forever remember 2015 as a year where I had serious health issues. The worst that I have ever had. It started in June when I got an infection in my lungs. It took a good month and a half to get over it. Just when I thought it was over, I started having episodes where I would completely faint, the worst happened when I was driving. After countless brain, heart and blood tests it turns out it was all due to…
  • Burnout! In November this year, I was completely burnt out. It was a combination of many different things that led to it including stress, lack of sleep, bad health and a few other things. It was extremely scary and there were days that I literally thought I was going to die. I’m very close to getting over it completely now with the help of some medication and in 2016, there will be a big focus on health for me!
  • At the start of 2015, I had zero plans, goals or motivations for the year. I really just wanted to take the year as it came. That stunk! I will never do that again. Having plans and goals for the year, gets me excited about it and makes me push hard to get things done. There is so much I want to achieve next  year.
  • I realised in November that I was in the wrong job. There was nothing wrong with the company I was working at in fact I really enjoyed my time there. But I was not doing the work that got me excited for the day. I was living pay check to pay check and had no motivation. I turned this around as you will read below.

All the above effected me in 2015 and looking back it feels like a bit of a waste of a year. However, since December, I’ve found renewed energy and motivation and I’m more excited about life right now, than I have been in a long time. Let’s look at what went right.

What went right in 2015

  • On the 6th of February 2015, my son Hayden was born! As challenging as it has been raising two children (sleep anyone?), he is a huge blessing. My kids give me joy daily and are a big reason for doing everything that I do. My wife Megg has been amazing with all she does to raise our kids and work more than she should in her business, I couldn’t do this without her.
  • The biggest moment of the decade for me happened this year. In October, I finally, after 7 years of back and forth, decided to give up my studies for good. I’ve always wanted to but fear kicked in. You see, studying for my degree got in the way of me executing on the things that I really wanted to do in life. A full time job, 2 kids, side projects and trying to study was just too much for me. So I had to quit one. I know, this wouldn’t be for everyone and one day I will write a post on the exact reasons for me dropping out, but since doing it, it’s been worth it 100 times over.
  • I changed career directions. As mentioned above I was working at a job that I wasn’t motivated by. I wanted to be in open source and build a platform that my job supported (see below). I wanted to work on the cutting edge of the web development industry and do conferences and travel. Most of all I want to become a leader in the space. So I left my old job and took a position at XWP as a WordPress Engineer. It’s been GREAT so far. I’m loving it and I’m enjoying working in a remote position. Also, we’re hiring 🙂 Ping me.
  • On December 8th I did something that I have always wanted to but never did. I started getting serious about my platform. That is this site of course. My archives here go back to 2005 (That’s 10 years of blogging!) but there is only one time that I can remember where I was consistent with my writing. Since December 8th, I’ve blogged at least once daily, sometimes more. I’ve started doing videos and am offering a free course. I also now have a weekly newsletter. This is just scratching the surface of what is to come in 2016. – so watch this space. I am so amped about it all!

So as I am sure you can tell, the end of 2015 has been really motivating and I’m ready for a big 2016. It’s been great and I’m challenging myself to new heights. The momentum that I have going now is pushing me to things I never thought were possible.

2015 year in review, the numbers

One thing I love about year in review posts is the numbers. So I’ve come up with a bunch of metrics that I can track over the year and compare year on year. I’m including revenue figures here to which would be revenue made from this blog. The idea is to eventually make some pocket money from this site through advertising and a membership program called MattGeri.com PLUS. More on this later in 2016.

Last years figures are in brackets.

  • Blog Traffic
    Total visitors in 2015: 16740 (24376)
    Best month: December – 1960  (March – 2808)
    Most popular post: Installing a color scheme for VIM on Mac OS/X
  • Blog stats
    Posts written in 2015: 60 (2)
    Comments received in 2015: 32 (13)
  • Videos stats
    Videos released: 9 (0)
    Youtube views: 615 (0)
  • Subscribers
    Email subscribers: 46 (0)
    Youtube subscribers: 24 (0)
    Twitter followers: 702 (622)
    Facebook likes: 44 (0)
  • Money
    Revenue: $0
    Expenses: $70.43
    Profit / Loss: -$70.43

As you can see from the above, my overall traffic numbers are down due to lack of doing anything until December. I also earlier in the year switched my from from WordPress to Jekyll which had a huge effect on the drop in traffic numbers. But since the 8th of December, the blog is back on WordPress and things are definitely picking up again!

As mentioned, I’ve been blogging daily since December 8th and that made for a nice healthy post count this year.

I’m really happy with the growth in my video stats and subscribers! I’m going to be doing some cool things next year for my email subscribers so make sure you get on the list.

I haven’t monetised the blog just yet, so the expenses are a small bit of Facebook ads and DigitalOcean costs (aff. link).

Next year should be great!

Recap and looking forward

So there it is, my year in review! As much as the year was a bit of a disappointment I’ve got a lot to look forward to and can be thankful for so much good that did happen. Today I will be chilling with some friends to welcome the new year and from tomorrow the hustle begins!

Things I’ve learned being a remote developer

Up until 2012 I had never had a “job” which was not a remote position. Job being defined as a position as a consultant, working for a startup, being a traditional employee etc.

In 2012, I took a position in a payments company that was full time in an office.

Taking that position in an industry that I knew very little about at the time was a big step for me. It also meant, I had to adjust to working at an office and all the formalities that come with that.

I’ll tell you quite an embarrassing story, although it eventually became somewhat of a running joke which made me feel better. Back in 2012, on my first official day as an office worker, I didn’t know that offices had dress codes.

I’m sure you can see where this is going. I pitched up on my first day of work wearing shorts and a shirt which was against the “rules”. Luckily the company I worked for was very nice about things like that. But still, I was rather flustered.

In any case, it’s now been 2 weeks since I’ve returned to a remote working position and I feel so much happier than when I was working the office job.

I now believe, more than ever, that remote working is that way of the future, especially for digital workers. I’m not going to go in to the whys, they’ve been covered by countless articles and books.

What I would like to go through though is some of my initial tips for making remote work a pleasant experience and something that works for you.

Remote developer tip 1: Plan your day before it begins

This is something that I never used to do at my office job. I didn’t feel it was ever needed. The day kind of just flowed. Working remotely however, is a completely different experience.

If you don’t plan your day properly and write down what you want to accomplish, then there are hundreds of things that have the potential to get in the way of your priorities.

I simply use TextEdit and each morning write down my ToDo for the day. I also keep a backlog of items I want to get done in the future. It’s that simple!

Remote developer tip 2: Utilise the communication tools available to you

It’s easy, especially as someone new to a company and someone who tends to be a little introverted, to not get involved in discussions. For me, this is even more the case when chatting digitally because I tend to put too much thought in to what I am going to say.

For example, I think to myself “What will they all think about what I am about to say” and then just say nothing.

Don’t do that. I kicked that habit very quickly. It’s vital that you get involved and connect with others in the company. Use whatever the company provides i.e. Slack, Skype, HipChat etc.

Don’t be shy, in my experience people tend to be very friendly towards the new guy/girl.

Remember, if you shy away from this kind of communication, it’s going to be a very lonely space for you as a remote worker.

Remote developer tip 3: Take breaks

In an office environment, it’s easy to take a quick coffee break or snack break. When I worked in an office, I would often socialise with colleagues on the office balcony and just get my mind refreshed.

Obviously, when working remotely, it’s easier to get caught up in the work and work for a couple hours without a break. This is one I’m working on myself. I don’t want to work longer than 1 hour without taking a break. I’m currently working up to 2.5 hours without a break. Need to get that down.

Remote developer tip 4: Appreciate the freedom and time saving

Tomorrow morning, your neighbours, friends, family will be waking up at 5:30am so that they can skip the traffic on the way to work. You? You’ll either still be getting well earned rest, or taking advantage of the 30 minute time saving by maybe working on a personal project.

There hasn’t been a day gone by yet that I haven’t been thankful of the fact that I don’t have to sit in traffic tomorrow morning. For me, this has been the biggest blessing of remote work!

Remote developer tip 5: Get out there

If you’re feeling a little holed in or lonely, go and work from a coffee shop. Enjoy the vibe and good food.

I’ve done this a couple times already and being in that environment gives me good energy.

I’ve also really enjoyed having my family join me for lunch at these coffee shops where I’ve been working. It’s gives us extra time in the day to bond which we never had before.

And that’s it for now. It’s been a good learning experience getting back in to it and there is still a lot I need to learn going forward, but I’m seriously loving it and hopefully looking forward to working like this for the rest of my life.

Secure your Nginx WordPress blog with SSL using Let’s Encrypt

I’ve just enabled SSL on this WordPress blog. It was surprisingly a painless experience and I did it using the brand new, free service called Let’s Encrypt.

Why enabled SSL on your WordPress blog?

What SSL does, is encrypt the information that passes between the different points before it reaches the destination server. The obvious problem with unencrypted data is that as it passes through each of these points, it is in plain text which means anyone could potentially read it.

SSL has traditionally been used on larger websites and e-commerce stores where people care more about their information being kept safely and away from potential threats.

For a long time, SSL was out of reach for the little guy or hobby blogger as the cost involved with acquiring a SSL certificate was quite high.

Now that the Let’s Encrypt service has been launched and is completely free, it’s highly recommended that webmasters start enabling SSL on their websites, big or small.

Once HTTP/2 becomes more mainstream, you will be required to have SSL enabled on your site if you want to adopt it. While it’s not a strict requirement, Browsers like Firefox have already stated they will not support unencrypted HTTP/2 connections.

WordPress SSL on an Nginx server

While setting up SSL on this website, I documented the whole process step by step so that you can do the same on your blog.

As I mentioned in the video, Let’s Encrypt is still very new and, specifically on Nginx, not 100% supported just yet, even though it’s quite easy to get working.

Here is the video. See below for the commands that I run and configs I used, for copying and pasting in your own terminal window.

 WordPress SSL Nginx Commands and Configs

Use this command to clone the project to your server

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

Now to generate the certificate

./letsencrypt-auto certonly -a standalone -d mattgeri.com -d www.mattgeri.com

Lastly, the Nginx server domain config

listen 443 ssl spdy;
listen [::]:443 ssl spdy;
ssl_certificate /etc/letsencrypt/live/mattgeri.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mattgeri.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;

ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_prefer_server_ciphers on;

add_header Strict-Transport-Security max-age=15768000;

ssl_stapling on;
ssl_stapling_verify on;

## verify chain of trust of OCSP response using Root CA and Intermediate certs
ssl_trusted_certificate /etc/letsencrypt/live/mattgeri.com/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=86400;
resolver_timeout 10;

Renew your Let’s Encrypt Nginx Certificate

To renew your SSL certificate, simply stop your server, run the command below and then start it again.

# Stop your server (Ubuntu specific)
sudo service nginx stop

# Renew certificate
./letsencrypt-auto renew

# Start service
sudo service nginx start