PATRYK ZIELIŃSKI

Software Developer with Passion

ABOUT ME

I am a software engineer more than yr now. My main skills are around Domain-Driven Design, TDD, Clean Code, Event Sourcing, CQRS, and Microservices. One of my favourite topics is client/developer collaboration and how to effectively gain a common understanding of a domain. Lately, I play with functional programming mainly in Haskell.

COURSES

Strategic DDD Wrokshop. Alberto Brandolini
Implementing DDD Workshop by Vernon Vaughn . Led by Tomasz Jaskuła
CQRS, Domain Events, Event Sourcing and how to apply DDD, Greg Young
Rich Domain Model course, coached by Sławomir Sobótka
EventModeling, CQRS/ES and Modern Agile. Adam Dymitruk and Greg Young
Oracle Certified Professional, Java SE 6 Programmer
Oracle Certified Professional, Java EE 5 Business Component Developer

LANGUAGES

Java
Kotlin
Scala
Haskell
Javascript
TypeScript
SQL

CLOUD

AWS
GCP

PRACTICES

Domain Driven Design
Event Storming
Event Modeling
Continuous Integration
Continuous Delivery
Test Driven Development
Behaviour Driven Development
Impact Mapping

FRAMEWORKS AND LIBRARIES

Spring-core
Spring-boot
Spring-cloud
Spring-data
Spring-security
Akka
Slick
Doobie
ZIO
Scala Test
Junit5
AssetJ
Axon
Hibernate
Angular

TOOLS

Gradle
Maven
Sbt
Yarn
Npm
Docker
Serverless (sls)
Nix

METHODOLOGIES

Scrum
Kanban

ARCHITECTURES

Layered
Hexagonal
Pipe and Filters
Event Driven Architecture
Serverless

DATABASES

Oracle
Postgresql
MongoDB
EventStoreDb
Cassandra
Google DataStore
Google Bigtable

WORK EXPERIENCE

