Rick Hurst Web Developer in Bristol, UK

Menu

Category: Uncategorized

I joined the WordPress VIP team at Automattic!

After working mainly freelance for the past decade or so, I started 2020 with career development on my mind. Freelancing had been going pretty smoothly, but it didn’t feel like it was going anywhere, that I was specialising in being a “jack of all trades” and I couldn’t help but think there was more opportunity out there to develop and find a niche, working within a large organisation, where I could concentrate on developing my software engineering skills rather than running a business. Automattic had been on my radar for years, as an established champion of fully-distributed working and open-source software, but it was relatively recently that I had became aware of WordPress VIP, the enterprise-scale platform run by Automattic. In May 2020 I started full-time as a Developer at WordPress VIP!

As part of the Customer Success (EMEA) team, I divide my time between Code Reviews of customer code, where aim to help customers make their custom WordPress code efficient and secure, proactively and reactively helping customers with optimising code to remove bottlenecks in database queries and caching, investigating solving tricky long-term bugs and performance issues on customer’s sites, and getting involved in a whole load of different internal projects and initiatives. The Automattic creed encourages, amongst other things, continued learning and development, and there’s huge potential for branching out here.

Enterprise-scale WordPress? 

I’ll address this first – I know there will be skeptics out there (including amongst my own friends and ex-colleagues!), but with the right set-up, considerations and infrastructure, there is absolutely no reason why WordPress can’t be run at scale, and if anyone are experts in this, it’s the company that runs wordpress.com. The WordPress codebase is incredibly mature, backward compatible and extremely well tested, powering a significant percentage of all websites (I’ll refrain from quoting this percentage, as the number is both disputed and constantly growing!). WordPress VIP take that a step further by running a (private) cloud-based auto-scaling infrastructure and application support tailored specifically to the needs of high-traffic, enterprise-scale WordPress sites.

During the US elections in November 2020 I got to witness first-hand, amazing amounts of traffic on some of the sites running on VIP Go. Watching the Grafana charts for the back-end of some of these sites was almost exciting as the charts being shown on the sites themselves! Here’s a write-up about FiveThirtyEight – a WordPress site and liveblog hosted on WordPress VIP which was reliably serving WordPress at the rate of 132,000 requests per second during election night.

Whilst historically I haven’t always been a cheerleader for WordPress, it became my go-to CMS (yes, CMS, not just blogging software – that’s probably another blog post in itself!) over the last decade, despite dabbling with other open-source CMS and building a few of my own in the past. There’s a fair amount of anti-PHP sentiment amongst some of my peers, usually based on their perceptions of PHP in the early years, before it became the fully-fledged programming language it is today. I don’t share this skepticism, so have now gone all-in, on both PHP and WordPress! Even on dedicated infrastructure, running WordPress at scale (in terms of both traffic and amount of content), requires every aspect of the applications code to be considered, tuned and tweaked for performance and security. This is the stuff that I like doing, and i’m now honoured to be doing it amongst a team of vast experience in this field.

The hiring process at Automattic

It all starts by sending in the initial application (mine was by email, but currently it’s via greenhouse). In some way this is the first technical task – I did as much reading as possible about the organisation and advertised position before sending in my initial application to make sure it covered everything relevant I wanted to say about myself and my skills/ experience. Having made it past this stage, next-up was a technical challenge, in my case re-factoring a plugin to improve it’s performance and security, done in my own time. This was followed by a text-based interview in Slack, where we got into some in-depth technical and previous experience chat. I was then invited to start a trial, which is paid, and flexible regarding timescales, to allow me to fit in around on-going work. The trial lasted several weeks in my case, and consisted of more challenges simulating real-world scenarios – code reviews, debugging, advising customers etc. before I was invited for a chat (again via slack) with the WordPress VIP CEO. Finally I received my job offer letter and arranged a date in May to start on-boarding.

Fully distributed working

