How I Satisfied My Passion for Software Development and Open-Source by Doing a Part-Time PhD

Facebooktwitterredditpinterestlinkedinmail


Photo kindly captured by Adel

A version of this article was translated to Japanese.

Date: 15th July 2016

Retrospective – Back to the Future

At the end of the graduation day, the Vice-Chancellor of the university delivered a powerful speech. Words of wisdom that are going to stay with me for the rest of my life. “Be a source of energy, be positive, motive and inspire others…”.

Date: 15th May 2016

A slight detour – What is this?

I love it when you call a fellow developer over to show them some code or a stacktrace and they say in exclamation ‘What is this?’. Sometimes not so nice words come before or after the question, which I will refrain from quoting in my blog . Now, what is this, why did I write it and why are you investing a few minutes of your life reading it? Well, like many passionate developers and engineers who hack stuff in their spare time, I’m passionate about software development and new technologies. Luckily for us:

Programming seems to be a relatively unique field because for many people it is both their job and their hobby, so they enjoy programming in their spare time. [Sara Miles on StackExchange]

If you didn’t think this introduction is funny, then you are probably not a software developer. Back to the point, to satisfy my passion for software development and new technologies, to become a better developer, researcher and technical writer, by 2010 I embarked on a part-time, self-funded PhD at the University of Reading whilst working full-time. Why part-time? because I had to work, leaving work for 3 years to do a full-time PhD wasn’t an option.

In this short article I share with you some of the experiences, challenges and achievements of this PhD journey. I’m hoping this article will somehow help, motivate or inspire you or someone out there to do a part-time MSc or PhD besides all your/their other commitments. It’s not easy and the journey is not without difficulties, but if you have the passion about what you are going to research, then it’s doable and fun. Note, my experience is based on the PhD process in the United Kingdom, you might have a different process in your country which makes it difficult to complete a PhD part-time. This page is my diary to reflect back on many things and will be updated regularly now that I’ve spare time, so come back for updates.

Warning

Although this article seems structured and straightforward, the PhD process isn’t, it’s a journey full of ups and downs. So by no mean this article serves to hint that doing a PhD part-time or full-time for that matter is easy. It’s not, for part-time in particular you need a great deal of energy, determination, perseverance, persistence, patience and time management to get it done besides your other commitments. You need to give up a few things in your personal life and it’s not for everyone, just like starting ‘your own’ business is not for everyone. The journey was hard, I nearly dropped off after 2 years, but I persisted and soldiered on. I’ve had a few health problems from sitting extended hours on the computer, sometimes 14+. I had to change supervisor once as well, which was a stressful experience. I gave up watching TV and reduced my social life to an absolute minimum, I had a great supportive wife who has a done a full-time PhD and understood what I was going through. I hardly had a free weekend. Additionally, being an independent IT consultant helped, such that I can decide to take on short contracts or take time off between contracts to focus on the research. Not buying that X5 and saving the money for the rainy day also helped with being able to take time off work when needed. Furthermore, pressure gets the best out of me, I’m used to studying and working at the same time from the undergraduate level, so such experience helped greatly in this journey. I’m not stating a rule or generalising that everyone can do it, but rather sharing my experience, so proceed with caution, your mileage may vary, and bear in mind that everyone is different. I believe in God and I believe it’s only with the grace of God Almighty that I was able to endure all of this and complete the journey.

Why do a part-time PhD?

I was working full-time, had a family with two children (my 3rd child arrived after I started), with all this why on earth did I want to do a PhD?

Fulfilling a life long dream

First, to fulfil a life long dream. Since I was young my life ambition was to do a PhD to follow the footsteps of my dad. I was born half-way through his PhD study and when I grew up he used to tell us about his experiments and how hard it was to write a thesis back then. Imagine in the mid seventies, with a typewriter, citation was a nightmare, Tipp-Ex and lots of papers everywhere. He once forgot his draft thesis in the bus and that was a disaster, luckily it was returned safely to the university. Makes one appreciate the luxuries we enjoy in this digital age!

Becoming a better engineer and researcher

