Mateusz Jedrzejewski, Developer in London, United Kingdom
Mateusz is available for hire
Hire Mateusz

Mateusz Jedrzejewski

Verified Expert  in Engineering

Backend and DevOps Developer

Location
London, United Kingdom
Toptal Member Since
March 5, 2018

Mateusz is a highly motivated software engineer with versatile skills and passion. He has a deep understanding of running computer systems and software development processes. Mateusz loves challenging work, learning new things, and the feeling that he can make a difference. Apart from focused, result-oriented engineering experience, Mateusz has a scientific background, primarily in image recognition.

Portfolio

Riskfintech
Agile, DevOps, Amazon Web Services (AWS), Kubernetes, CI/CD Pipelines, GitHub...
OUTFRONT Media (via Toptal)
Kubernetes, Java, Dropwizard, Scala, Datadog, Microservices...
Nordea | LTI
Spring, Gang of Four (GOF) Design Patterns, Java 8, AssertJ, Agile, JUnit...

Experience

Availability

Part-time

Preferred Environment

Jira, Git, Vim Text Editor, IntelliJ IDEA

The most amazing...

...project I've worked on was building a greenfield video-playing platform. It was amazing to watch something I have created be used by millions of users.

Work Experience

Senior Full-stack Developer | Tech Lead

2021 - 2021
Riskfintech
  • Developed scalable, innovative risk management software.
  • Created full Kubernetes cluster configuration on EKS (AWS) using Flux (GitOps) and Terraform.
  • Oversaw the transition of the product from the proof of concept to the industry-standard solution.
  • Implemented and maintained CI/CD pipeline for a microservice-based platform —automated builds, unit, integration, and performance testing.
  • Managed several other team members' work on several workstreams and portions of the product.
  • Contributed to the hands-on work on the back-end, front-end, and DevOps fronts.
  • Utilized Spark to achieve high scalability and automation.
Technologies: Agile, DevOps, Amazon Web Services (AWS), Kubernetes, CI/CD Pipelines, GitHub, Helm, Spark, Istio, Flux, GitOps, JavaScript, Node.js, React, Redux

Senior Back-end Developer

2019 - 2021
OUTFRONT Media (via Toptal)
  • Worked on a sophisticated system for scheduling advertising campaigns on LED displays in trains and subways of New York and Boston.
  • Oversaw the transition of the project to live and the ongoing production monitoring and support.
  • Created an external-facing API in Java and Scala to enable scheduling advertising campaigns and their further inspection.
  • Wrote automated tests on the unit level and the environments.
  • Managed the Kubernetes configuration and Helm charts for the deployed services.
  • Integrated with a legacy campaign scheduling system.
  • Created Helm charts and deployment configuration for microservice applications.
  • Implemented automated database migrations, rollbacks, and testing.
  • Created and maintained CI/CD configuration in Spinnaker.
Technologies: Kubernetes, Java, Dropwizard, Scala, Datadog, Microservices, Amazon Web Services (AWS), Helm, CI/CD Pipelines

Senior Java Developer

2018 - 2019
Nordea | LTI
  • Worked on a large tool that manages deployments and configurations of almost all the software in the organization.
  • Transitioned a large monolithic application into a microservice architecture.
  • Implemented brand new microservices with a Java Spring Boot back end that nonlinearly corresponds to functionalities in the previous generation application.
  • Implemented a UI based on Angular 6 with dynamic features following MVVM patterns.
  • Created and maintained a continuous delivery pipeline that runs automated deployments and testing procedures on environments.
  • Participated in the architectural design of new components being developed.
  • Followed a Scrum-based development process and worked towards sharing the experience to make the process smooth and genuinely agile.
  • Implemented a caching approach for various types of platform data using the Caffeine library and Spring Boot.
Technologies: Spring, Gang of Four (GOF) Design Patterns, Java 8, AssertJ, Agile, JUnit, Continuous Delivery (CD), Test-driven Development (TDD), Scrum, DevOps, Microservices, REST, Angular, Spring Boot

Senior Java Developer

2017 - 2018
DWP UK
  • Participated in digitalization of complex social benefits system business processes for social care agents and claimants in the UK used by millions of people across the country.
  • Planned and designed the solutions that support and automate various processes (from payments to housing verification and so on), involving input from user research and UI design.
  • Implemented a REST web service's back end and front end for the platform.
  • Utilized TDD, strong coding practices, pair programming, and other Agile principles to implement new features and refactor legacy code.
  • Maintained and gathered statistics for the working production system (Splunk, Grafana).
  • Solved issues and bugs concerning the running production system.
  • Participated in Kanban whiteboard-based development with a close relationship between development and QA.
  • Implemented highly available third-party-system communication with Kafka queues.
Technologies: Gang of Four (GOF) Design Patterns, Java 8, AssertJ, Agile, JUnit, Jira, Grafana, Splunk, Pair Programming, Kanban, Test-driven Development (TDD), Apache Kafka, Dropwizard, MongoDB, REST

