Jim Morrison

Software engineer based in Barcelona


My skills in software engineering are based on physics, maths and computer science. They have grown through my experience of working in many diverse sectors. My code is robust, clean, readable and testable.

Here I will show some of the software I have written in my spare time, such as the program that produced the photo mosaic on the left. Roll over it to zoom in.
✓   B.Sc. Physics  -  University College London  -  69%
✓   M.Sc. Computer Science  -  University of Bristol  -  69%
✓   Flutter, Java, Android, Kotlin, HTML, JavaScript, CSS, Swing, JavaFX, multithreading, Clean code, SOLID...
✓   Medical imaging, algorithmic trading, banking, NLP, flight management, computer vision, video editing...
✓   Siemens Molecular Imaging, Sony R&D Labs, Amadeus, UBS, Misys, Artificial Solutions, Gestoos, Trality...
✓   Native English, fluent Catalan, good French, reasonable Spanish, basic Greek and German.
✓   Friendly and communicative, with a logical approach based on physics and mathematics.



Flutter


I currently work as a senior Flutter developer, making an algorithmic trading app. To me, Flutter seems to have been very well designed, and I think it guides the developer towards writing cleaner and more solid code. I think it has the potential to become one of the main front-end SDKs, and I look forward to seeing how it evolves.

Flutterbys is a program I made to investigate Flutter animations. This program was very quick and easy to write, especially with the help of the hot reload. I actually wrote it as a desktop app, as the workflow seemed smoother, and then I ported it to the web in five minutes. I am very impressed with how fast Flutter development can be.

Roll over the butterflies to see them fly.
This is another program I made while experimenting with Flutter. It is an aid to learning and practicing a complex part of the Basque language.



Java


Java is one of my core programming skills, 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 solid 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, using the Swing toolkit, 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, using Swing. 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 five years of commercial experience with Android, and I really enjoy working with it to make beautiful apps that are useful to people, and that they enjoy using. I feel that my strong knowledge of Java helps to me to write apps that are solid and extensible.
Fidget Flowers is an app I wrote that 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.
This video shows a chart component I made while I was exploring different methods of data visualisation in Android. I tap the refresh button a few times to simulate getting some new data.



Kotlin


Kotlin seems to be a nice replacement for Java in Android. I like the simplicity of the language and the way it guides the developer to write safer code. I have used Kotlin in my work, as well as in my own projects.
This is a program I made while experimenting with Kotlin. It's a simple memory game based on Mahjong Solitaire.



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.













Wavelength


Frequency


Amplitude


Wavelength


Frequency


Amplitude

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.





JavaFX


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.



J2ME


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.

  My LinkedIn page   My CV / Resume   naiadsoftware@gmail.com