MEng (Computer Science)
Principal Software Developer
I studied A levels in Maths, Physics, Chemistry and Biology at Collyer’s from 1993-1995. I loved my time at Collyer’s and the school provided the first formative years on my way to becoming an adult. In fact, I joined a little early to pick up a GCSE in Latin from an after-school class with one of the masters. On joining in 1993 it was great to feel treated as ‘young adult’ and study the subjects I was most interested in. I enjoyed all of my classes and had great teachers, but I fondly remember my Chemistry teacher. He was also my form tutor, and there was a class joke that he would often pick me to take part in some of the smellier experiments he was demonstrating. I also enjoyed some of the extra-curricular activities available. Some Wednesdays I would cross over the road to Horsham Hospital to have a chat with people on the wards and help out where I could. I remember all my friends and fellow students. It felt great to be with a group of people my age from all over the county. I am especially fond of the gang that had to wait on a bit longer to get their buses back to the outer villages. The only time in my life waiting for the bus was fun!
After Collyer’s I undertook a Master of Engineering in Computer Science at the University of Bristol. As an undergraduate I did publish a paper entitled ‘Detection of Infectious Outbreaks in Hospitals through Incremental Clustering’ – Artificial Intelligence in Medicine.
I held a number of different positions after university that lead up to this point. I have worked on radar systems, web-scraping robots, travel booking aggregators, virtual payment card systems, and software release platforms. All of this is pretty standard nowadays, but none of it existed back when I was at Collyer’s!
I am currently employed by a company called Oracle, a large company with over one-hundred thousand employees on their ‘Oracle Cloud Infrastructure’ service, particularly on the ‘Functions as a Service’ project. This provides small isolated scalable units of compute that allow other developers across the World to build ‘distributed applications.’ This is often called ‘The Cloud.’ So, I work on the ‘Functions Service’ part of the ‘Oracle Cloud.’
It is hard to explain what this means sometimes. Some people draw an analogy to the Industrial Revolution. The Industrial Revolution began small with everyone having their own power sources (water wheels, traction engines, etc). However, eventually large power stations and the National Grid began developing because it is more economical to do things at scale. Currently, we are passing through the ‘Information Revolution’ and the same thing is happening with information that happened with power. The Internet is like the National Grid (but for information) and there are now huge ‘Data Centres’ scattered around the World. These are like the ‘Power Stations’ and used to store and process all the information. This is termed ‘The Cloud’ and currently I am an engineer working on a very small part of the Cloud. Everyday thousands of skilled engineers keep things running and I am proud to be counted amongst them.
It is interesting to see what has changed in the time since I was at Collyer’s. Back in 1995 the internet was very young, and computers were expensive. Few people had access to the Internet, and even if they did, it was slow and sometimes did not work. Things are much different now. Many people in the UK have smart phones that are magnitudes more powerful than the computers available back in 1995. Also, the Internet is not allowed to break nowadays – it has become essential infrastructure that people expect to be there and working, like our other amenities such as water and power. It has been fun to be part of in my own small way.
I am interested in what the next generation of engineers have started and will be building on-top of this new computing infrastructure. These large data centres have allowed large amounts of data and processing power to be co-located. This is now making technologies such as artificial intelligence feasible. Exciting times!
I have been part of an on-going change to Society – the Internet and Information Revolution. I am just a normal engineer, and my individual contribution has been extremely modest. However, being able to be one of the hundreds of thousands of engineers has been extremely interesting and fulfilling. It is difficult to talk about some work, but my team helped support the provision of video conferencing services that helped many people get through some isolating times.
As a cloud engineer, I have to take on various roles, ‘development,’ ‘maintenance,’ or ‘on-call.’ The ‘development role’ is the most fun. This is what people think of as being a ‘programmer’ – it is about adding new features and functionality to our software. Developing a new piece of software or feature is an iterative process. The ‘maintenance role’ is about keeping what we already have running up to date, secure, and working correctly. This varies widely and can range from ‘security patching’ and ‘hardening’ our systems to ‘accessibility testing.’ The ‘on-call role ‘is a bit like being an emergency doctor. The services are spread over many data centres across the World (London, Tokyo, Santiago, Dubai, Phoenix, etc.) and each one consists of tens of thousands of computers, disks, network routers and other components that need to work correctly. It is super challenging but can be very interesting and rewarding.
I love the people I work with – they are all super smart and interesting and it can be challenging, and fun likened to being paid to solve little puzzles every day. The job is creative and working with computers intersects with many other disciplines. I started with working on radar systems, then I worked on Internet applications, and now I am working on a Cloud service. I have other friends and colleagues that have gone down other different computing routes – computer games, film industry SFX, system security, space satellites, artificial intelligence, art, embedded devices, archaeology, mobile phones, etc. The options are nearly limitless.
To fulfil my role, you have to enjoy learning. Technology is always improving and changing, and it is necessary to be a continual learner. Be knowledgeable as computers are conceptually simple, but very complicated in practice. As an analytical thinker when given a complex problem you need to be able to break it down into pieces to reduce the scope of the problem in a sensible way. Determination is key as sometimes you cannot solve a problem on the first attempt. Communication is essential as you need to be able to work well with others. Many tasks require multiple people with different skills.
If you are looking to get into a similar role learn by doing. Pick a fun computing project and try to be creative. Create a personal website, a game, a weather station, a ray tracer, a new programming language – the choice is yours! Something fun and interesting. Also, learn how to learn – Internet, books, blogs, meet-up groups, conferences, friends, and colleagues.
The advice I would give to my younger self is keep a daily work journal of everything you work on and keep it organised. Don’t throw any of your projects away, even they were embarrassing. You will come back to this again and again, as the same patterns begin to emerge and ‘fashion’ cycles. A good way to check if you understand something is by teaching it to others.
What next Tim? I am not sure. Maybe a different type of computing or writing a computer game? Possibly something else like technical documentation or teaching.