Senior Software Engineer
Radbrackets | Poland(Remote) | Mar 2022 - Present
Project: Merchant order fulfillment application
I was delegated to one of the client to help in development. Application is used by merchants from restaurant when they would like to fulfill order that is posted by the consumer.
Main features:
Order fulfilment
Menu management
Order history
Printing receipt
Online/Offline restaurant
Responsibilities:
Implementing core features
Advice on architectural decision
Refining task
Code review
Deploying and releasing
Stack:
scala
akka
zio
postgres
slick
kotlin
ktor
jdbi
k8s
kafka
aws
eda
git
Team Leader since Mar 2021, Senior Software Engineer
Layer | Berlin(Remote) | Nov 2019 - Mar 2022
Project: golayer.io
Application help companies manage spreadsheets. It allow Process Owners to create whole workflow where parts of spreadhseet document are shared with collaborators, who provides required information in form of data input to be merge into master spreadhseet.
Main features:
Share part of document to Collaborator
Allow for spreadsheet preview
Discover changes made by Collaborator
Merge changes made by Process Owner
Versioning of Spreadsheet
Responsibilities:
Recruitment new employees
Implementing core features
Advice on architectural decision
Refining task
Code review
Leading event modeling sessions
Deploying and releasing
Participate in CI/CD pipeline creation
Stack:
java15
kotlin
spring-boot 2
axon-4
datastore
kubernetes
gcloud
eda
cqrs
event-sourcing
event-modeling
event-storming
git
Lead consultant/architect
Lideo | Wrocław | Apr 2019 - Nov 2019
Project: O.L.A.F.
O.L.A.F is all about digitalization of hospital. It is whole solution to management on various level: staffing, drug distribution, planning, patient disposition
Main features:
Drug distribution planning
Patient management
Responsibilities:
Helping defining requirements in form BDD scenarios
Advice on architectural decision
Implementing core features
Deploying and releasing
Code review
Stack:
java8
spring-boot 2
mongodb
cassandra
docker
docker-swarm
geteventstore
eda
cqrs
event-storming
bdd
git
Senior Software Engineer
ValueLogic | Wrocław | Dec 2017 - Apr 2019
Project: Power BI Dashboards
Power BI Dashboards is application to embeded dashboards from Microsoft Power BI into webpage for external clients
Main features:
Embed company dashboards
User managment
Responsibilities:
Owner and single developer
Design architecture
Deploying and releasing
Implementing core features: frontend and backend
Stack:
java8
spring5-reactive
spring-boot 2
mongodb-reactive
angular5
aws
boxfuse
yarn
typescript
webpack
git
Project: wgsuche.de
Looking for a room or apartment in Germany, wgsuche.de solve that problem. It connect Landloards and Rentees
Main features:
Post a rent
Search for a room or flat
Responsibilities:
Implement new features
Refining task with stackeholders
Stack:
java8
mysql
hibernate
spring
angular-js
git
Senior Software Engineer
Roche | Wrocław | Nov 2013 - Dec 2017
Project: Nautilus
Nautilus is generic tool for many different scenarios, mostly to managment laboratories
Main features:
Dynamic model which allow to define any entity
User managment
Responsibilities:
Creating new functionality(from top to bottom), and test it,
Introducing and deploy new technologies into project (in-memory database, script management – flyway, noSql database)
Code review
Stack:
java8
mongodb
spring4
zkoss
rabbitmq
svn
Project: ProSE
ProSE goal is to help Lab person in drug discovery. It manage tremendes amount of samples and results
Main features:
Gather sample result
Define experiments
Sent result to external tools
Integrate with devices for experiment results
Responsibilities:
Development of new features
Advice on architecture level
Code review
Stack:
java8
mongodb
spring4
spring-boot
angularjs
tdd
ddd
cd/ci
cqrs
eda
git
Project: BCP
ProSE goal is helps with drug discovery flow management
Main features:
Analyse sample result
Store and managment the samples
Responsibilities:
Development of new features
Advice on architecture level
Code review
Stack:
java8
axon
mongodb
spring-boot
angularjs
tdd
cqrs
eda
git
Project: Peptide
Peptide is responsible for internal process of handling request for laboratory
Main features:
Analyse sample result
Store and managment the samples
Responsibilities:
Creating JS widgets base on open source solution(magic suggest)
Advice on architecture level
Code review
Stack:
java8
jquery
jquery-ui
spring-core
spring-mvc
hibernate
query-dsl
git
Senior Software Engineer/Team Leader
Fast White Cat S.A. | Wrocław | Nov 2012 - Nov 2013
Project: RTMonitor
RTMonitor is taking care of statistic on emails sending. Application was integrate with Request Tracker software to gather those stats
Main features:
Mesure time between reciving a email and replay on it
Integeration with Reques Tracker
Responsibilities:
Leading team of 4 developers
Responsible for architecture
Spliting the job amongs Developers
Report about progress to Product Owner
Stack:
java8
ejb3
primefaces
jpa
mysql
git
Project: BB
Application was responsible for handling client complaints.
Main features:
Handling complains from clients
Automaticly dial in a consultant
Responsibilities:
Designing and implementing Processes in IBM BPM Process Designer
Creating AMD infrastructure in JS project
Creating widgets base on JQuery-UI
Stack:
jquery
jquery-ui
amd-dojo
ibm bpm
spring
hibernate
Senior Software Engineer
Vectus | Wrocław | May 2012 – July 2012(Part time)
Project: reg.it.ao
Main purpose of this project is to manage domains in Angola. It consist two applications reg.it.ao online shop and FRED which generate DNS records and manage domain in scope of Registrar. Online shop provide consistent way for dealing with billing, online payments, manage expirations of domain, connect domain to DNS configuration. Every Domain has four Accounts in different roles for this domain. Owner, Administration, Technical, Billing Account each one has set of actions which can do on Domain.
Main features:
Register domains
Transfering domains
Payments
Responsibilities:
Small enhancement in configure DNS connected to the Domain
Transferring (from/to different registrar) Domain, Account, DNS Configuration in online shop.
Stack:
java8
hibernate
j2ee-servlet
jsp
jasper-reports
postgres
fred
maven
Senior Software Engineer
Eurobank | Wrocław | Dec 2009 - May 2010, May 2011 - Oct 2012
Project: Scoring
It is one of OSGI bundle which support lending process. It is one of the central bank bundle. The application is responsible for the calculation of the customer's credit worthiness. This credit rating is expressed in the form of points, then there are certain threshold where we check whether points gained entitle the customer to get the loan.
Main features:
Computing loan scoring points
Responsibilities:
Moving this project from SOA service to OSGI bundle
Creating new functionality base on decision tree algorithm
Creating all unit and integration test facility
Refactoring exising code
Stack:
osgi
spring-dm
struts1
eclipse-link
oracle
maven
svn
Project: Archiver
It is one of OSGI bundle taking care of internal bank process. Main purpose is for tracking and archiving all documents created during lending process. Each client adviser must send all the documents in gathered weekly work and send them to the central bank in the form of pack. This application supports this process. Allows the manager to verify the documents received. Base functionality is create packs, generating reports about packs and document, and reassign responsibility of document to another customer advisor. Project was made in Domain Driven Design spirit.
Main features:
Computing loan scoring points
Responsibilities:
Core developer
Verify requirements
Design domain model
Implementation
Stack:
java8
osgi
spring-dm
struts1
eclipse-link
oracle
maven
svn
Project: Pulpit
This is web-base application for bank Customer Advisor. Lead advisor throughout the lending process. There is different process for different bank product. Every process is composite of few stages. In every stage state machine check credit application for inconsistency. The application is set in the OSGI container running in Weblogic server. It collaborate with many smaller OSGI bundles which support lending process or internal company processes.
Main features:
Handle all loan process in bank
Integerate with accounting system for transfers
Responsibilities:
Bug fixing
Verify requirements
Implementing new requirments base on specification
Stack:
java7
struts1
top-link
oracle
ant
svn
Senior Software Engineer
Sabre | Kraków | Jul 2010 - May 2011
Project: AirCrew
'AirCrews' is a name for product, which consists of many small projects for easier manage crew resources in airline companies. There is applications responsible for month schedule/reschedule of work for airline employees, manage days off, publish roster to crew, take care of equipment for plains, contract with suppliers.
Main features:
Handling crew fling plan
Handling request for vacation
Responsibilities:
Implementing new requirement in ‘days off’ module
Refactoring and applying unit test to existing code
Create report in Crystal Report XI
Stack:
java6
ejb2
jdbc
spring
crystal-report
oracle
maven
Software Developer
Power Media | Wrocław | Dec 2007 - Nov 2009
Project: ifirma.pl
ifirma.pl is about bookkeeping online. It target medium and small business to provide them easy way for dealing tax returns.
Main features:
Tracking all incomes and expenses,
Keep list of contractors
Generate all kinds of invoice in PDF and sent it to contractor
Store employee contracts
Sales ledger, purchase ledger
Sending tax declaration to tax office
Responsibilities:
Create new functionality based on client requirements
Oracle database adminstrator: creating backups and monitor the database
Stack:
java6
web-objects
itext
eof
ant
oracle