Mathias Arens

Full Stack Java / Web developer with 15+ years of professional experience in Spring, JEE, Scala, JavaScript, HTML5, CSS3, Microservices, Test-driven Development, Agile Methodologies and Continuous Integration.

501 Phoenix Heights East · 4 Mastmaker Road · London · E14 9AJ · UK · +44 7539 468987
Schlangenpfad 25 · 59602 Rüthen · Germany · +49 163 5742827

Experience

Java Developer

London, UK

March 2019 - today

Associcate Developer

Individual achievements:
  • Implemented, tested and rolled out a new OAuth2/OIDC SSO authentication and authorisation mechanism. There was no example code given for a desktop java application. Developed a technical solution with the head of the ADFS team. Prepared migration strategy and helped to migrate all production users in a smooth and issue free migration.
  • Introduced new maven tycho plugin to upgrade project code from Java6 to Java8.
  • Migrated code from Sonic JMS to IBM MQ.
Roles and Responsibilities:
  • Maintained an Eclipse RCP based front office legacy application
  • Second level support and maintaining jiras
Tech Stack

Java8, Maven, Eclipse RCP, Jenkins, Linux, Bash, Pivotal Cloud Foundary (PCF)

Java/Scala/Web Developer

Hamburg, Germany

April 2012 - June 2018

Grateful being a member of the fantastic Lhotse FT4 team for over 150 sprints. Started early in the greenfield project to build a new e-commerce platform for otto.de which was adaptable and allowed small code changes to be shipped quickly into production. A micro-service based architecture, test driven development, continuous integration and deployment were the primary building blocks of this project as well as a scalable architecture. otto.de is the biggest competitor to Amazon in Germany. That's why more than 2.5m unique users visit otto.de per day. The FT4 team was responsible for Customer Identity, User Data, Login, Session Management, Security and an OAuth2-API-Gateway.

Individual milestones I was involved in:
  • Supported the Go Live of otto.de in late 2013. Soft migration of the customer traffic from the old to the new system including monitoring and support while maintaining a 99.99% of uptime
  • Refactored the web frontend to a fully responsive frontend. Replacement of separate mobile applications by hybrid iOS and Android apps which used the then responsive web frontend
  • Breakdown of larger code units into smaller micro-services including migration to a docker/mesos/marathon infrastructure
  • Created a new micro service written in Scala to store user sessions. Seesion Cookies were based on JWT (JSON Web Token)
  • Prepared and implemented A/B testings
  • Co-developed api.otto.de. An REST API to connect external partners to otto.de. It is secured by OAuth2 and implements the HATEOAS+HAL specification.
  • Set up of CloudFormation YAMLs and Bash Scripts using AutoStacker24 to generate AWS infrastructure on new accounts including IAM roles, VPCs, Route53 setup.
  • Migrated microservices from marathon/mesos to AWS keeping 99.9% uptime.
Roles and Responsibilities:
  • Participated in the Scrum process: Dailys, Estimations, Plannings, Reviews and Retros
  • Implemented business logic including unit and integration tests and created mocks and mock servers
  • Connected SOAP/XML and REST/JSON interfaces including CDC tests
  • Made a persistence layer with a connection to MongoDB including integration tests
  • Layout and design of the web frontend in HTML5, Sass, Compass, SusyGrid according to design requirements
  • Implemented frontend logic in vanilla JavaScript including Jasmine tests
  • Created Selenium tests including page objects
  • Created and adapted build pipelines and build jobs in Jenkins
  • Monitored microservices over Splunk and Kibana (ELK Stack)
Tech Stack

Java8, Spring4, SpringBoot 1.5, Scala, TDD, Scrum, OAuth2, JavaScript, AWS, EC2, IAM, CouldFormation, CloudWatch, S3, HTML5, CSS, MongoDB3.4, Docker, Gradle4, TestNG, Microservices, Mesos, Marathon, Freemarker, Responsive Webdesign, Sass, Continuous Integration, Continuous Deployment, Mockito, Jasmine, Jenkins, Kafka, Splunk, Kibana, ElasticSearch, LogStash, Git, REST, Swagger, JSON, HAL, JAX-RS, Jersey, SOAP, JAX-WS, OWASP, Compass, Sass, Susy Grid, jQuery, Node.js, npm, gulp, Selenium3, Graphite, Jira, Confluence, Nexus, Artifactory, AutoStacker24

Java/Web Developer

WestLB AG

Düsseldorf, Germany

May 2007 - April 2012
Project ART
September 2009 - April 2012

The objective of project ART (advanced rating tool) was the replacement of a rating tool for the credit risk management unit in WestLB's credit risk unit. The advanced rating tool (ART) was developed as a web based application with forms for different credit types and an automated re-rating batch processing after imports of new balance sheets.

