March 2024

Noteworthy stuff I did this month

Jobs

I have been hired as an intern at Mediarithmics, an AdTech company, starting april 2024. There, I will work on the backend application written in Scala (the functional way).

Programming

This month, I was busy bootstraping an SaaS unofficially called ServiceLink for now. I won’t pitch the idea since it’s originally my brother’s. He takes care of the domain/business side of things while I take care of the technical aspects.

My mindset with this side project is to learn new technologies while, if possible, making a bit of money.

Overview

The tech stack is composed of a domain driven design-like backend, an administrator frontend and a mobile frontend. For now work is focused on a MVP with basic features.

Backend

Made with Kotlin, the http server originally chosen was Ktor for it’s wide use. However, after testing I decided on HTTP4k. I was seduced by it’s simplicity and functional way of handling things. The API is a mix of REST and GraphQL.

  • REST is used for user login and serving some templated html pages.
  • GraphQL is used for everything else (mostly handling domain objects).

It was my first time using GraphQL and Kotlin and I was pleasently surprised that both work hand in hand thanks to Expedia group’s

I would say it is 50-60% done.

Administator frontend

Made with React, Chakra for the UI and Apollo as the GraphQL client. While I have already used Chakra and React, It was my first time using Apollo. It proved hard to understand how to mutate the cache and how it affects my components. I still have a lot to learn on that front.

This part is 70% done with only a few features missing.

Mobile frontend

I thought of multiple technologies to build the mobile app, including React Native, Flutter and plain native apps. In the end I settled on Kotlin Mobile Multiplatform because it seemed like the best fit with the ability to share domain objects with the backend. This technology has only recently been in stable release but I believe it will become widely used since it seems to combine the best of Native and Multiplatform development.

Around 20% of this part is done with only a UI made with Android Compose and a bare bone navigation for now.

Arthur SouliĆ© 2024 ©