Monorepo for YouTube-like company with long-term problem-solving approach

I am looking for work. And before I started to look for work again I thought it was a good idea to set up a repository to showcase how I view problems from a long term perspective instead of a 1 or 2 day coding task. https://lnkd.in/g_tVY67D is a monorepo that simulates a youtube like company.  It captured metrics for “videos" played, who watched them, and allowed users to comment on the “videos”. In this example the media in question will just be represented by a looping gif.   It does this using mysql, postgres, redis, and kafka for data storage and messaging, along with about 8 custom applications, java for backend and typescript for front end.  All applications can be built using one gradle command (./gradlew build), and the entire stack can run by just running `run_locally.sh` if you are on a mac.  I have a run_locally.bat for windows, but I haven’t tested it out and am assuming it won’t work. The entire stack can be run on a mac with 16gb of ram. The entire stack demonstrates how using a monorepo approach you can use naming conventions, gradle plugins, and submodules to quickly introduce new executable, minimize context windows, refactor consistently and quickly create integration tests that focus on testing business concerns. For example * Plugins For Build Conventions * Using plugins to automatically generate open api documentation and setup base spring boot dependencies The convention https://lnkd.in/g_nv8S6E How it’s used https://lnkd.in/gqt8hRm8 This allows build scripts to focus on what is unique for the application instead of boiler plate * Integration Tests As It’s Own Submodule * Instead of creating an integrationTest task, it is its own distinct module.  This means you can bring in multiple microservices and test them in a single test. For example the following test https://lnkd.in/gxV6gwhi Tests that for a unique user, and piece of media, that when a user plays and stops viewing that piece of media the metrics are captured.  This tests that information went through the whole stack, (mysql, kafka, postgres and most of the microservices). These techniques, among others, are what I hope to bring to the table at your company to reduce the size of context windows for your ai agents, increase readability, simplify testing, simplify deployments, centralize documentation, and reduce the amount of time spent talking about the tech stack instead of improving your product.

most integration tests just check if code runs. real ones prove the system does what it's supposed to. that media playback test? it proves data moved through kafka, metrics landed in postgres, the whole chain worked. not just "service responded 200" but "we know this user watched this video." the context window thing is real. separate repos mean stitching mental models together every time. monorepo with strict conventions? the structure tells you where to look before you even read code.

Like
Reply

To view or add a comment, sign in

Explore content categories