For context – I applied for this before the Covid-19 lockdown occurred in the UK, and at time of writing we are still in lockdown. Many people are now working remotely by necessity and hopefully a large proportion of those people will have the option to continue working remotely when lockdown is over. However, Automattic has always been a distributed company, and this was a major selling point for me. Remote-working is not for everyone, but it has always been a goal for me, which i’ve achieved up until now while working freelance. This will mostly happen from my shed-office, but in theory this could be from virtually any location in the world where I can get an internet connection, which a fantastic freedom. However, there are timezone considerations to stay in sync with my team and commitments and local employments laws/visas need to be considered for some locations.

WordPress VIP and Automattic are hiring! –  have a look at some of the currently open positions at both WordPress VIP and Automattic.

Upgrading to OSX Mavericks

I’m a late adopter, but I finally took the plunge and upgraded to OSX Mavericks tonight.

A few gotchas:-

  • I had to reconfigure Apache for PHP and virtualhost support
  • I had to re-add a symlink for the MySQL installation:-

sudo ln -s /usr/local/mysql-5.6.10-osx10.7-x86_64/ /usr/local/mysql

  • I also had to reconfigure ssl
  • I had to reinstall vagrant (because of lost path)

Catching up – Summer 2013

Rocky the T25 being towed

Ok after a productive start to the blog this year, i’ve failed to post since the start of the summer. I’m going to blame it mostly on my camper van, both literally spending time working on it and camping in it with my family, and also generally all my blogging effort has gone into my “camper van things” blog. I’ve had a fantastic summer, worked less than I probably should have, but now getting back to work (and saving up for some more summer adventures next year!).

So to catch up – i’m now freelancing more or less full-time back at Potato, working on some interesting stuff, notably cutting my teeth with AngularJs framework, which i’ve enjoyed so far. My initial observations are that it is significantly different to Backbone/Marionette that there is no confusion over what technology i’m using, it allows you to be productive very quickly and that it litters your markup with non-standard attributes. The latter may upset purists, but otherwise it gets the thumbs up from me. If you’re interested in learning AngularJs, a good place to start would be the tutorial.

Braindump May 2013

Not for the first time i’ve found myself stepping back from Twitter most of this month, and when I got drawn in, I got very frustrated with scatter-gun discussions – found myself trying to explain stuff I just can’t get over in a few characters, resulting in multiple replies especially when there are several people in the discussion, so even less room for content. As someone once said – having a discussion on twitter is like trying to have a conversation through a car window as you repeatedly fly past them.

One such discussion was about recommended Content Management Systems (CMS) – I was trying to explain what my holy grail would be – a dynamic CMS (as opposed to a static site generator such as Jekll), which allows editing of content as text or markdown files or via the web, where content can be synced and versioned using GIT, but also has a “throwaway” database for search e.g. it indexes content in the background but no need to keep restoring it when content is added to live but not dev/ vice versa. I struggled to get that out in a reasonable paragraph and i’m not really started yet!

Another area to deal with is comments – comments should really be counted as valuable content on a blog, so this content should also be stored as static files under version control (to allow it to be synced with other copies of the site, rather than the comments themselves needing versioning). The problem is that 90% of any comment system is anti-spam measures and moderation. Having spam comments committed to my GIT repository is downright dirty!

In other news, I’ve finished my current stint as a JavaScript contractor, and am going to be working full-time for the next month or so on the next phase of my company Olivewood Technology, which will be evolving this year.

Braindump April 2013

One of the oldest production web applications i’ve ever built is still happily running mission-critical operations for a small distribution company. I’ll be the first to admit that it is a bit of a mess of different “eras” of code – some of it is even still running classic ASP, which is being slowly (i.e. over a period of years) but surely replaced with PHP5 code. One thing i’m sure about though is that to rebuild the system entirely using something like Django would take months, if not years. So it is is destined to stay as PHP, and therefore as long as it is running and i’m involved with it, i’ll still be writing PHP. I’m fine with this, PHP runs half the internet, was written specifically for the internet, is easily learned and is improving as a language all the time. PHP is a fully Object Orientated language these days, but judging from a recent thread on the underscore mailing list, the perception of PHP remains as warped as ever in the eyes of “proper” programmers!

