Personal information

Date of birth: 11/11/1967
Marital status: Married
Citizenship: British
Driving License: Car, clean
Languages: English, Welsh (beginner/intermediate)

Contact details

6 Cwrt yr Angor,
Trefechan,
Aberystwyth
SY23 1BN
Home telephone: 01970 617756
Mobile telephone: 07855 308585
Email: jim.finnis@gmail.com
Web: http://pale.org/

Profile

I am a highly experienced IT professional, with over twenty years experience as a software developer. I am a good communicator, both verbally and in writing, and am able to explain difficult technical concepts clearly and concisely because of my teaching experience. I have excellent analytical and problem-solving skills, and pick up new skills very quickly.

In 2010 I returned to full-time education to gain a BSc in Computer Science, achieving a high First Class degree, and awards for Best Overall Degree within the department, and Best Final Year Project.

I am currently studying for a PhD in Computer Science, working in the areas of robotic control, artificial neural networks, and genetic algorithms.

Technical Skills

  • Over twenty years experience in C and C++ under many platforms, including Windows, Linux, Qt and embedded systems, having designed many small to medium scale software systems, including the overall architecture for several meidum-budget console games.
  • Strong digital electronics skills, including having constructed a control system for a Mars rover prototype, based around an interconnected I2C network of 10 microcontrollers driving 18 motors.
  • Competent in writing Visual .NET applications in C# and interfacing that language with C++ native code, having written several large tools in C# based on C++ libraries.
  • Competent in Java programming, having written some small programs in Swing and larger apps for Android phones.
  • Competent in scripting using Python, bash and Perl: tools I use almost every day to build small programs for text processing and simple graphics.
  • Beginner to intermediate Haskell skills, having written some text parsing programs for my own use, and an RPN calculator with a GTK GUI.
  • Excellent at writing technical documentation using Word, LaTeX or Doxygen. I have written several large pieces of end-user documentation for clients.
  • Able to build complex web sites using HTML, CSS and LAMP (Linux, Apache, MySQL and PHP) relying on database data and using JavaScript and AJAX; examples include a reasonably complex site for a local theatre company based on a database back end with about 10 tables; and a simple content management system for small sites.

Publications

As editor
  • Sauzé, C., & Finnis, J. (Eds.). (2012). Robotic Sailing 2012: Proceedings of the 5th International Robotic Sailing Conference. Springer Science & Business Media.

Employment

Aberystwyth University, PhD student
September 2014 to present

As part of my funding requirement for my PhD, I am involved in teaching first year Computer Science students the basics of programming. I was given the responsibility of designing course materials, hardware and software for a graphics and games-oriented version of the basic course, which is taught using C on Arduino. To achieve this, I designed an LED 8x8 bi-color shield with some buttons, and a library so that the students could write simple games. My course elements involved teaching common games techniques, such as double-buffering, state machines and the "main loop" pattern. I also devised and marked a large project for the students.

Aberystwyth University, Intelligent Robotics Group
August 2012 to September 2013

As part of my degree scheme I spent a year working in the Intelligent Robotics group in Aberystwyth's Computer Science department. During this time, I built a multiple microcontroller-based control system for a Mars rover prototype (hardware and software), produced a highly configurable robot monitoring and control program using Qt, and presented a poster about an Android-based visual avoidance system for robotic boats. In addition, I worked as a personal tutor for first-year students, which was highly rewarding.

Broadsword Publishing
November 2010 to January 2011, part time

Working part time for a new company, Broadsword Publishing, managing their website and developing Android mobile phone apps using Java. One small, free game has been released so far: TileSlider.

