Job vacancy: web developer

Spanner lying on a laptop keyboard

The University is looking for a web developer to join the web team.

  • Job reference: Web Developer SB1005R1
  • Salary £25,013 – £29,837 per annum (grade 5)
  • Required skills: PHP, JavaScript/jQuery, HTML, CSS, SQL, Ajax
  • Fixed term: 3 years
  • Start: as soon as possible
  • Closing date for applications: Friday 25 April 2014

The main purpose of the role will be in helping maintain and support web services, notably where changes need to be made to coding and other infrastructure elements, so a solid and demonstrable knowledge of PHP, MySQL, JavaScript, HTML and CSS is required. Experience of WordPress (including WordPress Multi Site) will also be of an advantage.

Our enterprise web content management system is the commercial, Java-based TerminalFour Site Manager (although we’ve never had to dabble with any Java) running on an Oracle database; and we’re working a lot with WordPress (and MySQL) too these days (both stand-alone installations and WordPress Multi Site). Pre-knowledge of either is not required as training will be offered.

Regarding existing technologies, we’re currently using an adapted version of the Blueprint CSS framework and a patchwork of jQuery plugins, but we have plans to move to the Bootstrap framework, the Sass CSS pre-processor and a host of other time-saving goodies. We currently don’t use any particular PHP framework, although PHPMaker has been used to help generate a few applications; that’s not to say that we’re not option to the adoption of a PHP framework. We often use Agile methodologies in our project work and use Trello to keep ourselves organised.

It’s not all about hardcore coding, however. An important element of the job will be to deal with website users and content creators in a support and perhaps even training role. The web team offers first, second and third line support, and you will be expected to get involved there too.

The web team is currently made up of four members (web manager, web architect, web editor and web apprentice) with a fifth member on secondment to Corporate Communications. Speaking as someone who is obviously somewhat biased, the web team is a good, fun and supportive place to work. Do you fancy joining us?

More details can be found on the University’s job vacancy website — the job reference code is SB1005R1.

Zeal and Dash—Offline documentation browsers

Zeal for Linux and Windows

Zeal for Linux and Windows

Yesterday I came across a really useful application for web development which has already sped up my workflow when needing to look for documentation: Zeal.

Zeal is available for Linux and Windows only, because it’s based on a similar application for Mac OS X only called Dash.

On my personal blog, I’ve written about how I’m using Zeal, and how I’ve configured it to be integrated into Sublime Text 3. It has been a real time-saver already: thoroughly recommended.

New website for the Andrew Marvell Society

Screenshot of Andrew Marvell Society website

While the majority of our work in the web team involves developing and maintaining the main University website, using our enterprise content management system TERMINALFOUR Site Manager we do occasionally get asked to develop sites for other areas of the University such as schools and research centres. It is one such request that I’ve been working on for the last couple of months.

Sometime during the last quarter of 2012 we were approached by Dr Matthew Augustine of the School of English to migrate the websites of the Andrew Marvell Society from their current location, hosted by St Edward’s University in Austin, Texas to a new, custom-built site hosted here in St Andrews.

WordPress

During initial discussions about both features and resources we decided to use our new installation of WordPress multisite. This is something that we’ve been keen to use for many years; a simple lack of resource to support it was, I think, the main hurdle to getting it installed.

While I’ve done quite a lot of work with WordPress as a standalone application, and as part of the hosted WordPress.com service this is the first time that I’ve had to develop for a multisite-enabled installation, and actually the first serious work I’ve done with WordPress for about five years (having been developing with it since version 0.7).

Theme development

Development, I am pleased to report, has been fairly straight forward. We decided to start with a pre-developed, responsive theme (GoodSpace by Goodlayers) and customise it to our requirements.

I selected this particular theme for a number of reasons:

  • Similar design
    It was very similar to the design that I’d loosely sketched out on paper with Dr Augustine. (He had wanted something that was comparable to the look and feel and tone of the Milton Society of American website; Marvell himself was a friend of John Milton.)
     
  • Page builder and shortcodes
    I was very impressed with the theme’s built-in page builder and shortcodes, which seemed to offer a simple way of creating complex page layouts. After all, once I hand it over I’m not going to be the person who is maintaining the site.
  • Speed
    This approach got us up-and-running much quicker than if I had needed to develop a new theme from scratch, even basing it on one of the default WordPress themes.

Having used premium themes before I was pleasantly surprised by the quality of the documentation shipped with this theme. The theme also came with an example site XML file which I imported and then spent a day exploring to understand how the various built in plugins and features worked.

Agile development

I’m using an Agile-style iterative approach to development, with one week iterations (or sprints), regular meetings and demonstrations with Dr Augustine, and using Trello to plan and manage iterations. I’ve really enjoyed this approach.

Trello board showing columns of index cards

Planned sprints for the next three weeks.

One of the principles of the Agile manifesto is “responding to change over following a plan”. I had scoped out the project for the first four sprints, planning to implement a new feature at the end of each sprint (join up form, migrate the newsletter from another WordPress site, implement a bbPress forum, etc.).

I had planned to implement the join up form this week, but I got an email from Dr Augustine on Monday morning saying “my next priority is to get the old newsletter rolled over to the new site”.

Great! So, that’s my next priority now too. I swapped the order of two columns in Trello, renamed them sprints 2 and 3 accordingly and got to work researching custom post types.

That’s the story so far.

We launched the site last Tuesday, three days early, and as you may be able to see from the fuzzy image above we’ve still got things planned out for the next few weeks. In good Agile style, we wanted to get a working site up and running and then incrementally add to it. Which has also been a really satisfying and motivating way to work.

This is fun… I’m going back to work now.

Footnote

By the way, if you’re wondering who Andrew Marvell is, he was an English metaphysical poet and politician who lived between 1621 and 1678. You can read more about the life and work of Andrew Marvell on Wikipedia.

Also, this has been unexpectedly one of the hardest projects I’ve worked on in terms of spelling the person’s name right! His name is Andrew Marvell. I work in St Andrews where we have a halls of residence called Andrew Melville Hall. How many times have I written Andrews Melville?

Essential web developer skills

Lazy man sitting on a sofa

Lazy Guy photo by David Clark (iStockphoto)

In the next few months we’re going to be gearing up to fill two posts (one replacement and one new post) to join the web team: a developer and an apprentice. So I’ve been thinking about a couple of things:

  1. What skills we are looking for in new team members?
  2. What skills do we already have that we’re maybe not using to their best potential within the team, or which have become a little sloppy and undisciplined that we need to work on.

I liked this comment in an article by Dan Frost on .net; it is point 6:

That search for ‘essential web developer skills’ brings a nice answer from Michael Greer (The Onion’s CTO) on Quora:

Laziness:
Refuses to do anything twice: writes a script or algo[rithim] for it.
Cowardice:
Thinks to test, worries over load and code impact.
Recklessness:
Tries new stuff constantly, launches same-day ideas.
Cowardice is a nice way of phrasing ‘attention to detail’.

“10 things web developers must know to become truly amazing” on .net

I remember a conversation years ago with an architect who said that he valued lazy people, because they showed him how to do things with the least amount of effort. It was from him that I also learned about cowpaths (“look where the paths are already being formed by behaviour and then formalize them”).

I like how Greer put it: refuse to do anything twice. Don’t repeat yourself; the DRY principle. Use frameworks, save snippets of code that you use often (my coding editor allows me to collect code snippets in an in-built library), don’t reinvent the wheel again and again.