Consultant | Henrik Eiriksson |
Address | Fåborgvej 75A. 1.sal. 5762 Vester Skerninge, Denmark. |
Phone | +45 36173404 |
Born | 1973 |
Professional experience since | 1998 |
I work focused, both individually and on teams. I'm quick to grasp complex issues, existing systems and new technologies. My professional knowledge is broad and deep since Ive had opportunities to work intensively on a wide range of projects and technologies throughout my 20 year career as an IT consultant. See project experiences »
I've handled a range of roles within IT-projects for the pharmaceutical, finance & banking, media, telecom's, auction and transport industries, i.e.:
Systems architect, consultant, lead dev. & ”coach”, technical project lead, systems developer, troubleshooter, tester and technical writer.
I'm known for my responsible work attitude, patience, sense of humor, social skills and ability to adapt to new circumstances.
Expert in: object-oriented analysis, design and programming, data-modelling, backend development, web applications, Java (J2SE & J2EE), Linux, SQL, Wicket web-framework, Hibernate, PHP, Symfony2 web-framework.
Databases: PostgreSQL, MySQL, Oracle.
AP Graduate in Computer Science - 1998, Lyngby' Uddannelses Center.
Final grade: 10.
Graduate thesis: W.I.M.P (Word.Internet.Media.Publishing) a Content Management System which today has matured into a commercial software product that's used by Danish State Railways, Danish Industry Trade Union and a number of Danish Ministries.
Danish | Native proficiency (speaking, reading, writing). |
English | Native proficiency (speaking, reading, writing). |
Icelandic | Professional working proficiency (speaking, reading), basic writing. |
2005 — | Freelance IT consultant. | Solvation Consulting |
2003 — 2005 | CTO, responsible for IT development and operations. | Mezzo Media |
2001 — 2003 | IT consultant. | Select-IT |
1999 — 2001 | Systems developer, Java/Oracle Consultant. | Guide Consult / Framfab A/S |
1998 — 1999 | Developer / Consultant | Netmester A/S (now Kruso ») |
Client | IntelliFinder (telecoms, fiber-optic) |
Project description | Code-review (with emphasis on security and stability) of the clients in-house developed task-management software which is specialized towards roll-out of fiber-optic networks. Main customer of the system is danish incumbent telecom TDC. My main responsibility was to coach IntelliFinders developers in the mindset and use of design-patterns and Test Driven Development. I also helped with refactoring of the codebase to support automated testcases, which were lacking. I reviewed incidence reports from TDC and proposed solutions. Finally, I developed a tool to map out the dependencies of the system and produce a pivot-table to give the CTO an overview of the codebase complexity and help identify trouble-spots in the codebase. |
Technologies used | PHP, PHPUnit, Apache2/nginx, Node.js, Typescript, Angular, MongoDB, Docker. |
Role on project | Consultant |
Year | 2021 — 2022 |
Client | DB Cargo (railways) |
Project description | Code review of internally developed software with special emphasis on error-handling techniques, security and stability. Produced report with recommendations and explanations for found bugs. |
Technologies used | Node.js, Angular, Typescript, Javascript, SQL, MySQL |
Role on project | Consultant |
Year | 2019 — 2021 |
Client | Deutsche Bahn (railways) |
Project description | Code quality review of clients internally developed software and coaching of developers. Special emphasis on error-handling techniques, security and stability. Produced report with recommendations and explanations for found bugs. |
Technologies used | Java, Android, PHP, MySQL, Linux |
Role on project | Consultant |
Year | 2018 — 2019 |
Client | VF Auktion (online auctions) website: www.vf-auktion.dk » |
Project description | Redesign and implementation of online auction website for vintage stamp collectors. Customers can bid online on the running stamp auctions and buy stamps on after-sale. Website is fully integrated with online card-payment system and the clients backend business systems, automating invoicing, package-label printing and financial reporting. |
Technologies used | PHP, Symfony2, JQuery, CSS, HTML, MySQL, Linux, NetBeans |
Role on project | Consultant |
Year | 2014 — ongoing |
Client | Microwave News (media) website: microwavenews.com » |
Project description | Technical operations and maintenance of Drupal website. |
Technologies used | PHP, MySQL, Drupal, CSS, HTML |
Role on project | Consultant |
Year | 2014 — ongoing |
Client | Sylvester Hvid & Co. (media) |
Project description | Adding functionality to "ImageBank", an internally developed digital asset management system that I was architect and lead dev. on. ImageBank was commissioned by VinSprit koncernen (now Pernod Ricard) for their entire marketing image library, while I was CTO at Mezzo Media. Mezzo was later acquired by Sylvester Hvid & Co. |
Technologies used | Java J2EE (Tomcat, Servlets, JDBC, JavaMail), MySQL, Velocity Templates, ImageMagick, XML, HTML, CSS, Javascript, Eclipse, Linux, Windows Server |
Role on project | Consultant. |
Year | 2011 — 2012 |
Client | VF Auktion (online auctions) |
Project description | Taking over from previous dev. for adding functionality to, and maintenance of clients internal backend business system. The client runs an online auction of vintage stamps. Tasks: moving operations from Windows to Linux servers, automated backup system, performance optimizing auction website, integrating backend with Danish Postal service and DPD package delivery systems, automating PDF creation for auction catalogue. |
Technologies used | PHP, HTML, Java, Javascript, MySQL, Linux, NetBeans, shell-scripting |
Role on project | Consultant |
Year | 2010 — ongoing |
Client | BaneDanmark » (railways) |
Project description | Upgrade of BaneDanmark's main operations planning system PBase. The system is a webapplication based on Java/JSP/Tomcat and coupled to Oracle database via BC4J persistence mapping framework. |
Technologies used | Scrum, Java, Oracle, PL/SQL, JDBC, JSP, BC4J, HTML, JavaScript, Ajax |
Role on project | Consultant |
Year | 2008 |
Client | VP Securities (trading, finance) |
Project description | Adding new functionalities to VP Securities' "AktieBog" system for running General Assembly meetings and "InvestorPortalen" which is a self-service platform for investors. |
Technologies used | Scrum, Java, Struts, Hibernate, DB2, Websphere |
Role on project | Consultant |
Year | 2008 |
Client | Københavns Energi (utilities) |
Project description | Emergency troubleshooting and stabilizing of K.E's TastSelvService website where electricity and gas consumers log in to report their meter readings for billing etc. This assignment had highest attention from management as the system was crashing multiple times a day under load. It turned out that the web-application never closed its database connections and thus ended up starving the database server of resources. I quickly identified the problem and patched the source code so that database connections were freed straight away. Relieved management and happy DBA's. K.E. then hired me to maintain the system. |
Technologies used | Oracle Portal, Java, JDBC, JSP, PL/SQL |
Role on project | Consultant |
Year | 2007 — 2008 |
Client | Nordea (banking) |
Project description | Nordea Wealth Management (private banking) needed a web-based system for their investment portfolio managers. A system that could replace the use of ad-hoc Excel spreadsheets that were being shared over email without synchronisation of data. I delivered a system where portfolio managers could import their Excel sheets and the system sorted the data into a common database from where they can manage their client portfolios from anywhere, via a browser, always in sync. This solution was written in Java and based on the Wicket web-framework. We named it "PAM" (Portfolio Administration Module). |
Technologies used | Java, Spring, Wicket, SQL Server, JDBC, POI, XML |
Role on project | Consultant |
Year | 2007 |
Client | NeoConsult A/S (telecoms) |
Project description | Customer ADSL provisioning system for Tele2 France. The system was based on NeoConsult's own "NOMAD" workflow engine. The assignment was to analyse customer specifications and develop from those, the needed workflows in NOMAD. The workflow system interfaced with Tele2's internal systems to set up new customers ADSL connections. |
Technologies used | Java, Oracle, Perl, XML, Linux |
Role on project | Systemudvikler |
Year | 2006 |
Client | Bonnier Publications (media, publishing) |
Project description | A customer acquisition system for Bonnier Magazine Publications. The system receives customer's sign-up for magazine offers via Bonnier's marketing campaign sites, screens them against various "bad customer" databases and handles online card payment. Once screened, the system queues the orders up for Bonnier's (slow) AS400 mainframe subscription server and also automatically notifies partner webservices of the order, so they can dispatch a prize or such. The system has a dashboard for the marketing dept. to track customer conversions and where they can follow the flow of each magazine order. Marketing partners can download lists of leads and report back sales status. Management wanted the system to be extremely speedy since the existing subscription system was failing under the load and losing potential customers. So much attention was given to optimizing for performance. The system interfaces with the "BonnierShop" which is the CMS behind the marketing campaign websites. In short: an online marketing platform. |
Technologies used | Java, Spring, XML, webservices, Tomcat, JSP/JSTL, Hibernate, MySQL, Linux |
Role on project | Architect, developer, tester, documentation writer |
Year | 2006-2012 (ongoing maintenance) |
Client | CPH - Copenhagen Airports (aviation) |
Project description | A system for measuring passenger flow rate through security check and generating an estimate of queue time. The security queue time is shown on screens around the airport so passengers can know what to expect when arriving at the security lines. The system is browser-based and offers a dashboard for security management to track security gate performance in realtime and also pull performance reports to show compliance with regulations. We also built a search engine for pulling security camera images for a given time range. |
Technologies used | Scrum / Agile, Java, Spring, Tomcat, Tapestry, Hibernate, Oracle, POI, Linux |
Role on project | Consultant |
Year | 2005 |
Client | CPH - Copenhagen Airports (aviation) |
Project description | Implementation of a search-engine for CPH's internal documentation. All documentation is collected in a version-control system. From there, the various document formats (Word, PDF, etc.) are converted to HTML (for viewing via the intranet). For easy retrieval, it's all indexed in a Swish-e database that makes up a mini-google. |
Technologies used | Linux, Bash shell scripting, cvs, Swish-e, Perl |
Role on project | Consultant |
Year | 2005 |
Client | Vinsprit koncernen (beverages) |
Project description | Consolidation of all of Vinsprit's digital image archives. VinSprit is now part of Pernod Ricard. This assignment resulted in a new product. It was realized that the planned "Cumulus" image archive system was inadequate to implement the client specifications so we built a new digital image archive from scratch with multilingual product texts and conversion into many image formats. Marketing bureau's can log in and pull the images they need and in the resolution and image type they need. This off-loaded a lot of tedious work for VS. We imported all their product images (>10.000) and all the metadata into the system and they were ready to go. |
Technologies used | Java, Servlets, MVC, XML, SOAP, Hibernate, Velocity, MySQL, Linux, HTML, JavaScript, eRez. |
Role on project | Architect, technical project lead, lead dev. |
Year | 2004-2005 |
Client | Ørestadskonsortiet (construction) |
Project description | Web-based digital image archive for Ørestaden tunnelling consortium. |
Technologies used | Cumulus, JSP, Servlets, HTML, Linux, XML, SOAP, eRez |
Role on project | Designer, developer |
Year | 2004 |
Client | Danish Distillers (beverages) |
Project description | Web-based digital image archive for De Danske Spritfabrikker (alcoholic beverage producer). |
Technologies used | Cumulus, JSP, Servlets, HTML, Linux, XML, SOAP, eRez |
Role on project | Designer, developer |
Year | 2004 |
Client | Coloplast (medico) |
Project description | Corporate Image Bank. Web-based digital image archive for Coloplast Corporation. |
Technologies used | Cumulus, JSP, Servlets, HTML, Linux, XML, SOAP, eRez |
Role on project | Designer, developer |
Year | 2004 |
Client | Novo Nordisk Engineering (pharma) |
Project description | Flexpen, phase 3 Analysis and feature addition for existing SAP application for planning and controlling of insulin injection pen production line. |
Technologies used | SAP R3, ABAP4, Oracle |
Role on project | Consultant, developer, tester, documentation writer. |
Year | 2003 |
Client | Novo Nordisk Engineering (pharma) |
Project description | PIA-upgrade (Purification of Insulin Analogues) Analysis and troubleshooting of electronic batch reports. |
Technologies used | VBA, MS-Excel, PI, Oracle. |
Role on project | Consultant, analyst, tester, documentation writer. |
Year | 2002 |
Client | Novo Nordisk Engineering (pharma) |
Project description | Innolet Complet. Development of a mission-critical alarm-log application for autoclaves. |
Technologies used | VB, MS-Access, MS-SQL, iFIX |
Role on project | Consultant, developer. |
Year | 2002 |
Client | Novo Nordisk Engineering (pharma) |
Project description | IBP (Insulin Bulk Plant). Design and implementation of barcode-scanner interfaces for Novo's own LMES production planning system. The barcode-scanner interface triggers stored-procedures in an Oracle database. These stored-procedures make up a production workflow system that makes sure that manual processes in the insulin production are done correctly. Operators must scan barcode's and sign for each step in a process. This system is part of the quality control of the largest insulin plant in the world. |
Technologies used | Oracle PL/SQL, VB. |
Role on project | Consultant, systems design, developer, tester, documentation writer. |
Year | 2001 |
Client | TELIA Net (telecom) |
Project description | ICH2 – numberportability, phase 2. This system is Telia's implementation of the Danish phone number portability strategy. When customers transfer between telecoms, they can keep their existing phone number(s). This system sends and receives messages to and from Operators Clearing House (OCH) — the national central phone-number registry — and updates Telia's backend systems when customer transfer (or "port") between telecom's. It's a state-engine that keeps track of the porting processes and has a dashboard for monitoring all the flows. I was deeply involved in the design of Telia's part of the system and was responsible for the core state-machine and interfaces to certain backend systems. |
Technologies used | Java, XML, multithreading, JDBC, JavaMail, Oracle, Advanced Queueing, Linux, Solaris |
Role on project | Consultant, systems architect, developer, tester, documentation writing. |
Year | 2001 |
Client | Novo Nordisk (pharma) |
Project description | Corporate web-portal (www.novonordisk.com). I was called in to urgently troubleshoot technical issues prior to demo'ing the website for Novo's management. |
Technologies used | Java, XML, servlets, JDBC,Oracle, WebSphere, OpenCMS, HTML, JavaScript. |
Role on project | Consultant. |
Year | 2000 |
Client | BLU (telecom) |
Project description | Customer Web-portal for Italian telecom (www.blu.it). I was called in to troubleshoot technical issues with the website's backend systems. |
Technologies used | ASP, VB, XML, LDAP, JavaScript, HTML |
Role on project | Consultant. |
Year | 2000 |
Client | Nordea (banking) |
Project description | The PANDA project. This system generated full tax reports for large corporate clients. I was tasked with fixing a part of the system related to special investment funds. It turned out to be especially tricky, due to the unbelievable complexity of the financial instruments involved and the bank's top guy admitting that he could'nt explain them logically (in hindsight, I could have predicted the financial crash right then and there!). Three prior consultants had given up and left the project but I managed to pull it off and received a stuffed toy panda and eternal gratitude from the accounting dept. who were otherwise looking at months of additional work if I hadn't. |
Technologies used | Oracle PL/SQL, MS-Excel, Unix |
Role on project | Consultant, developer, tester, documentation writer. |
Year | 2000 |
Client | Danish Ministry of Justice (public sector) |
Project description | Letter generator for visa applicants. Multi-lingual letters customised from templates using data about gender, race, age etc. |
Technologies used | VBA Visual Basic for Applications. |
Role on project | Consultant, developer. |
Year | 1999 |
Client | Kurt Ovi A/S (telecom) |
Project description | Design & implementation of corporate website (www.kurtovi.dk) |
Technologies used | HTML, CSS, JavaScript |
Role on project | Consultant, graphics designer, developer. |
Year | 1999 |
Client | DSB Informatics (Danish State Rail IT dept.) |
Project description | Design and implementation of facilities information system for train stations. DSB wanted a web-application where station agents can update information about the passenger servicing facilities at their station. |
Technologies used | Oracle PL/SQL, Oracle Designer, Oracle Application Server, VB, HTML |
Role on project | Consultant, architect, developer, tester, documentation writer. |
Year | 1999 |
Client | DSB Informatics (Danish State Rail IT dept.) |
Project description | Design and development of own graduate thesis project — W.I.M.P — as the intranet CMS for DSB. The product was a CMS using Microsoft Word for page and template editing, interfacing with an Oracle database as storage-backend and Oracle Web Application Server (based on Apache web-server) as the presentation-layer. It actually worked. |
Technologies used | Visual Basic, VBA, Oracle, Oracle Web Application Server. |
Role on project | Consultant, co-architect, developer. |
Year | 1998 |
Area/methodology | Level | Last used |
---|---|---|
Application design | Expert | 2019 |
Programming | Expert | 2019 |
Database design | Expert | 2019 |
Data analysis | Very experienced | 2019 |
Project lead (technical) | Very experienced | 2017 |
Test | Very experienced | 2019 |
Documentation | Very experienced | 2019 |
Scrum/Agile client project | Very experienced | 2010 |
Operating systems | Level | Last used |
---|---|---|
Linux | Expert | 2019 |
Windows 10,7,XP | Very experienced | 2019 |
Solaris | Some knowledge | 2001 |
Databases | Level | Last used |
---|---|---|
MySQL | Expert | 2019 |
PostgreSQL | Very experienced | 2019 |
Oracle | Experienced | 2010 |
DB2 | Some knowledge | 2008 |
Servers | Level | Last used |
---|---|---|
Apache Tomcat | Expert | 2019 |
Apache2 Webserver | Expert | 2019 |
nginx | Experienced | 2019 |
WebSphere | Good working knowledge | 2008 |
Programming | Level | Last used |
---|---|---|
Java (J2SE) | Expert | 2019 |
Java Servlets (J2EE) | Expert | 2019 |
Java JSP (J2EE) | Very experienced | 2011 |
Java JDBC (J2EE) | Expert | 2019 |
Java SOAP (J2EE) | Good working knowledge | 2009 |
Java XML (J2EE) | Experienced | 2019 |
Java Mail (J2EE) | Experienced | 2011 |
Java EJB (J2EE) | Some knowledge | 2000 |
JUnit | Very experienced | 2019 |
Java Swing (J2SE) | Experienced | 2018 |
PHP | Expert | 2019 |
SQL | Expert | 2019 |
MySQL stored procedures | Experienced | 2018 |
Oracle PL/SQL | Good working knowledge | 2010 |
C / C++ | Some knowledge | 1999 |
SAP / ABAP4 (Prod./Process) | Some knowledge | 2003 |
Visual Basic / VBA | Good working knowledge | 2002 |
Unix shell scripting | Experienced | 2019 |
Javascript | Very experienced | 2019 |
HTML / CSS | Very experienced | 2019 |
Perl | Some knowledge | 2006 |
Webservices | Good working knowledge | 2011 |
Python | Some knowledge | 2018 |
Development tools | Level | Last used |
---|---|---|
NetBeans | Expert | 2019 |
IntelliJ IDEA | Some knowledge | 2005 |
Eclipse | Experienced | 2012 |
Ant | Experienced | 2012 |
Frameworks etc. | Level | Last used |
---|---|---|
Hibernate, HQL Java ORM | Very experienced | 2016 |
Spring Java Framework | Experienced | 2009 |
Symfony2 PHP framework | Very experienced | 2018 |
Wicket Java web-framework | Very experienced | 2019 |
Apache POI (MS Office Java API) | Good working knowledge | 2007 |
Guice IoC | Experienced | 2016 |
MyBatis SQL-mapper | Experienced | 2019 |
Drupal | Experienced | 2019 |
Velocity template engine | Good working knowledge | 2011 |
Tapestry Java web-framework | Some knowledge | 2005 |
Struts Java web-framework | Some knowledge | 2008 |
Java Server Faces | Some knowledge | 2005 |
Oracle Portal | Some knowledge | 2008 |