Roles and Responsibilities:
  • Technical consultant for IBM Java5, Spring 3, JPA2, Websphere 6.1, Struts2, JQuery 1.7
  • Implemented features and components according to business concepts on all tiers (web tier, business tier, persistence tier) by using JavaScript (JQuery), Struts actions, Spring beans, JPA entities, database views and JUnit testing.
  • Maintained the Maven3 build. Introduced a continuous build system based on Hudson/Jenkins.
  • Build and deployed releases to corporate IT infrastructure and test systems

My greatest achievement in this project was the replacement of vast and slow AJAX calls based on XML into small and fast JSON responses so that the user experience improved tremendously. The task included a massive refactoring in the business tier.

Tech Stack

Java 5, Spring 3, JPA2, Hibernate 3.6, Struts2, JQuery 1.7, Websphere 6.1, Tomcat 6.0, JUnit4, JSP 2.1, Servlet 2.4, SQL, Toad 9.7, Oracle11g, Maven3, Hudson/Jenkins, MyEclipse 9, CVS, Linux, Shell Scripting, Selenium 2.17.0

Project CoRE/AMP
May 2007 - August 2009

The CoRE project (consolidated risk engine) was a smaller sub-project of the AMP project which had the objective to lift market risk IT services into an SOA stack. From business side, new regulatory requirements should be met. The SOA infrastructure based on Artix was developed in London, and CoRE project should consolidate the two old risk engines for FX products and equity markets in Düsseldorf. The risk engines supported VcV and Monte Carlo simulations. It was a standard JEE server application with an adapter to the Artix/SOA infrastructure written in C++.

Roles and Responsibilities:
  • Technical consultant for JEE5, JPA1, JMS and JBoss4
  • Build Manager for Maven2 Build
  • Supported the design and implementation of the new PnL Risk Engine in Java with VcV and Monte Carlo Simulation.
  • Introduced a maven2 build environment with continuous integration including report generation of the current project status on code quality, test coverage and test results
  • Designed and implemented a portfolio management GUI based on Swing and the MVC pattern
  • Integrated jBPM workflow engine to control and monitor the different business cases of the Risk Engine
  • Created database migration wizards for converting the existing database schemas into the new schema including a progress monitor and cancellation options.
  • Wrote technical concepts for application server security

My most significant achievement in this project was to set up a continuous build environment with Maven2, Continuum (later Hudson) and Archiva and to set up a test-driven development environment especially to support in-memory database testing with HSQLDB. During the project, I published a small article about Archiva in the German 'Java Magazin’.

Tech Stack

Java6, JEE5, JBoss 4.2, JPA 1.0, Hibernate 3.2, JMS, JBossMQ, WebsphereMQ, JUnit 4.4, Swing, UML, jBPM, JAX-RPC, Artix 5.5, JAXB, JAXP, StAX, SQL, Oracle10g, HSQLDB, Maven2.2, Continuum 1.1, Archiva 1.2.1, Hudson 1.317, Netbeans 6.1/6.7, Eclipse 3.4/3.5, SVN, CVS, Unix, Solaris 10, Shell Scripting

Java/C++ Developer

Düsseldorf, Germany

Feburary 2004 - April 2007

CoCoNet develops e-banking software for European banks and multi-national corporates. Its product suite consists of servers Multiversa IBS and client portals Multiversa IFP for payment transactions used by European banks.

Roles and Responsibilities:
  • Maintained electronic banking portals and servers based on J2EE.
  • I worked on the front end side with Struts and JSPs as well as on the backend side.
  • Designed and implemented a new server component including full project management of a small developer team.
  • Implemented a new messaging component based on PKCS7 in Multiversa KKS in VC++
  • Implemented a PDF contract generation component with XML, XSL, XSL-FO and designed contract templates.

My most significant achievement during this time was maybe the PDF contract generation tool which I had to develop on my own and exclusively with the client. I was happy that my managers showed so much confidence in my work as a rookie. However, it was indeed a decision due to a resource shortage.

Tech Stack

Java 1.4, J2EE 1.3, Struts 1.1, JSP, Spring, Websphere 5.1.1.12/6.1, Weblogic 8.1, JBoss 3.2, Servlets, JSTL, JUnit 3.8, SQL, Oracle9i, DB2 8, UDB, MySQL 4.1, HSQLDB, Eclipse 3.0, XML, XSL, XSL-FO, Apache FOP, UML, Unix, AIX, Solaris9/10, Bash, VC++, DOM


Startups

