Categories
Experiences

Taking on new (old) challenges

Life is a funny old thing. When I left working for an employer back at the end of 2015, I never dreamed I would, in the short space of 5 years time, come back to being employed full time again.

Back in June of 2019, I shared the news that I had accepted an increased role at Castos, that of lead developer. Accepting this position meant that I could dedicate more of my time to working with Craig and the rest of the Castos team, and would be spending less time working with various freelance clients at Codeable. The agreement between Craig and I was that of a 75/25 split, I would spend 75% of my time on Castos tasks, and the other 25% working with freelance clients through Codeable.

Now, just over a year (and 8000 plus new sign ups) later, the requirements for that role have grown to a point where it needs someone who can focus 100% of their time to it. So, from 1 October 2020, I am happy to announce that I will be dedicating all of my resources to Castos as Development Lead, overseeing the development efforts for our web application and our suite of WordPress podcasting plugins.

The title itself is arbitrary, it’s the journey ahead that excites me. In the past three years we’ve grown from Craig and myself to an 8 person team working on the Castos Hosting and Analytics platform (with a new developer to be added shortly), as well as being joined by folks from Craig’s other business, PodcastMotor, who manage our new Castos Productions service (About page images pending).

So while I will still be working on building new features for our web application and the WordPress plugins, I’ll also be more involved in finding ways to improve our development processes, scaling our platform to meet the demands of our customers requirements, while helping to make sure our software makes our customers more successful, and also supports each member of our team do to their best work.

In line with this change, I’m also looking forward to spending more time on our WordPress plugins, streamlining them for our WordPress users, and making it simpler to build and manage a successful, self hosted WordPress podcast.

Going forward, the content of this blog is also going to undergo some changes. There will be a shift away from freelance developer focused content, and will be more in line with whatever I am working on, or learning, as I navigate this new path. I’ll probably be overhauling my about page, and a few of the general content pages.

Most importantly, I won’t be taking on any new freelance clients. This means if you are looking for someone to work on your development project, I’ll rather redirect you straight to the Codeable developers page, where you can search for your perfect WordPress expert, and start a project with them.

I consider myself very fortunate to be working with such an amazing team of people, building a product that we all believe in, while supporting open source software at the same time. It’s been an amazing 3 years growing into this position, and I am looking forward to the next 5 years (and beyond).

Categories
Development Experiences Freelancing

ASUS Zenbook 15 UX533FD review – an Ubuntu friendly developer laptop

I’ve always been a fan of Dell laptops. While often a little more pricey than their counterparts, their laptops are usually well built, typically run Ubuntu without any hassles, and Dell have great after sales service. My last two laptops where Dell.

I’d been eyeing the Dell XPS 15 for about a year, and I had planned to purchase one when I was due for an upgrade. However, sometime back in 2017, someone I follow on Twitter suggested something I had not thought of, the Asus Zenbook range.

Now as a PC gamer, Asus is a well known brand. The produce some of the best PC gaming hardware around. In recent years they’ve switched to more integrated hardware, from tablets (my first Android tablet was an Asus) and more recently to laptops. So I was curious to see how the Zenbook range compared to the Dell XPS range.

The first thing that struck me was the wide range of ZenBook Series laptops available. After some extensive research, I eventually settled on the Asus Zenbook 15 UX533FD.

General impressions

I’ve been using this laptop for almost a year now, and I’m very happy with it. It boots fast, runs all my applications without any problems, and is super light and easy to carry around. Whenever I’m working in it, it never gets hot, and I hardly hear the cooling fans spinning up, so it’s super quiet as well. It has a average of 10 hours battery life if I’m using it for development all day, and an added bonus is that it looks really good, with the Royal Blue finish. You can read more about the tech specs here, but it has everything I need in terms of connections. Finally, the charging cable is also small and light, so when it’s in my laptop backpack I hardly even notice it’s there.

Cost Effective

I always prefer to limit myself to a specific budget, this time around, no more then ZAR25 000. I also tend to have specific minimum hardware requirements when it comes to a work laptop, preferring a decent Intel Core i7 CPU, at least 16GB of RAM and a 512 GB SSD hard drive. I’m not too worried about getting the latest and greatest of the Intel chips, nor do I need a 4k or touch enabled screen. I’m also not concerned about super powerful graphics or the number of additional ports it has, I just need at least one or two USB ports and an HDMI port.

Based on these specifics the Asus Zenbook was the clear winner, being available within my budget at ZAR7000 less than a Dell XPS, configured with almost exactly the same hardware.

