Donate using PayPal

CycleStreets blog

News from CycleStreets

Making data more usable by campaigners: our Outlandish Fellowship

August 24th, 2016

We’re really pleased to announce that we’ve been selected for the Outlandish Fellowship to help local cycle campaigners by expanding our collisions data pages into a broader resource covering more types of data (e.g. traffic counts, pollution) and add lots of new ways to access it.

Helping campaigners campaign

Getting more people cycling brings a more sustainable and efficient transport system, improved public health, and greater access to employment. However, in the UK, cities have failed to make space for cycling on our streets, preventing mass uptake.

We know from our own activity as campaigners in Cambridge, that making a good evidence­-base for reallocating roadspace or challenging poor developments involves significant work. For instance, developers often claim that their route has “good connections to the local cycle network” whereas in practice we know that this often means a shared-use path that is hard to access.

We lack the data to make a strong case that, for instance, a combination of a high collision rate, congestion, pollution in an area means that a developer or a Local Authority needs to improve their plans. Of course there remains the need for making arguments based on broader policy, such as that cycling should be prioritised as a positive and healthy form of transport, but hard data for specific cases helps backs this up.

What kind of data is out there?

There’s lots out there that could be useful for cycle campaigning. Things like collision data (which we’ve already done a bit of work on), traffic count data, travel time data, census travel data, on-street counts, etc. Imagine if, instead of having to search these out and find someone technical to process it, you could simply point and click, with national coverage?


This data is becoming available but it’s very scattered, meaning that correlations are hard to make. It’s often in raw formats that need significant work before it can be understood, or hidden in Local Authority websites that are not sufficiently flexible or easy for non-specialists to use. Often it’s not arranged for the kinds of tasks that cycle campaigners specifically need.

We’re aiming over time to build up a multi­functional resource to help build this case, enabling users to a build and link to an interactive display of the relevant data (involving multiple layers, clickable points, reports, summary info) for a particular location or route, that they can use in their advocacy and liaison work.

Mark, better known as ‘Ranty Highwayman’ in cycle planning circles, said:

“The project looks really exciting. From my point of view, the ability to generate information from one place is a great idea as at the moment, it’s a really labour-intensive process, this could create maps for reports, committee papers etc.”

Our plan is that it would be available for embedding in local campaign websites, exporting to reports, used in apps, and so on.

Some examples

Here are just a few sample stories that we’ve come across in our own work as cycle campaigners, some from Cambridge:

  • Justification of removal of one-way street restrictions for cycling. In previous decades, traffic planning favoured one-way streets as a way to regularise traffic flows and avoid rat-running. However, the side-effect is to stop easy cycling. If we could compare collision data easily in a particular location, we could show how streets that have been made two-way for cycling haven’t caused a safety hazard.
  • Worsened likelihood of collisions in areas with an existing poor record. A supermarket developer wanted to open a local store under a just-in-time delivery regime in a high street with a narrow carriageway that has heavy traffic and high pedestrian and cycle flows. A good evidence base, combining flow level data, Origin/Destination data, collisions and traffic data delay data, would have enabled us to argue that the developer will need to amend their delivery plans to be more sympathetic to the local circumstances.
  • Higher levels of pollution in areas with significant problems already. Areas with many schools particularly need to avoid pollution. A developer proposes a new estate in such an area but fails to provide good connections into the site for walking and cycling. A better evidence base, combining socio-economic data, school travel data, pollution and cycling levels would help us convince the Local Authority that the developer needs to provide this connectivity.

What changes can people expect?

