Curriculum Vitae - Johan Liseborn

You can also read a more information description of me.

Castlerock AB - Systems Engineer (Founder)

Apr 2015 – Present

Castlerock offer consultancy services in programming, software architecture, and coaching in software engineering practices. We also perform technical pre-studies and technical due diligence. We specialize in utilizing Free Software, Open Source software, and an agile mindset to solve interesting problems.

Current technologies: Embedded systems, IoT, TI-RTOS, Ubuntu Core, Snapcraft, ARM, Ethereum, C/C++, Qt, Clojure, ClojureScript, Om, React, Common Lisp, Scala, Python, Go, Erlang/Elixir/LFE, OpenGL, Node.js, JavaScript, Electron, AWS, ZeroMQ, Linux, OpenBSD, RaspberryPi

Wallrite Interactive AB - Systems Engineer

Apr 2015 – Jul 2016

Development of large, digital, interconnected whiteboards. The whiteboards utilize short throw projectors and touch technology (we started out using digital pens, but have moved to only use touch). You can use one to four projectors for wall sizes from about two meters to about eight meters (even larger installations are possible, we haven’t really tested the upper limit yet). Several geographically distributed systems can be connected, and participants in the different locations can see real-time updates of what the other participants are drawing. There will also be desktop and mobile versions of the system, and all different versions can be interconnected in real-time.

The whiteboard is driven by an appliance box running Linux and our whiteboard application.

We started out building the system on Electron and Javascript, but have now moved to Qt/C++, as we want something much less resource demanding than Electron/Javascript, so that we can keep the appliance box as small and cheap as possible. Using Qt/C++ also means that we will be able to use the same basic components both for the appliance, desktop application, and mobile apps. As a fun fact, it is possible to run the current system on a Raspberry Pi with excellent performance (but only using one projector, the RPi cannot drive more).

We are a small team, and thus my role spans everything from product definition to system design and implementation.

Current technologies: C/C++, Qt, Yocto, ClojureScript, Javascript, CoffeeScript, Node.js, Paper.js, Electron, Om, React, HTML5/Canvas, Python, Java, ZeroMQ, Bluetooth, multi-touch, iOS, Android, digital smart pens, digital printing, short throw projection, Linux.

Magine - CTO / Lead Developer

Oct 2011 – Mar 2015

Development of an internet based platform for delivery of live (linear) TV, as well as recorded TV, packaged as a subscription service for TV consumers.

I was the first employee of Magine, the lead developer, and CTO. I was also the technical lead of the team that launched Magine (then TVoli), that developed the initial prototype showing it was actually possible to stream live TV over the internet.

At Magine, I lead the work of developing the Magine streaming system, consisting essentially of two major parts, one part doing injection of TV signals, transcoding, and DRM, the other part dealing with meta data around programs, different clients (e.g. web, mobile phones), and streaming.

I also worked extensively with the development organization processes, together with the head of engineering, and I was part of the Magine management team.

Technologies: Scala, Finagle, Cassandra, Zookeeper, Kafka, Avro, Node.js, CoffeeScript, JavaScript, Clojure, Python, AWS, Linux, OpenBSD.

Glactic - Lead Developer

Nov 2010 – Oct 2011

Development of real-time web services and video chat solutions.

Glactic was sort of an incubator for interesting projects, with the idea of doing prototypes or initial versions of systems and services, and then potentially spinning them out to separate businesses.

When I came on board, the project we started was an online dating platform, which may not have been completely original at the time, as there already existed several well established such services. The twist was that in addition to the normal profile matching, we would also offer online, real time speed dating, including chat, voice, and video.

The basic service, including profiles and matching was not that tricky. The real problem was in the voice and video parts. We wanted real time performance, and very good quality for both voice and video, or the speed dating would not work. We investigated several products and services for voice and video that existed on the market, but none met our requirements. In the end, we implemented the whole voice and video solution ourselves, using an open source, Erlang based voice and video server, our own Flash based web client, and a javascript based signalling layer to setup and tear down communication sessions.