I’ve managed to sort a couple of things this year that have been missing from my life – firstly, i’ve been doing a bit of mobile working from my camper van office, and secondly i’ve joined a band, after a hiatus of ten years! My last band (Braxton Hicks) was a 9-piece Acid Jazz/ Funk/ Soul band, this new band (name still undecided) is a 3-piece surf-rock trio. We’re still getting a set together, but will be looking for gigs soon!

Bristol surf rock trio the savages

Braindump March 2013

There seems to be a trend for free services shutting down recently – following the recent-ish announcements that Posterous (a kind of blog service with strong emphasis on posting by email) is closing down, and this month Google announced they are closing Reader. It’s not surprising that a free service would shut down – they cost money to run, and as businesses start to look at ways of cutting costs, it makes sense to sacrifice free services.

I was surprised about Google Reader though – apparently the user base isn’t as big as I presumed it was, and they decided it was too niche to bother with. I’m also surprised they didn’t just roll it into google plus – surely little effort to gain thousands of much needed G+ users? Meanwhile i’ve moved over to feedly.

Currently most of my stuff is self-hosted, with the exception of comments hosted by Disqus. I really don’t want the hassle of running my own comment system, due to spam, but i’m starting to think about moving to a self-hosted system, maybe something like a self-hosted version of Disqus, that I can easily drop into different blogs? Whatever I use, it needs to have all the usual anti-spam stuff – comment spam is the bane of any aspiring blog software developers life!

I also paid up for a years membership to app.net – same as twitter, I am @rickhurst. It hasn’t become part of my daily social/workflow yet, as not enough of my regular twitter contacts are using it, but I wanted to put my money where my mouth is when I say i’d rather pay for a service than rely on annoying advertising.

I gave a talk on Backbone Marionette at the Southville JS meetup. It was a practical code based demo, I think it went OK. Either way it was a good turnout and nice to have it hosted in a pub back room, so we could continue chatting at the bar afterwards. The code of the (fairly pointless) demo app I put together in blue peter style is online here.

I also gave an ignite talk on remote working at the Anywhere Working Bristol event. That seemed to go down well and it was nice talking about non code-related stuff for once!

I was also pleased when a colleague pointed me to Poweramp for Android – I had been complaining about how most Android music players don’t support gapless playback, which is a real party-pooper when it comes to mix albums such as my favourite mix album of all time Journeys by dj 70 minutes of madness.

I’ve now finished a full-time freelance Javascript contract at ISM Fantasy Games, but will be continuing with them on a 3 day week basis, freeing up some time for my new business venture(s). More about that when the plans are more refined!

Learning to touch type properly

So, one of my goals for this year was to learn to touch type. I pretty much ignored this goal until last week, when I opened up my copy of Mavis Beacon Typing Tutor. Right now I can type with the correct fingering, without looking, but it is painfully slow – i’m still waiting for the magic moment where I don’t have to pre-calculate every key, and remember which finger to press it with! This is the first blog post I have ever written using the correct technique and it has taken ages, but am determined to stick with it until I am fluent, so expect lots of short blog posts with minimal punctuation until I have this thing nailed!

Notes on deplying django with virtualenv mod_wsgi and apache on ubuntu

As i’ve exclusively been using app engine in my day job at Potato, I haven’t yet had to deal with deploying a django site on my own Ubuntu server yet. I knew that I would be using virtualenv, apache and mod_wsgi, but hadn’t yet worked out how this is done.

Rather than repeating it all here – I followed most of the steps in this blog post.

However, there were a few points where things didn’t go to plan:-

First of all I got the ubiquitous mysql_config not found error when attempting to install:-


pip install mysql-python


So, apparently the solution is to install libmysqlclient-dev:-


sudo apt-get install libmysqlclient-dev


However, if you get this error:-


error: command 'gcc' failed with exit status 1


You need to install python-dev:-


sudo apt-get install python-dev

Freelance vs Permanent a few years on

