Lives: / Greve
Born: / 1971
Civil: / Married, 2 children
Languages: / Danish, English
Short Story:
Ebbe is result driven, dedicated and quality minded in what he does. He is self-supporting and works effectively individually as well as a team player in larger development teams.
Ebbe is a technical specialist with a strong focus on software development. Through his work with large complex solutions he has gained a strong general overview. He has a detailed knowledge on all aspects of a solution (architecture, environments, etc). Through his experience he has gained a good understanding of development processes and software lifecycles. Ebbe takes pride in making software testable and has extensive knowledge of usage of tools for supporting this.
Ebbe has worked with software development since graduation in 1995. One of hisgreatest assets is that he is avery strong ‘End-Game’ specialist ensuring that the solution becomes production ready and market ready.
Ebbe has been working within the telecom, transport, health and financial sectors and he has been working with systems from protocol/driver implementation over batch jobs, administrative systems, IVR systems to internet systems including business critical financial online solutions.
Competencies:
Platforms:
- Linux, Unix, Windows, AIX
- SQL Server, Oracle, DB2
- JBossWildFly, BEA WebLogic
- J2SE, J2EE
- OOA, OOD, TTD, MTD, SOA, Patterns, UML
- GIT, HG/Mercurial, SVN, CVS, ClearCase, Hudson/Jenkins CI
- Maven, SOAP and REST Webservices, IntelliJ
- JUnit, Cobetura, Purify, Quantify, PMD
Project Experience:
- System Developer, Systems Architect
- Technical Lead, Technical Mentor
- Multisite projects
- International projects
- Java, JavaScript, C, C++, XML, Hibernate
- Spring, JDBC, EJB, JSP,WebServices,MQ
- TCP/IP, CORBA, NemID (DanID),
- Quartz, Velocity templates
- LDAP, Crypto- and online security solutions
Assignments:
2017.02 – 2018.03
Role: Senior Software Developer
Customer:NETS A/S
Task:
Worked on the NEMID/IBSS team, developing the code app functionality for NEMID and doing some general maintenance tasks and bug fixing tasks.
Contribution:
Implemented several new JAX-WS (SOAP) WebServices, MQ (SOAP) WebServices and JAX-RS (REST) WebServices. Created set-up to enable possibility to test the MQ services on a developer machine. Added/extended functionality on the NEMID portal used by banks for administration of users and on the developers site, that are used for development and testing by the service providers. Created POC for how to do automated SoapUI test of some of the new WebServices. Created several new SoapUI tests and updated existing ones when needed. Implemented security layer for REST services using cryptographic methods. Implemented cryptographic handling of secret data to behanded over by app providers so no other person than the people of the app providers will need to see the unencrypted data. This includes secure encrypted transport of the data and encrypted storage of the data in the database. Upgraded the usage of CPR lookup service to a newer version from the CPR authority. Made changes to the remote logging functionality to make it more resilient to attacks and better configurable to handle loads as needed including improved logging in case an unsustainable high load is detected.
Code review was used for all code changes, sohave done a lot of code reviews.
Updated technical use cases, module designs, internal procedures and external procedures to include the new functionality and be aligned with the changes to the existing functionality. / JEE6/Servlets, Java 6 and 7, Tomcat 6 and 7, Junit, Mockito, JAX-WS (SOAP Web Services using AXIS, JAX-.RS (REST) Web Services, ActiveMQ, Hazelcast (in-memory data grid), Firebase (Google), HTML, JSP, JavaScript, JQuery, CryptJS (Google), GWT (Google Web Toolkit), SoapUIautomated tests, Postman (Google Chrome app for REST service testing), Ant, SVN, IntelliJ IDEA, Agile, SCRUM, Jira, Confluence, TeamCity, FishEye, Crucibel, .NET WEB
2016.10 – 2016.12
Role: Senior Software Developer
Customer:KMD A/S
Task:
Worked on the Rofus system at Spillemyndigheden under thedanish tax authorities. Rofus is a register of gamblers who on a volunteer basis have chosen to exclude themselves from on-line gambling in Denmark. The task was to extend this system to handle land based casinos and give support for the registered gambler to avoid advertisement being sent to them. Moreover the system should be moved to Java8 and JEE7 (the newest Weblogic server version).
Contribution:
Upgraded deployment descriptors and cleaned up dependencies. Introduced try-with-resources handling of Hibernate connection and a new logging and exception handling framework. Implemented generic input/output and statistics logging from webservices. Altered XSDs and logic for some of the existing SOAP services to match the new requirements. Created REST service for handling cache invalidation in the user portal from the administration portal (separate web applications). Upgraded the separate token handling system to Java 8 and JEE7, which included changes to deployment descriptors and reorganizing code as EJB archive had to be separated into a client archive and an implementation archive. / JEE7, Java 8, Weblogic 12c, IntelliJ IDEA, Maven 3, JUnit, Oracle 12g DB, JAX-WS (SOAP) WebServices, JAX-RS (REST) WebServices, HTML, JSP, JavaScript, JPA, Hibernate, JMS, Apache ActiveMQ, SQL developer, SoapUI, Postman (Google Chrome app for REST service testing), GIT, Agile, SCRUM
2016.07 – 2016.09
Role: Senior Software Developer
Customer:Nykredit A/S
Task:
As part of a new-started SCRUM team that was part of a large program, the first task was to do a new implementation of the validations used in a mortgage advisory system.
Contribution:
Investigate the old mortgage advisory system to create an as-is picture for the existing validation functionality. Another part was to come up with a suggestion for the application architecture to be used in the new implementation – how it could fit into the new architecture which was based on micro services. / JEE7, Java 8, Weblogic 12c,JBossWildFly AS, IntelliJ IDEA, Maven 3, Oracle, JAX-RS REST WebServices, JUnit,JProfiler, JMeter, GIT, Agile, SCRUM
2015.06 – 2016.06
Role: Application architect and technical lead on the TK-Erhverv project
Customer:Nykredit A/S
Task:
Task was to introduce functionality into the mortgage advisory system that would support the advisers in the banks when advising business customers (excluding very large companies). The functionality included calculation of rating, price calculation, advisory calculation of loans, handing over case to loan production and administrative functionality for handling loans.
Contribution:
Responsible for transforming the requirements from the business responsible and analysts into specification documents usable as a foundation for the implementation and ensuring the software architecture. The implementation was done by a group of 4-5 polish developers located in Warsaw. Responsible for planning the sprints and scheduling demos and retrospectives. / Weblogic 8 (J2EE 1.4) and 11g (JEE5),JBossWildfly AS (JEE7), HTML, JSP, JavaScript, IntelliJ IDEA, Maven 3, JUnit, ANT, DB2, SOAP WebServices, Apache FOP, SVN, Agile, SCRUM
2015.01 – 2015.02
Role: Senior Software Developer
Customer:SDC Udvikling
Task:
Introduce a new REST API for usage by the smartphone app solution and the homebanking solution.
Contribution:
Specifying, organizing and implementing the basic functionality of the REST API to support the implementation of the rest of the functionality. Implemented the log-on and signing part of the API. / JEE5, Weblogic 11g, Java 7, IntelliJ IDEA, Maven 2, Junit, Cobertura, DB2, Spring, REST WebServices, Spring WS, Mercurial (VCS), Agile, SCRUM
2014.01 – 2014.12
Role: Senior Software Developer
Customer:SDC Udvikling
Task:
Development of new functionality for the bank branch of Storebrand. Storebrand is a large Norwegian insurance and pension company.
Contribution:
Part of the group that implemented the “new customer” functionality where people can sign up as customers using the homebanking solution. It includes functionality for the bank to advertise products to specific segments of customers and the possibility to offer special products to their premium customers. Premium customers are grouped based on the insurance and pension products which the individual customer already uses from Storebrand.
Implemented the signing verification part of a new security model introduced for Storebrand as not all their customers uses BankID, but still should be able to use the homebanking solution. Also helped stabilize the solution.
Reorganized the way the foreign payment system used for payment transfers to abroad be selected for a given bank. This was necessary as Storebrand uses the same system as the Danish banks, but that selection was not supported by the code.
Defect corrections in new as well as old code. / JEE5, Java 7, Weblogic 11g, SOAP WebServices, HTML, JSP, JavaScript, AJAX, MVC, IntelliJ IDEA, Maven 2, Junit, Cobertura, DB2, Cryptomathic, BankID, Mercurial (VCS), Agile, SCRUM
2013.07 – 2013.12
Role: Architect and Software Developer
Customer:Startup company
Task:
Task was abandoned due to lack of commitment from partner.
Contribution:
N/A / J2EE, JavaFX, Spring, JBoss, Hibernate, IntelliJ IDEA, Maven 3, PostgreSQL, WebServices
2012.10 – 2013.06
Role: Senior Software Developer
Customer:SDC Udvikling
Task:
Development of solution that allowed using the internet banking platform on tablets (iOS and Android) for the banks in Denmark and on the Faeroe Islands.
Contribution:
The solution chosen was a hybrid, where the normal interaction was done in the standard browser on the tablet device, but all security related interaction was done by a native app on the device. Helped specifying the protocol to support the interaction and implemented the changes needed in the internet banking platform to support handling of the log-on and signing using the app. / Java EE 5, Java 7, Weblogic 11g, HTML, JSP, JavaScript, MVC, IntelliJ IDEA, Maven 2, Junit, Cobertura, DB2, AXIS, Spring WS, SOAP WebServices, Applets, Cryptomathic, NEMID, iOS, Android, Agile, SCRUM
2012.11 – 2013.04
Role: Software Developer
Customer:KMD
Task:
Development of EFI (Et FællesIndrivelsessystem) for the danish tax authorities.
Contribution:
Assisted in finalizing the implementation of the EFI system. This involved fixing bugs and implementing change requests to functionality that the customer had found to be specified incorrect. Assisted other developers solving their problems. / Java EE 5, Java 7, Weblogic 11g, IntelliJ IDEA, Spring, Hibernate, SOAP WebServices, XML beans, Oracle DB, Hypersonic, Velocity templates, Quartz, Maven 2, Junit, Cobertura, PMD, Sonar, Jenkins CI, Nexus repository server, SVN, Agile, SCRUM
2010.09 – 2012.09
Role: Software Developer
Customer:KMD
Task:
Development of EFI (Et FællesIndrivelsessystem) for the danish tax authorities.
Contribution:
Implemented the core execution engine for the automated debt collection and the budget and payment ability calculation engine and management interface. Implemented batch jobs based on J2EE timers and Quartz timers. Implemented system test cases for both webservice calls and batch jobs that were fully automated. Helped streamlining the Spring bean configuration. Involved in architectural discussions on a regular basis. Improved Maven plug-in to improve build process. Assisted other developers solving their problems. / Java EE 5, Java 7, Weblogic 11g, IntelliJ IDEA, Spring, Hibernate, SOAP Web Services, XML beans, Oracle DB, Hypersonic, Velocity templates, Quartz, Maven 2, Junit, Cobertura, PMD, Sonar, Jenkins CI, Nexus repository server, SVN, Agile, SCRUM
2009.09 – 2010.03
Role: Software Developer
Customer:SDC Udvikling
Task:
Development of Faeroe Islands internet banking platform for 4 new banks. The Faeroe Islands internet banking platform was built as an extension to the existing internet banking platform.
Contribution:
Technical lead and implementer of numerous framework changes to facilitate the internet banking system could be run with different computer system locales and de-coupling country and language in the application. Also changes to the log-on were made to facilitate a smooth migration path for the customers of the Faeroe Islands banks. / Java EE 1.4, Java 1.4, Weblogic 8, HTML, JSP, JavaScript, Junit, Cobertura, MVC, Maven 2, DB2, AXIS, SOAP WebServices, Applets, Cryptomathic, MQ, IntelliJ IDEA
2009.02 – 2009.08
Role: Software Developer
Customer:SDC Udvikling
Task:
Implement usage of the new public certificate signature NemID (DanID) in the internet banking solution.
Contribution:
Involved in ERFA meetings with other banks and DanID. Implemented the basic framework changes needed to plug the new security system into the internet banking application and implemented the log-on portlet for the new security system. Contact with off shoring personnel in India that helped with the changes needed to all portlets using signing. This included writing specifications to the developers in India. / Java EE 1.4, Java 1.4, Weblogic 8, HTML, JSP, JavaScript, MVC, Junit, Cobertura, Maven 2, DB2, Applets, DanID/NemID, IntelliJ IDEA
Assignments:
2007.09 – 2009.01
Role: Software Developer
Customer:SDC Udvikling
Task:
Developing new features for the customer banks of SDC.
Contribution:
Involved in discussions with the representatives of the banks, helping them to get from the ideas they had for new functionality to actual implementable requirements. Implemented some requirements. Helped other developers organize code to improve the architecture of the internet banking system. Made numerous changes and improvements to the core of the application and the MVC framework. / Java EE 1.4, Java 1.4, Weblogic 8, HTML, JSP, JavaScript, MVC, Junit, Cobertura, Maven 2, DB2, AXIS, SOAP WebServices, Applets, MQ, IntelliJ IDEA
2007.05 – 2007.08
Role: Software Developer
Customer:Nykredit
Task:
Develop “digital tinglysning” application.
Contribution:
Development of parts of the application including contact with the business specialists specifying the required functionality. / Java EE 1.4, Java 1.4, Weblogic 8, HTML, JSP, JavaScript, IntelliJ IDEA
Assignments:
2007.02 – 2007.04
Role: Software Developer
Customer:SDC Udvikling
Task:
New activeX security system for the internet banking system. The new security system should introduce hardware binding of the keystore to avoid hackers from copying a keystore and use it on another computer.
Contribution:
The activeX component was delivered by 3’rd party so the task was to integrate this into the existing banking application. This proved to be quite difficult due to the key management implementation. An implementation was developed that allowed for use of the new security features for customers having OS and browsers supporting the technology. At the same time the solution allowed e.g. Linux and Apple users to continue using the existing solution without compromising the security in the solution. / Java EE 1.4, Java 1.4, Weblogic 8, HTML, JSP, JavaScript, MVC, Junit, Cobertura, IntelliJ IDEA, Maven 2, DB2
2006.12 – 2006.12
Role: Software Developer
Customer:SDC Udvikling
Task:
A taskforce was settled to solve instability issues observed in a third party CMSsystem (CMD).
Contribution:
As member of the two person task force I was responsible for digging into the source code of the CMD system (which for most parts were delivered by 3’rd party vendor) to identify potential stability issues. As part of this process the cluster communication framework used was re-implemented to ensure a guaranteed delivery of messages between nodes while avoiding using time on failed nodes. / Java EE 1.4, Java 1.4, Weblogic 8, Junit, IntelliJ IDEA, Maven 1, DB2
2006.03 – 2007.01 (ex. 2006.12 – see above)
Role: Software Developer
Customer:SDC Udvikling
Task:
Merging of Norwegian internet banking platform and Danish internet banking platform to become one code base.
Contribution:
In a team of approximately 20 developers the task was to merge two code bases that had diverged into two directions. This involved a great deal of re-factoring of the code and in some situations re-implementation. I was asked to help the developers doing the merge of the basket (holding payments to be done in one bundle) as to ensure progress on that specific task. / Java EE 1.4, J2SE, Weblogic 7 og 8, HTML, JSP, JavaScript, MVC, AXIS, SOAP WebServices, Junit, IntelliJ IDEA, Maven 1, DB2
2004.08 – 2006.02
Role: Software Developer
Customer:SDC Udvikling
Task:
Development of Norwegian internet banking platform for 80 new Norwegian banks. The Norwegian internet banking platform was build based on the existing Danish internet banking platform.
Contribution:
I had the responsibility for implementing the Norwegian version of the e-invoices service. This involved designing and implementing all layers of the service from the HTML-GUI to the Web Service interface.The client interfaced to a centralized backend hosted at BBS, a pendant to the Danish PBS.
I was also responsible for implementing a security filter to avoid users getting illegal access to other user’s information through session/cookie hijacking. During the project I got involved with almost all parts of the platform. Because of the overview I gained through this and my usual business focus, I was assigned to several sub projects to drive the ‘End-Game’ and ensure deployment ready solutions. / J2EE, J2SE, Weblogic 7 og 8, HTML, JSP, JavaScript, MVC, AXIS, SOAP WebServices, Junit, IntelliJ IDEA, Maven 1, DB2
2002.06 – 2004.07
Role:Technical Lead, Architect, Developer
Customer:NetDoktor A/S
Task:
Maintain, improve and implement new features to the HealtCare platform. Later migration of the full application from single site WebLogic to clustered JBosssolution to enhance stability and reduce cost of ownership.
Contribution:
I started as a developer but, as my understanding of the solution and the business grew my role turned
In the process the application was migrated from WebLogic to theJBoss application server. In this transition I was responsible for the complete redesign necessary to migrate a WebLogic based application to JBoss.
After some organizational re-arrangements I became technical lead/architect of the development team. I had the responsibility for making the software modular from a functional as well as a build perspective, and for introducing a new security implementation.Also I was responsible for integrating a SMS service using a 3’rd party supplier product for sending the SMS’s / J2EE, J2SE, Weblogic, JBoss AS, HTML, JSP, JavaScript, LDAP, IntelliJ IDEA, (C)