Ubuntu friendly

Whether it comes pre-installed with Windows Home or Pro does not really matter to me, as long as I can install Ubuntu on it without any problems. At first I had some issues with getting Ubuntu installed, but after a bit of research online I discovered that updating the laptop firmware to the latest version would resolve any issues. I also decided to install the most recent Ubuntu version, which usually contains the most recent kernel updates and therefore less hardware compatibility issues. The base OS install was a breeze and I didn’t need to jump through any hacky workarounds to get certain things working. I’ve since successfully upgraded the OS to the recent LTS release (20.04), again with very few issues.

Performance

I’ll be the first to admit that I know nothing about performance benchmarks, so all I did was find a benchmarking tool on Ubuntu that would give me some scores to compare. Hardinfo seemed to be a solid option, so I ran the benchmark suite on the laptop and compared it to my AMD Ryzen powered workstation.

I was pleased to discover that not only were many of the benchmarks pretty close, but a few of them were better on the laptop, mostly in CPU related tests. I honestly can’t say I can tell the difference when I’m working on my laptop vs the workstation, except when it comes to graphics intensive applications, like games.

BenchmarkWorkstationLaptop
CPU Blowfish (lower is better)0.971.05
CPU CryptoHash (higher is better)1284.821058.34
CPU Fibonacci (lower is better)0.550.39
CPU N-Queens (lower is better)5.124.80
CPU Zlib (higher is better)2.351.46
FPU FFT (lower is better)0.800.65
FPU Raytracing (lower is better)2.561.13
GPU Drawing (higher is better)16462.808428.99

I’ve since had quite a few online interactions with other developers who’ve also discovered the joy of the Zenbook range.

So if you’re looking for a small, powerful, good looking, well priced, Ubuntu friendly laptop, you won’t go wrong with an Asus Zenbook.

Categories
Experiences

Nobody likes you when you’re 43

When I met my wife in 2000, I had just turned 23. The previous year, Blink182 had released “What’s my age again?”, and she took great delight playing it for me.

I’d never streaked anywhere, but I’d done some pretty weird shit up till that point.

Today, I turn 43, meaning it has been 20 years since that event. Amazingly, my 23rd year was probably my own personal “rock bottom”, as I’d spent 5 years after leaving high school wandering aimlessly from job to job, living from party to party, with no idea of what I wanted to do with my life.

Meeting the woman who would become my wife, and the mother of my boys, changed all that. She saw something in me that I didn’t, and together we’ve shared an eventful 20 years together, 12 as a married couple. I am extremely grateful for her presence in my life.

So this year, on my day of birth, I am thankful not only for her, but for all the wonderful people who have helped shape the life I have made for myself today. If you are reading this, it means you are probably one of those people, so thank you for being a part of the journey that is my life.

Here’s to the next one!

Categories
Development Experiences Freelancing

An experiment in dark vs light themes

It all started, effectively 2 years ago, with this tweet.

I’m not sure when I started following Brent on Twitter, but he posts interesting stuff about Laravel and PHP, and I’ve learned a bunch from his blog. Sometime last year he tweeted this and as I dug deeper into the conversation, I realised something. I had, up until a few years ago, been a strong proponent of light themes.

But somewhere along the line, I was tempted by the dark side.

via GIPHY

I can’t remember exactly when it happened, but it was recent, since about 2016 or so, that I switched my PHPStorm IDE from a light to a dark theme. I think it was when I first installed the Material Theme, and it defaulted to a dark theme. I’m not sure if I kept it because it was better, or because I was lead to believe it was better, but I’d been using it ever since.

Over the past weekend, I upgraded my workstation to the latest Ubuntu release and one of the new features of the OS is a built in dark theme, so I tried it, and hated it.

On Sunday (exactly 2 years on from the original tweet!) I was thinking about this, and I realised that there are only two places that have a dark theme; my terminal, and my IDE. Everything else I use daily has a light theme. My text editor, my Slack instance, even my browser, is using a light theme. And I got to thinking that every time I’ve tried a new dark theme (in Ubuntu, Slack, Twitter) I’ve hated it. So why am I keeping to a dark theme in the two applications I probably use the most, after Slack and my browser.

So I decided to try an experiment. I switched PHPStorm back to the IntelliJ light theme, I switched my terminal to a light theme (Tango light), and I gave it a day to see if it made a difference.

