End of Year Review 2017-18


My services are provided through a limited company, Studio Zeffa. The company’s financial year ends today, and so I thought I’d take a moment to review the company’s progress during this time.

Projects

Over the past year I’ve worked on the following projects:

  • Development and maintenance of Flow XO, a SaaS platform for building chatbots.
  • Design and development of Blooms for Bees, a smartphone app for tracking bumblebee movements in the UK.
  • Design and development of AMBER, a smartphone app for tracking and logging the condition of water barriers.
  • Development of Candide, a social gardening app for smartphones.
  • Development of Háblame Bebé, a smartphone app to encourage parents to speak to their baby, and develop bilingualism.
  • Teaching Ionic & React Native training courses.

Technology

I’ve had the pleasure to work with the following pieces of technology:

  • React & React Native
  • Angular
  • Ionic
  • Vue.js
  • Node.js
  • MongoDB

All of these technologies are JavaScript based, as this is the language which I am most familiar with.

Process & Tools

Most of my work is very agile in nature, and I’m used to requirements changing throughout the project. I’ve found it most helpful to embrace the change, rather than resist it, especially given that these changes are often for the better.

I’ve used a number of different project management and development tools to aid in this process, including:

  • Slack
  • Trello
  • Basecamp
  • GitHub
  • BitBucket
  • Phabricator
  • Skype

I’m a particular fan of Phabricator, which brings together code reviewing and feature/bug tracking into a single (open source) package. The code review feature operates as a true ‘review’, in contrast to using a tool such as GitHub, which is more aligned to an ‘audit’ workflow. The Phabricator guidebook has a very thorough piece on the benefits of the review-based workflow, which I recommend reading. This has led to high-quality codebases with fewer bugs, ultimately leading to happier end clients.

Working environment

My time has been split between home-working and on-site, at the client’s location. I enjoy both forms of working, but tend to favour home working, as I feel that I am more productive with less distractions than in a typical office environment.

I tend to work 4 days in a week, which I feel gives a good work-life balance. Although I’ve been lucky enough to have the potential of a full year of work, I took three months paternity leave in the summer. In hindsight this was a wonderful decision and I’m very glad I took the time to do so.

Training

A decent proportion of my time has been spent on creating training material and delivering it to students on a ‘learn how to code’ course. The 12-week fellowship is an intense process, and I teach in week 11, where the students are often exhausted! I feel like my week is a welcome diversion, as I teach React Native, whereas the rest of the course is focussed on web development. Building mobile apps can be very rewarding and by the end of the week many of the students mention how much fun it has been, which is lovely to hear.

My training course consists of a few sections. Each section begins with a set of slides, which are shown on the big screen. The students then work through challenges and then build an app, based on the material from the slides. The students use their own equipment, and we lean heavily on Expo to get things working without needing to spend time setting up the development machines. After teaching on 6 fellowships, it’s a format that has been honed, and I feel like it is working well.

Bottom Line

This financial year, the company invoiced £40,283. Given that I only worked for 3/4 of the year I feel this has been a decent performance.

Breaking this down by technology:

  • 48%: React Native
  • 34%: Ionic
  • 18%: Node.js, Angular.js & Vue.js

It’s interesting to see that working with React Native has accounted for almost half of the year’s revenue, especially given I have the least amount of experience with it. I think this demonstrates the fast-paced nature of the JavaScript industry at present, and the need to keep your skills up to date.

The split between development consultancy and training was as follows:

  • 86%: development
  • 14%: training

Although the training course only contributes a small amount to the bottom line, it is highly enjoyable work. I hope to build on my teaching skills over the next year or two and look to increase the amount of teaching I undertake.

Next Year

I am already booked in to continue teaching React Native on the coding fellowship course, and I hope that I can also continue to build apps with React or React Native in 2018/19.

I’d also like to continue working with Node.js. I find it a very good choice for building APIs and websites alike.

But most importantly, I hope to continue working with friendly, talented and down-to-earth people, as I have been lucky enough to work with this year. Long may that continue!

Interested in hiring me for your next project or training course? Please get in touch and I’d be happy to discuss.