Second, based on my experience doing a part-time MSc — which was done during similar conditions — I found that I learned a great deal, became a better software developer and developed a fully functioning SaaS offering. I was able to explore new technologies during my MSc dissertation which benefited me greatly at work and I was able to share my knowledge with others. I’ve managed to align the MSc study with work and career and as a result of the technologies I’ve learnt and the experience I’ve gained I was promoted to a principal consultant at work!. As someone who is passionate about technology, software development and Open Source, doing a PhD is another way to contribute to the wider community by following a scientific methodology to advance the state of the art. I thought to continue this journey of exploration and learning by doing a PhD. All what I needed was self discipline and good time management skills, I also had a good supervisor that guided me through the process. I enjoyed being under pressure and was able to manage my time efficiently between work, family and research commitments. I already feel I’ve become a better technical person, I’m already feeling the benefits of the PhD journey, which I can summarise as follows:

  • Proud of my work and making original contributions.
  • I can tackle complex technical problems in a methodological and scientific manner.
  • I can effectively research complex technical topics and suggest novel solutions.
  • My technical writing has improved considerably, in particular after writing a thesis with 90K words.
  • I can constructively evaluate and criticise the work of others.
  • I can easily articulate and explain my approach to others.
  • I accept criticism from others regarding my own work and use such criticism to improve it.
  • I’ve learnt many technologies and became more acquainted with and passionate about the Open Source ecosystem.

It was a win win situation, I was reading about new technologies, reviewing journal papers, challenging myself to understand what others have done and find gaps in their work. In addition to reading publications and journal papers, writing code and developing prototypes were also great fun that consumed numerous weekends. The hardest and painful part was writing, lots of writing, but it had to be done, as one professor once said to me “The PhD is reading and writing“.

The journey of a lifetime

Here is a brief timeline showing key milestones during my PhD journey. I was studying in a part-time working-away mode, which meant the university didn’t have to supply me with a desk, computer, etc… Additionally, this meant I paid the cheapest tuition fees, plus I didn’t need any physical hardware for my work because the computer lab for my experimentation work was all up in the cloud somewhere in Google’s datacentres (Google Cloud Platform). This doesn’t mean that I was working away in a rabbit hole and didn’t see the university. In fact I live 10 minutes (walk) away from the university and I used to see my supervisor almost weekly, sometimes in-person and other times over Skype. I attended many postgraduate training courses (literature review, thesis writing, etc…). I attended other conferences, seminars, etc… at the university.

Date Milestone Artifact
17/10/2010 PhD proposal accepted
07/09/2012
07/09/2013
Suspended my study for a year. Wasn’t doing much due to family (arrival of my son) and work commitments
17/02/2014 MPhil to PhD transfer report submitted
26/03/2015 Nominated as the School of Systems Engineering candidate for the award of PhD Researcher of the Year 2015
11/04/2016 Thesis submitted  
16/06/2016 Viva
08/07/2016 Graduation

Part-time challenges and advantages

Like other research students, the university have asked me to provide a brief profile describing my research area, challenges and advantages of part-time study and any advise that other part-time students may find useful. The profile covered the following questions:

  • What has been your biggest challenge since starting your research?
  • Where do you want to be in 5 years?
  • What were your reasons for choosing part-time study?
  • What are the advantages and challenges of part-time registration?

You can find my answers to these questions in this PDF version. Now let’s look at some of the key milestones during this journey.

PhD Proposal

My aim was to explore two fields, the Semantic Web and Cloud Computing. In a nutshell I wanted to solve some of the Semantic Web problems using Cloud Computing. Cloud Computing has unique features such as Elasticity and utility billing that I wanted to explore. Here is my proposal written in 2010, one thing you will notice is that a few things didn’t make it to the final thesis. For example I thought I was going to explore OWL (Web Ontology Language), but ended up exploring RDF (Resource Description Framework). Also notice that the title was ‘Scalable Distributed OWL Reasoning for the Semantic Web‘.

MPhil/PhD Transfer Report

I had to write a report to transfer from MPhil to PhD. The report is usually written after the first year of full-time study and after 2 years of part-time study. You can find the report here, again notice the title has become ‘Investigating Elastic Cloud Based Reasoning for the Semantic Web‘. Additionally, a few things didn’t actually make it to the final thesis, including using the Recursion Theorem to represent self reproducing Cloud Virtual Machines!. Why did I even think of this? I guess I was inspired by the use of the theorem in modelling viruses, but, as each VM won’t likely be acting alone and making copies of itself, swarm intelligence or similar was probably a better alternative to model a fleet of autonomous self managed VMs, but this was a distraction (dead-end), it wasn’t what I wanted to do. Moreover, the use of a consistent hash function for workload distribution, which is used in Distributed Hash Tables and NoSQL databases like Amazon DynamoDB. This was replaced with Bin Packing algorithm. As I said, it was a journey to explore and I didn’t want to be constraint by anything so I did look at and learnt many things.

Final Thesis

I’ve submitted my thesis on Monday 11th April 2016, with hopefully a final title of ‘Investigating Elastic Cloud Based RDF Processing‘. As soon as the viva is done and all is good I will update this section and include a link to the final thesis. In this regard, the word Google occurred 147 times in my thesis, to say I’m extremely passionate about Google technologies is an understatement!. Having used so many Google tools (as you will see in the tools section below) and technologies in my research, I felt the least I could do is acknowledge them in my final thesis, here is the extract:

