Hello there!

I am Florin Lohan, an experienced IT professional, entrepreneur, occasional public speaker (Toastmasters, workshops), currently working with GWAP Financial as tech co-founder/CTO and also doing some freelancing work on the side. I am really great at building mobile, server and desktop applications that are related to multimedia or cloud/personal cloud. If you need one of these done, I'm your man.

I have a PhD in multimedia architectures from Tampere University of Technology (Finland), I worked for Nokia for almost 10 years in various positions and I founded/co-founded three companies so far. Over the years, I have also developed several open-source projects.

I have a deep knowledge of C, C++, PHP and Javascript, as well as HTML and CSS. I am knowledgeable about security. I also have vast experience in developing (server) applications for embedded hardware and IoT.

I am using Cordova for developing mobile apps and Electron for developing desktop apps. For web apps I am naturally using HTML/CSS/Javascript. On the server side I am using C, PHP/LAMP or node.js. Visually, the stack looks like this:

C is a widely-used low-level programming language. I have used it many times for fast, data intensive tasks or for complex algorithms.
C++ is a widely-used low-level programming language. I have used it along C for data intensive tasks or for complex algorithms.
JavaScript is the de facto language for giving life to webpages or web apps. I have used it in almost all projects that I have worked with over the last 10-15 years.
HTML5 is the de facto language for describing webpages and web apps. Not a programming language per se, but required for creating webpages and web apps.
Apache Cordova
Cordova is a widely-used framework for creating mobile applications (iOS, Android) using web technologies. I have used Cordova in all the mobile applications that I have created.
Electron is a widely-used framework for creating desktop applications (Windows, Mac, Linux) using web technologies. I have used Electron in several recent desktop applications.
Vue is a widely-used Javascript UI framework. I have used Vue in Odyssey. I am still learning.
Websockets are a real-time, bi-directional communication technology, used within the web framework. I have used Websockets in several web-based apps, mostly for pushing data from the server to the client(s).
AWS (Amazon Web Services)
AWS is one of the best known and wildly used cloud computing platforms. I have used AWS in all projects requiring a server side in the last 7+ years.
Node.js is a Javascript runtime environment, allowing servers to be written in Javascript. I have used Node in several servers where continuity, data caching and real-time communications were needed.
PHP is a widely used scripting language for server side web development. I have used PHP in various projects over the last 15+ years.
MySQL is a widely-used Database management system. I have used MySQL in various projects over the last 15+ years.

Current Projects

  1. 1.

    Odyssey is a mentoring platform, currently piloting in Toastmasters International organisation. Odyssey offers its registered users the possibility to find a mentor or a mentee in the system’s user database and establishes a mentoring relationship. The mentor-mentee matching is an automated process allowing the user to find the optimal pair based on common language, common skills and several personal preferences and characteristics. The mentoring process works in consecutive 4 week rounds allowing a follow-up of the mentoring relationship and a continuous update of preferences, namely skills and time availability. A long-term mentoring relationship is obtained after a trial an error process. This is enabled by the fact that in each round a new mentor/mentee is proposed if the previous matching was not viable as a longer term solution. Currently, Odyssey is available worldwide and timezones are considered when matching people. If you are a Toastmasters member and this sounds exciting, you can register here or contact me for more details.

    Odyssey is currently managed by a team of 7 volunteers, taking care of planning, growth, promotion, user experience, tech. I designed & implemented the project during the early stages, now I am the "tech lead" for a team of 3, including myself.

    From a technical point of view the Odyssey system is designed as follows: Input data is fed from a registration page and a feedback page (HTML+CSS+JS/Vue.js). The data is stored in a database (MySQL). The matching algorithm (C) assigns a score to each possible mentor-mentee pair (based on skills and personality) while flagging "impossible" pairs (because e.g. no language in common or the pair has met before). After this, the optimisation algorithm maximises the overall score, while obeying all constraints. Communication with platform members is done by automated emails.

  2. 2.

    Photostovis is an open-source, personal cloud solution for storing your personal photos and videos. Physically, your photos and videos are stored in a box connected to your home router. You can watch them from anywhere and from any connected device. Here is a direct link to a demo server that runs in my home.

    Technically, Photostovis is a client-server system. The client part is written in HTML5/CSS3/Javascript and uses HTTP(S) to communicate with the server. The server has been written in C and it is a specialised web server that, in addition to sending content to authorised clients handles media scanning, uses an in-memory dedicated database for storing information about the media, estimates the client bitrate and resizes the media in real time, on demand. It requires very few hardware resources, as it was targeted to run on hardware that can be found in routers and modems. A Raspberry Pi is a really powerful hardware platform for a Photostovis server.

  3. 3.

    Arrow is a web-based TODO/Time management and self-evaluation tool that I am providing as a free-to-use service for anybody. It allows you to plan your day, week, month and year, add habits and evaluate your day/week/month and year.

    Arrow is also a client-server application, with the client part written in HTML/CSS/Javascript and the server part written in C. Client data (tasks and learnings) is encrypted on the client (browser, in Javascript) and then it is transmitted to the server. So the server (and the service provider - me) does not have access to the client data, which protects the privacy of the users.

    Arrow uses two servers, for reliability. One runs from Amazon Cloud (AWS), the other one runs in my home.

Past Projects (selected)

  1. 1.

    Digiacademy is a publishing platform for mobile devices), allowing users access to subscribed content. Digiacademy supports audiobooks, ebooks (pdf) and courses (text, images and video).
    Digiacademy was developed as a subcontracted project for 10times Oy.

    Digiacademy is written using Cordova and it is available for iOS and Android from the respective app stores.

  2. 2.

    Finnlines Cargo is a B2B Cargo booking app (iOS & Android) for Finnlines customers integrating with Finnlines cargo booking system.
    I was part of the team (lead by Kii Oy) that created the concept together with Finnlines and then designed and developed the mobile app. I was responsible with the the technical concept and development.

  3. 3.

    Created the first Internet Radio application for S60/Symbian smartphones, in 2005. This was a demo, created while working for Nokia, as a reference for 3rd party Symbian application developers. S60 Internet Radio was created on the first phone that had both mp3 decoding capabilities and enough networking power to allow continuous streaming of data with sufficient bandwidth for the usecase.

  4. 4.

    Created MLauncher, an open-source music player for S60/Symbian phones. Screenshots here. MLauncher allowed playback of music and audiobooks stored as files in folders, something that the Nokia music player never implemented. Selecting the music to be played was done by selecting files and folders, and this way of selecting music was very much appreciated by its users. MLauncher worked well with text-to-speech applications, and as such was very appreciated by the blind and semi-blind community.

  5. 5.

    Created a sample application that listed data about multimedia codecs in an S60 phone. This was the only way to get a complete list of the codecs available in S60 phones.