We’ve started from our collision data viewer as the base, and to this we’re adding:

  • Completely reworking the search facility so that it’s actually useful – currently it’s stuck in a prototyped state, with lots of non-useful fields. This will mean that common scenarios like “Collisions between a date range in area X” are possible.
  • Adding typical scenarios as new front-end ways to access it. Currently, it’s very map-based, whereas we want to enable common use-cases much more easily.
  • Making everything Local Authority -aware. Currently it’s all manual boundaries, but we’d like users to be able to do things like compare casualty rates (and other data – see below) between areas.
  • Upgrading the interface. We’ve now got some nice new icons for a start :)
  • Adding a better way to import the data. Currently, updating it each year is not as easy as we’d like, and new data types (see below) need to be supported.
  • Adding generalised origin-destination data for areas, using analysis from our own journey planner
  • Adding traffic count data, from the DfT
  • More data (in future – after the current Fellowship work)
  • Adding the ability to switch between multiple layers of data
  • Making all the above available through a more generalised Advocacy data API. In fact, this will be the system powering all the above!
  • Adding the ability to embed custom views of the data in other sites

The code will be open source too :)

We’ll be giving updates via this blog over the coming 6 weeks – stay tuned!


Blackfriars Bridge, scene of many unfortunate collisions over many years. With the new data platform, it will be possible to make easy comparisons about how the introduction of the new Dutch-standard cycle infrastructure just built reduces these collisions.


OutlandishOutlandish is a web agency based in Finsbury Park, down the train from us in Cambridge. The members of Outlandish want to unleash technology’s potential to make the world a fairer, better place. It’s a worker co-operative and invests all surpluses into projects that help achieve the members’ goals. They build digital applications and websites for companies, charities and universities that make their lives easier and help them to discover and communicate new insights from their data.

Outlandish has made available fellowships for people who are using the Internet and digital technologies to address social issues. The fellowships include funding and other forms of support to allow participants to start their own projects. The aim of the fellowship is to support work that matches the mission of Outlandish, and to expand the network of people that they actively collaborate with.

We’re really proud to be in the first set of Fellows, and it’s going to be great to be working with a co-op!

Photos from the launch of the Outlandish Fellowhip

Our project team

Our main developer on this project is Martin, doing most of the work, as the Outlandish Fellow.

He’s being helped by Simon (CycleStreets’ other principal developer), when he can be wrestled away from interesting routing quality challenges like turn delays that we’ve been working on recently.

We’ve also set up a Stakeholder board, to ensure that the data work we’re doing is genuinely useful. This is:

Thanks to our great hosts, Mythic Beasts

July 1st, 2016

CycleStreets is supported by a whole range of people, whether in terms of mapping, coding, feedback handling, photo curation, awareness-raising, donations, grants (as reported via this blog), and more.

One area is the great support that our hosting company, Mythic Beasts, provides.

Over many years, they’ve given us various bits of freebie hosting, and it’s also been great to be able to get some friendly advice once in a while on hardware scaling, as traffic to our systems grows.

For instance, since the early days of our project, they’ve supplied our development server which we use for various infrastructure requirements like monitoring and some source control. They’ve supported some of the VM hosting requirements of our Cyclescape project. Another example has been a large VM with masses of RAM for trying particularly intensive processes. They’ve also been flexible as we’ve upgraded machines and VMs over the years.

Running a journey planner covering three routing modes (actually it’s more than three, because of multiple speeds) over a large geographical area (we’re not just UK these days, lots of other areas are enabled, even if they’ve not been formally ‘launched’ as such!), for both our own website/app as well as third-party mobile apps, with proper redundancy, means that hosting is a fairly significant cost for us.

Hosting in particular is our main constraint on expansion towards worldwide coverage. Routing requires lots of CPU, large amounts of RAM (when you plan a route it barely touches the disk, for speed), and plenty of disk space (because OSM data is growing all the time). Some of our hosting uses fantastic Mac Mini hosting, which gives all this at low cost – we believe it works out significantly cheaper than ‘cloud’ hosting. So all the help we can get is welcome.

Mythic Beasts are a great company who have grown up in our area, Cambridge, and we sometimes run into Pete from Mythic Beasts while working in a favourite local café :)

Always nice to meet your hosting company in the local café :)

Though we do our own sysadmining, Mythic have always provided us with peace of mind, through excellent and responsive support, in case of any problems that might arise.

Thanks folks!

