Contributing to open source can be a rewarding way to learn, teach, and build experience in just about any skill you can imagine.

The main reasons why I am contributing to open source are to:

  • Improve existing skills
  • Meet people who are interested in similar things
  • Find mentors and teach others
  • Build public artifacts that help me grow a reputation (and a career)

This projects are demonstrating use of:

  • Object Oriented Programming and Design concepts
  • Functional and Reactive Programming and Design concepts

with programming languages:

  • Java
  • Kotlin
  • TypeScript

and frameworks:

  • Spring
  • Axonframework
  • Angular

by applying:

  • Monolithic modular architectural style
  • Microservices architectural style

digital-restaurant-angular

Example of Angular application. #TypeScript. #Modular. #Monorepo. #Atomic design.

This project provides an opinionated approach to modular application project structure and patterns by practicing Atomic design methodology.

It is a front-end part of a ‘Restaurant Food To Go’ solution. It consumes REST API and WebSocket (STOMP) provided by digital-restaurant. It is generated with Angular CLI using Nrwl Nx.

digital-restaurant Build Status GitPitch

Example of DDD (Domain Driven Design). #Modular. #Kotlin. #Spring (boot). #Axonframework. #Event sourcing. #CQRS.

This project is intended to demonstrate Domain Driven Design by applying event sourcing and CQRS patterns.

It is a multi-module maven project holding domain and application components. Domain components are the heart of the business software. The state of business objects is held here. Application components are a thin layer which coordinates the application activity, and we provide a couple of variants: REST API (sync), WebSockets API (async)

serverless-company Build Status GitPitch

Example of ‘serverless’ architecture/web application. #Java. #Java script. #Apache OpenWhisk. #AWS Lambda. #Function as a Service or “FaaS”. #Docker.

This project is intended to demonstrate best practices for building a serverless web application. Focus is on the Function as a Service or “FaaS”.

reactive-company Build Status GitPitch

Example of reactive web application. #Java. #Spring (spring 5, spring boot, spring web flux, spring data). #Reactive Streams. #Docker.

This project is intended to demonstrate best practices for building a reactive web application. Focus is on the reactive programming.

micro-company Build Status

Example of rest-full, hipermedia-based, distributed application. #Java. #Spring (spring boot, spring data, spring cloud). #CQRS. #Eventsourcing. #Axonframework. #Event-driven Microservices. #Docker.

This project is intended to demonstrate end-to-end best practices for building a cloud native, event driven microservice architecture.

micro-ecommerce Build Status

Example of rest-full, hipermedia-based, distributed application. #Java. #Spring (spring boot, spring data, spring cloud). #CQRS. #Microservices. #Docker.

This project is intended to demonstrate end-to-end best practices for building a cloud native, microservice architecture.

alfresco-hr

Example of content management application. #Alfresco. BPM. #Sample Human Resources business (hiring) process

Alfresco Community Edition is the open source alternative for Enterprise Content Management. It allows organizations to manage any type of content, from simple office documents to scanned images, photographs, engineering drawings and large video files.