Marcin Morawski
    
    2013 Programming and computer networks, Szkoła Wyższa im. Pawła
    Włodkowica w Płocku
    
    
        
        
        
        
        
        
            2014
            Zend Certified PHP Engineer
        
        
            2014
            LPIC-1
        
        
            2014
            SUSE Certified Linux Administrator (SUSE CLA)
        
     
    
    
        Polish - native,
        English - B2
    
    
    
        - Developing, maintaining and design backend systems in PHP and Go for 10+ years
- Solving problems (Java, SELinux, Linux, network, concurrency, SSL)
- Design scalable and reliable systems (stateless, load balancing, sharding)
        
- DevOps (pipelines, containers, monitoring, AWS, IaC, configure servers)
- Working with systems up to 500K own lines of code, databases
            ~3TB, every day ~2 millions new records
        
- Creating stream architecture (memory usage below 60MB)
- Design systems using different styles like EDA, SOA or microservices
- Finding bottleneck and improve performance (Optimizing SQL/NoSQL queries by ~86%, reducing processing time by
            ~93% for 50K jobs)
        
- Clean code, Design patterns, SOLID, TDD, DDD, Refactoring
- Updating legacy system without downtime in a few steps
PHP, Go, JavaScript, TypeScript,
        Symfony, PHPUnit/Behat,
        React, Angular.js, SCSS,
        MySQL, MongoDB, Redis, Elasticsearch,
        RabbitMQ,
        AWS, Docker, Kubernetes, Gitlab CI/CD, Terraform, Ansible
        
July 2024 - Present
        Senior Software Developer, Zeme
    
    
        ZEME specializes in managing industrial waste by leveraging modern digital technologies to streamline waste management processes.
        The company provides services such as waste collection and transport,
        but also allow creating a documentation to help clients meet regulatory requirements.
    
    
      - Optimize waste collection and drop-off routes to improve efficiency and reduce operational costs
- Implemente a new algorithm for proportional distribution of masses on KPO cards after waste weighing (improving accuracy and compliance with reporting requirements)
- Introduce server configuration management, monitoring servers and applications, CI/CD
- Implement end-to-end (E2E) testing using Cypress
- Creating dedicated tool to find leads based on public information from BDO, which maintains a register of companies that generate, transport or process wastes.
- Implemented saved filters functionality, enabling storage and handling of very long URLs with applied filters
- Integrate the internal CRM system with Gmail, add support for HEIC image format, mass actions to manage orders or companies
        
March 2022 - June 2024
        PHP & Go Developer, Linker Cloud
    
    
        Linker Cloud offers ecommerce fulfilment and OMS Software.
        Our cloud-based software for managing the entire post-sales process handles 800K+ orders per month. Our goal is to make 1-day delivery a reality for all
        consumers.
    
    
        - Creating a video recording feature at packing stations. Each recording have
            information about the details and
            allow searching for the part of the recording in which the selected product is visible when being packed.
        
- Documenting warehouse processes in form of images to reduce cost of dispute.
- Creating a new architecture (based on the chain of responsibility pattern) to search in
            3 millions of products
        
- Monitoring and calculating the execution date of order using strategy design pattern
- Simplify configuration of business rules for end user via using vistor
            design patterns
        
- Simultaneously support old and new configuration of external library without any outages and
              problems by using pipeline pattern
        
        
June 2020 - February 2022
        Symfony FullStack Developer, Polcode
    
    
        - Design a REST API backend application (portal with classified advertisements), with CQRS. Flexibility
              for category attributes based on JSON Schema specification. Using context object to adjust
              system to specific characteristics of selected country.
        
- Technology leader who design and recommend solutions to customers with respect to budget and deadlines
- Creating SPA in React.js + TypeScript to upload receipts and receive a refund for shoppings. Responsive
            application with a focus on mobile users.
        
- Creating Symfony backend application to manage shipments (~5K per month).
            Importing data from an old application and
            sync data in realtime. Creating business logic based on DDD (value
            object, factories, aggregates etc.). Using
            async processing to generate and send data to external systems.
        
        
February 2016 - May 2020
        FullStack Developer, Sensilabs
    
    
        - Analysis of mobile users' behavior through wi-fi networks. Analytics panel for shops and shopping mall
            presenting visits, unique users and new/returning customers. Map with estimate location of user home.
            Calculations for the movement of customers between brands.
        
- Developing system for investment funds. Using many design patterns like
            specification, composition or strategy to design new architecture. Collaborative with analytics team to
            implement task with respect to business or law rules.
        
- Care about Developer Experience (bots, pipelines, automations,
            environments)
        
- Creating a backend system to fulfilment delivery parcel of the same day
            for the country wide logistic service
        
- Online/offline working application for storing various scientific data, embedded synchronization module
            for syncing nodes. Highly flexible data structure, content types.
        
- Reduce number of problems during handling payments for one of Poland’s
            taxi service
        
        
July 2012 - January 2016
        Developer, eo Networks
    
    Projects:
    
        - Offer comparison platform (TV, phones, loans, internet)
- Developing a system to improve the legislative work
- Creating a CLI application in C# which use the Enova ERP API and integrating it with PHP
- A B2B system that automates the processes necessary to provide IT services
Key tasks:
        - Design a flexible (generalized) calculator architecture for different types of products
- Co-creating a SPA application using the ExtJS framework
- Integration with Active Directory/OpenLDAP
        
June 2011 - March 2012
        Developer PHP, Autentika
    
    
        - Creating websites and applications in PHP5 and jQuery
- Using MongoDB and MySQL
- Using Sphinx Search to build search engines on the websites
- Integration with web services (eg. vimeo, mail chimp, payment system)
        
            - SSorder is a web application created by intern.
                Currently develop after hours as an opensource project. It is used to order and settle meals for
                employees. "Sandbox" for introducing new technological solutions.
            
- The RequestCollector is library to
                collect
                the request/response sent via Symfony HttpClient or Guzzle with support for sanitized from private/personal data.
            
            - php-profiler is used to profile PHP
                code, which has support for legacy PHP versions and does not require any external dependencies.
            
- Homelab contains infrastructure as
                code.
            
- sf-utils is library with a collection of helper
                class for Symfony Framework.
            
- faker-images - different images provider for
                Faker