I would like to thank Google for their great technologies, developer support and documentations. Google support kindly and promptly lifted any quota restrictions that I requested to complete the evaluation of this research. They have kindly provided free credits to use the Google Cloud Platform.

Tools and Books

There are so many tools that I found useful which I will summarise here, Google has the biggest share of these. There is also a corner on my desk that started accumulating a stack of a few books over the last 5 years which were useful for my research. It all started with one book ‘Foundations of Semantic Web Technologies‘, then a few more books joined the stack. Here is the final stack. In addition to these, I’ve a couple of must-read e-books and around 144 journal and conference papers in my Mendeley collection. Note, a few of these books have gathered dust for the last 5 years I thought I would need them, but I didn’t!

books

The following free tools made it possible for me to conduct my research, advance the state of the art and writeup my thesis.

Task Description Tool/Book
Getting started How can I get started, what is it like to do a PhD, how can I find a supervisor, etc…? This book is a must read. How To Get A Phd: A Handbook For Students And Their Supervisors
Research methodology Because you can’t just hack together a PhD, you need to follow a proper scientific methodology. Plus the PhD is different from say, a technical report. This book is a must read. Design Science Research Methods and Patterns: Innovating Information and Communication Technology
Managing research papers A tool to manage, search and collate relevant research papers with the ability to export citations is various formats. Mendeley Desktop
Finding research papers A tool that supports advanced search to find relevant research papers. Google Scholar
Document management Somewhere to safely manage all the PhD related documents, such that if your hard disk crashed you are not in a crisis. Google Drive
Writeup A mechanism to writeup papers and the thesis, as a technologist I’ve chosen LaTeX over plain text or word. TeXShop
Diagram I needed to produce lots of diagrams, access them anywhere and change them easily. Google Draw
Experiments My research experiments were conducted on the cloud, you can find some background on why I went with Google Cloud Platform here. Google Cloud Platform
Data gathering and analysis Gathering experiments data and easily analyse it and produce charts. Google Sheets

Research Outcome

The biggest initial challenge with part-time research was to keep myself engaged. As a part-time researcher with work and family commitments it’s very easy to get dis-engaged and disconnected from the research. One way to overcome this was to setup targets for me to work towards for example writing a paper for a conference or a journal or taking part in conferences and PhD consortiums. Setting such targets and deadlines enabled me to become very engaged, enthusiastic and connected to my research. I entertained all my colleagues at work by telling them about my research, most importantly, I’ve done/taken part in the following to stay engaged.

