Senior Frontend Engineer @ ItsMyCargo GmbH September 2021 - April 2024

ItsMyCargo build a SaaS solution mainly aimed at big freight forwarding companies. I came into the company to develop the new version of their frontend/configuration solution as well as bringing new features to fruition in cooperation with the backend, design and product team.

My Tech Stack

Angular Logo

Nodejs Logo

Docker Logo

When I arrived in the team a freelancer had built a first draft for an Angular Application with a Material Design Library. Thankfully the Application was well structured and easy enough to understand, so I was able to become productive very quickly. My first big task was creating a new backend configuration solution that would configure the current frontend. I decided on building multiple applications from the same code by using multiple different main.ts files. In these files NgModules they both needed could be further differentiated by providing different implementations for dependencies to said modules. For example the internal tool used different endpoints than the external tool in many instances, hence different implementations for the same service definitions could be provided.

I also maintained an intuitive flow of the data through the application with NgRx stores, so that data would always trickle down from the main page controller to simple leaf components. This also made it easy to write automated tests for most components. Over time this led to pretty big main controller files that we later tried to get more manageable by abstracting out managers. I always try to be careful not to make my code too DRY because I found that too many levels of indirection are also slowing down development and being too DRY too early leads to a lot of premature optimization.

Lastly I wrote a microservice for PDF generation that used a chrome headless browser, loading a specifically built third application from the same code base as the internal and external tool, so that the design system from the main application could be used to render the PDFs. I also helped to keep the Github Action Pipeline and Docker files functional throughout the development process.