It’s now been two days like this, and I’m surprised to find that I have not noticed any negative differences. In fact, I’ve found the text in PHPStorm and my terminal more easy to read, and therefore it feels like I comprehend what’s happening quicker. As I’ve always kept my monitor brightness and contrast settings low, it appears I’ve actually been working in a sub optimal way now, for at least 3 years!

Light themes FTW (again).

Categories
Experiences

Thoughts on the last 20 years.

As the year comes to a close, and I sit here in the small town of Wilderness, drinking my last beer of 2019, and watching the last fire of 2019 burn down, I contemplate the past 20 years of my life. 20 years ago (at around this time) I was a lost 22 year old, with little to no direction or career to speak of, recovering from an extremely toxic relationship/break up, wishing, as I often had done in the past, for it all to just end.

How such a small period of time as 20 years has changed all of that.

In the 20 years since that night, I met the love of my life, obtained my national diploma in programming, stumbled into the world of web development, got married, purchased a house, had two children, ran (and sold) a family business, opened a jiu jitsu club, travelled to Europe twice and lost and gained more friends along the way than I can count. If you had stopped by 20 years ago and told me all this was possible, I would have swore you were crazy.

So here’s to 2020 and the next 20 years being as action packed as the last 20 were.

Happy New Year to all, and to all a good night.

Categories
Experiences Freelancing

Additions and upgrades

It’s been just over two years since I moved into my current office space, and just over a year since I last wrote about it. As my two major hobbies outside of my work as a developer are jiu-jitsu (which not many folks can relate to), and computer hardware and peripheral upgrades (which most can at least understand) I thought it might be interesting to look back at what changes I’ve made in the tools I use every day, over the last year.

The Workstation

Last year I posted a review of how my workspace had changed over the 2 years since I left employment and become a freelance developer. It included this image of what my desk looks like, with a short run down of everything you see (and don’t see) in the picture.

My November 2018 Workspace
My November 2018 workspace

Today, just over a year later, there have been some small but important changes.

My November 2019 workspace

So besides the less bright lighting (more on that later), the more keen of eye among you will have noticed some subtle differences.

Firstly, my peripheral monitors have changed. I was able to pick up a newer Samsung and Dell 24 inch monitor, so now all three screens are LED powered, and the two side monitors are more uniform. I’ve definitely noticed the difference in the visual quality improvement in making sure all three monitors are LED, I no longer feel like I’m having to adjust my eyes when I switch between the different screens.

The other major changes are in peripherals, I’ve replaced the Logitech headseat with a Sennheiser HD 280 Pro studio set, and replaced the short mic stand with a proper desk mounted arm. This allows me better use of my screens and keyboard when I’m in online meetings or recording podcasts (which I’ve not done as much as I’d like to in 2019)

I also treated myself to a Sparkfox Atlas Wireless Bluetooth Controller. This is a great little gaming controller, which I can use connected via a USB cable or via Bluetooth, works on both Windows and Ubuntu and has a very similar layout to an XBox controller.

Finally, as I noted earlier, I’ve switched from using the oppressing overhead florescent lights to a smaller lamp which sits behind the left screen. It gives off just enough light for me to see the things I need, without making my eyes water during the day.

The Laptop

While my workstation has only undergone a few external changes over the course of the last year, I eventually decided it was time for a new laptop this year.

I usually try and use a laptop for at least 4-5 years before replacing it. I’d been mostly happy with the performance of the Dell Inspiron gaming laptop I’d purchased at the end of 2017, but I ended up doing more conferences and therefore travel in 2019 than I had done previously, and two things became clear. First, the laptop and bulky, ungainly charger became heavy when carrying them around a lot, and second, the battery only held around a 4 hour charge.

I’ve always been partial to Dells, and the Dell XPS 15 seemed the logical choice. However, an online friend had recently purchased an Asus Zenbook, and was raving about it.

After researching the differences in price and hardware between the two, and reading a bunch of online reviews, I ended up purchasing the Asus Zenbook UX533FD, and I couldn’t be happier.

It’s super light, has a 10 hour battery life, runs the latest Ubuntu (after a bios update), and is powerful enough that I feel as productive using the laptop as I do on the desktop. At the same time, I also upgraded my laptop mouse to the Logitech M720 Triathlon, the big brother of the Marathon mouse I use on my workstation, and it’s a great wireless addition to the laptop.

The bleeding edge of operating systems.

The other big change I made at the tail end of this year was upgrading both my laptop and workstation OS to the latest version of Ubuntu, 19.10, codenamed Eoan Ermine. I typically only run the latest LTS version on my workstation, and whatever is the latest release on my laptop, but the 19.10 release is so slick, stable and fast that I had to install it on the workstation. I was actually feeling left behind whenever I switched from laptop to PC.

The future

Looking ahead, I don’t think there will be much I will change in 2020, as I’ve pretty much got my perfect set up. But who knows, upgrading computers is the one hobby I do tend to like to spend money on, so I can’t make any promises.

Categories
Experiences WordPress

Taking a break from my WordPress community activities

It’s a funny old world. Over the course of the past few years I’ve seen a lot of people take a step back from contributing to WordPress, and I never thought I would get there. But here I am, writing about taking exactly such a break.

When I joined the WordPress community back in early 2016, it was the first global tech community I’d ever actively joined. Like the first time you learn to ride a bike, all I wanted to do was be part of this amazing thing and do as much of it as I could. Now, just 3 years later, I feel burned out and disillusioned as to what my purpose in this community really is.

Don’t get me wrong, the community is not the problem, just like riding a bike up and down your street is not the problem. But all it takes is one or two potholes, or an inconsiderate driver, and things soon take a turn for the worse.

Organising local events

I attended my first WordCamp in Cape Town in 2015, spoke at WordCamp Cape Town in 2016, lead the team for 2017 and 2018, and was part of the team again in 2019, and I need a break. I’d like to be able to attend my home town WordCamp as an attendee next year, without needing to rush from an interesting conversation to whatever next issue might need to be dealt with. I wish the 202o team all of the very best, and I’ll happily assist wherever I can, but not in an official organising capacity.

I will also be taking a step back in organising our local meetup. Fortunately one of our members has joined the meetup organising team, and if she’s as good at organising meetups as she was running Logistics for WCCT 2019, we’re in good hands. I’ll still happily help the team plan events, liase with sponsors and find speakers, but it will be great to share the load of hosting with the three currently active meetup organisers.

WP Notify

I’ve been a community team deputy for about 2 years now, and it’s been an amazing journey. For 2020 I will be taking a big step back from that team, to focus on the future of WP Notify, the notifications feature project I’ve been working on with other WordPress contributors, for the past few months. I think WP Notify is something that WordPress is desperately lacking, and I see it as an important part of moving WordPress into the future, so I want to spend all my core contribution time focused on that.

Speaker diversity training.

Besides WP Notify, my other big goal for 2020 is to do what I can to support the Speaker Diversity Training programme grow and flourish within our local community. Deb Butler has already dedicated herself to launching this training programme, and I want to do whatever I can to assist her.

I am hoping that this break from all of the many volunteer things I, knowingly, get myself into, and a focus on only one or two, will help me redefine my purpose and feel some of that joy I first had back in 2016.

Categories
Experiences Freelancing

The Process of Writing

The general recommendation to becoming a better writer, is to write every day.

Besides high school creative writing, I am mostly a self taught writer. I’ve never completed any official copy-writing courses, even though I have three purchased on Udemy from about 2 years ago. I generally don’t understand the finer details that would take me from being a blogger or writing contributor to the ranks of editing someone else’s writing work.

That being said, since I was accepted as a freelance contributor on the Skyword platform early last year, I’ve probably completed at least two written assignments per month. I’m definitely writing more than I ever have, and it’s definitely paying off. I’m seeing the benefits not only in my paid writing work, but also in the general content of my blog.

I thought that it might be useful to share the process I follow, when I am writing content for money. If nothing else, it allows me to write something else today 😉

Brain vomit

While the image above my not be pleasant, this is always my first step. When working on a specific assignment, I will have certain guidelines I need to follow, in terms of article content.

I’ll create a new blank Google Doc, paste any relevant information from the assignment at the top of the page, and then just type out whatever comes to mind. This is usually just a few words or phrases, maybe a title, or a sentence or two.

Research

Once I’ve put down the thoughts I have in my head about the topic in question, I’ll start doing some research. Often this is to clarify some points of (mis)understanding, or to fill in some gaps in my knowledge. The assignment topic will define how much research I do. If it’s in an area I know little about, I can spend up to an hour researching. As I am researching the topic, I’m starting to put together a plan of how the article will look and what the story is I want to tell.

First draft

I then start writing my first draft. This is just everything as it enters my head. I might make minor edits here or there, but mostly I just write as the thoughts come to me.

Break

This is a pretty important step, but I then take some time away from writing. I find this allows me to think about what I’ve written, if there’s anything else I want to add or take away, and allows me to come back to review what I’ve put down with ‘fresh’ eyes.

First edit

This is the most edit heavy process. I read through the content and do my best to self edit my work, taking out repetitive words, looking for other words or phrases that will convey what I’m trying to say. This is usually where I will also start adding links to relevant content, including images, and generally trimming down the content to fit specific criteria. I may also take out sentences, and sometimes whole paragraphs, that don’t fit into the edited article any more.

Second edit

Immediately once the first edit is complete I’ll start the second, and final, edit. This is where I try to just read the article from top to bottom, as a reader would. Usually this is also where I look for complex sentences and try to uncomplicated them, as well as a more detailed focus on spelling and grammar errors. I will also look at the flow of the sentences and prune them where necessary.

I’m sure my process is nothing new or unique, but it’s evolved over time and I find it works for me.

Categories
Development Experiences Freelancing

The two worst things you can say to your freelancer.

I’ve been freelancing full time for just over three years now, having spent 10 years developing for either digital agencies or small to medium sized businesses, in various roles.

In the 3+ years since I switched to freelance development, the two sentences that I’ve heard/read the most from clients, and the ones that illicit the most negative responses in me, are:

“This will only take x minutes”

“This will be easy for an experienced developer”

If you are a freelancer, and you’ve been on the receiving end of these phrases, you’ll know what I’m talking about. This post however is not for you, it’s for anyone who has ever said one of these phrases to a developer, or who might not understand why they are so negative.

“This will only take x minutes”

x is usually a variable number, ranging anywhere from ‘a few’ to 30. Sometimes minutes is replaced by hours. Either way, the reason this phrase is so despised by freelancers is that it indicates to us that you think you know more about what we do, than we do.

If you know something will take 5 minutes, that means you understand the problem fully, as well as the possible solutions required to solve it and also which one to apply to solve it within 5 minutes. This means you can do it yourself. And it is therefore a lie, because if you could do something in 5 minutes yourself, you would not be hiring someone to do it for you.

“This will be easy for an experienced developer”

Personally, this one is worse than the previous phrase, and here’s why.

This phrase tells me you understand that I am experienced in my field, that I am knowledgeable, and you recognise that I can fix your problem. What it also tells me is that while you recognise my ability to fix your problem, you don’t value my knowledge enough to pay what it’s going to cost.

What is happening in both instances is that you’re trying to get me to keep my price down, because you think it will be a simple solution and you assume therefore it will be quick to fix. Unfortunately, in most cases, you’re making the same mistakes as the folks who thought that Titanic was unsinkable.

If the problem was a 5 minute solution, you wouldn’t need to hire me to fix it. And my experience, comes with a price. You either value the fact that I am capable of solving your problem, or you are looking for a cheap solution, which usually means taking shortcuts, something that I am not prepared to do.

Successful solutions take time, planning and thorough testing. By making assumptions up front, you are setting the project up for failure, and nobody wants that.

Categories
Experiences

The Answer to Life, The Universe, and Everything.

Today, I turned 42.

If you’re a fan of sci-fi, specifically Douglas Adam’s “Hitchhiker’s Guide to the Galaxy”, you’ll understand both the importance of this number, and the reference in the title.

I do think it’s sort of apt that the number 42 was used in this context. When I hit 40 I felt good about it, but now, a mere 2 years later, I think I have a much better idea of who I am as a person than I did two years ago, and my place in the world. Isn’t that weird, how two years can make such a difference?

What I have noticed is that in the last 2 years I have been focused less on worrying about what others are doing around me and more on just being a better version of myself. This way of thinking has bled through into all areas of what I do, both personally and professionally, and I think I’m really starting to see fruitful results.

So maybe the answer to the life, the universe, and everything, lies in having the confidence to being honest with myself as to my strengths and weaknesses, which, for me anyway, only comes from being on this earth for 40 years. I feel like there are people who get there earlier than I did, but I’ve learned that we all have our journey to follow, and each is unique, and that’s OK.

This morning I learned that the execution of Archduke Ferdinand, which kicked off WWI, happened on this day, but that the Treaty of Versailles, which effectively ended WWI, also happened on this day.

Isn’t that amazing, two major events that changed the world, happened on exactly the same day. This really gives me some food for thought.

At the end of it all I’m grateful for the 42 years I have spent in this planet, and I look forward to the next 42.