PS We welcome donations in support of the project, whether financial or in kind (e.g. more hosting is always needed!). Although we don’t accept advertising or paid links on our sites, it is our policy to acknowledge significant donations from companies or organisations through this blog. Do get in touch!

CycleHack Cambridge 2016

April 10th, 2016

CycleHack is a 48-hour event aiming to make cities cycle-friendly through reducing the barriers to cycling and prototyping new ideas to improve the cycling experience and encourage more and safer cycling. More than 40 other cities around the world have signed up to host CycleHack events in their communities over the weekend of 24 to 25 June, 2016.


Cambridge, home of CycleStreets, will be joining cities around the world for a weekend-long CycleHack event, which will be held at Anglia Ruskin University and other locations where specialist equipment may be required. Participants will be encouraged to test their ideas and prototypes around town during the event.

CycleHack was launched in 2014 in Glasgow and has since grown to a global event. In 2015 CycleHack had more than 600 participants from over 25 countries across five continents. 67% of participants were inspired to cycle more. In 2016 the event is set to be even bigger with more than 40 cities already registered.

Cyclehack CambridgeCycleHack Cambridge is hoping to attract a whole range of people from developers, makers and data scientists to non-technical artists, designers and those who are interested in cycling and have some great ideas. We also want to include representation from all corners of our diverse cycling community and want to see lots of students and young people taking part. This event will bring together the key elements of our Cambridge culture: cycling, innovation and technology.

The event encourages participants to prototype and test their ideas during the weekend to see how they will work in their intended context. Solutions can fall into one of the five CycleHack categories; digital, physical, policy, local plan, event/campaign. Hacks will be loaded to the online open source catalogue to show how the ideas can be replicated. Prizes will be awarded to the best hacks.

CycleStreets is one of the partners organising the event. We’ll be on hand to help out and give advice to people considering doing a digital hack. Perhaps you’ve never used an API (a data interface – like the CycleStreets API for instance) before or don’t know what it is? We can help you get started.

Cambridge Cycling Campaign is the main organiser of the event. Other partners include the Smart Cambridge Programme (Cambridge County Council) and CoDE Research Institute at Anglia Ruskin University.

There are more details on the Facebook event page about the event, and you can register online.

Urban Cycle Parking website goes live across London

March 21st, 2016

A new website, Urban Cycle Parking, built by CycleStreets, has been launched by London Cycling Campaign and Transport for London, aiming to outline where existing bike parking facilities are available in and around the capital and invites people to highlight existing facilities as well as outlining where more is needed.

The site builds on the crowdsourcing components of our data API, which had various enhancements made to enable auditing facilities.

Image credit: Primary Image

London Cycling Campaign’s Chief Executive Ashok Sinha commented:

“Substantially more high quality cycle parking at stations and on streets is vital to sustain the welcome growth in cycle use.

“The launch of this interactive Urban Cycle Parking website is a great opportunity for London cyclists to play an active role in improving cycling provision and to suggest the right places to install cycle stands.”

Cyclists just need to click on the map, or take a photo (which will auto-locate the image on a modern phone), and add a few details, such as the number of stands which would be useful. After agreeing to the open data license, the location is added, so that TfL can consider the suggestions.

Urban Cycle Parking

The site has been in public beta for several boroughs. Various improvements have been made to the site during this period to enable a wider rollout.

The visual design of the site, which is mobile-friendly, was created by Mike from Primary Image, who was a pleasure to work with. We then worked with this design to implement the functionality.

The Urban Cycle Parking site replaces the previous Cycle Parking 4 London site that we created several years ago for LCC.

Students: Get paid to write code for CycleStreets/OpenStreetMap this summer with GSOC 2016

March 19th, 2016

GSOC 2016Each year, Google runs a summer programme called Google Summer of Code (GSOC), where students get involved in coding for open source projects like ours and are paid for their time.

We (CycleStreets) have created a project ideas list, which would be undertaken under the umbrella of the OpenStreetMap organisation, and are willing to mentor a student or students on these.