At the point where the service was up and running and all fundamental features where in place, the project was handed over to another group of developers, and the original team turned to work on a prototype streaming platform for live (linear) TV. The project was called TVoli, and was spun out into a new company with the same name. The development team joined the new company, that later was renamed Magine (and even later MagineTV).

Technologies: Python, Erlang, MySQL, MongoDB, Linux, git, Lucene

Klarna - Developer / Team Lead

Sep 2010 – Nov 2010

Team Leader and developer of web based payment services.

Technologies: Erlang, OTP, Mnesia, Linux

TriOptima - Software Engineer

Apr 2009 – Aug 2010

Development of web based financial services for handling OTC derivatives. I was part of the development team for one of the services, primarily working with development of the Python/Django based web interface for the customers, and the underlying database. I was also leading a project to improve how to package and deploy new versions of the service together with the Operations team.

Technologies: Python, Django, MySQL, RabbitMQ, JQuery, Git, Linux

Two Story Software - Lead Developer (Founder)

Feb 2008 – Apr 2009

Responsible for platform evaluation and selection, as well as system architecture and design for an internet-based software-as-a-service solution. Responsible for implementing the solution, as well as guiding and helping the other developers.

Technologies: Python, Django, Apache, memcached, Javascript, JQuery, CSS, (X)HTML, Bazaar, Linux, Trac, Scrum

Oracle - Director of Architecture

Apr 2006 – Feb 2008

Responsible for the system architecture of a J2EE-based highly available and scalable communications platform (VoIP, presence, instant messaging) in a team of about 20 developers based in Sweden and San Francisco. Team leader for the Swedish development team. Instrumental in introducing an agile, Scrum-based project steering structure. Scrum master for the Swedish development team and project coordinator between the teams in Sweden and San Francisco.

Technologies: Java, J2EE, JBoss, OC4J, JDBC, Ant/Maven, JGroups, MySQL, SIP, TCP/UDP/IP, SIP, CVS, F5 BigIP, Linux, Scrum

Hotsip - CTO (Founder)

Dec 1999 – Apr 2006

Responsible for the technical side of the products developed by Hotsip, including a Java-based highly available and scalable SIP (VoIP, presence, instant messaging) server integrated with the JBoss application server, as well as a SIP soft phone. Responsible for driving the architecture and design of the Hotsip products, including software architecture and network topology. Lead developer and team leader on the SIP Server. Responsible for standardization work, primarily within the IETF and 3GPP. Part of the Hotsip management team, as well as the Hotsip Board of Directors. Initially responsible for the internal Hotsip IT infrastructure, including fixed and wireless network, routing, firewalls, file servers, and backups.

Technologies: Java, J2EE, JBoss, JDBC, Ant/Maven, Python, C/C++, MySQL, SIP, TCP/UDP/IP, SIP, CVS, F5 BigIP, Linux, OpenBSD, FreeBSD, PF, Bind, Samba

Hotsip - Member of the Board of Directors

Dec 1999 – Apr 2006

Work on the strategic direction of the company, budgets and financing.

Ellemtel - Research Engineer

1997 – Dec 1999

Researcher in the field of Internet services. Worked with several different services, including position based services for the mobile network, and communications services based on SIP.

Technologies: Java, Python, Tcl/Tk, KIF/KQLM, AI/Intelligent Agents, Scheme, Erlang, C/C++

Ericsson - Software Engineer

1989 – 1997

Initially worked as developer on the MD110 PBX (about 2 years), responsible for number analysis and route optimization. Then moved to work on development support systems, such as SCM systems and processes for handling product information (including both code and documentation) for large, distributed projects.

Technologies: Plex, C++, Perl, shell scripting, CVS, Metaphase

Linköping University - Teaching Assistant

1994 – 1995

Plan and develop course material for a course in C++ and OOP. Teach classes and tutor project groups in the analysis and design project that was part of the course. Evaluate and grade the projects.

Technologies: C/C++, OOA, OOD, OOP

Linköping University - MSc Conputer Science & Engineering

1991 – 1995

Swedish Army - Military Service

1988 – 1989

Åsö Gymnasium - Technical College, Telecommunications