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 also 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).
Since the demise of OneEighty Software I have been an independent consultant, trainer and author. So if you have any work let me know! I also do much more book writing than I used to which really is fun. As Terry Pratchett once wrote 'writing is the most fun anyone can have by themselves'.
I am also involved in other businesses: since 1999 I have been Managing Director of It'z Interactive Ltd which is a company providing computing infrastructure support and contract system development work for small businesses with particular emphasis on free and open source software (FOSS). Now that OneEighty Software is no more, I am focusing on building this business.
Of course the world moves on, and multicore processors are the new thing. Parallelism has finally arrived to all computers. Myself and some colleagues have taken this as an opportunity and have started a consultancy practice Concertant LLP. We provide consultancy, analysis, and management on all aspects of parallelism and concurrency in computer systems.
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 also 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. (If you are interested in introductory, intermediate, or advanced Python workshops please email me.
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.)
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.
- Russel Winder & Graham Roberts (1998) *Developing Java Software*, John Wiley & Sons.
- Russel Winder & Graham Roberts (1998) *Developing Java Software*, second edition, John Wiley & Sons.
- Russel Winder & Graham Roberts (1998) *Developing Java Software*, third edition, John Wiley & Sons.
- Sarah Mount, James Shuttleworth & Russel Winder (2008) *Python for Rookies*, Thomson Learning (now called Cengage Learning)