JVM and DevOps focused full stack developer, broad experience from classical software development to ML, web3, ops and IT Management.
Aktualisiert am 31.05.2024
Profil
Freiberufler / Selbstständiger
Remote-Arbeit
Verfügbar ab: 17.06.2024
Verfügbar zu: 100%
davon vor Ort: 100%
Java
DevOps
AWS
Linux
Continuous Integration
Continuous Deployment
Haskell
Elm
Python
Docker
Kubernetes
Terraform
Spring
Kotlin
Quarkus
Keycloak
TypeScript
ReactJS
Angular
Smart Contracts
web3
Blockchain
TensorFlow
German
Muttersprache
English
Muttersprache
Greek
Muttersprache

Einsatzorte

Einsatzorte

Koblenz am Rhein (+200km) Bonn (+200km) Frankfurt am Main (+200km) Hamburg (+200km) Berlin (+200km) Cologne (+200km) Luxembourg (+200km)
Deutschland, Schweiz, Österreich
möglich

Projekte

Projekte

1 year 1 month
2023-11 - 2024-11

API Platform

Tech Lead / Architect / Evangelist Java Kotlin Softwarearchitektur ...
Tech Lead / Architect / Evangelist
  • Work with the feature development Teams at OTTO CI to determine how API-centric development is lived within the team, where pain points exist in the current status quo and where hidden potential lies.
  • Build shared tooling for the feature development teams to empower them and create homogeneity attributes across the tech organization.
  • Build and Purchase products to make API lifecycle management possible at the company
  • Operate the API Lifecycle management platform
  • Integrate with other platform teams
  • Consolidate the infrastructure Portfolio to minimize deficiencies
AWS
Java Kotlin Softwarearchitektur Continuous Integration kubernetes AWS Teamleading
OTTO
Hamburg
1 year 6 months
2022-04 - 2023-09

Backend Engineering

Software Developer & Engineering Lead Backend Kotlin Quarkus Hibernate ...
Software Developer & Engineering Lead Backend
AMVLET aspires to lead people towards meaningful, interaction in the real world via technology
products. The SCOVR app, is geared towards real world experiences based on user interests and locality patterns. I was personally referred to the CTO by a common acquaintance to assist them in setting up their backend and data team. We started strong with a small, handpicked team of developers. Management overhead was minuscule so I was writing code 90% of my time, be it via pairing or in the tunnel on my own. Unfortunately we are having trouble attracting funding for the next stage of SCOVR so the project is shutting down in September.
Atlassian JIRA
Kotlin Quarkus Hibernate FaceTec Keycloak Terraform CI-CD (Github Actions) Python
AMVLET / SCOVR
Rotterdam, Netherlands
5 months
2022-01 - 2022-05

Data Import Service Rewrite

Software Developer Java Quarkus Jenkins ...
Software Developer
Rewrite / Reinvent an old JavaEE application that offered only a jdbc port as a consumption interface with a new tech stack and offer REST, GraphQL as well as the older integration methods.
Java Quarkus Jenkins Ansible CI-CD AWS Kubernetes Terraform Hasura React PostgreSQL dockerized localdev
BDK
Hamburg
2 months
2021-11 - 2021-12

Create a bridge between Cardano and Filecoin

Software Developer Haskell(cardano-node plutus postgresql-simple) ...
Software Developer
I won a grant by the Cardano Foundation to develop a bridge PoC between Cardano and Filecoin. Later on the results of the two month project resulted in the development and funding of the permanentum.io project which I am working on in my spare time.
Haskell(cardano-node plutus postgresql-simple) Elm Docker IPFS FileCoin devcontainers
4 months
2021-07 - 2021-10

Refactor IHM Codebase

Software Developer Typescript Angular Redux ...
Software Developer
Help a Team of young engineers refactor their IHM (Industrial Health Management, viz. Phrama)
product, get a grip on Technical Debt, implement quality of life features like thorough CI integrations, automated API schema testing, ArchUnit, service discovery, and make team results visible.
Typescript Angular Redux Java (Spring-Boot Hibernate OpenAPI ArchUnit) Node.js Openshift Minio
Boehringer Ingelheim
3 years 8 months
2017-11 - 2021-06

Software Engineering

