Loading...
View related media

BlueConic

Company website

Project type

Professional

Platform

Web / Cloud

Technology used

Back end
Node.js, TypeScript
Front end
TypeScript, React, Dojo, D3, ES6, Sass
Other
Atlassian Suite

Employment period

January 2020 - Current

Description


BlueConic is a Customer Data Platform created by the identically named company BlueConic. It allows customers to collect their first-party data in a single application and provide tools to activate said data.

The goal is to provide companies with a privacy-compliant way to advertise more effectively to customers and improve their journeys through the company's ecosystem.

It offers various tools to interface with third-party systems, provide personalized content on customer websites and apps, provide tools to retrieve data from first-party sources and view collected data through a multitude of customizable visualizations.


My responsibilities


Developer

At BlueConic we had quite a wide range of responsibilities:

  • Write production-ready code
  • Write unit tests
  • Review code & tests written by peers
  • Maintain and improve legacy code
  • Research internal & external APIs
  • Create technical design documents
  • Write relevant documentation
  • Maintain a local build pipeline
  • Maintain a cloud-based CI/CD pipeline
  • Monitor production environments
  • Perform scrum ceremonies:
    • Daily stand-up
    • Refinement
    • Sprint retrospective
    • Sprint review
    • Sprint & quarterly planning
  • Review test plans created by QA engineers
  • Review UI designs created by UI/UX designers
  • Onboard new developers
  • Bookkeeping in JIRA

Occasionally, we had to be even more flexible and perform the following tasks next to the ones above:

  • Take in code from another team and make it production ready
  • Perform manual testing when QA capacity was insufficient
  • Perform emergency maintenance when mission-critical infrastructure failed

Architecture & Tech stack transition

During my employment we have had a significant transition in the tech stack that was used. We moved away from using the outdated Dojo framework and picked a much more up-to-date library: React.

Of course, along with that change we made many more:

  • ES6 JavaScript ➔ TypeScript
  • Gulp ➔ Webpack
  • Sass ➔ Styled Components

Being part of this transition was rather fortunate for two reasons:

  1. I was able to learn the new technologies slowly as we transitioned. Because many of us were not very familiar with the new technologies, there was a team-wide onboarding effort that helped everyone get up to speed.
  2. Because such a transition takes time, I got the chance to take the steering wheel once I was up to speed with some of the new tech. In this case, I took the lead when it comes to TypeScript. There was a lot of unused potential, which I have been able to implement in our workflow resulting in much better and readable code.

High performance code

A key constraint on the back end was to write highly performant logic. As we were processing lots of data, we had to make sure this happened efficiently. Dealing with millions or even billions of data operations was nothing exceptional.

Additionally, we were on a tight memory budget, which forced us to use Node.js streams wherever possible.