Senior Java Developer

2016 - 2017
HMRC
  • Designed, implemented, and supported crucial government platform components used directly by millions of taxpayers.
  • Maintained CI/CD pipelines for developed microservices.
  • Created reactive REST services used for customer messaging, profile management, and authorization.
  • Contributed to the release management for microservices deployed on a custom-built, Docker-based platform.
  • Used a fully Agile development process which included Kanban, robust testing/quality assurance procedures, and heavy use of pair programming.
  • Maintained, monitored, and analyzed usage patterns on running production systems with Kibana and Grafana.
Technologies: Gang of Four (GOF) Design Patterns, Java 8, AssertJ, Agile, JUnit, Domain-driven Development, Grafana, Kibana, Continuous Delivery (CD), Continuous Integration (CI), Kanban, Reactive Programming, Test-driven Development (TDD), Docker, MongoDB, REST, Play, Scala

Senior Java Developer

2014 - 2016
Sky
  • Re-implemented crucial components of a monolithic video player back-end application in a new REST microservice architecture from the very beginning of the project to production release and later support.
  • Contributed to all levels of software development (planning, development, functional testing, NFT testing, deployment, infrastructure configuration, maintenance).
  • Implemented and maintained CI/CD pipeline for Docker-based microservices with automated builds, unit, integration, and performance testing.
  • Worked in a very Agile development environment (constant pair programming, strong TDD, extreme emphasis on quality assurance and testing, and full Scrum that later turned to Kanban).
  • Designed, implemented, and constantly improved continuous delivery pipeline including fully seamless deployment scripts that could deploy do production without any disruption.
  • Provided real-time monitoring, maintenance, and on-call support of a heavily used (up to 2,000 TPS, 10 million user base) video application's back end.
  • Prepared demo applications (Angular front end) and showcased them for other teams and non-technical business representatives.
  • Designed and implemented a custom Angular-based application that was fine-tuned for monitoring running the back end on all environments.
  • Implemented caching in Dropwizard for the VOD content and streaming data with the Ehcache library.
Technologies: Amazon Web Services (AWS), Gang of Four (GOF) Design Patterns, Java 8, AssertJ, Agile, JUnit, Domain-driven Development, Test-driven Development (TDD), Kibana, Grafana, AWS ELB, Ansible, Docker, Angular, Apache Kafka, Cassandra, REST, Dropwizard, Java, CI/CD Pipelines, AWS Deployment

Senior Java Develper

2013 - 2014
Gamesys
  • Developed core components of the back end for an online game platform with millions of active users.
  • Worked on both a legacy monolithic application and a new REST microservice oriented architecture for new components.
  • Contributed to crucial ideas and made them work both on the architectural and API design levels.
  • Utilized quality assurance, testing (TDD), and Agile Scrum-based methodology.
  • Maintained and supported live production components with Splunk.
Technologies: Spring, Gang of Four (GOF) Design Patterns, AssertJ, Agile, JUnit, Subversion (SVN), Git, Scrum, Splunk, Test-driven Development (TDD), Domain-driven Development, Angular, JMS, Dropwizard, REST, Java

Senior Software Develooper

2012 - 2013
Intel through Sii
  • Developed an automated USB device testing platform as an SOA-based system.
  • Implemented low-level interactions with Linux USB devices.
  • Designed and implemented a web UI interface for the management of different parallel testing executions.
  • Introduced test-driven development (TDD) techniques to the project.
Technologies: Git, USB, JNI, Service-oriented Architecture (SOA), C++, C#, Java

Software Developer

2010 - 2012
Gdańsk University of Technology
  • Participated in an innovative project for automated disease recognition on endoscopic images.
  • Analyzed and implemented the latest scientific developments in medical image recognition.
  • Contributed to the preparation of scientific publications summing up the work and outcomes.
  • Implemented the UI application for medical specialists to perform automated video analysis.
Technologies: Windows Presentation Foundation (WPF), Image Recognition, Java, C#, C++

Java Developer

2007 - 2010
Wolters Kluwer Poland
  • Implemented an innovative web interface application for legal system workers (lawyers, judges, and so on) to search for legal documents and company information.
  • Integrated back-end services to gather data to be displayed.
Technologies: HTML, JavaScript, GWT, Java

Crowd Panic Detection on CCTV Videos

This was my masters dissertation for which I had spent a lot of time learning algorithms and methods of computer vision. Also read a few latest scientific articles on the matter. The final solution was implemented in C++ with OpenCV and utilized techniques such as optical flow and my own modification of a gaussian mixture model. It then proved to work on a few video samples I had acquired which gave me a lot of satisfaction.

Domain-driven Development Sample

https://github.com/VoidShaper/bookstorecomparator
This example application showcases my approach to domain-driven development programming. I've done this as a part of an interview for a company. It's a simple command-line application that asks the user about a book's name and then tries to look up the book's price on both Amazon and Apress. The most crucial aspect of the code is its division into domain, infrastructure, and application parts utilizing an inverted dependency model.