The following two listings weren't commercial startups in a classic sense. Only three people were involved in this adventure, and nobody quit his job. We invested our spare time on evenings and weekends, and fortunately just a little money. However, a lot of time was sacrificed by all three of us, too.

Angular2/Ionic Developer

newarrivals.clothing
July 2016 - November 2016

This project is a continuation of shopshake.de (see below). In this project, I made a significant change to the web frontend. I removed the server side rendering in favour of REST interfaces. On top, I developed a new single page application based on the ionic framework. I published Apps based on the ionic framework for iOS and Android on Apple's AppStore and Google's Play Store. In the meantime, they have been removed from stores.

Roles and Responsibilities:
  • Removed server side rending by twirl
  • Created new REST interfaces with PlayWS
  • Introduced Angular2 web frontend
  • Discovered Ionic Framework and designed new SPA interface
  • Build and published apps on iOS app store and Play Store
Tech Stack

Angular2, Ionic2, TypeScript, Node.js, npm, Gulp, Scala 2.11, Play 2.5, Slick, SBT, Selenium, MySQL, GIT, Ubuntu 16.04, HMTL, SCSS, JavaScript, Cordova

Scala Developer, Admin and Co-Founder

shopshake.de
January 2014 - June 2016

Shopshake.de started with the idea of an apparel aggregator for different online shops in Germany. Customers should receive the latest updates of new arrivals of their favourite online shops. I was the only developer, system administrator and designer in this startup. Although 14 shops were continuously scraped for new updates, the project failed in the end due to its technical complexity and differences in our goals. Because I preferred to learn new technologies rather than making speed in business development, I am a bit more guilty in the failure of this endeavour than the others. This is my lesson learned.

Roles and Responsibilities:
  • Developed a web scraping engine based on Scala, Selenium, HtmlUnit and Akka.
  • Stored results in databse
  • Designed web interfaces with query logic
  • Set up infrastructure, databases and servers
  • Created deployment scripts
  • Wrote integration tests based on ScalaTest
Tech Stack

Scala 2.10/2.11, Play 2.3-2.5, Slick 3.1, Sbt, ScalaTest, Selenium, MySQL, GIT, Ubuntu 14.04, HMTL, SCSS, JavaScript, Cordova


Internships

C++ Developer

Dortmund, Germany

October 2002 - September 2003

The chair of computer networks and distributed systems did research on mobile ad hoc networks (MANET). Topics were the epidemic distribution of information in MANETs and overload control.

Roles and Responsibilities:
  • Implemented file sharing protocols for mobile ad hoc networks
  • Analysed performance of protocols through simulation
  • Implemented a framework for simulation and use of file sharing protocols in mobile ad hoc networks (Acutally this was my master thesis)
Tech Stack

C/C++, STL, NS-2, Tcl, OTcl, Perl, Bash Scripting, QT Libary, Linux, Unix

Java Developer

Dortmund, Germany

April 2000 - August 2001

adesso is a IT consultancy company. It has extensive experience in defining and implementing e-business strategies. This includes developing and integrating highly complex applications.

Roles and Responsibilites:
  • Designed newsletter component
  • Tested Web Applications
  • Supported software development process
  • Layout of intranet sites
Tech Stack

Java, J2EE, Tomcat, HTML, UML


Skills

Programming Languages
Java Realm
Spring, Spring Boot, JEE, TestNG, JUnit, Mockito, Selenium, JPA, Hibernate, Maven, Gradle, Groovy, Grails, Freemarker, JSP, Servlet, Struts2, Swing,JMeter, YourKit, JVisualVM, JPBM, XSL-FO, Apache FOP, Tomcat, Jetty
Web Realm
  • HTML
  • CSS
  • SASS
Responsive Webdesign, AJAX, Susy Grid
Databases
MongoDB, Oracle, MySQL, PostgreSQL, DB2
Methodologies & Standards
Agile, Scrum, Kanban, Microservices, Continuous Integration (CI), Continuous Delivery (CD), Testdriven Development (TDD), OAuth2.0, HTTP 2.0, SQL, NoSQL, OWASP, REST, SOAP, JSON, PKCS7
Infrastructure & Cloud
AWS (EC2, S3, IAM, Dynamo, Lambda …), Docker, Mesos, Marathon, Kibana, ElasticSearch, LogStash, Splunk, Jenkis, Artifactory, Nexus, WebSphere, JBoss, WebLogic, Nginx, Continuum, Hudson, Archiva,Jira, Confluence
Miscellaneous
Git, SVN, CVS, Visual Studio Code, IntelliJ IDEA, Eclipse, RCP

Certifications


Education

October 1999 - December 2003
Oktober 2009 - December 2013