Open Source Contributions

  • CloudEx (http://cloudex.io), A generic elastic cloud based framework for the execution of embarrassingly parallel tasks.
  • ECARF (http://ecarf.io), an Elastic cloud-based RDF triple store for RDF reasoning and RDFS reasoning.

Posters

  • University of Reading postgraduate conference poster competition entry – 01/07/2014 –  PDF

Presentations

  • The British Computer Society Doctoral Consortium presentation – 15/05/2014 –  PDF
  • University of Reading 3 minutes thesis competition presentation – 01/07/2014 – PDF
  • Computer Science and Electronics Engineering Conference CEEC 2014 presentation – 25/09/2014 – PDF

Publications

It’s not over yet

The journey is not over yet, ultimately I’m waiting for the viva to take place and hopefully one day I get to use the ‘Dr‘ title and hang the mother of all certificates on the wall. That day, will truly be a day of days. That day, when it comes, if it comes, will be worth all the hard work and the difficult moments I lived through over the past 5 years, but until then I quote this feeling of ‘Euphoria’ from How To Get a PhD book:

After submission of the thesis there is a period of anxiety and expectation that you have to live through waiting for the day of the viva. There is then, when you are no longer constantly confronting your thesis, the feeling of a gap in your life – a burden that has been lifted from your shoulders. Those feelings are mitigated, however, by the knowledge that all is not yet over.

Update: 15/07/2016

On the positive side, there is the energetic, the positive and the kind who feels happy when they see others succeed. Also, POSTD, a Japanese news website focused on IT trends and programming tips, have translated this article to Japanese “私がどのようにして、ソフトウェア開発とオープンソースへの情熱をパートタイムで博士号を取得することで満たしたか”.

LinkedIn-share

Reflections on Thesis Writing

The most challenging activity for me during this journey was writing. I felt comfortable tackling challenging problems, running experiments, writing code and analysing data, writing however was difficult. Sometimes I was very productive and wrote many pages in a day and other times struggled to put a paragraph together in an hour. I found that the source of the problem of not being able to write is the fact that I don’t have the argument formulated in my head. So trying to write whilst going through the thought process of formulating an argument was time consuming. I found it was easy to think, formulate the argument, visualise it, then finally write it up, this approach has worked really well for me.

The Thought Process

To go through the thought process and visualise my arguments before writing them up, my supervisor suggested Post-it notes. So I did Post-it notes and put them up on the wall, but I felt this technique was rigid, I needed a fluid brainstorming approach. Ideas were changing all the time and I needed more space and colours to express my thoughts. Post-it notes weren’t sufficient, I needed to draw, write, use different colours, wipe and try again.

Posted notes

Welcome the Whiteboard

Luckily I had a whiteboard and ordered some colourful whiteboard markers then started jotting down my thoughts on the whiteboard using different colours, I then took a picture using the Microsoft Office Lens app, which has a whiteboard option. Finally I printed the image so I had a paper record that I could annotate further, this also enabled me to wipe the whiteboard immediately for more brainstorming.

Whiteboard

Having the Courage to Take Time off Work

Also luckily for me, my supervisor encouraged me to write journal and conference papers all the way through. Although some didn’t get published, what I’ve written up over the years was a valuable asset when I started writing up the thesis. End of July last year (2015), I took two month off work to focus on running experiments and analysing the data. Then I was back to work in October 2015 and started writing up the thesis. It was a slow process, I’ve completed one chapter by the end of November. It was clear that work was getting in the way of completing the thesis, so I’ve decided to take time off work from the end of December 2015. I worked hard writing up the thesis over the following 3 months, sometimes doing up to 14 hours per day. It wasn’t healthy, but had to be done and it was rewarding to be able to produce one chapter after the other.

Dealing with Boredom

Although it was rewarding to produce chapters, no two will disagree that writing up a thesis can become a very boring activity. This was true for me, at times I was so bored that I had to do something else as well. I spend time writing blog posts, doing various talks in local meetups and playing the occasional Splatoon on the Nintendo Wii U with my children. It was a good laugh and got me to spend time with the kids during the tedious writing up activity. The little ones were overly happy when I helped them defeat the big baddy DJ Octavio, although I ended up with sore thumbs . Doing these activities I found I was very fresh when I went back to thesis writing.

DJ Octavio - Splatoon

The Viva, Corrections, Graduation and Beyond

Waiting Forever

By the beginning of June, almost two months after submitting my thesis, there was no news regarding when the Viva was going to be. I was getting very anxious because a late Viva meant I would miss the July graduation and instead wait until December and that is a long time to wait for the impatient. Even if the Viva was decided sometime in June, it was still very tight to make it for the 8th July graduation, there were various deadlines that had to be met. I sent my supervisor a few emails to enquire, but here was no response, so I thought instead of getting stressed I should just forget about the Viva for the time being. Then on the 9th June my supervisor emails me to say the Viva has been scheduled for the 16th June, what a joy .

The period leading up to the Viva was one of hope and anxiety, but my wife kept telling me not worry and that I would be fine. To be honest the PhD journey has gone for long enough and all what I wanted at that stage was to conclude the hard work I’ve put in this process over the last few years and move on with my life. I had two weekends before the big day, which I spent reading my thesis cover to cover, taking notes, coming up with hypothetical questions. The ‘Surviving the Viva‘ university guide was a good read.

The Viva – Day of Days

It’s the Viva day, I’m fresh and up very early, I made my way to the university at 9:30am for 10:00am start. I met my internal and external examiners and spent the following two hours defending my thesis. The Viva is over, I’m asked to leave the room, I find my wife outside waiting for me with a smile, repeating the same statement she has been saying to me all the time, ‘you will be fine’. After a short while I get called back into the room for the good news that I’ve passed with minor corrections, joy and celebrations all around.

The End is Almost in Sight

Still, time was running out, if I wanted to graduate in July I had to make my corrections and they needed to be accepted by the examiners and then available at the exam office before the 24th June. My internal examiner and supervisor were very understanding that I needed to meet this deadline. The Viva was on Thursday, on Friday I received a list of corrections, then I spent the weekend, working 14 hours each day to complete the corrections. This was painful, but had to be done, the end was almost in sight, just that final push, PUSH, PUSH. Late on Sunday night, the corrections were coming to an end, I emailed the corrections to the examiners, on Monday morning I got asked to do some more minor amendments, which I did. Finally on the same day I got a confirmation email from the exam office that my corrections were accepted and I’m to be awarded the PhD from 30th June, what a joy!. I had three copies of my hard-bound thesis submitted to the exam office. That was it, I waited impatiently for the graduation, preparing and trying out my best suit.

Thesis

Graduation Day

Finally, after 5 years comes this day. It was truly a day of days that words can’t explain and do justice. This picture captured the atmosphere on the day.

Graduation

Finally

Whatever is your endeavour, if you put effort into it, anything can be done. Yes You Can!