Video Application Back-end in Microservice Architecture

I was working on a backend for the video play out application written in REST microservice architecture using Java and Dropwizard.

It was extremely satisfying to see the applications that I implemented and overlooked from the first lines of code to finally go to production release and be continuously used by millions of customers.

The project was run in a very agile way (Scrum later Kanban), with strong TDD and constant pair programming.

I was deeply involved in the project and apart from taking part in planning of work, designing and implementing solutions, I introduced essential parts of the build process. Amongst other things, I worked on ansible configurations, package management, test execution on different environments or seamless deployment process implemented in Python.

Running production application was constantly monitored through both grafana and Kibana with the use of custom fine-tuned graphs and message logs to have maximum visibility of the running system, I was also one of initiators and main creators of a custom monitoring application written in angular.

The project involved on-demand support.

Web Application for British Tax Payers

I was working as a contractor for UK tax office (HMRC) on the website to be used by all tax payers (individuals, companies and organizations) in the UK. It was written in microservice architecture with the use of Scala and Play framework and involved work on both front-end and back-end.

The project had really good automation process for creating new microservices so I did introduce a proper breakdown of business logic as per rules of REST and Domain Driven Design wherever I could. It also had a very efficient release process that used deployment pipeline and automated testing so I was often able to have my code in production in a few days.

It also had a strong Agile/Kanban process.

I worked in two crucial areas of the project - one being messages and alerts sent to the tax payers and another - the authorization system which was used by almost all other components.

I was constantly monitoring the running system and received alerts if anything wrong happened and the work involved finding and fixing issues on a live production system.

Overall it was a very satisfying project on which I have learnt a lot - from different details about how the deployment worked, to functional programming with asynchronous I/O.

Back-end of an Online Gaming Platform

It was a platform for slots and bingo games amongst others and had a user-base consisting of a few million people.

The main part of the backend was written as a large monolith Java application that exposed APIs to higher levels - the UI and games. The codebase did however follow some patterns of Domain Driven Design and the components were isolated from one another. It was a very interesting time as the company was expanding their business and new components were written as REST microservices with Java and Dropwizard. I worked on some very core and crucial parts positioned very low in the stack that involved manipulation of users funds. My work largely involved implementing new functionalities for existing components and also designing and implementing new components, cooperating directly with the architects and the product owners. I employed strong TDD and clean code principles. It also involved constant support and monitoring of a running production system including tracking down bugs and issues.

Web Application for Country-wide Management of the Benefit System

This work has been carried out for a different governmental department, was used by mainly Claimants and Job Agents to digitalize the processes needed for managing the benefit system in the whole of UK.

What was very interesting on this project was the domain, which was very complex. Implementing new features often required hands-on analysis of current manual practices that took place outside of the system, that also had a lot of vague and unclear parts to it, and then trying to design and implement then in the context of an already existing solution.

Also the codebase was common with a single repository so I have been working in various different areas.

The project was based on Java 8 and custom framework built on top of Dropwizard. Apart from implementing new features, I was involved in refactoring of existing legacy code, laying proposals of how it can be improved long-term. From time to time, I also fixed bugs and provided support of the running system.

Languages

Java 8, Java, HTML, CSS, HTML5, JavaScript, Scala, C, C++, SQL, C#, Python

Frameworks

Dropwizard, Mockito, JUnit, Spring, Play, Windows Presentation Foundation (WPF), GWT, Spring Boot, AngularJS, Play 2, Django, JNI, Angular, Spark, Flux, Redux

Libraries/APIs

AssertJ, JAX-RS, Jackson, JMS, jQuery, OpenCV, JDBC, Hystrix, React, Node.js

Tools

Git, IntelliJ IDEA, Ansible, GitHub, Grafana, Kibana, Vim Text Editor, AWS ELB, Subversion (SVN), Splunk, Vagrant, Apache Maven, Logstash, Jira, Gradle, SBT, ScalaTest, Cucumber, Puppet, Helm, Istio, AWS Deployment

Paradigms

Agile, Continuous Delivery (CD), Test-driven Development (TDD), REST, Continuous Integration (CI), Pair Programming, Clean Code, Domain-driven Development, Microservices, Scrum, Gang of Four (GOF) Design Patterns, Kanban, Reactive Programming, Service-oriented Architecture (SOA), DevOps, Functional Programming, Functional Reactive Programming

Other

Domain-driven Design (DDD), CI/CD Pipelines, APIs, Test Automation Frameworks, Full-stack, USB, HATEOAS, Image Recognition, Big Data, GitOps, Computer Science

Platforms

Docker, Amazon Web Services (AWS), iOS, Linux, Amazon EC2, Apache Kafka, Kubernetes

Storage

Cassandra, NoSQL, Elasticsearch, PostgreSQL, Cache, MongoDB, Datadog

2005 - 2010

Master of Science and Engineering Degree in Computer Science

Gdansk University of Technology - Gdańsk, Poland

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring