I stumbled across Car Masters: Rust to Riches on Netflix this past week. As a bit of a petrol head I’ve always enjoyed a good car restoration show and I found the ‘upgrade and trade’ business model that was central to the series story line extremely interesting.
Watching the team from Gotham Garage upgrading and transforming old cars into new, it got me thinking about my own recent upgrade project. I like cars, but I’ll never be the type who restores an old one in my garage as a project. I like cars that are new and shiny and go fast now. What I do like doing for fun, is fixing and upgrading computers.
This is, in part, what lead me to upgrading my old gaming pc and turning it into my current development workhorse. This is also what lead me to finally get something I have wanted for many years, a proper multiple monitor setup.
A few months ago I purchased a new Dell 27 inch LED monitor, and the Zotac graphics card I purchased has support for up to 5 screens. I still have a Samsung 23 inch monitor my wife purchased for me over 7 years ago for the original desktop build, and a few hours of scouring local online classifieds, led to me picking up a Phillips 24 inch monitor to complete the set.
I was able to work on a three monitor setup very briefly using my old Dell 17 inch laptop, which had both an HDMI and VGA output, and I found it very productive, so being able to work this way for the past few months has been amazing.
I don’t think I’ll be doing any upgrades to this set up any time soon, as for now I really feel like I’ve upgraded to my perfect development workstation.
Is the Codeable Expert Developer certificate worth the weight of the digital paper it’s printed on?
In 2016 I certified as a Codeable Expert Developer. I’d already spent a number of years working with freelance platforms such as Upwork and Freelancer but Codeable has stepped out from this crowd to become my preferred platform of choice.
There are quite a few reasons why Codeable is the kingdom where every developer should hang their hat and here are six of them…
Reason 0ne: You don’t just sign on the line and instantly become a Codeable Expert
Entering into the Codeable world isn’t as simple as filling in a few forms, locating the perfect profile pic and waiting for the work to come to you. The application process tests you on your development knowledge, ability to handle difficult clients and skills in managing complex situations. For Codeable, technical knowledge is essential but customer service is critical.
Experts have to pass stringent tests to gain access to Codeable – tests that are improved upon daily by the Codeable expert community. You have to know the web, WordPress and development inside and out before you can even be considered. You also have to demonstrate the ability to manage expectations and a willingness to engage in open communication and collaboration.
Codeable Experts are project managers, quality testers, customer relationship managers and so much more. This assures Codeable Experts that they will be connected with genuine clients and it assures clients that they are going to get connected to incredibly talented experts. And everybody knows that this level of skill doesn’t come at cost price.
The Codeable process may be rigorous and complex, challenging your skills and your experience, but it is worth every hurdle and hoop.
Reason Two: Client focused but expert friendly
The founder of Codeable, Tomaz Zaman, jokingly refers to Codeable as the Tinder for WordPress. It’s easy to see why. It connects the best WordPress experts to the best clients and everybody walks away happy and in a new, fulfilling relationship.
This is primarily driven by Codeable’s commitment to making both the customer and the Codeable expert happy. A commitment that’s clear from the moment you apply. Codeable gives every applicant personal attention and team members take the time to explain each part of the application process. They also provide immediate feedback when sent questions or concerns. I dealt with people who cared and who understood that sometimes life got in the way of the application.
Once you’ve been accepted, you need to spend some time getting to know the Codeable process. The entire platform has been designed to provide you with a really strong support structure so you can quickly learn about how to engage with customers and how to deliver the ideal Codeable customer experience.
There is a very delicate balance between the needs of the client and support for the experts and Codeable manages this perfectly.
Reason Three: Defining the ideal customer
There are three things that define a great customer within the Codeable universe:
A great customer is someone who understands that a freelancer is a human being and not just a tool. Developers have lives and families. We get sick and we have to juggle the unexpected moments that life throws at us just like everyone else. Knowing that a customer can understand and accept this makes everyone’s experience so much better.
The customer understands their product or service and can succinctly explain or describe the problem. They make suggestions, not assumptions. You may look at a web page and think that it should be easy for the expert to change the font but you likely don’t understand that perhaps the CSS rules aren’t structured properly or that a font change on the home page will knock on to other parts of the site.
As Codeable experts we pride ourselves on our communication skills but if a client goes quiet, especially when it’s time to mark the project as complete, it can leave a bad taste. A communicative customer is wonderful to work with.
Reason Four: Codeable creates collaboration
Codeable doesn’t limit you to the Codeable workroom system. Once a project has been funded you can use any communication tool that you and the customer prefer. That said, the Codeable workroom system has some nifty tricks and treasures hidden in its depths that add enormous value to client communication.
The Credentials Vault – you can share sensitive information, such as site logins, with relevant experts.
The File Storage System – you can upload images, documents, video tutorials and other file objects for easy, shared access.
The Live Chat System – this is also replicated as emails to both the customer and the expert so that communication is seamless and easy. The only thing missing is a voice option…
Reason Five: Collaboration really is key
There is one thing that Codeable doesn’t have…Expert Wars. On this platform the experts aren’t competing, they’re helping. It’s more like a distributed family that steps in to ensure that clients always get the best out of their chosen expert.
Codeable is the first platform I’ve experienced that has captured the true heart of the community-driven ethos of the open source platforms we use.
Reason Six: The value of Codeable
The fact that we, as Codeable Experts, are not in competition with one another makes this one of the best platforms in the world. The expert community is perhaps the biggest reason why I am passionate about Codeable and its potential. We help one another on projects, give each other advice when entering into pre-hire discussions, and share expertise on the forums. It is open access to the most impressive group of WordPress experts in the world. You are constantly surrounded by intelligent people who can teach you something new every day.
Last year I had the opportunity to meet up with a group of my fellow Codeable Experts at WordCamp Europe 2018 and it was like meeting up with old friends.
Codeable has also taught me that the knowledge and experience I have is invaluable. If you work with the right clients you don’t have to kill yourself to make a living. Since joining Codeable in 2016, my income potential has doubled and I have been able to do things I’ve never done before. I built the perfect development workstation, I took time off without worrying about my next project and I learned new technologies while taking on exciting new projects.
Some tasty tips for Codeable success…
If you want to enter into the world of Codeable, then here are four top tips that will help you get in, get involved and get insight from brilliant Codeable minds…
Know WordPress inside and out. You don’t need to be a core contributor, although that would help, but you do need a good understanding of WordPress APIs, hooks and core fundamentals.
Understand web development in general – a good grasp of this will come in handy as clients will often have requirements to connect their WordPress sites to third party applications and systems.
Be a problem solver – the ability to install a WordPress theme and a bunch of plugins isn’t enough. You need to create custom themes or plugins and have the ability to extend those. You must have a higher than average skillset in creating custom solutions for WordPress.
Customer collaboration skills – you need great customer service and a healthy attitude towards project management and communication. At Codeable you don’t win projects based on price – you need to be prepared to go the extra mile during new project discussions and to provide value to new customers.
I’ve been thinking a lot about my use of the internet and it’s associated tools and apps lately. I’ve never been the biggest fan of social media, but since roughly 2015 I’ve found myself getting drawn into the online conversation more and more, so much so that I’ve recently realised I may have a little bit of an addiction.
A few days ago someone suggested Catherine Price’s book How to Break Up with Your Phone. (The irony of the fact that it was suggested because I follow that person on Twitter is not lost on me). It made me realise that I need to take a long hard look at my social media and mobile phone usage and make some changes.
As such, like others before me, I’ve decided to take a month long sabbatical from social media, for the month of October. This may prove difficult, as I am attending WordCamp Johannesburg at the end of the month, and the need to live tweet stuff will be strong, but it’s as good a time as any to see if I really can do it. Hopefully it will allow me to change my internet habits and spend more time on things that matter.
In the meantime, I hope to blog more here during the course of the month, which will automatically be shared to my social media accounts. So if you want to converse with me online, feel free to leave a comment on one of my blog posts, email me (my name at gmail) or find me in the various Slack channels I hang out in.
About 8 years ago I built my first “proper” gaming computer, which for various reasons I nicknamed Psyrig. It wasn’t the first gaming computer that I owned, but it was the first time I carefully selected all the components, including the case, and put it together myself from the ground up. It was built to serve two purposes, both as a development workstation and a gaming rig.
In the years that have followed I upgraded the cooling fan, added a 128GB SSD to improve boot times and eventually upgraded the graphics card to handle newer games. After 8 good years of service, it was time for a more drastic upgrade: new motherboard, processor, memory and graphics card!
Part 1 – the plan
I’ve been toying with the idea of upgrading the computer for a while now. Since purchasing my first development laptop about 5 years ago, the computer was relegated to powering our home media centre, and the odd game when I had time. However I find gaming in the lounge to be suited better towards consoles and games that play better with controllers, so having a gaming computer not connected to a keyboard and mouse never seemed logical. What seemed even less logical was letting the power of a gaming computer run mostly as a media centre. So, after I purchased a 2nd hand workstation to take over media centre capabilities, the gaming computer was taken to my office and I started planning the upgrade.
The purpose of the upgrade was two fold.
First, I wanted to have a dedicated workstation at my office, on which I would maintain all my work. This would mean I would be less inclined to bring work home. Right now everything is on my laptop, which I bring home, and it’s too easy to just open it up and do some work. I also wanted to make sure that the upgrade would last me at least the next 5 years.
Second, I wanted to be able to play some of my newer game purchases on it. I recently purchased the latest Deus Ex game, and I’ve not had the time to get into it. So the idea was that whenever I took a break from work I could pop in a half hour of gaming instead of watching some YouTube video.
Part 2 – the parts
After much online shopping for probably the better part of the last year, I finally settled on another AMD powered set up. I’ve been an AMD fanboy since I got into serious PC gaming and my last two computers were AMD powered.
This was probably the trickiest part of this build.
I’ve been a Windows user, because gaming, for as long as I remember. However, I’ve been what I like to consider an Ubuntu power user since I discovered it in 2008. On my laptop, which came with a 128GB M.2 drive, I also installed a 500GB SSD, which runs Ubuntu and is my main OS of choice. I have Windows installed on the M.2 for when I feel like a game, or if Ubuntu isn’t playing nicely with some projector, which hasn’t happened since Ubuntu 17.10. I really like Ubuntu and all the unixy goodness when it comes to development. I also liked the fact that Valve recently started working on a project that will one day allow all my games to run smoothly on Ubuntu. That day is not however today.
Because I only have one SSD installed in the PC, it means either installing Windows now and then purchasing a new SSD later to dual boot, or installing Ubuntu and only playing the games that currently work on Linux. Granted the primary purpose of the computer is not gaming, so I doubt this will be a problem, but it’s also nice to have a Windows install for things that don’t work on Ubuntu (I’m looking at you Adobe Creative Suite).
I even went as far as asking folks on Twitter, and the resounding response was dual boot, which was going to be difficult at this time.
By the time I came to the actual build, I still didn’t know what to do.
Part 4 – the build
When I’m building or upgrading a computer I like to open all the boxes and lay all the new parts out on the table around the case, along with any tools I might need. After 10 or more years of building, upgrading and fixing computers, I’ve learned to make sure everything I will need is close at hand. The one thing that is missing are the cable ties, but I knew where to find them when I needed them.
During the upgrade I was reminded why I decided to not go into computer hardware for a living. Having big hands and fingers makes it tricky to get into all the nooks and crannies of a computer casing to ensure mounting screws and the like are properly installed.
About halfway through the process, things got a little interesting. While plugging in the various case cables (power switches, front side audio and the rest) I discovered that my new motherboard supported M.2 drives! This was quite a moment, because I realised that if I could take the M.2 drive out of my laptop, I could keep the laptop as an Ubuntu machine and effectively dual boot the computer.
Taking the M.2 drive out of the laptop proved to be easier than expected, once I realised that part of the bootloader was installed on the M.2 drive. I quickly created a bootable Ubuntu USB, booted live from the USB and installed the Boot Repair tool. This reinstalled the bootloader onto the Ubuntu installed SSD, and I could now safely remove and install the M.2 drive into the computer.
The next things that happened absolutely shocked me. After plugging all the cables in I booted the computer, expecting it to give me some ‘non bootable disc error’ or similar. But no, it actually booted into the Windows 10 install on the M.2 drive and, after setting up some devices, I was actually able to use the computer. I was not aware that Windows 10 was able to do this and even though I intend to reinstall everything from scratch anyway, I was pretty impressed. Maybe Microsoft has come as far as everyone says they have.
And that was it, I’ve installed Windows on the SSD and Ubuntu on the M.2 and I’m happy dual booting on the computer. I was hoping to be able to Activate my Windows install using the Windows 10 key I had installed on the old system, but it turns out the free upgrade license I have doesn’t support a motherboard change. I found this a little annoying. I could go and buy a new Windows license, but seeing as I’m only going to use that drive for gaming, I may just leave it un-activated, it turns out that Microsoft doesn’t cripple un-activated installs like they used to.
Now all that’s left is installing all the software…
In case you’ve been living under a rock, it was announced on Monday that Microsoft as acquired GitHub for $7.5 billion. For various reasons, this has upset open source developers around the world.
Since then there has been a lot of discussion online about the pros and cons of this event. While I do feel that a lot of the complaints are probably coming from a vocal minority who are decidedly anti Microsoft (no doubt angrily typing their responses on Apple products, the irony) I also agree that this is perhaps not the best news for the open source movement in general.
While I don’t disagree that Microsoft has, under the leadership of it’s current CEO Staya Nadella, done a lot to prove that it now supports open source, something that the company was vehemently against in previous years, I feel it’s important to note that this change has only happened since Nadella took over as CEO 2014. This means that the company shift is directly as a result of the mindset of it’s CEO and that CEO will not be in place forever. The next leader of the company may not share Nadella’s love of open source.
Personally, I don’t like the fact that any large company is in control of the world’s largest open source, code hosting platform. Did Microsoft really have to acquire GitHub to help it grow and improve? I would have been more impressed if Nadella had simply become a member of the GitHub board of directors and helped raise capital in order to support and grow GitHub, instead of outright buying it. Interestingly, this is a path that Matt Mullenweg took with GitLab about a year ago.
GitLab has some cool features that GitHub doesn’t built right in, like Continuous Integration & Deployment on the free plan right up to Epics, Roadmaps and License Management on the top pricing tiers. They really seem to be building a seamless, integrated product for modern software developers and I want to support them in this cause.
I was already paying GitHub $7 a month to host my private repositories, so switching to GitLab’s $4 a month pricing plan will be a nice little saving each month. Not that I have to, as GitLab, like BitBucket, supports private repositories on the free tier.
And yes, I do know that if you were a GitLab user when a member of their staff managed to delete a database by accident you probably weren’t happy with them and moved on. I’m willing to give them a second chance.
This morning I made the official announcement that one of my passion projects, a Gracie Jiu Jitsu club I opened in 2014, would be closing down. I sent out an email to all members and parents informing them of the news, and then made that post public. I knew I would be letting some folks down and that I would find it hard to do so. What I didn’t expect was how it would affect me personally.
As I read the article which was the inspiration for the opening quote of that post, I found the emotions become too much for me to handle. As I wrote the post it happened again and each time I’ve read it I find my self feeling sad. It’s been a struggle to focus on work or anything else other than a few small tasks I’ll complete today.
The upside is that each time I see the quote, mostly commenting on the associated Facebook post, I am less sad about the choice I made. I am less sad because it was the right choice to make for me and my personal situation. Often the right choices are the hardest.
So why blog about it here? Well I’ve often in the past blogged about what’s happening in my personal life, mainly as a form of catharsis but also as a way to share the news with anyone who cares. I’m not someone who lives his life in the public space, but from the 1st of May I’ll no longer attach the title ‘Gracie Jiu Jitsu instructor’ and some might wonder why.
Mostly it’s about sharing the news on a platform I manage where I can put it out on social media for folks to find out and avoid any future ‘are you still running your club’ questions.
But I’ve also realised it has something to do with choices we make in life and in business, how this has really helped me understand that the right move at the wrong time, is the wrong move, and how this effects the path we follow when it comes to work and personal life.
If you’re sitting on the fence about a hard decision in your life, be it in your personal or business life, I speak from experience that to keep doing something well after your interest or passion for it has waned, just because you don’t want to let others down, is going to end up eating away at your soul. If you find yourself hating something, often it’s better to figure out how to remove yourself from that situation than to worry about how others may perceive your so-called ‘failure’.
Being able to get up every morning and know that whatever is ahead of you for that day is what you WANT to be doing, not what you HAVE to be doing, is worth all the money or fame in the world.
About a year ago (literally, I got the domain renewal notification two days ago) I came up with a podcast idea.
I had just finished reading “Milestones – The Story of WordPress” and I thought how awesome it would be to interview every single one of the core release leads, from Matt all the way up to Helen, and dive deep into the ins and outs of leading a WordPress release.
I started by reaching out to two of the release leads, Drew Jaynes and Helen Hou-Sandi. Helen because she had just lead the 4.7 release and Drew because I’ve actually met him in person. Both were keen but had other things going on at the time. So I put it on hold until they were available.
A few months later the idea resurfaced in my head, mostly because I had just helped Craig Hewitt launch the Seriously Simple Hosting extension for the Seriously Simple Podcasting plugin. I thought about all the WordPress developers I already know, both locally and internationally, who weren’t necessarily WordPress release leads but whose stories I would love to hear. So I decided to retool the podcast to focus on those folks I refer to as ‘WP Hackers’, people who use WordPress and write code with/for it every day.
I’ve since recorded my first four episodes (3 of which are publicly available on the WP Hacker Cast website) and I’ve had good responses so far. I’m slowly learning about the extra things needed for a podcast, like a subscription option as well as submission to things like iTunes. It’s all a great learning process.
I’m happy to anncounce that you can now subscribe to new podcast episodes via email, directly from the site. Use the ‘Subscribe to the WP Hacker Cast’ form in the sidebar to receive fresh podcast notifications in your inbox. The podcast is also now listed on iTunes and Stitcher, so you can consume the episodes using your favourite podcast player.
Please feel free to comment on the episodes, or contact me directly with feedback, comments and suggestions. I’m always looking for WP Hackers to talk to or interesting topics to discuss.
Based on some prompting by Hugh I applied as a speaker at PHPSouthAfrica this year. Apparently they still don’t know how little I actually know as they accepted my talk submission 😉
I’ll be talking just after afternoon tea about a topic that has been on my mind since 2010, that of the common perception of the freelancer, specifically when it comes to developers.
A freelancer or freelance worker is defined as a person who is self-employed and is not necessarily committed to a particular employer long-term. Since becoming a freelance developer in 2010 I’ve discovered that there is a stigma attached to the word. I don’t know if it is developer specific, but every time I meet or take on a new client the fact that I am ‘freelance’ tends to inspire visions of horror, usually of poor deliverables, bad client support and just a general lack of responsibility. In my talk, I would like to unpack this problem and provide some solutions to it.