jakubc.dev

Jakub Czarliński

Hey,
Nice to see you here so early! This page is still under construction, but feel free to look around.
In the meantime, check out my GitHub profile or LinkedIn.
GitHub LinkedIn
- Jakub

Portfolio


Bun Alpine Linux PostgreSQL Vite TypeScript Gin Go Docker Tailwind CSS Cloudflare Svelte RollupJS
Go-Svelte Framework

Caesar confused after being woken up.

A blazingly fast full-stack framework that Server-Side-Renders Svelte components into Go templates at compile time. It combines the full expressivity of Svelte with the speed of Go, creating an ideal synergy. This single binary is designed to minimize memory footprint while preserving the rapid development experience of the JavaScript ecosystem. It's a dream come true for developers building fast, scalable, and visually appealing web applications.

Marketing fluff aside, what do the numbers say?

Minimal build time for a full-stack app is just 0.6 seconds. Running this website inside an Alpine Docker container, the framework handles over 400K requests per second. For comparison, the `hello world` example for Bun's server can handle about 100k requests per second in the same environment. That is 3.26GB versus 11.55MB of data transferred.

So what about memory footprint?

Bun uses 42.8MB of memory on standby and peaks at 140MB during benchmarking. 42.8MB for a `hello world` doing nothing?!? Go-Svelte uses just 5.0MB and 40.1MB respectively.

What's the big deal? Aren't computers fast enough?

Sure, modern computers are fast. Going faster means you can do more with less. Less memory, less power, less cost. It's about efficiency. When your whole docker container can fit into the L3 cache of a modern desktop CPU, and the application fits in L2 cache, you know you're doing something right. Fewer cache misses, fewer context switches, fewer bottlenecks. It's about making the most of what you have. There is no need to waste resources, bloating your server and client. Have you not been annoyed by sluggish software in the last 5 years?

Just because we can use gigabytes of memory, a node_modules folder large enough to be a fill a data centre, and a CPU running hotter than a nuclear reactor, doesn't mean we should. It's about doing more with less. It's about being efficient.


NumPy Python Go Jupyter TensorFlow JAX
Google Internships

Caesar basking in the sun next to a plant.

Google STEP intern 2022, working on Android Google Search. Google SWE intern 2023, working on Text-to-Speech research. Specifics omitted.


NumPy Overleaf Python PyTorch Jupyter Hugging Face Conda
Diffusion Multi-Speaker TTS Synthesis

A neighbourhood cat watching me clean the garden.

Third-year dissertation project focused on applying diffusion models to generate speech from multiple speakers. Inspired by the NaturalSpeech2 model developed by researchers at Microsoft, but iterated on by conditioning the model with speaker embeddings rather than whole sections of audio.


GitHub

Luna; a very friendly and free-spirited cat.

Collection of many of my personal projects, open-source contribution, and a showcase of my skillsets. Contains a variety of projects, from full-stack web applications, to machine learning research projects, to small utility scripts. It's a great place to see what I've been up to. Whenever I have a new idea, I try to make it a reality and share it with the world.

Isn't that a little too many badges? What do they even mean?

Sure is! Feel free to doubt my experience, but I can assure you that I have interacted with all of these technologies. It's always fun to try a new technology, program using a new paradigm, learn something new. It's what makes the field of Computer Science so exciting; ever-changing. It feels very enabling to be able to pick up any tool and just start building. Given that I started programming very early, I've had the opportunity to explore my interests and opportunities.

https://www.github.com/JakubCzarlinski/

Blog

Blog coming soon. In the meantime, check out my LinkedIn profile.