• Experimentation
  • Rides
Filter by topics
go
node.js
sysadmin
docker
ui
misc

Rides is a full-stack simulation of a ridesharing app. This project is my take on building and visualizing a scalable system. My motivation was to implement various concepts from the domain of system design, including containerization, multiprocessing and observability. This project took approximately 300 hours of work.

#2 What I've learned

February 7, 2024

At my job, every engineer does customer support. You might think it’s a ...

#1 What I've learned

February 1, 2024

Our work at PostHog is public, so it's pretty cool I get to share my recent ...

#34 Monitoring & logging

April 18, 2023

Now that our simulation is running, let's set up monitoring and logging to track ...

#33 Finalizing the simulation

March 27, 2023

Finally, the time has come to put all the components of our simulation together. ...

#32 Route planner

March 15, 2023

Now that a driver is matched with a customer, we need them to head to the ...

#31 Matching drivers with customers

March 10, 2023

The next step in our simulation is matching drivers with customers. There are ...

#30 Generating destinations

March 8, 2023

Previously, we added functionality for generating customer locations. This was ...

#29 Multiprocessing in Node.js

February 24, 2023

Here's one crucial thing to consider for our simulation. Every entity runs its ...

#28 Simulation engine

February 22, 2023

Today, we are starting to build the simulation engine. Let's see how it's going ...

#27 Animation fixes

February 17, 2023

A few issues with our animation code only became apparent after I started ...

#26 Server-generated data

February 16, 2023

Let's generate location updates on the backend and make them available to the ...

#25 Tidying up

February 14, 2023

We have iterated a fair bit on our project and a general structure is emerging ...

#24 Turning a car

February 8, 2023

The only thing our car animation needs are turns. Let's finish it up. A brief ...

#23 Moving a car

February 6, 2023

A car will move along a calculated path between the starting point and the ...

#22 Designing a car

February 3, 2023

Let's design a car icon we will place on the map. I used the amazing and free Ve ...

#21 Migrating to React

January 30, 2023

I started out writing the frontend application in vanilla Javascript. This was ...

#20 Docker Compose in production

January 26, 2023

There are a few more things we need to do to be able to run our app in ...

#19 Connecting two containers

January 25, 2023

There's an issue with our implementation from the last post. Have you spotted it ...

#18 Go: database connection

January 10, 2023

Let's connect our server to the database. First, let's add the postgres folder ...

#17 SQL setup

January 3, 2023

We will use PostgreSQL to persist the data on drivers, riders, and trips ...

#16 Docker in production

December 24, 2022

Let's now use Docker in production. Before we deploy our changes, we need to ...

#15 Setting up Docker

December 23, 2022

Today I was going to install an SQL database. It occurred to me that I would ...

#13 Building a graph

December 2, 2022

We need a data structure allowing us to move from point A to point B. This data ...

#12 Drawing a map

November 8, 2022

We need a map that will display all the action, such as routes requested, riders ...

#11 Improving deploys

November 7, 2022

The current deployment setup needs some work. First, we currently have to copy ...

#10 Serving a web page

November 3, 2022

Let's set up the serving of our app's frontend. First, let's change the domain ...

#9 Environment variables

October 23, 2022

Let's make our server aware of its environment. On our local machine, we want to ...

#8 HTTPS

October 22, 2022

Let's enable HTTPS on our server. This will encrypt the data coming from and to ...

#7 First deployment

October 21, 2022

Let's copy our server folder to our server at api.jurajmajerik.com. We can do ...

#6 HTTP server

October 19, 2022

We're going to use the native http module to set up our first endpoint. This is ...

#5 Installing Go

October 17, 2022

We'll be using the Go language for the backend code. Here I'll show how to ...

#4 Setting up SSH keys

October 17, 2022

Right now, we have to enter the password every time we log in to the server ...

#3 Users & privileges

October 16, 2022

The root user is an admin account - it is allowed to change any files in the ...

#2 Domain & DNS

October 15, 2022

Let's connect a domain to our server. This will save us from having to type the ...

#1 Setting up a server

October 14, 2022

Let's set up a server on Digital Ocean. For now, the cheapest option with 1 GiB ...

Building an Uber clone

October 13, 2022

I'm fascinated by distributed systems and I'm going to learn about them by ...