Broadsword Interactive
March 1996 to September 2009
2008-2009
Designing, documenting and implementing middleware for innovative gaming peripherals created by third parties, and developing sample PC and XBox 360 code, along with an advanced C# tool for analysing data sent by the peripherals. Broadsword ceased trading in late 2009.
2001-2008
Lead and engine programmer for several PS2 and Wii games including Dance Factory, Dance:UK, and Paris-Dakar Rally (PC and PS2). Developer of the advanced Unity multiplatform engine; and later stumpy, a lightweight engine with a visual programming language for rapid application development and a robust memory model to avoid resource leaks. Also some `firefighting' for other companies -- stepping in to help their products make it out on time.
1996-2001
Graphics engine programmer on PS2, PC and Gamecube games; also a few screensavers.
Inphase Software
September 1994 to February 1996
  • Modifying an existing relational database management system (Inphase/EIS) for client/server operation
  • Writing administration tools for the above
  • Porting the new system on-site to several mainframe computers on very short timescales
  • Technical support for the new system
  • Interfacing the new system to other relational databases (Oracle and Ingres)
  • Designing, prototyping and starting the implementation of a personnel management tool, using Visual Basic with controls written in C++
Clef Business Systems
1993 to August 1994
  • Writing a real-time multiprocessing operating system in C and i860 assembler for the Penny and Giles (later TLA) PP-10 digital audio effects processor.
  • Writing audio signal processing effects for the above system
  • Researching novel sound synthesis techniques using the i860 DSP board in a NeXT Cube workstation and the Max audio processing visual language
D&H Games
1992 to 1993

I worked on a freelance basis completing the Tenebrae RPG project (see below) during this time. The project was a mere two months from completion when the company was forced to cease trading.

Goliath Games
1990 to 1992

Goliath Games was a small company in Aberystwyth, where I worked on a design for a role-playing game called Tenebrae, as well as a few other minor projects. Most of this work was for the Amiga and Atari platforms.

Ceredigion College of Further Education
1989-1990

I spent several rewarding months working part-time as a lecturer in Computer Literacy for the College, where I had to instruct a group of all ages and abilities in the fundamentals of computer use. This involved teaching them how to use simple applications, such as a word processor and a spreadsheet, a little on computer architecture and programming, and a lot of work boosting their confidence. I am very proud that one of my students went on to do a Computer Science degree at Aberystwyth, and another worked as a secretary in the same department.

Education

Aberystwyth University, PhD
2014 to present

Working towards a PhD, whose working title is "An application of evolutionary algorithms to artificial neuroendocrine systems". I'm trying to see if it's possible to "breed" artificial neural networks which also have artificial glands releasing "hormones" which affect the network.

Aberystwyth University BSc Computer Science
2010 to 2014

Achieved a high First. Also Best Overall Degree within the department, Best Final Year Project, Best Group Project and Glyn Emery Prize for highest first year marks.

  • Third Year
    • Agile Methodologies: 89%
    • Computer Vision: 87%
    • Ubiquitous Computing: 87%
    • Machine Learning: 85%
    • Developing Internet-based Applications: 85%
    • Professional Issues in the Computer Industry: 86%
    • Major Project: 90%
  • Industrial year (researcher in Intelligent Robotics group at Aberystwyth): 96%
  • Second Year
    • Advanced Mathematics Driving License: 97%
    • Program Design, Data Structures and Algorithms: 89%
    • Image Processing: 86%
    • Artificial Intelligence Toolbox: How to Find Solutions: 86%
    • Software Development Lifecycle: 86%
    • User Centered Design and Human/Computer Interaction: 83%
    • Modelling Persistent Data: 89%
    • Artificial Intelligence Toolbox: Programming in an Uncertain World: 96%
    • Intelligent Robotics: 79%
  • First Year
    • Introduction to Computer Hardware, OS and Unix tools: 99%
    • Introduction to Theoretical Computer Science: 96%
    • Concepts in Programming: 83%
    • Chaos, Communications and Consciousness: 96%
    • Software Development: 94%
    • Web Development Tools: 98%
    • Introduction to Communications and Telematics: 98%
Aberystwyth University Lifelong Learning
2004-2005

I studied Welsh to a beginner/intermediate level.

University College of Wales, Aberystwyth
1986-1988

I studied here for two years, pursuing a joint Computer Science and Physics degree. Unfortunately, I failed the physics part of the course at the end of my second year, and was unable to continue. I have now returned the University to complete this course.

Awards and Prizes

  • Aberystwyth Doctoral Career Development Scholarship (12 awarded across the university)
  • Best Final Year Computer Science Project 2014
  • Highest Graded Computer Science Degree 2014
  • Glyn Emery Prize for Best First Year Student 2011

Samples of work

C++ code
  • Monitor is the Qt-based robot monitoring program I wrote during my industrial year, which uses a configuration file to describe a user interface displaying certain variables which are presented to the program in UDP packets.
  • Angort is a stack-based concatenative programming language implemented in C++. Although based on Forth, it goes much further. It includes local variables and parameters, lists, hashes, full garbage collection (based on reference counting and cycle detection), anonymous functions and full lexical closure.
Documentation
  • Documentation for Angort (see the previous section) is available here.
  • Academic publications can be found above.
Web design

Interests

  • I have developed a great deal of software for my own use, including the Angort programming language (which I also use a great deal), and the (now rather elderly) Sapphire audio processing language, which can be found at pale.org/sapphire/. Other examples include a multiuser graphical game, currently a work in progress; and a set of generative music tools. I was also one of the core coders of the early multiuser game AberMUD.
  • I develop generative music pieces which have been performed on several occasions, involving homemade electronic peripherals such as a dataglove, using custom software to communicate with the powerful Supercollider language.
  • I have worked for over a decade with a local community theatre group, and have played everything from Toad in Wind in the Willows. to Shakespeare, to the tortured characters of Sarah Kane and Edward Bond. This have given me a great deal of confidence as a public speaker, and I also manage the group's web site at www.castawaytheatre.com.
  • Fencing is a sport I practiced as a student and have just recently resumed. It keeps me fit, and my mind active.
  • Photography and digital photo manipulation and painting in acrylics have been useful for creating artwork in games. I have also photographed the weddings of two close relatives, creating large-format photobooks to a professional standard.
  • Short story writing has improved my written communication skills.
  • I play several instruments, and have written an album of short piano pieces.

References

Academic reference
Dr Mark Neal (PhD supervisor)
Department of Computer Science
Llandinam Building
Aberystwyth University
Aberystwyth
Ceredigion
SY23 3DB
Professional reference
John Jones-Steele (former employer)
West Coast Software
Unit 11.1.1
Aberystwyth Science Park
Aberystwyth
Ceredigion
SY23 3AH