About David

What do you want to know?
Trompetstraat, Delft, Zuid Holland, Nederland - March 2020

I was born in Glasgow, Scotland, and hold both British and Irish citizenship. I can therefore proudly say I'm also a European citizen, and I am grateful that I will be able to continue to call myself that, regardless of whatever happens next to Scotland.

Computers have from a young age fascinated me, and they still do. I decided to educate myself, became a Computing Scientist, and I recently submitted and defended my PhD thesis at the University of Glasgow, Scotland. Call me Dr David! 😉 Besides making computers do things, I like making what they do look good, too. So, what do you want to know?

On this page, I tried to summarise all the key things you'll want to know about me into a series of blocks. Have a look around. If you're interested in reaching out, you can get in touch by using the contact details presented on my site's homepage.

My undergraduate and postgraduate degrees were both undertaken at the University of Glasgow. Studying Computing Science, I undertook a number of different projects - both individually, and as part of a team. One of the highlights was my fourth year Honours project, Crisees. Using Python and the Django framework, I developed a pipeline architecture for capturing, analysing and presenting social media content in near-real time, with an emphasis on crisis management. The project was well received, with me presenting talks on it long after the project concluded. It even won me the best Software Product Prize from the School in 2012!

I then veered more towards Information Retrieval. My MSci project involved looking at how clickthrough data could be used to improve the ranking of documents, and thus the overall quality of a retrieval system's performance. This was done through a complex series of simulations. My interest grew, which is what led me to doing a PhD, supervised by Dr Leif Azzopardi.

It's not just Python and Information Retrieval that I've learnt about during my time as a student. I've picked up plenty of knowledge in different areas of Computing Science over the years. I have gained knowledge in many areas, including:

  • research methods and techniques, encompassing the basics on conducting a research project;
  • professional Issues, making me think about various legal and ethical issues in computing science;
  • various programming courses, including systems and network programming (in C), Python and object-orientated languages;
  • software engineering, such as how to design software through the use of software design patterns, and software project management;
  • algorithms and data structures, introducing me to the world of algorithmic complexity, allowing me to come up with faster, more space efficient solutions to problems;
  • databases, primarily considering relational database systems (although I'm knowledgeable on NoSQL technologies too);
  • Human-Computer Interaction, considering how to conduct HCI-based experimentation and consideration on software/hardware design; and of course
  • web development, something (that I hope you can see!) I have a passion for!

I've had the good fortune to travel to some far flung places during my time. From travelling, I've met some wonderful people who have given me so many opportunities.

I interned at Microsoft Australia in 2016, as part of the Bing Relevance Sciences team. I worked on:

  • software development, developing a prototype system;
  • experimentation, where the prototype system was then utilised to conduct a series of scientific experiments; followed by
  • research, where we published a research paper on our findings.

My project at Microsoft was to assist in the advancement of state-of-the-art generative query autocompletion. My prototype system was developed using a series of internal Microsoft technologies. I created a pipeline architecture, once again presenting results in a web application. Microsoft's .NET technologies and C# were primarily used. As the system needed to interact with bleeding-edge technologies, I had to overcome a number of technical challenges, especially with the limited amount of documentation available.

My development skills were furthered in 2017 when I interned at the Alan Turing Institute, London, England. Working with Professor Terry Lyons, Dr Hao Ni, Dr Jeremy Reizenstein, Alex Cioba and Radosław Kowalski, we worked on extending the libalgebra C++ software, and implementing a Python wrapper for the software. The software is called esig, and is available on the Python package repository, PyPi. Providing a Python package instantly made the software accessible to many more individuals. During this internship, I learnt a lot about how Python packages work, as well as how to compile software across different platforms successfully.

I've presented a number of talks around the world at international conferences, mainly about the research publications I've been involved with. I like to think that the more presentations that I've done, the better my communication skills have become. In particular, creating visually appealing, engaging presentation slides has become a bit of a thing for me; I'm really happy to say that this has been noticed by several people in my field! This success has led to me being invited to present guest talks at numerous institutions. One of the recent talks I presented was about my PhD experience - something different to what I normally talk about!

I've also been a tutor since 2011, all the way back as an undergraduate! Starting with tutoring Python and Java programming, I then moved to my forte - web development. I've been involved in the tutoring of web development courses at the University of Glasgow since 2013 - indeed, with my supervisor, we wrote a book called Tango with Django! Tutoring has been nothing but beneficial. Explaining complex problems to students has become so much easier, and I've found that this skill has applications in other walks of life, too.

Besides my mainstay of software development and computing science things, I've also got lots of interests elsewhere.

Perhaps one of my passions is motorsport. I follow several racing series religiously, primarily Formula One. It's a shame that paywalls make it hard to access coverage of this sport (and so many others today), reducing their influence on society. Not only do I follow the sport and take a key interest in it (perhaps due to the advanced, cutting-edge technologies that are used!), I also absolutely love participating in racing, too. Although I haven't actively participated in races for a while (with my studies taking priority), I have always said that if given the opportunity to develop my skills as an amateur racing driver, I'd jump at the chance. The adrenaline rush, the feeling of being in complete control, is like nothing else!

I'm also keen on the arts. I like drawing, and was at one stage very musical, although, again, studies took priority. I have taken singing lessons for several years, and I really enjoyed them! I've also got a ukelele, but more practice is required.

I'm a keen volunteer, too. I love to help out where I can. I'm acutely aware I'm very fortunate to have what I have, and to be where I am today. I've volunteered at the Students Representative Council at the University of Glasgow, helping out foreign students who want to improve their conversational English. Within the School of Computing Science, I also helped during the exam season by running around campus collecting exams and sorting them.

One thing I'm super keen on however is design. I think I've always had a brain orientated towards making things look good as well as functional, and I've been able to exercise that part of me over the past few years with some awesome results. Hopefully you'll agree this website is testament to that - or if you want to see more, check out my PhD thesis. That's enough showing off.

Want to learn more? Get in touch!

The Basics

Things I Know

  • Spoken LanguagesEnglish (native), Scots English (belter!)
  • Programming Languages
  • Python Fluent!
  • JavaScript Pro!
  • CSS/LESS Designer!
  • C# ❀ MSFT
  • Java I get it!
  • Bash Pipelines!
  • PHP Plenty of practice
  • SQL Mindset
  • C++ Relearning
  • C Used to be pro
  • BASIC BASIC
  • MSFT CMD Seldom
  • PowerShell Practice...
  • Technologies/Frameworks
  • Illustrator Favourite app ❀
  • Django Favourite framework ❀
  • Web Understand the concepts
  • TeX \textbf{Awesome!}
  • Markdown __**Love it**__
  • Git VCS git push
  • MATLAB And Octave
  • Pandas On the up
  • Jupyter One cell at a time
  • Postgres Pretty good
  • T-SQL Seldom used
  • NumPy Lots to explore
  • R Seldom
  • MapReduce Limited
  • MongoDB Seldom
  • SpaCy Newbie
  • TensorFlow Wat
  • On the Horizon

I'm acutely aware that there are many things I still have to learn. I'm trying to catch up with the field of machine learning right now! Hopefully I'll be able to add some more technologies soon.

Illustrations above from Font Awesome under CC 4.0 Attribution