I was originally a Theoretical Physicist: I got my BSc (Hons) from University of Sussex in 1977 and my PhD from University of Liverpool in 1980 (thesis title 'Heavy Quark Flavour Production in Hadronic Processes'). All my work during the PhD involved simulation of elementary particle behaviour, especially collisions, which meant lots of computer programming. In Fortran. Whilst doing this, I became more and more interested in the tools and environments for computer system development and not so interested in the physics.
So I decided to learn C and become a UNIX systems programmer. I have been fascinated by operating systems (especially low-level stuff like device drivers, processes and threads) ever since. As well as doing the UNIX systems stuff, I started to do some research on programming (especially embedded systems programming), programming languages and user interfaces and this led me quite naturally back into academia.
From October 1983 to 1996, I was on the academic staff at University College London (UCL) Computer Science Department. As you might expect my research was into programming and programming languages with emphasis on object orientation, concurrency, parallelism and human factors. I spent some fun time teaching programming and software engineering, researching and climbing the academic ladder reaching the dizzy heights of Reader in Software Engineering. From 1987, I ran the UCL part of the SPAN project (a large multi-national, multi-partner ESPRIT project) and in particular the development of the Solve parallel object-oriented programming language. When this project finished I ran the UC++ project which developed a parallel C++. This led me to be deeply involved with the EUROPA which attempted to create a Europe-wide standard for a parallel C++.
In 1996 I became Professor of Computing Science at King's College London (KCL). I was not only able to continue my research into programming languages and the programming process I was also able to initiate some research into music and audio technology and separately health and medical informatics. This was fun. From 1999-04-01 I became Head of Department and I had to focus on Administration which detracted from doing teaching and research and so lessened the fun.
Having created a sensible work–life balance (yeah, sure!) I seemed to be headed towards a cushy life until retirement when, in mid-1999 an old friend approached me and said 'Hey, why don't you take on this really serious challenge' which led me to leave academia in 2001 to become Chief Technology Officer at OneEighty Software Ltd and bring the ORIGIN technology into the world. OneEighty Software Ltd was an IP generating company whose principal product was ORIGIN-J which was an implementation of the Java Virtual Machine for extremely resource constrained systems. We did a lot of our work on smart cards which have to be the most brain damaged computing platforms ever conceived. Unfortunately, the product didn't get off the ground as the financial backers pulled out (somewhat unexpectedly).
After the demise of OneEighty Software I continued self-employed as an independent consultant, trainer and author. I also did much more book writing than I had previously which really was fun. As Terry Pratchett once wrote 'writing is the most fun anyone can have by themselves'.
I was also involved in other businesses: since 1999 I had been Managing Director of It'z Interactive Ltd which was a company providing computing infrastructure support and contract system development work for small businesses with particular emphasis on free and open source software (FOSS). Unfortunately there was insufficient business to keep It'z Interactive Ltd going so I closed the company.
Of course the world moves on, and multicore processors are the new thing. Parallelism has finally arrived to all computers. Myself and some colleagues took this as an opportunity to start a consultancy practice Concertant LLP. We provided consultancy, analysis, and management on all aspects of parallelism and concurrency in computer systems. Sadly, the aftermath of the financial crash in 2008 meant that there was insufficient business to keep Concertant going so we disbanded the partnership.
I have been heavily involved with the Groovy community since 2004. I wrote and maintain Gant, which was an integral component in Grails until Grails version 3. Gant spawned Gradle, and led to Groovy becoming a front end to Ant and Maven -- the Groovy front end to Ant is a fork of Gant.
Since 2006, I have been involved in the UK and European Python communities. Initially this was because of my use and involvement with SCons, and Waf, but this extended to Python training and involvement with the PyCon UK activity.
I am increasingly involved with technology transfer of Communicating Sequential Processes (CSP) and Dataflow Model as architectures for harnessing the rampant parallelism that is now the norm since Intel and AMD started the Multicore Revolution. I am involved with Python CSP (a CSP framework for Python), GPars (a parallelism framework for Groovy) and, increasingly, D (the replacement for C++), Go (the new language being developed that has its core team in Google), Scala (a Java replacement), Ceylon (a Java replacement), and Kotlin (a Java replacement). (If you are interested in introductory, intermediate or advanced Groovy, Python, Go or GPars workshops please email me.)
I decided to retire on grounds of ill health at the end of financial year 2016–2017. So since 2019-04-01 I have not been undertaking any paid work. I have though been developing Me TV a desktop application for watching DVB implemented using Rust, gtk-rs, and gstreamer-rs, as well as contributing to GStreamer and the MPEG-TS library.
To date I have written the following textbooks:
Russel Winder (1991) Developing C++ Software, John Wiley & Sons.
Russel Winder (1993) Developing C++ Software, second edition, John Wiley & Sons.