I love having this blog to remind me where I was at and what I was thinking a few years back. Just under four years ago I announced I was going freelance, and I checked in again about a month later, and then a year later, but haven’t spoken much about it on this blog since. It’s been an interesting ride to say the least so I thought it might be time to write down a few words about the highs and lows.

To put you firmly in the picture of the freelance web developer mindset i’m writing this while I should be working – this causes me anxiety for two reasons: firstly, a task I am supposed to be working on, already overdue, will become more overdue. Secondly, any time spent on this blog post is time spent not earning money. Another way of looking at it is that while i’m blogging i’m working on marketing, so maybe that negates the second point somewhat, but not the first.

Highs

  • The satisfaction of working for yourself – I’ve got the skills to pay the bills! Whatever doubts and problems i’ve had along the way, i’m making a living using skills i’ve built up over the years, and I can’t dispute the sense of satisfaction you get from that.
  • Flexibility and Freedom – I enjoy not having to ask permission if I need to leave early or start late, especially as I have a child.
  • The Money – Freelance work has the potential to pay well.
  • Work / Life Balance – when I can make it work

Lows

  • The loneliness of working by yourself – Not so much in a social sense, but more the responsibility of playing every role in a one-man band – being the account handler, the book keeper, new business development manager, customer services, and not to mention occasionally writing some code.
  • Flexibility and Freedom – sure I don’t have to ask permission if I want to start early, leave late or take some time off, but websites don’t build themselves and when work stacks up, (which it does constantly) I end up working very long hours.
  • The Money – Not always as lucrative as you’d imagine – I’ll expand on this.
  • Work / Life balance – when it goes wrong

The things I miss about permanent

Some of these points will vary depending on the employer, but one of the things I miss is the investment and support that an employer can bring – paying for me to attend conferences and time to learn new skills, the camaraderie with co-workers and the skills you pick up from co-workers. Then there’s the regular pay-cheque, which brings me to..

Money

The other big consideration with freelance is the regularity of pay – you might be set to receive a big payment, but what if it doesn’t turn up for six months? Another consideration is how much you expect to earn. People are always shy to talk about what they earn, and that includes me. Whenever a client asks me to quote day rates I can picture the cogs turning in their minds as they come up with an ad-hoc calculation of what they think I am earning. The truth is that it doesn’t always work out like you would imagine.

Much of the time I put in way more time than was originally quoted for, and natural gaps between productive work, meetings, holiday, illness, pitching for projects, unpaid maintenance, support, bookkeeping, procrastination etc. all conspire to even out what could be lucrative earnings into very average earnings. I never really know what i’m earning until after the year has passed and I do the calculations for tax returns. The carrot on the stick for a freelancer is always those potential earnings though – whereas with a permanent job your salary is capped (but guaranteed), there is always potential to earn more with freelance. However, my goal with freelance was always to earn a modest salary but take more time off. I’m still working on the second bit.

So would I ever consider a permanent role?

I’ve thought about this and have come to the conclusion that i’m probably unemployable. That last sentence isn’t going to sound too good on a CV is it! The reason I say this is that what I strive for in my freelance life I would also be looking for in a permanent role, and when I summarise what i’m looking for it sounds like a list of demands from a petulant celebrity:-

  • Flexibility/ Freedom with work hours/ days/ location
  • Good Salary – at least on par with a reasonable freelance year, when holiday etc. accounted for.
  • Some profit related incentive to keep working when the going gets tough (shares/ profit share/ bonus)
  • Training/ Conference budget

I think one thing that would clinch it though is the opportunity to work somewhere exciting, maybe abroad in the future – (mountain view sounds fun!), or working as part of a specialist team that would allow me to take things to the next level professionally.

The other thing that would possibly convince me to go permanent would be the opportunity to get my foot in the door of a company or organisation that would lead me back to my first choice of career in environmental science/ renewable energy – that’s another blog post though!

archived comments

Subscription business model! – it’s the way forward (and you get time off!).

http://www.ldexterldesign.co.uk/2010/07/part-1-how-to-freelance-successfully/

Best,

ldexterldesign 2011-03-04 04:34:22