By way of background, CycleStreets is a social enterprise based in Cambridge, UK. We run the cycle journey planner website at, provide a leading bicycle routing API data interface used by a range of third-party apps and websites, and run a number of projects in the field of cycling advocacy. Many of our projects are open source.

openstreetmaplogoWe use open data from OpenStreetMap (sometimes referred to as a kind of ‘wikipedia for maps’). OSM is a community/ecosystem doing a lot of leading-edge work in the area of open geo data, and there are many fields within it that could interest computer science students, engineering students, and others.

As well as our own project list, there are are other project ideas from elsewhere within the OpenStreetMap community that we’d also strongly encourage students to consider too.

Students must apply via the GSOC website by Friday 25th March, 7pm GMT, but it’s very important to work via the process given in the OpenStreetMap GSOC 2016 page.

Please note that GSOC is a highly competitive process, and only those students who come up with the best proposals that will assist OpenStreetMap are likely to be accepted.

We’d be very happy to meet in central Cambridge (UK) (or via Skype if you’re not based here) to discuss potential projects, and/or to provide some background to OpenStreetMap, whether you are thinking about one of our (CycleStreets) projects or another project listed on the OSM project ideas page. Please do get in touch with us in the first instance.

TransportHack @ Smarter Travel LIVE!

March 14th, 2016

Matt Whittle writes:

This weekend we attended the Smarter Travel Live hack weekend. The aim of the hack event was to produce an output to support one of five challenges set by various organisations. We chose to tackle the Carplus challenge which was to try and find a way to reduce the use of cars as the primary transport means around the Lake District.

To begin the challenge we brainstormed several possible ways in which provisions could be made to facilitate the ease of switching peoples mode of transport, these included:

  • Increasing cycling space on trains and buses
  • Car sharing schemes
  • Bike hire and sharing scheme

It soon became apparent that as a group we felt that a hire and sharing scheme would work best for the area, therefore we set off to try and gather evidence of how popular the scheme could potentially be as well as providing evidence to where the scheme would best be suited.

We were provided with a travel survey which listed the origins and destinations of c. 8,000 visitors to the park, this listed the mode of transport as well as the number of people making the journey. From this data we were able to visualize the flows of people to the park as shown below.


From this data we then began to summarize what the most popular locations were in the region. For this we set out a criteria that popular locations had to attract more than 100 visitors from the data. The results can be seen below.


This then lead to the question, where do current cyclists cycle in the Lake district? By using the flow data and some clever use of CycleStreets API we were then able to allocate all of the current cycle flows to the route network.

The approach, using origin-destination data routed to the on and off road travel network using, is similar to that used in the Propensity to Cycle Tool (PCT). An early draft of a report describing the methods in more detail is available.


The analysis showed the the current popular cycle network had one main entry point to the lake the district, the thick red line flowing from Milnthorpe, through Kendal and out to Windermere. Beyond the corridor the data supported evidence that flows up to Ambleside, Grasmere, Coniston and Hawkshead were also popular.

The next question to answer we decided to answer involved trying to discover which car journeys could potentially be replaced by cycle journeys. Using the flow data and R code we managed to find all of the car journeys in the data set that were under 10km. Once again, using the CycleStreets API these were allocated to the road network and then visualized.


This visualisation supports the idea developed in from the cycling data that cycling could be popular in the north Windermere area. A 10km journey would take an estimated 30 mins when travelling at a reasonable cycling speed of 12mph (19kmh).

These two visualizations therefore supported out idea that cycling could be a popular activity in the north Windermere/ Kendal corridor area. However what we had overseen was where should this system be implemented e.g. hire locations and how should it be carried out e.g. new infrastructure or rework existing infrastructure. Some research into cycle hire in the Lake District was carried out and we discovered that there was already a fairly large economy in the region, however the system does not support A to B trips, it is primarily for users to hire bikes from a location and drop off at the same location. Plans have already been suggested for cycle hire in Kendal. What we therefore propose is that a cycle hire system could work by working with the current bicycle hire network (see below, these are current e-bike cycle hire locations from electric bicycle network) to support A to B transportation by bicycle.


