Rickard Eilert
Personal Summary
I am a 37 year old man from Sweden with a big appetite for life. I am an excellent software engineer as I have been programming at home since I was 10 years old. I spend my free time programming hobby projects, doing reps in the gym, running in the woods, on self-realisation, travelling, meeting people and studying languages. Currently I am working for Zenterio AB where I am responsible for the strategy, technical planning, integration and performance optimisations of various web browsers on our different embedded platforms. If you want to contact me, please email me.
Academic qualifications
European Languages
Linköping University and Albert-Ludwigs-Universität Freiburg
Linköping University and Albert-Ludwigs-Universität Freiburg
2012 – 2014
Master in Computer Engineering
Linköping university and École Polytechnique de Montréal
Linköping university and École Polytechnique de Montréal
2010 – 2012
Military service
Communications squad commander at the Leadership regiment Enköping
Communications squad commander at the Leadership regiment Enköping
2008
Bachelor in Computer Engineering
Linköping university
Linköping university
2006 – 2010
Upper secondary school
Extended Science program, profile mathematics/informatics at Katedralskolan Växjö
Extended Science program, profile mathematics/informatics at Katedralskolan Växjö
2003 – 2006
Professional work experience
Game Engine Developer at REAB2023 – 2024
In C++, developed a web browser, JS interpreter, custom game engine to make a real-time strategy game.
In C++, developed a web browser, JS interpreter, custom game engine to make a real-time strategy game.
Frontend Playback Engineer at Telia/TV42019 – 2023
Helped Telia transition from plugin-based video players to MSE/EME. HTML5 frontend development and especially JavaScript players integration and tweaking of dash.js on teliaplay.se and shaka.js on Chromecast. STB UI development. Youbora statistics integration. Familiarity with broadcast systems, video encoding, packaging, streaming, ad tech, subtitling, DRM, dash, smooth, hls.
Helped Telia transition from plugin-based video players to MSE/EME. HTML5 frontend development and especially JavaScript players integration and tweaking of dash.js on teliaplay.se and shaka.js on Chromecast. STB UI development. Youbora statistics integration. Familiarity with broadcast systems, video encoding, packaging, streaming, ad tech, subtitling, DRM, dash, smooth, hls.
Scrum Product Owner of Web Browsers at Zenterio AB2017 – 2019
Responsible for the strategy, technical planning, integration and performance optimisations of various web browsers on our different embedded platforms. Having daily contact with both external and internal stakeholders, I prioritise tasks to make sure requirements and deadlines are met. In addition, I keep up to date with trends and news in the world of web browsers to adapt the long term strategy of the company.
Responsible for the strategy, technical planning, integration and performance optimisations of various web browsers on our different embedded platforms. Having daily contact with both external and internal stakeholders, I prioritise tasks to make sure requirements and deadlines are met. In addition, I keep up to date with trends and news in the world of web browsers to adapt the long term strategy of the company.
Integration Expert at Zenterio AB2016 – 2017
On-site at customer’s, helping customer’s developers to integrate towards Zenterio’s platform. Lots of roles including: developer, handover demonstrating of deliveries, information spreader, all-knower, troubleshooter, requirement analyser, process supervisor, performance analyser, onsite administration, practical issues solver.
On-site at customer’s, helping customer’s developers to integrate towards Zenterio’s platform. Lots of roles including: developer, handover demonstrating of deliveries, information spreader, all-knower, troubleshooter, requirement analyser, process supervisor, performance analyser, onsite administration, practical issues solver.
Software Engineer at Zenterio AB2015 – 2016
Analysing customer requirements and programming the backend of JavaScript APIs in C++. Sole developer of an HTML5 application used for testing all JavaScript APIs. Starting as a side project, the application is now a crucial part of the company’s workflow, and used by hundreds of developers, testers and customers every day.
Analysing customer requirements and programming the backend of JavaScript APIs in C++. Sole developer of an HTML5 application used for testing all JavaScript APIs. Starting as a side project, the application is now a crucial part of the company’s workflow, and used by hundreds of developers, testers and customers every day.
Software developer at Systemagic AB2014 – 2015
Working on in-house projects, I have designed and implemented a framework which assists cross-TV-platform HTML5 application and portal development. It provides a JavaScript library API that works for many TV platforms by wrapping their platform-specific code, and it has a build system which packages code for the supported back-end platforms. For the moment I do research on HTML5 run-time performance and web browser implementations.
Working on in-house projects, I have designed and implemented a framework which assists cross-TV-platform HTML5 application and portal development. It provides a JavaScript library API that works for many TV platforms by wrapping their platform-specific code, and it has a build system which packages code for the supported back-end platforms. For the moment I do research on HTML5 run-time performance and web browser implementations.
Software developer at Opera Software2009 – 2011
I wrote a web application for creating presentations (think Power Point) using Javscript. It pushed the limits on what was possible and resulted in a long list of bug reports on how Opera handled Javascript, the DOM, CSS3. Thanks to me Opera became more standards-compliant. I also worked on the Bream UI solving nasty bugs. My work improved the user experience in Opera Mobile/Mini for hundreds of millions of users. During the summers I worked at the office in Linköping but during the semesters I worked from home 10 hours per week with people in Linköping, Oslo and Wrocław whilst studying full time.
I wrote a web application for creating presentations (think Power Point) using Javscript. It pushed the limits on what was possible and resulted in a long list of bug reports on how Opera handled Javascript, the DOM, CSS3. Thanks to me Opera became more standards-compliant. I also worked on the Bream UI solving nasty bugs. My work improved the user experience in Opera Mobile/Mini for hundreds of millions of users. During the summers I worked at the office in Linköping but during the semesters I worked from home 10 hours per week with people in Linköping, Oslo and Wrocław whilst studying full time.
Student counselor at Linköping University2009 – 2011
I worked 10 hours per week arranging events for presumptive and current IT students, giving advice concerning career and specialisation opportunities, informed about student aid, had performance reviews with all freshmen, gathered statistics and proposed improvements to the computer programs at campus.
I worked 10 hours per week arranging events for presumptive and current IT students, giving advice concerning career and specialisation opportunities, informed about student aid, had performance reviews with all freshmen, gathered statistics and proposed improvements to the computer programs at campus.
Web site developer at Staffan Wadsworth AB2008 – 2009
Part time during military service I worked from home implementing new features on: poeter.se. For example I improved security and integrity by rewriting how a user password was stored and resetted. PHP and MySQL was used.
Part time during military service I worked from home implementing new features on: poeter.se. For example I improved security and integrity by rewriting how a user password was stored and resetted. PHP and MySQL was used.
Programmer at Crepido ABJune – Aug 2007
I added functionality and rewrote main parts of the company's ERP system which was written in PHP and MySQL. The consultants were happy that they in the new system could see when their colleagues had vacation. I changed the code which generated the invoice pdf so that all logos, names etc were not hardcoded. This allowed Crepido to sell the business system to other companies which now could have their own customised invoice.
I added functionality and rewrote main parts of the company's ERP system which was written in PHP and MySQL. The consultants were happy that they in the new system could see when their colleagues had vacation. I changed the code which generated the invoice pdf so that all logos, names etc were not hardcoded. This allowed Crepido to sell the business system to other companies which now could have their own customised invoice.
Familiar programming languages and domains
C/C++ games SDL OpenGL | Networks Protocols Distributed systems | OS filesystems LAMP | Language technology |
Asm VHDL microinstr Parser Compiler AST | PHP SQL CGI | Java Python Lisp Prolog AI | OO & Modules Design patterns |
Ada Pascal VisualBasic | HTML CSS Javascript | Linux Android Windows | Emacs Eclipse cvs svn git |
Languages
English, Swedish, French, German, Spanish, Italian, Portuguese, Catalan, Polish, Icelandic and Russian
Show details…
Interests
Programming, enjoying life, working out, healthy living, european languages, family, friends, psychology, strategy games, artificial intelligence, philosophy, economy, politics
Miscellaneous
- During Upper secondary school I started a Programming Group, and was the president for 3 years. We met once a week, programmed and had a snack which the school sponsored.
- I have competed in the Swedish qualifications for the International Olympics in Informatics twice. I was among the top 10 in Sweden. I also won a scholarship in programming in Upper secondary school.
- I won some money taking part in IMPA and a sorting algorithm competition arranged by PicSearch
Programming projects
Web Browser2015 – 2018
This project has evolved from an earlier one called RSDL2, which is a library I wrote for creating gui layouts for games. As I added more and more features to it, this has turned into a full fledged Web Browser including parsing of CSS and HTML, building of a DOM computing its CSS, and construction of a render tree. Layouting of the render tree is made before painting the web page. JavaScript can dynamically change the content of the page. Furthermore, hardware accelerated graphics is utilised. I have created a customisable web browser with a small memory footprint. It can be integrated into other projects, and/or be used on low-end embedded systems. It is comparable to Google’s Cobalt web browser. Building this browser has taught me lots about CSS, HTML, JavaScript, and inner workings of web browsers.
This project has evolved from an earlier one called RSDL2, which is a library I wrote for creating gui layouts for games. As I added more and more features to it, this has turned into a full fledged Web Browser including parsing of CSS and HTML, building of a DOM computing its CSS, and construction of a render tree. Layouting of the render tree is made before painting the web page. JavaScript can dynamically change the content of the page. Furthermore, hardware accelerated graphics is utilised. I have created a customisable web browser with a small memory footprint. It can be integrated into other projects, and/or be used on low-end embedded systems. It is comparable to Google’s Cobalt web browser. Building this browser has taught me lots about CSS, HTML, JavaScript, and inner workings of web browsers.
JavaScript Interpreter2016 – 2017
I have written a JavaScript Interpreter in C++ which parses code into an Abstract Syntax Tree and then executes it. It has support for most commonly used features in newer JavaScript versions. It is easily extendible, and with an extremely small footprint, it is made to be integrated into other projects.
I have written a JavaScript Interpreter in C++ which parses code into an Abstract Syntax Tree and then executes it. It has support for most commonly used features in newer JavaScript versions. It is easily extendible, and with an extremely small footprint, it is made to be integrated into other projects.
Web application ecosystem2008 – 2014
I have developed a suite of modular JS programs, well-defined APIs, a JS library and serverside php scripts talking to a MySQL db. When writing web apps I reuse this code. It all resides on my own web/cloud server. Some web apps in the suite:
I have developed a suite of modular JS programs, well-defined APIs, a JS library and serverside php scripts talking to a MySQL db. When writing web apps I reuse this code. It all resides on my own web/cloud server. Some web apps in the suite:
- Clone of the popular Civilization game built with 4000 lines of JS code
- Chat program
- Media player using the Youtube API to gain access to the greatest media collection in the world
- Blog
- Colour picker
- File browser
- Glossary rehearsal program
- Editor with syntax highlighting
- A Javascript executioner
- A window system where multiple instances of all the above mentioned apps can be started and run in movable and resizable windows
RSDL22013 – 2014
C++ Library written by me which wraps SDL2 and adds methods I usually need when developing games like for example a whole system of GUI objects, their events, updates and graphics.
C++ Library written by me which wraps SDL2 and adds methods I usually need when developing games like for example a whole system of GUI objects, their events, updates and graphics.
Romans and Barbarians2007, 2013 – 2014
In 2007 I developed a real time strategy game ressembling Age of Empires with a friend. It was written in C++, platform independent with SDL, network support for up to 16 players, advanced pathfinding algorithm, very low system requirements.
In 2013 I decided to make a sequel.
In 2007 I developed a real time strategy game ressembling Age of Empires with a friend. It was written in C++, platform independent with SDL, network support for up to 16 players, advanced pathfinding algorithm, very low system requirements.
In 2013 I decided to make a sequel.
Chess game2012
Written in C++ and SDL. The AI uses the min-max algorithm and alpha-beta pruning and it's good.
Written in C++ and SDL. The AI uses the min-max algorithm and alpha-beta pruning and it's good.
Design Pattern analyser2012
Part of a PhD team I wrote a program which analysed C++ code to find occurrences of design patterns. It also tried to find anti-patterns to propose refactoring of code.
Part of a PhD team I wrote a program which analysed C++ code to find occurrences of design patterns. It also tried to find anti-patterns to propose refactoring of code.
PolyBanque2011
A distributed application written in Java. Clients simulate different banks and are started on different computers communicating over TCP. Any client can be crashed anytime. Even so, the programs manage to keep their money data from corruption and transactions atomic.
A distributed application written in Java. Clients simulate different banks and are started on different computers communicating over TCP. Any client can be crashed anytime. Even so, the programs manage to keep their money data from corruption and transactions atomic.
Language Translator2011
A program that identifies lemmas, part-of-speech, parses sentences into tree- structures which then are translated with a dictionary, and the word order is changed if necessary.
A program that identifies lemmas, part-of-speech, parses sentences into tree- structures which then are translated with a dictionary, and the word order is changed if necessary.
Raptor 22011
3D shoot 'em up game. Me and a friend wrote it in C++ using OpenGL and SDL.
3D shoot 'em up game. Me and a friend wrote it in C++ using OpenGL and SDL.
Köttkvarnen2010
A 14 MHz computer built on four small Programmable Logic Devices programmed using VHDL and ModelSim. It had video output to a TV through a scart cable, and input came from an old computer keyboard. It worked like a Super Nintendo.
A 14 MHz computer built on four small Programmable Logic Devices programmed using VHDL and ModelSim. It had video output to a TV through a scart cable, and input came from an old computer keyboard. It worked like a Super Nintendo.
Yxmördarn2010
Robot built by my team at the university more or less from scratch using low-level C code, JTAG and ATmega16 processors.
Robot built by my team at the university more or less from scratch using low-level C code, JTAG and ATmega16 processors.
Android app2009
As part of a team I wrote an Android app to manage projects with deadlines, milestones, members, documents, etc.
As part of a team I wrote an Android app to manage projects with deadlines, milestones, members, documents, etc.
Bloodbath2008
A clone of the popular game Liero where two worms in real time are trying to kill each other with a grand arsenal of weapons.
A clone of the popular game Liero where two worms in real time are trying to kill each other with a grand arsenal of weapons.
Web communityMaj – Aug 2005
Set up a web server and wrote in HTML, CSS, Javascript, C++ (made my own cgi-library) a community where you could become member, have a presentation page, friends list, guest books, upload files, write in forums and chat with other members online. Also made an Internet forum for a boat club where the members had different permissions to threads (read, write, admin).
Set up a web server and wrote in HTML, CSS, Javascript, C++ (made my own cgi-library) a community where you could become member, have a presentation page, friends list, guest books, upload files, write in forums and chat with other members online. Also made an Internet forum for a boat club where the members had different permissions to threads (read, write, admin).
TetrisMarch 2007
Wrote a Tetris clone in Ada supporting network play for 2 players.
Wrote a Tetris clone in Ada supporting network play for 2 players.
RiSNov – Dec 2006
Designed a language called RiS and developed an interpretator for it in Lisp. The language reminds of C and it had support for arrays, user defined functions, selfmodifying code, dynamic binding of variables, and much more. The only thing it lacked was speed. 2012 I started work on a compiler in C++ which is supposed to replace the interpretator.
Designed a language called RiS and developed an interpretator for it in Lisp. The language reminds of C and it had support for arrays, user defined functions, selfmodifying code, dynamic binding of variables, and much more. The only thing it lacked was speed. 2012 I started work on a compiler in C++ which is supposed to replace the interpretator.
Räkna med pengarSept – Dec 2006
Integrated VBA, the stock exchange program Reuters into a sheet in Excel which showed all the shares in your portfolio, the covarians between them, current values, hedge parameters, and how to buy and sell to reach minimal risk. Everything updated in real time from the stock markets of the world.
Integrated VBA, the stock exchange program Reuters into a sheet in Excel which showed all the shares in your portfolio, the covarians between them, current values, hedge parameters, and how to buy and sell to reach minimal risk. Everything updated in real time from the stock markets of the world.
CB SkatingJan – Apr 2005
As project work last year in Upper secondary school I wrote a platform game for DOS in C++, Assembler.
As project work last year in Upper secondary school I wrote a platform game for DOS in C++, Assembler.
Windows applicationsAug 2004 – May 2005
Developed small Windows applications in C++. A Solitaire clone and a Calculator.
Developed small Windows applications in C++. A Solitaire clone and a Calculator.
68k Assembler2003
Wrote some smaller programs in 68k-assembler for my TI89 calculator.
Wrote some smaller programs in 68k-assembler for my TI89 calculator.
TjockemonSummer 2000
13 year old I wrote a Pacman clone in QuickBASIC. The monsters had a good AI.
13 year old I wrote a Pacman clone in QuickBASIC. The monsters had a good AI.