github profile icon1p22geo - personal homepage

Bartosz Geodecki

High school student, hobby fullstack web developer

Links: github logolinkedin logo
1p22geodecki@gmail.com GPG public key [generated 2024-02-07]

My projects

Click on the titles for GitHub source code repo.

Schrödinger's equation aka libschrodinger

One of the best projects I've made. Started out as a simple script to solve a differential equation, refactored and modularised into a library of classes with a web interface and usage examples. Featuring Python, numpy, scipy, Flask, pytest and pdoc. A static version is running here PyPI release Arch Linux release

WordBook

Still in development, but actually the most ambitious so far. A simple Facebook clone with Wordpress-like features. Supports Markdown, KaTeX and images. Made using Next.js 14, Typescript, Tailwind CSS, React, MongoDB and OpenTelemetry. The whole app is contained in Docker. There are also unit tests with Jest and end-to-end tests with Playwright. All CI/CD (with all tests and Docker image building) runs on my local Jenkins instance.

Next.js chat

A pretty basic real-time chat application, made with Next.js, socket.io and React. Account registration, app and account settings, admin accounts, moderator and admin restricted channels, end-to-end encryption with HTTPS, WSS (websockets but secure) and TLS certificates (self-signed, but I guess you can replace them).

Null Crypto

Ever wondered what is it like to trade on a crypto currency market? Well now you can try crypto trading with no risk, because at Null Crypto no transactions get commited anywhere except window.localStorage. You can trade a couple crypto currencies and enjoy aggresive market plays with the latest prices from CoinGecko.
The app is actually running here and you can try it out!

WikipedAI

Simple Wikipedia clone. The only difference is that when a user requests an article which does not exist, it gets an AI-generated template, which can then be updated with references (you know AI is bad at quoting sources), and edited by a user. I made a Docker container for easy running and deploying

AI-MONO

Tiny monorepo with multiple AI projects. All the way, from AI agents, through chatbots, until RAG as an Android app. I can't afford a cloud server, so you have to deploy them yourself, but it's worth it.

Networking Remastered

Actually, it's called that just because it's the second version. The first one used pyGame and is available here It's a simple network simulation (still in development) showing switches, routers, DHCP, ARP, IP addressing and more. All packets travelling can be closely inspected, with all protocol layers.
The app is actually running here and you can try it out!

Battleship 2

Once again, this is the second version, the first one (you guessed it, pyGame) is here. Simple Unity game where you fly a spaceship (I made it in Blender) and shoot asteroids. In 3D, of course. The app is actually running here and you can try it out!

PHP document manager

I guess you could call it a content management system... It's more of a customizable blog. It started out as a homework (that's why it uses PHP and MySQL in the XXI century), but then I developed and finished it myself.
It has features like registration and login, the administrator can create and edit text documents for everyone to see, and upload files for others to download.

Tensorflow translate

It's still VERY unfinished (and untrained), but basically it's a Python script (using Tensorflow and TFlearn libraries) that translates from English to Polish (my native lanuage). It hogs a lot of RAM and CPU, and it's still not optimised for GPU's. But at least it works. On my machine. With an extra swap file. Pretty slowly. But I am still learning! (the model is learning too)

MNIST script

The hello world of machine learning. Python script for detecting handwritten digits. Includes a web app made with Flask. Works best in tensorflow/tensorflow docker container. No, I didn't build an image from it.

United Documentation

Simple content management system / blog with Express.js and MongoDB. Made as a homework, later finished into an actual usable app. Features login/registration, admin accounts, users can create and delete posts and report inappropriate content.

My skills

Next.js
I feel pretty comfortable using it, it's been my web framework of choice for a long time, but I might not be up-to-date with the latest knowledge.
React
React is simple, intuitive, and react hooks make development a lot easier (especially the new use hook), but I'm still not fully satisfied with my knowledge of <Suspense/> and <ErrorBoundary/> components.
Typescript (and JS too, I think)
In my humble opinion, Typescript is just the perfect language. Compiles to JS, which runs on web, desktop (node.js) and even mobile (React Native). It's high level enough to be fully cross-platform, and the npm library ecosystem makes every task as easy as yarn install something
Python
Python, with its many libraries is a very powerful language, but sometimes a library just doesn't work on some OS, and nobody knows why. The pip ecosystem is large for one thing, but resolving dependencies and conflicts may be difficult.
Docker
Docker makes everything cross-platform, as long as you can make Docker work there. While I'm pretty comfortable with the basic usage (building images, Dockerfile, docker compose) and know a bit of docker-swarm usage, cloud extensions like Kubernetes are still too magical (and too expensive) for me.
AI tooling
While simple at its idea - ask for whatever, get instant responses - prompt engineering and complicated AI pipelines are still magic for me. But I have gotten a hang of integrating AI APIs (like Ollama) into different areas of programming.
Tensorflow
I've always kept it as a fallback, in case web apps just don't do as a career choice. It's definitely not intuitive, and the API is so convoluted, that many 'wrapper' libraries (like TFlearn) have popped up.
AngularJS
An elegant framework, beautiful in its many usage forms. However, its template syntax may be difficult to learn, as oposed to React which uses native JS functions and syntax.
vue.js
Simple and practical, but auto-importing components and weird syntax conventions which grew over time make an excellent environment for bugs to spawn.
Networking (and Linux)
They've always just been a hobby of mine, but I have long ago realised that unless you are just the best, there are no job opportunities for a 'hobby sysadmin'. But I still use Linux and play with networks and penetration testing at home.