Using all of this analysis we then created a ‘core’ cycle network based on the popular destinations, current cycling, car journeys less than 10km and the existing hire locations. This is where we suggest cycling infrastructure should be placed initially. Once this is built extentsions could be built to Grasmere, Coniston, Troutbeck and Grizedale in order to link up to other popular locations.


Our hack has therefore provided evidence to support a cycle hire network in the Lake District. The analysis has suggested that cycle journeys could replace a large amount of car journeys in the region, therefore reducing congestion. The initial brief stated that people wanted to get out of their cars when they were visiting the Lake District, this has provided a potential solution to that need.

We put all of our data, code and visualisations on Github.

You can view the map of all the spatial data created for the project.

Thanks to Landor and Transport API for organising such a great event.

Cycle North Staffs app created by CycleStreets

February 6th, 2016

We’ve created a new cycling app for Stoke-on-Trent City Council.

The Cycle North Staffs app, developed by CycleStreets, is here to help you to get the most out of your cycling. The app is packed with routes across Stoke-on-Trent and Newcastle-under-Lyme to get you to school, to work, or for leisure. It’s suitable for all ages and abilities.

The app is available for both iPhone and Android, and is available free of charge:


The app has a wide range of features:

  • Plan cycle routes from A-B
  • Gives a choice of routes: fastest, quietest, and balanced option
  • Browse leisure routes – fancy a pleasant hour’s ride somewhere nice?
  • Browse points of interest, such as bike shops or tourist attractions
  • Shows time, distance and quietness level
  • Shows how many calories you would use
  • Avoids hills automatically where possible, and shows the elevation profile
  • Calculates CO2 saving compared to a car
  • Browse photos and videos of cycle facilities in the area
  • Save your favourite places for easy access

Leisure routes   Local area information

Points of interest   Photos and videos of the area

The app makes use of our open-source iOS and Android codebases, helping lower costs to the Council and providing a well-tested codebase.

We are able to create custom cycle apps and embedded cycle journey planner websites for Local Authorities, companies and others. Do get in touch if this might be of interest to your organisation.

The apps have been possible thanks to the great work of our developers Neil and Jez.

Cycle commuting analysis of Bristol

December 19th, 2015

We love it when our API comes in useful for academic purposes. This is a guest post by Richard Thomas.

Average time to cycle commute

Bristol: Typical cycle commute time

For my MSc dissertation, I investigated determinants of the proportion of people who choose to cycle for their daily commute. Specifically, I wanted to see whether an analysis of realistic cycling routes of a representatively large sample of a city’s population could give improved predictors over existing models.

From 2011 Census data, I extracted commuting origin/destination data for everyone in the Bristol built-up area in its most detailed form of aggregation (typically accurate to within 500m). I wanted to generate plausible cycling routes for these commutes, then for each of these routes to evaluate metrics (distance, hills, cycle paths, traffic). As census data is available giving the proportion of commuters living in each small area who cycle, multi-variate correlation could then be used to estimate the influence of these routing metrics, together with other known influential population measures taken from the census.

