Jim Morrison

I am a software engineer based in Barcelona with over fifteen years of commercial experience. I have worked for many high profile companies in diverse sectors. My background in physics and mathematics helps me to write programs involving complex business logic, and I have learned to write code that is robust, clean, modular, readable and testable.

On this page I will show samples of software I have written in my spare time, such as the program that produced the photo mosaic on the left.
• B.Sc. Physics (69%) - University College London
• M.Sc. Computer Science (69%) - University of Bristol
• Java, Android (Java), Flutter, JavaFX, Swing, HTML, JavaScript, OO, multithreading...
• Medical imaging, banking, natural language processing, flight control, video editing...
• Siemens Molecular Imaging, Sony, Amadeus, UBS, Artificial Solutions...
• English, Catalan and French, with a basic knowledge of Spanish and German
• Friendly and communicative, with a logical approach based on physics and maths


Java is my core programming skill, and over the years I have used it to solve thousands of problems facing the business domains I have worked in. I feel that I have left a body of clean and readable code which can be easily understood and extended by others.
Mosaikify is a program I wrote to make photo mosaics. It was written in Java and uses complex algorithms to generate mosaics with scattered tile images. I designed the program to be very easy to use, but with advanced options available if needed. I used Mosaikify to make the mosaic at the top of this page. Roll over it to zoom in.
My Language Notebook is another program I wrote in Java. It is a notebook to help people learn languages. When you hear a new sentence that you want to remember, you can add it to your notebook. You can categorise, sort and filter your sentences in many different ways. The audio for a sentence can also be added, so that you can practice copying the correct sounds. Sentences are stored in a project which can be exported and shared with others.

Android (Java)

I have about two years of commercial experience with Android, so I am still relatively new to this field, but I really enjoy working with it to make beautiful apps that are useful to people, and which they enjoy using. I feel that my strong knowledge of Java helps to me to write apps which are solid and extensible.
Fidget Flowers is an app I wrote which allows people to relax by creating beautiful moving flower patterns. This program required me to use my knowledge of Java programming, including threading, design patterns and memory management. I also made my own transitions API which is optimised for the requirements of this app, and which required my knowledge of maths.
Here are some other Android apps I have written in my spare time.


I am very interested in Flutter and the Dart language. To me, it seems to have been very well designed, and I think it has the potential to become one of the main app development environments. I look forward to working with it more.
This is a program I made while experimenting with Flutter. It is an aid to learning and practicing a complex part of the Basque language.

HTML / JavaScript

I don't have a great deal of experience in web development but I am always amazed to see the advances in this area, and what can now be achieved within a web browser. I think that HTML, in conjunction with CSS and various scripting languages, are becoming very powerful, and I have written various web apps to investigate this.

I wrote this program to demonstrate the principle of wave superposition. It uses JavaScript to draw onto the HTML5 canvas. Change the wave characteristics by adjusting the sliders to see how the resultant wave is affected.






This is another JavaScript program I wrote, to help people practice languages. It is basically a web player for the content made with my other program My Language Notebook (see above). Hover over the green bulb for instructions.


I have written many programs using JavaFX, both at work and in my spare time, and I find it very enjoyable to work with.
I wrote this program to allow users to examine and manipulate 3D Hydrogen orbital plots.


I wrote a number of mobile apps using J2ME. I always found it an enjoyable challenge to find ways of writing apps on devices with such limited speed, memory and APIs.
This video shows a program I wrote called Morrix Cube. It's a 3D Rubik's Cube emulator for J2ME mobile phones. This involved making my own 3D API and required the use of very efficient programming techniques due to the limited resources of J2ME phones.
© Jim Morrison 2019 Contact:  naiadsoftware@gmail.com Find me on LinkedIn