Head of Software Engineering Java Spring (Spring Boot Hibernate ...
Head of Software Engineering
  • Build up a (50+ Developer) Engineering Organization
  • Migrate from a matrix organization to a self-organizing squad based organization
  • Coach people managers and teams
  • Establish a healthy engineering culture that encourages the individual to grow, communicates across team borders (successes, interest and failures) and balances experimentation with ?boring simple but dependable? solutions
  • Establish KPIs to understand the Organizations activities
  • Coach the Teams in developing operations frameworks and playbooks for staffing, project selections, etc
  • Represent and report for the engineering organization in senior leadership and executive circles
  • Be part of a developer team at least two days a week
Java Spring (Spring Boot Hibernate Orika Bucket4j) API Bluerpint Vue Elm Haskell (Servant Parsec Persistent aeson) Python (Flask SciKit-Learn NLTK) Gitlab Kubernetes (Openshift K3S Rancher) Ansible Ethereum IPFS Kafka
PwC Digispace
PricewaterhouseCoopers
2 years 7 months
2015-04 - 2017-10

Various Projects

IT Consultant
IT Consultant
  • Solution Architect:
    • Requirement modeling, create solution designs to presented problem domains, introduce documentation and data interchange workflows between customer and supplier. Model acceptance criteria and translate soft customer language into formal vision and goals. Monitor Project progress steering and updating the solution as required. Take over project management for small teams. Keep track of decisions taken during the project. Usually take project from Sales Pitch to Go Live. Mentoring and steering of the team.
  • Enterprise Analyst:
    • Usually working next to the CTO and modeling the enterprise with the goal of making its structure visible and revealing bottlenecks, conflicts or areas for improvement. Introduce the enterprise to EA principles and the use of TOGAF.
  • Internal Consultant:
    • Advise the Webforms team in Product Architecture aspects, disseminate good documentation practices along with other best practices (BDD, CI, AD), lead discussion about new technologies, organize tech talks and meetup.com events, mentor other developers and architects.
TOGAF 9.1 UML BPMN Capability Modeling Steering through asking the right questions Agile Methodologies Atlassian Suite (JIRA; etc.) BDD Automated Deployment API-Blueprint (and tools) Git Java Javascript Continuous Integration common sense
Monday Consulting
Hamburg
2 years 7 months
2012-10 - 2015-04

Various Projects

Technical Lead
Technical Lead
Until 2014-04:
  • Technical leadership of our 12 man (8 developers) BMW team. Implementation of agile development processes suitable with the BMW corporate sphere, technical mentoring of component leads on Java EE and JS technologies, shaping the feature list with stakeholders and avoiding feature bloat, reviewing code base and enforcing testing and best practices, offering debugging help when needed and keeping the software and system architecture clean, dependable and future proof


Technologies:

JEE, UML, SCRUM, Git, Jenkins, Liferay, Glassfish, ExtJS, Spring, Maven.


Since 2014-04:
Technical leadership of the apptivator backend team. The team includes the apptivator CMS
team, Glanzkinder infrastructure team, and Glanzkinder operations teams.
  • Planing development of the apptivator CMS and Glanzkinder web infrastructure (Architecture as well as development schedule and feature sets).
  • Coaching junior backend developers into the apptivator development ecosystem.
  • Implementing Testing and CI workflows and boundaries (Unit, Integration, Behavior, Human Factors).
  • Formalizing best practices and guidelines.
  • Code reviews, VCS auditing.
  • Vetting of new expansion proposals to the Apptivator ecosystem.
  • Coding with the colleagues.
  • Low level optimizations (algorithmic or executional).


Technologies:

UML, Team City, Git, Linux, PHP 5, JavaScript, Bash, Python, Objective C.


Until 2013-09:

Senior Backend Developer

  • CMS Design and requirement modeling
  • CMS development
  • back-end architecture consulting
  • Framework development
  • Data mining


Technologies:

UML, PHP 5, SQL (various flavors), JavaScript, Python, Linux, Git, CakePHP, Yii.
Glanzkinder GmbH (CANCOM Gruppe)
Cologne
3 years 6 months
2009-05 - 2012-10

Design and implement web application implementations

Lead Developer
Lead Developer
  • Design and implement web application implementations for clients and inhouse projects
  • Projects vary from typical, workflow driven, CMS solutions (DuendeMagazine.gr custom publishing platform) to frameworks
Linux AWS UML PHP 5 SQL (various flavors) JavaScript Python Git Yii jQuery moo tools auto it Photoshop Gimp
KIND Studios
Thessaloniki
3 months
2009-10 - 2009-12

In house automation of standardized and repetitive processes

Developer
Developer
  • In house automation of standardized and repetitive processes
  • CMS development based on Joomla and Vanilla PHP solutions
  • static site parsers (spiders) that extracted site content into semantic RDBMS schemas, SEO
PHP JavaScript MySQL AutoIt (Windows OS automation) curl
Lectus Publishing
Athens
1 year 4 months
2008-07 - 2009-10

3D engine development

Developer
Developer
  • 3D engine development
  • CMS development
Shockwave 3D PHP JavaScript MySQL Linux
aether3d.com
Athens

Aus- und Weiterbildung

Aus- und Weiterbildung

2007 - 2008

Obligatory Military Service


2001 - 2006

Higher Technological Educational Institute Serres

Bachelor's degree, Civil Engineering


1998 - 2001

Lyceum Chrisoupolis


1996 - 1998

Gymnasium Keramoti


1993 - 1996

FEG Friedrich Eugens Gymnasium Stuttgart


1990 - 1993

Falkert-Schule Stuttgart


1990 - 1993

Falkert-Schule Stuttgart


Certifications:

  • Certified TOGAF 9 Enterprise Architect (Level 1 and 2)

Kompetenzen

Kompetenzen

Top-Skills

Java DevOps AWS Linux Continuous Integration Continuous Deployment Haskell Elm Python Docker Kubernetes Terraform Spring Kotlin Quarkus Keycloak TypeScript ReactJS Angular Smart Contracts web3 Blockchain TensorFlow

Produkte / Standards / Erfahrungen / Methoden

Profile:

I strive to help teams become efficient and effective in their endeavors and, hopefully through that, achieve their goals and make everybody?s life a bit better. In this process I have taken on titles from ?Strategy Consultant? or ?Enterprise Architect? to the modest yet effective ?Programmer? guise. Applying my decade long knowledge of the IT domain to the running projects, I endeavor to be the person the team needs right now, be that a passionate backend/devops engineer, thought provoking communicator or charismatic and dependable leader. I am a hands on person with healthy amounts of curiosity, creativeness and critical thinking; programming things is what I do, not only my profession. While (allegedly) being an excellent upwards communicator, I have distinguished myself in my leadership roles by inspiring through leading by example, investing in the values of self organized teams, helping people find their identity, giving them perspectives and purpose and not forgetting my Developer roots.


Skills & Expertise:

  • Lean Thinking: How much organization to we need? How do we make sure our core mission is understood by every single employee? How do we make sure every single employee contributes value to our core mission? At what interval do we need to revisit these questions? My conviction is that in order to succeed you need to be motivated by the right targets. Regardless whether a manager or individual contributor, You need to be aware of how your actions influence the success of your upwards organization. In order to create great results we need to be involved in our doing, keep the bigger picture in scope and use new information to reevaluate our understanding.
  • Purpose Driven Leadership: Talking about the golden circle and ?Start with WHY? is not enough. How do you implement a ?Why? based leadership framework? What do we need to do to enable ownership here? How do you fit a self organizing organization into an imperative enterprise? All these questions I could successfully answer at my stint at PwC.
  • Fail Fast & Fail Safe: While we create organizations and software to succeed, it is important to understand that how a society deals with failure has a direct correlations to its chances for success. In Software we need to invest in decisions that will pane out months later. It is paramount therefore to create a culture that accepts failure, on the individual and the group level, as an effect of learning and balances that with an urge to succeed.
  • Scaled Agile: LESS, SAFE, Nexus? What should a growing organization do? Usually the answer is ?none of those? but understanding them and using the parts that make sense for You while changing others is exceptionally successful!
  • Enterprise Architecture: I am a certified (lvl 1 & 2) TOGAF Enterprise Architect and have had the opportunity to apply my knowledge and understanding of it on various occasions. Analyzing an Enterprise and identifying the key points to it?s operation, modeling required and existing capabilities and applying subtle changes which lead to cultural and operational improvements are some of my favorite activities. Establishing a well versed architecture capability, disseminating SVOT principles and providing the enterprise with efficient steering mechanisms to aid strategic development is a joy to me as well. One thing many enterprise architects tend to miss is that effective EA is as much a cultural activity as it is an administrative one.
  • Software Architecture: My work has put me in charge of the difficult decisions for more than a decade now. Having been responsible for the Architecture of products as well as one of projects, I can provide input on both worlds. From persistent teams of a dozen developers delivering product iterations in a weekly cycle to two man ?ninja? teams working in tight cooperation with the customer in a fashion true to the original Agile Principles I have done all more than once. From coaching a junior Developer on the merits of the SOLID principles or functional thinking to identifying with the team the best way to facilitate a pivot of a product or consulting a Customer on Microservice Architectures, doing Software Architecture is just a more pleasant way of breathing to me.
  • Solution Architecture: Taking on the customer side of architecture is always a unique challenge. Often one firstly needs to establish an effective vocabulary to allow for unambiguous documentation and modeling of the situation at hand. While documentation and clear and fast communication paths are paramount here a special interest of mine is keeping the transition from the Software Architecture domain into the Solution Architecture as clean as possible, facilitating everybody to drill down (or up in case of developers) as he pleases.
  • Cloud Technologies: The tasks of Software and Solution Architecture are becoming more and more important due to the ever increasing number of servers and services a typical software project now utilizes. This is aided in part by the rise of IaaS platforms and in part by the standarization of REST as a communication protocol and the subsequent establishing of Mircroservice architectures as the de-facto separation principle. I have Worked extensively with AWS and Openstack in this respect with smaller exposure to Azure and GCP as well.
  • Git: Everybody needs source code management. I like the distributed nature of Git since every developer tends to also function as a backup location of the repository. Having used Git for many years now the importance of being able to realize a safe branching schema (Git workflow) and to consistently apply tagging has emerged. I often consult on Git inside the companies I work for and my teams have more than once implemented formal workflows via cli scripts that abstracted Git commands and other workflow steps into, secure and semantically unambiguous, one-liners. Designing multi remote and multi submodule Git architectures is also part of my skill set. 
  • TDD & BDD: Whether developing alone, in a team or leading a team; using TDD and BDD as the main workflow has proven to be very efficient in the long run. It does add to the boilerplate of things a team has to do before they can actually get started but this hurdle frequently helps give the developers a better understanding of the application domain or design specifics. Taking some time to reason about what is going to be built is hugely important and I have more than once won the discussion with management to allow for preparation time in order to provide long term stability in my teams. Where TDD helps reason about the inner, technical aspects of the product BDD helps visualize and formalize its business aspects, leading to clear vocabularies and ultimately aiding not only team communications but team members as well.
  • Agile Methodologies: While in the past my preferred flavor of agile was Scrum, I now subscribe to a more abstract utilization of the Agile Principles. The problem of traditional management structures not easily mapping onto scrum and the resulting noise of forcing a non Scrum capable administration to commit to a scrum project gives substance to the idea of focusing on self management of team clusters accompanied with a clean activity management (JIRA) for the team and reflected in the contracts. Time boxing in the way of sprints can still be done, which allows for introspective activites like sprint reviews.
  • REST: JSON based REST is a very useful starting point for Web API design. One aspect I had to struggle with was the HATEOAS clause and details like including links for state transitions of the representation and if those links should be absolute or not.
  • Java & the JVM: Spring, Quarkus, Java based OTS solutions like Keycloak and CoreMedia, I have worked with them, even have filed bugs in many of them. Having been a developer in many a corporate project I have had my fair share of exposure to the Java platform, from plain Java (since 1.5) to Java 19, , Kotlin, Clojure and Frege. Web applets in 2004, working on a Hadoop in 2009. Liferay Portlets and Jersey at BMW, CoreMedia at Monday, Spring, Keycloak and loads of other stuff at Otto, PwC, Kotlin and Quarkus at Amvlet and on and on.
  • Haskell: My biggest Haskell projects are projects on the Cardano Blockchain (smart contracts and blockchain bridges). I got introduced to Haskell quite atypically. My Desktop of choice is Linux with Gnome and in the Gnome 2.6 days I got exposed to tiling window managers which I found extremely interesting. Days later I was hacking away on Xmonad the Haskell based window manager. Whilst I had a slow start I have gotten better through time and effort. Using Haskell to teach Software engineering concepts is a very powerful tool. I like to make a quickcheck workshop with new teams to introduce the concept of property based testing. Similarly, creating REST APIs with servant is often a very inspiring thing for OO developers so I use servant and quickcheck not only to create software but also as tools to get developers and teams thinking and talking.
  • Python: If you are doing backend, infrastructure or data work it seems you are bound to have contact with Python at some point. Be it Boto for AWS management, Ansible plugins, small web APIs with flask and gunicorn and ML engineering with TensorFlow, Keras, etc? I wouldn?t call myself a specialist in python but having had so many touch points in the past I have developed a significant familiarity with the platform.
  • PostgreSQL: It is the IT industry?s workhorse DB, what else needs there to be said? Sure document dbs or column based or all the other NoSQL variations are interesting products but in the end it often pays of to start modest with a well balanced stack. That, I think, is where Postgres shines. Nowadays a lot of DB functionality gets pulled via DbaaS cloud products but it is nice to stick with something that can as easily run in a dockerized localdev with the same config.
  • MySQL: For structured and relational business data, MySQL(nowadays MariaDB) can get you a long way and sidestep a bit of the complexity that Postgres can introduce. I have done varying deployments of MySQL, having used replication and sharding more than once in production.
  • Oracle: Having done some work with multinationals I have come in direct contact with Oracle 11 more than once.
  • SQLite: This is a very efficient temporary storage engine (when on Linux). It is also a must have for Mobile development.
  • JavaScript / TypeScript: When I first started doing web development (early 2000s) JS and stuff like Ajax where still novel concepts. Most of the code tended to be yours initially, later on libraries like MooTools and jQuery emerged. From there on things started changing rapidly after the introduction of node ~2010. Remember Bookmarklets? Well, I wrote a library to build really rich ones back in 2007 (pre CORS, pre jsonP). I don?t do much of frontend work nowadays. I have some pet projects that have ELM frontends and I coached an Angular team in 2021 but other than that small exposure compared to my other work.
  • Amazon Web Services: My infrastructure provider of choice, I have done dozens of deployments on AWS since 2010 and am very comfortable with spinning up a mini cluster to do a POC or quickly offload a workload.
  • PHP: PHP was the first purpose build server side programming language I learned. Since my first web site, while still studying Civil Engineering, I have gone through a majority of the available Frameworks and tested/used many of the existing open source CMS solutions
  • Octave: I did my first data clustering algorithm in Octave. Since completing the Stanford ML course I haven't been back to Octave a lot but should still be able to perform the basic operations from memory.
  • Database Design: Schema normalization, distinguishing Functional dependencies, worrying about shardability, etc. With the needs and quantity of managed data increasing on a daily basis this is a skill every developer should hone. Here understanding the basic principles of relational algebra or getting to grips with the limitations of the selected management solution is very important but having a clear comprehension of the Domain and the semantic nature of the data itself is paramount.
  • C: I did some CUDA back in 2012 and had adopted the open source reverse engineering of MobileMouse server for a while. I havent really touched the language since these experiences though.
  • Bash: Since switching all my bare metal OSs to Linux in 2009 there have been days in which I only saw a cli. There hasn't been a day in which I only saw a GUI. I also love showing other engineers how far you can get just with bash when doing ad-hoc work (debugging, forensics, etc).
  • Machine Learning: Since attending the Stanford ML Class I have been highly interested in the field. In the past years I have had various degrees of contact with the field. My hands on experience is mostly in taking existing research, be that Jupyter notebooks or research papers, finding out what needs to be done to create an actual production ready service out of it, implementing that, wiring up all the parts (monitoring, validation, continuous learning, etc) and shipping it.
  • Linux: Free and Open Source Software is something very important to me. Through the years I have collected a wide knowledge of the workings of Linux distributions, be it desktop Distros or server configurations. I have been self hosting my family?s personal IT infrastructure on Linux servers for more than a decade now. As already described in my past professional experience I also have been involved with infrastructure development in my KIND Meta Cloud project. Coupling this with my day to day developer work on Linux machines setting up containers for deployment or localdev, means I do have a very thorough understanding of Linux OS concepts, components, options and some implementation details.

Branchen

Branchen

Automotive, Banking / Financial Services, retail electronic commerce

Einsatzorte

Einsatzorte

Koblenz am Rhein (+200km) Bonn (+200km) Frankfurt am Main (+200km) Hamburg (+200km) Berlin (+200km) Cologne (+200km) Luxembourg (+200km)
Deutschland, Schweiz, Österreich
möglich

Projekte

Projekte

1 year 1 month
2023-11 - 2024-11

API Platform

Tech Lead / Architect / Evangelist Java Kotlin Softwarearchitektur ...
Tech Lead / Architect / Evangelist
  • Work with the feature development Teams at OTTO CI to determine how API-centric development is lived within the team, where pain points exist in the current status quo and where hidden potential lies.
  • Build shared tooling for the feature development teams to empower them and create homogeneity attributes across the tech organization.
  • Build and Purchase products to make API lifecycle management possible at the company
  • Operate the API Lifecycle management platform
  • Integrate with other platform teams
  • Consolidate the infrastructure Portfolio to minimize deficiencies
AWS
Java Kotlin Softwarearchitektur Continuous Integration kubernetes AWS Teamleading
OTTO
Hamburg
1 year 6 months
2022-04 - 2023-09

Backend Engineering

Software Developer & Engineering Lead Backend Kotlin Quarkus Hibernate ...
Software Developer & Engineering Lead Backend
AMVLET aspires to lead people towards meaningful, interaction in the real world via technology
products. The SCOVR app, is geared towards real world experiences based on user interests and locality patterns. I was personally referred to the CTO by a common acquaintance to assist them in setting up their backend and data team. We started strong with a small, handpicked team of developers. Management overhead was minuscule so I was writing code 90% of my time, be it via pairing or in the tunnel on my own. Unfortunately we are having trouble attracting funding for the next stage of SCOVR so the project is shutting down in September.
Atlassian JIRA
Kotlin Quarkus Hibernate FaceTec Keycloak Terraform CI-CD (Github Actions) Python
AMVLET / SCOVR
Rotterdam, Netherlands
5 months
2022-01 - 2022-05

Data Import Service Rewrite

Software Developer Java Quarkus Jenkins ...
Software Developer
Rewrite / Reinvent an old JavaEE application that offered only a jdbc port as a consumption interface with a new tech stack and offer REST, GraphQL as well as the older integration methods.
Java Quarkus Jenkins Ansible CI-CD AWS Kubernetes Terraform Hasura React PostgreSQL dockerized localdev
BDK
Hamburg
2 months
2021-11 - 2021-12

Create a bridge between Cardano and Filecoin

Software Developer Haskell(cardano-node plutus postgresql-simple) ...
Software Developer
I won a grant by the Cardano Foundation to develop a bridge PoC between Cardano and Filecoin. Later on the results of the two month project resulted in the development and funding of the permanentum.io project which I am working on in my spare time.
Haskell(cardano-node plutus postgresql-simple) Elm Docker IPFS FileCoin devcontainers
4 months
2021-07 - 2021-10

Refactor IHM Codebase

Software Developer Typescript Angular Redux ...
Software Developer
Help a Team of young engineers refactor their IHM (Industrial Health Management, viz. Phrama)
product, get a grip on Technical Debt, implement quality of life features like thorough CI integrations, automated API schema testing, ArchUnit, service discovery, and make team results visible.
Typescript Angular Redux Java (Spring-Boot Hibernate OpenAPI ArchUnit) Node.js Openshift Minio
Boehringer Ingelheim
3 years 8 months
2017-11 - 2021-06

Software Engineering

Head of Software Engineering Java Spring (Spring Boot Hibernate ...
Head of Software Engineering
  • Build up a (50+ Developer) Engineering Organization
  • Migrate from a matrix organization to a self-organizing squad based organization
  • Coach people managers and teams
  • Establish a healthy engineering culture that encourages the individual to grow, communicates across team borders (successes, interest and failures) and balances experimentation with ?boring simple but dependable? solutions
  • Establish KPIs to understand the Organizations activities
  • Coach the Teams in developing operations frameworks and playbooks for staffing, project selections, etc
  • Represent and report for the engineering organization in senior leadership and executive circles
  • Be part of a developer team at least two days a week
Java Spring (Spring Boot Hibernate Orika Bucket4j) API Bluerpint Vue Elm Haskell (Servant Parsec Persistent aeson) Python (Flask SciKit-Learn NLTK) Gitlab Kubernetes (Openshift K3S Rancher) Ansible Ethereum IPFS Kafka
PwC Digispace
PricewaterhouseCoopers
2 years 7 months
2015-04 - 2017-10

Various Projects

IT Consultant
IT Consultant
  • Solution Architect:
    • Requirement modeling, create solution designs to presented problem domains, introduce documentation and data interchange workflows between customer and supplier. Model acceptance criteria and translate soft customer language into formal vision and goals. Monitor Project progress steering and updating the solution as required. Take over project management for small teams. Keep track of decisions taken during the project. Usually take project from Sales Pitch to Go Live. Mentoring and steering of the team.
  • Enterprise Analyst:
    • Usually working next to the CTO and modeling the enterprise with the goal of making its structure visible and revealing bottlenecks, conflicts or areas for improvement. Introduce the enterprise to EA principles and the use of TOGAF.
  • Internal Consultant:
    • Advise the Webforms team in Product Architecture aspects, disseminate good documentation practices along with other best practices (BDD, CI, AD), lead discussion about new technologies, organize tech talks and meetup.com events, mentor other developers and architects.
TOGAF 9.1 UML BPMN Capability Modeling Steering through asking the right questions Agile Methodologies Atlassian Suite (JIRA; etc.) BDD Automated Deployment API-Blueprint (and tools) Git Java Javascript Continuous Integration common sense
Monday Consulting
Hamburg
2 years 7 months
2012-10 - 2015-04

Various Projects

Technical Lead
Technical Lead
Until 2014-04:
  • Technical leadership of our 12 man (8 developers) BMW team. Implementation of agile development processes suitable with the BMW corporate sphere, technical mentoring of component leads on Java EE and JS technologies, shaping the feature list with stakeholders and avoiding feature bloat, reviewing code base and enforcing testing and best practices, offering debugging help when needed and keeping the software and system architecture clean, dependable and future proof


Technologies:

JEE, UML, SCRUM, Git, Jenkins, Liferay, Glassfish, ExtJS, Spring, Maven.


Since 2014-04:
Technical leadership of the apptivator backend team. The team includes the apptivator CMS
team, Glanzkinder infrastructure team, and Glanzkinder operations teams.
  • Planing development of the apptivator CMS and Glanzkinder web infrastructure (Architecture as well as development schedule and feature sets).
  • Coaching junior backend developers into the apptivator development ecosystem.
  • Implementing Testing and CI workflows and boundaries (Unit, Integration, Behavior, Human Factors).
  • Formalizing best practices and guidelines.
  • Code reviews, VCS auditing.
  • Vetting of new expansion proposals to the Apptivator ecosystem.
  • Coding with the colleagues.
  • Low level optimizations (algorithmic or executional).


Technologies:

UML, Team City, Git, Linux, PHP 5, JavaScript, Bash, Python, Objective C.


Until 2013-09:

Senior Backend Developer

  • CMS Design and requirement modeling
  • CMS development
  • back-end architecture consulting
  • Framework development
  • Data mining


Technologies:

UML, PHP 5, SQL (various flavors), JavaScript, Python, Linux, Git, CakePHP, Yii.
Glanzkinder GmbH (CANCOM Gruppe)
Cologne
3 years 6 months
2009-05 - 2012-10

Design and implement web application implementations

Lead Developer
Lead Developer
  • Design and implement web application implementations for clients and inhouse projects
  • Projects vary from typical, workflow driven, CMS solutions (DuendeMagazine.gr custom publishing platform) to frameworks
Linux AWS UML PHP 5 SQL (various flavors) JavaScript Python Git Yii jQuery moo tools auto it Photoshop Gimp
KIND Studios
Thessaloniki
3 months
2009-10 - 2009-12

In house automation of standardized and repetitive processes

Developer
Developer
  • In house automation of standardized and repetitive processes
  • CMS development based on Joomla and Vanilla PHP solutions
  • static site parsers (spiders) that extracted site content into semantic RDBMS schemas, SEO
PHP JavaScript MySQL AutoIt (Windows OS automation) curl
Lectus Publishing
Athens
1 year 4 months
2008-07 - 2009-10

3D engine development

Developer
Developer
  • 3D engine development
  • CMS development
Shockwave 3D PHP JavaScript MySQL Linux
aether3d.com
Athens

Aus- und Weiterbildung

Aus- und Weiterbildung

2007 - 2008

Obligatory Military Service


2001 - 2006

Higher Technological Educational Institute Serres

Bachelor's degree, Civil Engineering


1998 - 2001

Lyceum Chrisoupolis


1996 - 1998

Gymnasium Keramoti


1993 - 1996

FEG Friedrich Eugens Gymnasium Stuttgart


1990 - 1993

Falkert-Schule Stuttgart


1990 - 1993

Falkert-Schule Stuttgart


Certifications:

  • Certified TOGAF 9 Enterprise Architect (Level 1 and 2)

Kompetenzen

Kompetenzen

Top-Skills

Java DevOps AWS Linux Continuous Integration Continuous Deployment Haskell Elm Python Docker Kubernetes Terraform Spring Kotlin Quarkus Keycloak TypeScript ReactJS Angular Smart Contracts web3 Blockchain TensorFlow

Produkte / Standards / Erfahrungen / Methoden

Profile:

I strive to help teams become efficient and effective in their endeavors and, hopefully through that, achieve their goals and make everybody?s life a bit better. In this process I have taken on titles from ?Strategy Consultant? or ?Enterprise Architect? to the modest yet effective ?Programmer? guise. Applying my decade long knowledge of the IT domain to the running projects, I endeavor to be the person the team needs right now, be that a passionate backend/devops engineer, thought provoking communicator or charismatic and dependable leader. I am a hands on person with healthy amounts of curiosity, creativeness and critical thinking; programming things is what I do, not only my profession. While (allegedly) being an excellent upwards communicator, I have distinguished myself in my leadership roles by inspiring through leading by example, investing in the values of self organized teams, helping people find their identity, giving them perspectives and purpose and not forgetting my Developer roots.


Skills & Expertise:

  • Lean Thinking: How much organization to we need? How do we make sure our core mission is understood by every single employee? How do we make sure every single employee contributes value to our core mission? At what interval do we need to revisit these questions? My conviction is that in order to succeed you need to be motivated by the right targets. Regardless whether a manager or individual contributor, You need to be aware of how your actions influence the success of your upwards organization. In order to create great results we need to be involved in our doing, keep the bigger picture in scope and use new information to reevaluate our understanding.
  • Purpose Driven Leadership: Talking about the golden circle and ?Start with WHY? is not enough. How do you implement a ?Why? based leadership framework? What do we need to do to enable ownership here? How do you fit a self organizing organization into an imperative enterprise? All these questions I could successfully answer at my stint at PwC.
  • Fail Fast & Fail Safe: While we create organizations and software to succeed, it is important to understand that how a society deals with failure has a direct correlations to its chances for success. In Software we need to invest in decisions that will pane out months later. It is paramount therefore to create a culture that accepts failure, on the individual and the group level, as an effect of learning and balances that with an urge to succeed.
  • Scaled Agile: LESS, SAFE, Nexus? What should a growing organization do? Usually the answer is ?none of those? but understanding them and using the parts that make sense for You while changing others is exceptionally successful!
  • Enterprise Architecture: I am a certified (lvl 1 & 2) TOGAF Enterprise Architect and have had the opportunity to apply my knowledge and understanding of it on various occasions. Analyzing an Enterprise and identifying the key points to it?s operation, modeling required and existing capabilities and applying subtle changes which lead to cultural and operational improvements are some of my favorite activities. Establishing a well versed architecture capability, disseminating SVOT principles and providing the enterprise with efficient steering mechanisms to aid strategic development is a joy to me as well. One thing many enterprise architects tend to miss is that effective EA is as much a cultural activity as it is an administrative one.
  • Software Architecture: My work has put me in charge of the difficult decisions for more than a decade now. Having been responsible for the Architecture of products as well as one of projects, I can provide input on both worlds. From persistent teams of a dozen developers delivering product iterations in a weekly cycle to two man ?ninja? teams working in tight cooperation with the customer in a fashion true to the original Agile Principles I have done all more than once. From coaching a junior Developer on the merits of the SOLID principles or functional thinking to identifying with the team the best way to facilitate a pivot of a product or consulting a Customer on Microservice Architectures, doing Software Architecture is just a more pleasant way of breathing to me.
  • Solution Architecture: Taking on the customer side of architecture is always a unique challenge. Often one firstly needs to establish an effective vocabulary to allow for unambiguous documentation and modeling of the situation at hand. While documentation and clear and fast communication paths are paramount here a special interest of mine is keeping the transition from the Software Architecture domain into the Solution Architecture as clean as possible, facilitating everybody to drill down (or up in case of developers) as he pleases.
  • Cloud Technologies: The tasks of Software and Solution Architecture are becoming more and more important due to the ever increasing number of servers and services a typical software project now utilizes. This is aided in part by the rise of IaaS platforms and in part by the standarization of REST as a communication protocol and the subsequent establishing of Mircroservice architectures as the de-facto separation principle. I have Worked extensively with AWS and Openstack in this respect with smaller exposure to Azure and GCP as well.
  • Git: Everybody needs source code management. I like the distributed nature of Git since every developer tends to also function as a backup location of the repository. Having used Git for many years now the importance of being able to realize a safe branching schema (Git workflow) and to consistently apply tagging has emerged. I often consult on Git inside the companies I work for and my teams have more than once implemented formal workflows via cli scripts that abstracted Git commands and other workflow steps into, secure and semantically unambiguous, one-liners. Designing multi remote and multi submodule Git architectures is also part of my skill set. 
  • TDD & BDD: Whether developing alone, in a team or leading a team; using TDD and BDD as the main workflow has proven to be very efficient in the long run. It does add to the boilerplate of things a team has to do before they can actually get started but this hurdle frequently helps give the developers a better understanding of the application domain or design specifics. Taking some time to reason about what is going to be built is hugely important and I have more than once won the discussion with management to allow for preparation time in order to provide long term stability in my teams. Where TDD helps reason about the inner, technical aspects of the product BDD helps visualize and formalize its business aspects, leading to clear vocabularies and ultimately aiding not only team communications but team members as well.
  • Agile Methodologies: While in the past my preferred flavor of agile was Scrum, I now subscribe to a more abstract utilization of the Agile Principles. The problem of traditional management structures not easily mapping onto scrum and the resulting noise of forcing a non Scrum capable administration to commit to a scrum project gives substance to the idea of focusing on self management of team clusters accompanied with a clean activity management (JIRA) for the team and reflected in the contracts. Time boxing in the way of sprints can still be done, which allows for introspective activites like sprint reviews.
  • REST: JSON based REST is a very useful starting point for Web API design. One aspect I had to struggle with was the HATEOAS clause and details like including links for state transitions of the representation and if those links should be absolute or not.
  • Java & the JVM: Spring, Quarkus, Java based OTS solutions like Keycloak and CoreMedia, I have worked with them, even have filed bugs in many of them. Having been a developer in many a corporate project I have had my fair share of exposure to the Java platform, from plain Java (since 1.5) to Java 19, , Kotlin, Clojure and Frege. Web applets in 2004, working on a Hadoop in 2009. Liferay Portlets and Jersey at BMW, CoreMedia at Monday, Spring, Keycloak and loads of other stuff at Otto, PwC, Kotlin and Quarkus at Amvlet and on and on.
  • Haskell: My biggest Haskell projects are projects on the Cardano Blockchain (smart contracts and blockchain bridges). I got introduced to Haskell quite atypically. My Desktop of choice is Linux with Gnome and in the Gnome 2.6 days I got exposed to tiling window managers which I found extremely interesting. Days later I was hacking away on Xmonad the Haskell based window manager. Whilst I had a slow start I have gotten better through time and effort. Using Haskell to teach Software engineering concepts is a very powerful tool. I like to make a quickcheck workshop with new teams to introduce the concept of property based testing. Similarly, creating REST APIs with servant is often a very inspiring thing for OO developers so I use servant and quickcheck not only to create software but also as tools to get developers and teams thinking and talking.
  • Python: If you are doing backend, infrastructure or data work it seems you are bound to have contact with Python at some point. Be it Boto for AWS management, Ansible plugins, small web APIs with flask and gunicorn and ML engineering with TensorFlow, Keras, etc? I wouldn?t call myself a specialist in python but having had so many touch points in the past I have developed a significant familiarity with the platform.
  • PostgreSQL: It is the IT industry?s workhorse DB, what else needs there to be said? Sure document dbs or column based or all the other NoSQL variations are interesting products but in the end it often pays of to start modest with a well balanced stack. That, I think, is where Postgres shines. Nowadays a lot of DB functionality gets pulled via DbaaS cloud products but it is nice to stick with something that can as easily run in a dockerized localdev with the same config.
  • MySQL: For structured and relational business data, MySQL(nowadays MariaDB) can get you a long way and sidestep a bit of the complexity that Postgres can introduce. I have done varying deployments of MySQL, having used replication and sharding more than once in production.
  • Oracle: Having done some work with multinationals I have come in direct contact with Oracle 11 more than once.
  • SQLite: This is a very efficient temporary storage engine (when on Linux). It is also a must have for Mobile development.
  • JavaScript / TypeScript: When I first started doing web development (early 2000s) JS and stuff like Ajax where still novel concepts. Most of the code tended to be yours initially, later on libraries like MooTools and jQuery emerged. From there on things started changing rapidly after the introduction of node ~2010. Remember Bookmarklets? Well, I wrote a library to build really rich ones back in 2007 (pre CORS, pre jsonP). I don?t do much of frontend work nowadays. I have some pet projects that have ELM frontends and I coached an Angular team in 2021 but other than that small exposure compared to my other work.
  • Amazon Web Services: My infrastructure provider of choice, I have done dozens of deployments on AWS since 2010 and am very comfortable with spinning up a mini cluster to do a POC or quickly offload a workload.
  • PHP: PHP was the first purpose build server side programming language I learned. Since my first web site, while still studying Civil Engineering, I have gone through a majority of the available Frameworks and tested/used many of the existing open source CMS solutions
  • Octave: I did my first data clustering algorithm in Octave. Since completing the Stanford ML course I haven't been back to Octave a lot but should still be able to perform the basic operations from memory.
  • Database Design: Schema normalization, distinguishing Functional dependencies, worrying about shardability, etc. With the needs and quantity of managed data increasing on a daily basis this is a skill every developer should hone. Here understanding the basic principles of relational algebra or getting to grips with the limitations of the selected management solution is very important but having a clear comprehension of the Domain and the semantic nature of the data itself is paramount.
  • C: I did some CUDA back in 2012 and had adopted the open source reverse engineering of MobileMouse server for a while. I havent really touched the language since these experiences though.
  • Bash: Since switching all my bare metal OSs to Linux in 2009 there have been days in which I only saw a cli. There hasn't been a day in which I only saw a GUI. I also love showing other engineers how far you can get just with bash when doing ad-hoc work (debugging, forensics, etc).
  • Machine Learning: Since attending the Stanford ML Class I have been highly interested in the field. In the past years I have had various degrees of contact with the field. My hands on experience is mostly in taking existing research, be that Jupyter notebooks or research papers, finding out what needs to be done to create an actual production ready service out of it, implementing that, wiring up all the parts (monitoring, validation, continuous learning, etc) and shipping it.
  • Linux: Free and Open Source Software is something very important to me. Through the years I have collected a wide knowledge of the workings of Linux distributions, be it desktop Distros or server configurations. I have been self hosting my family?s personal IT infrastructure on Linux servers for more than a decade now. As already described in my past professional experience I also have been involved with infrastructure development in my KIND Meta Cloud project. Coupling this with my day to day developer work on Linux machines setting up containers for deployment or localdev, means I do have a very thorough understanding of Linux OS concepts, components, options and some implementation details.

Branchen

Branchen

Automotive, Banking / Financial Services, retail electronic commerce

Vertrauen Sie auf Randstad

Im Bereich Freelancing
Im Bereich Arbeitnehmerüberlassung / Personalvermittlung

Fragen?

Rufen Sie uns an +49 89 500316-300 oder schreiben Sie uns:

Das Freelancer-Portal

Direktester geht's nicht! Ganz einfach Freelancer finden und direkt Kontakt aufnehmen.