So how best to perform this cycle routing and evaluate suitable metrics? On both these counts the CycleStreets Journey Planner API proved invaluable (and made my MSc dissertation a feasible proposition!) I had considered using an existing open source routing engine (such as pgRouting or Graphhopper) operating on an extract of the OpenStreetMap database as this would allow me to directly query tags on each node of a route. However the complexity in interpreting OpenStreetMap cycle-related tags is quite daunting (as documented here on

Because the API returned not just the route, but details of routed distance, duration, “quietness”, estimated calories required and spot heights, useful metrics could be derived quickly from the JSON data using just Python scripts. It would have been good to more directly quantify dedicated cycle infrastructure along routes: although the “quietness” measure included this, it also included road traffic expectations. Given more time, this could have been done by using the actual route coordinates to interrogate the OpenStreetMap or CycleStreets databases, though this was complicated by API-returned points being only in latitude/longitude format rather than database node/segment numbers. In order to limit the amount of data to be processed (and the load on the CycleStreets API server, routing was limited to the 4 most popular routes from each area, although this still required nearly 16,000 routes to be generated and analyzed!

Summed routes (detail)

Summed cycle commute routes (Overview)

The most notable results of these new routing-based metrics (i.e. beyond the key predictor of crow-fly distance) were as follows:

  • Directness (Crow-fly / Routed Distance): strong indication that cycling was less popular if a reasonable (“balanced”) cycling route was particularly circuitous.
  • Max Height Increase (Maximum of sum of all hill climbs for outward or return direction): strong indication (as might be expected) that hills were a strong detractor. This metric was only developed after the MSc was completed; interestingly, in the MSc analysis, the related metric of Effort Ratio (calories / distance) was not a statistically significant indicator.
  • Traffic Exposure (Inverse of “Quietness”): Although this metric visually gives a good indication of cycling routes along busy roads and/or away from dedicated cycle infrastructure it was not a statistically significant predictor of cycling. Although not conclusive, this supports other research showing that cyclists are more sensitive to time taken than to pleasantness or safety when it concerns their daily commute (priorities may be different for a leisure ride).

Summed routes (street level detail)

Street level detail (OpenCycleMap)


More details of the analysis are available in the full dissertation (or short synopsis). Detailed 2011 census origin/destination data (table WF02 for OA/WZ) was only made available after the end of my MSc (and then only to academics for specific projects). Thus for the MSc, synthetic data was generated based on (publicly available) census data. However, a later reworking of the full analysis using the new WF02 census data gave very similar results showing that lack of public access to detailed statistics need not be a serious impediment to analysis.

Beyond the key MSc analysis, an interesting spin-off of all the cycle routing was the development of maps (see right and below) that sums the 4 most popular commute routes from the centroid of each census Output Area, giving a good indication of the number of cyclists along individual streets if all these people were to commute by bicycle.

Thanks again to CycleStreets for making the API available to enable this research project. Data processing was done in Python and SPSS with additional processing and map rendering in the open source QGIS package.

Richard Thomas

Editor’s note: We now have a batch routing system available which we’re keen to encourage for academic use like this. It can handle millions of combinations happily – not just the 16,000 combinations noted above!

New features added to Cyclescape

December 16th, 2015

Lots of new features have been added to Cyclescape, our toolkit for cycling advocacy groups.

Our developer, Nikolai, has been busy, working on piles of improvements and bugfixes.

As featured on the Cyclescape blog, the latest updates include:

Street View message replies: While it’s of course possible to navigate off-site, get a Street View link, and return, we’ve taken out that extra stage. The Street View button also tries to find a sensible default location. In a thread, just click on Street View in the reply box, position the map where you want, add a comment and press submit.

Privacy improvements:  Some groups have told us that it is important to them that they are able to operate on the basis of member discussions using real names, so that members know who they are talking to. However, we recognise that this could be in conflict with the entirely reasonable desire not to have one’s name on the public internet if wished. Accordingly, we have worked to implement a solution to this, whereby you can set your real name which people in your groups will see, but set a display name for everyone else. Previously the display name was always used.

Improvements for groups: If you didn’t already know, cycling groups are able to create their own Cyclescape space, giving a custom web address and various personalisations. You can now create a group using the ‘Request new group’ form in the top-right of the groups gallery. Groups can now add a photo to help personalise their page, alongside information about the group.

Search system overhauled to give much better results: We’ve replaced the search result system with a completely new engine that gives much better results. After a week of tuning the results, we think this now seems to find what you’re looking for pretty consistently. Secondly, we’ve added pagination, so you’re no longer limited to one page of results. Another long-awaited improvement is that searches within a group’s area will only return results from that area. So if you’re in, say, Camden Cyclists’ Cyclescape area, you won’t get results polluted with issues from Cambridge, Sheffield, Leeds, or wherever.

Getting discussions by e-mail now better: Did you know that you can also get Cyclescape discussions by e-mail? In fact, Cyclescape can be used like lots of mini e-mail lists, which you can choose to subscribe/unsubscribe to on a per-thread basis. We’ve made a number of improvements. Firstly, you can now enable digests, so you can read what’s happening by getting a single e-mail a day. Next, e-mails are now properly threaded. Also, we’ve added deadline reminders, so you’ll get a reminder a day or two before a date in a thread you’re subscribed to. So fewer excuses for missing deadlines now! A further improvement is that new users, and users newly-subscribed to a group, now receive a welcome e-mail to confirm each of these.

Deadline management improvements: In case you didn’t know, your ‘My Cyclescape’ page has a listing of all the deadlines/dates in the threads you are subscribed to. So it’s easy to get an overview of what’s coming up. We’ve added an iCal feed, so that if you use a calendaring system like Apple Calendar, Google Calendar, Outlook, etc., you can have these events appear automatically in your calendar. Also, if you have e-mail enabled, each deadline/date e-mail will now include an iCal attachment for that deadline/date. Another improvement is that you can now specify a time, rather than purely just a day, when replying in a thread.

Patrick reports back

October 1st, 2015

Back in July we introduced our summer intern, Patrick. Here, he reports back on his achievements over the three-month period.


This summer I worked for Cyclestreets as a paid intern for three months. During this time, I became acquainted with the large codebase the site runs on, and made several structural changes to the organisation of the code. After my work at Cyclestreets I feel much more comfortable working with sizeable codebases, and the focus on refactoring and identifying optimisable code has made a huge change in the way I approach coding my own projects.

One of my main tasks as intern was to refactor the existing codebase into an MVC-style layout. Building on a similar structure designed into Ruby on Rails, we set out to create classes with distinct personalities; views, models and controllers. Establishing rules that govern class content contributes to building a strong framework that isolates code into functioning categories. Once an MVC structure has been implemented, crosstalk between classes can easily be analysed and anomalies can be identified.

Cyclestreets runs two main environments (contexts) – a GUI environment and an API environment. These two systems had become merged over time due to feature development, so re-establishing the functional dichotomy between these entities became a priority. This was a long process, as a long period of development had led to a proliferation of technical debt in the codebase.

The concept of refactoring, or changing code structure without altering the code function, reverses this process. It is risky, as refactoring can introduce subtle bugs. It is also very easy, as I found out on several occasions, to dig yourself into a hole as one alteration leads to another, and another, until it is extremely hard to finalise the series of sequential refactorings. To avoid this, refactoring must be done systematically.

Design patterns can be identified that provide targets for refactoring, and over the summer I became familiar with identifying duplicated code, contrived complexity, over-large classes, and long methods, to name a few of the ‘bad smells’ I learned to identify in the code.

Rolling out my changes to the main servers was always a nail-biting moment. I didn’t want to be “that guy” that brought down the system while users in London were relying on the excellent CycleStreets app to get to work during the Underground strikes that went on during summer. [Ed.: Don’t worry, we deploy in dev first :) ]

The team at CycleStreets were extremely supportive, and I thank them for the time they took to broaden my knowledge of PHP and good coding practices. It was a very enjoyable summer, one I will look back on fondly as in the years to come I design my own apps and come across the issues I learned to rectify during this internship. Thank you Martin and Simon!

Martin and Simon thank you back, Patrick – the codebase has moved forward significantly over the summer, with several long-running problems resolved. You were a pleasure to work with, arguing your case well when there were difficult decisions to take in the code, and taking on feedback.

We welcome your feedback, especially to report bugs or give us route feedback.

My comments relate to: *

Your comments: *
URL of page: *
How did you find out about CycleStreets?:
Your name:
Our ref: Please leave blank - anti-spam measure

* Items marked with an asterisk [*] are required fields and must be fully completed.