Rickard Eilert
Personal Summary
Skilled computer engineer with a positive attitude. Programming for 27 years with experience as developer, architect, project manager, product owner, and presales.
Can discuss business deals, project roadmaps, and technical implementation details with customers and partners in an international context. In any role, interested in optimising a project, involving multi-site teams, multi-vendors, information sharing, risks, hard deadlines, budgets and people with different personalities and responsibilities.
Currently looking for interesting job opportunities in software companies as a self-employed consultant. Please email contact@rickardeilert.com to discuss work.
Download CVWork Experience
In C++, developed a web browser, JS interpreter, custom game engine to make a real-time strategy game.
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.
Meetings with partners, current customers, and new customers all over Europe and Middle East, to discuss potential business deals with Zenterio, a company which provided software for STBs (set-top boxes). Part of the product team, which steered the development at Zenterio to fit current and future customers demands. As a technically savvy salesman, developed demos, discussed technical details and made time and cost estimations. Managed a UI design research cooperation with the Linköping University. Experimented with UI performance on STBs during free moments, then developed a new demo product which has the world’s fastest HTML UI on low-end STBs. Unfortunately, Zenterio failed to acquire planned investments, which lead to the bankruptcy of the company and an abrupt end to promising businesses.
Responsibility for the long-term strategy, technical planning, budgeting, integration and performance optimisations of web browsers on various embedded platforms running Zenterio OS. Prioritised tasks to make sure requirements and deadlines were met by keeping in daily contact with customers and developers on several sites. Used knowledge about web browsers gained from previous career at Opera Software, HTML5 app performance research and not least from having built a browser from scratch at home. Lead Zenterio to successfully integrate the Cobalt browser and certificate the YouTube TV app on several STBs. Furthermore, lead the integration of the WPE (WebKit Platform Embedded) browser, and improvement of its compatibility with several legacy apps using MSE+EME (dashplayer, hasplayer). Capability to work under stress during a hectic year, which included overtime and weekly travelling between developers in Linköping, RT-RK consultant developers in Belgrade, customer + development teams at Deutsche Telekom in Darmstadt, and partners at Metrological in Rotterdam.
Two years on site at Deutsche Telekom’s offices in Darmstadt (Germany) as an integration expert. All-knower, involved in more or less all activities in the project. Helped Zenterio to create an abstraction of Huawei’s backend APIs, and helped Telekom’s UI Team to write an HTML UI for the Zenterio OS, using mentioned APIs + STB-control APIs. Clarified requirements, implemented features, demonstrated new deliveries for Telekom employees, participated in troubleshooting and performance-improving taskforces. Involved in porting twenty apps to the Zenterio platform, including Telekom HTML5 apps, Sky, YouTube, Netflix, Amazon, and more.
Analysed customer requirements and programmed the backend abstraction APIs for JavaScript developers in C++. Sole developer of an HTML5 application used for testing all APIs. Starting as a side project, the application is now a crucial part of Zenterio’s workflow, and used by hundreds of developers, testers and customers every day.
Working on in-house projects, designing and implementing a framework which assists cross-TV-platform HTML5 app development. It provides a JavaScript library that works for many TV platforms by wrapping their platform-specific code, and it has a build system written in Python, which packages code for supported backend platforms. Researched HTML5 run-time performance and web browser inner workings. The company Systemagic was acquired by Zenterio.
Wrote a presentation-creating HTML5 app, which works like Google Slides (PowerPoint). It pushed the limits on what was possible and resulted in a list of suggested improvements and bug reports on how Opera Presto handled Javascript, the DOM, CSS3. Thanks to that, Opera became more standards-compliant. Work also involved solving bugs in the Bream UI, which improved the user experience in Opera Mobile/Mini for hundreds of millions of users. Worked full time from the office in Linköping during summers, and remote with colleagues in Linköping, Oslo, Wrocław at 25% whilst studying full time.
Worked 25% arranging events for presumptive and current IT students, giving advice concerning career and specialisation opportunities, informed about student aid, scholarships, had performance reviews with all freshmen, gathered statistics and proposed improvements for the IT programs to the Study Board.
Worked on weekends during military service (conscription), implementing new features on a Swedish web community called poeter.se. E.g. improving security and integrity by rewriting how a user password was stored and reset. HTML5, PHP and MySQL.
Added features and rewrote parts of the company's ERP system written in HTML5, PHP and MySQL. Changed the code which generated the invoice pdf so that all logos, names etc. were not hard-coded. This allowed customisation of the generation of the invoice so that Crepido could sell their in-house developed ERP system to other companies.
Competence Domains
| Game Dev, Perf, SDL, OpenGL, AI, Computer Gfx, Gimp | Parsers, Compilers, AST, Asm, VHDL, Microinstr | Programming Paradigms Design patterns | C/C++, Pascal, Python, Basic, Java, Ada, Lisp, Prolog, VBA |
| HTML5 JavaScript Web Browser Dev | Network Protocols PHP CGI NodeJS SQL | Setup OS, LAMP, Filesystems | Linux Android Windows IPTV |
| Language Tech Distributed systems | Presales, Req Spec, Time/Cost Estimation | Project, Product, Team Management, Agile | Jira, cvs, svn, git Emacs, Eclipse, Crucible |
Academic qualifications
Linköping University and Albert-Ludwigs-Universität Freiburg
Linköping university and École Polytechnique de Montréal
Communications squad commander at the Leadership regiment Enköping
Linköping university
Extended Science program, profile mathematics/informatics at Katedralskolan Växjö
Languages
English, Swedish, French, German, Italian, Spanish, Portuguese, Catalan, Polish, Icelandic, Russian and Serbian.
Leisure
Miscellaneous
- Started and presided programming group during upper secondary school for 3 years. Regular programming meetings including snack sponsored by the school.
- Competed twice in the Swedish qualifications for the International Olympics in Informatics. Was among top 10 in Sweden. Won a programming scholarship in upper secondary school.
- Won some money taking part in IMPA and a sorting algorithm competition arranged by PicSearch.
Hobby programming projects
Wrote a C++ library for creating gui components for games. As I added more and more features, it turned into a full fledged Web Browser. Includes parsing of CSS, HTML and JS, building of a DOM, computing CSS, construction of a render tree, layouting, painting in different raster buffers, uploading to textures, and finally render with the GPU. CSS pseudo-classes and DOM bindings for its JavaScript Interpreter can dynamically change the content of the page. The end result is a customisable web browser which is fast and has 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. Profoundly learned about CSS, HTML, JavaScript, and inner workings of web browsers.
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. There are plans to add a JIT-compiler but still not clear for which architecture: x86, ARM or MIPS.
Developed an advanced suite of modular JS apps, a JS library and server-side PHP scripts talking to a MySQL database. It 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 app
- 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 interpreter
- A window system where multiple instances of all the above mentioned apps can be started and run in movable and resizable windows
Developed a real time strategy game resembling Age of Empires. It is written in platform independent C++ using SDL, has network support for up to 16 players, advanced pathfinding algorithm, and very low system requirements. In 2013 a sequel was made which has better graphics, fog of war, hills, more units, and a map editor.
Developed a C++ library which wraps SDL2 and adds methods usually needed when developing graphical programs. It includes a whole system of GUI objects, their events, updates and graphics.
Written in C++ and SDL. The AI uses the min-max algorithm and alpha-beta pruning. It usually defeats me.
As part of a PhD team in Canada, a program was written which analyses C++ code to find occurrences of design patterns. It also tries to find anti-patterns to propose refactoring of code.
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 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.
3D shoot 'em up game. Written in C++, OpenGL and SDL.
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. Special assembler instructions copied graphical tiles fast. It worked like a Super Nintendo.
Robot built by in a team at the university more or less from scratch using low-level C code, JTAG and ATmega16 processors. It could drive around and shoot a laser.
Wrote an Android app to manage projects with deadlines, milestones, members, documents, etc.
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.
Set up a web server and wrote 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. The client side part was written in HTML, CSS, and Javascript, whilst the server side was written in C++ using a self-developed C++ CGI-library). Also developed an Internet forum for a boat club where the members had different permissions to threads (read, write, admin).
Wrote a Tetris clone in Ada supporting network play for 2 players.
Designed a language called RiS and developed an interpreter for it in Lisp. The language looked a lot like JavaScript. It had support for arrays, user defined functions, selfmodifying code, dynamic binding of variables, and much more. The only thing it lacked was speed.
Using VBA, integrated the stock exchange program Reuters, into a sheet in Excel which showed all your portfolio’s shares, the covariance between them, current values, hedge parameters, and how to buy and sell to reach minimal risk. Everything updated in real time with data from the stock markets of the world.
During a project during the last year of upper secondary school, a skateboard platform game for DOS was developed in C++ and x86 assembler.
Developed small Windows applications in C++. A Solitaire clone, a Calculator, and Yatzy.
Wrote some smaller programs in 68k-assembler for a TI89 calculator.
Wrote a Pacman clone in QuickBASIC when 13 years old. The monsters had a well-working pathfinding algorithm.