This website is my personal platform where I can put anything I want to. For now, the main focus will be on serving as a blog, portfolio, and CV. It's a place where I can show off my projects and share my thoughts.
I'm trying to avoid being pretentious or acting like someone I'm not, because that can lead to issues like perfectionism and unrealistic expectations. While I do want to present myself in a positive light, I find it healthier to stay honest and authentic.
In the future, this website will work as a platform for my future projects. Ideally, as I keep improving my skills, I also keep improving this site, to reflect my current abilities. Maybe all of this will look way different in a year or two.
The core of the website is built using SvelteKit, a framework for building web applications. The website is hosted on Cloud Run. It's a serverless container hosting platform by Google Cloud. I use Firestore as my database for posts and form submissions. Most images and videos are stored in Google Cloud Storage.
Here's a diagram that shows the overall architecture of the site:
There is quite a lot more to say. I will update this page in the following weeks to give a more complete and detailed explanation.
I don't want to show the user pop ups or hide buttons behind menus. The visual style should be easy to understand.
I'm designing this website myself, without intentionally copying anyone else's visual style, structure, or content. My biggest inspiration is the structure of my old website.
I could use website builders like WordPress and Squarespace, but that wouldn't require much technical knowhow, and I wouldn't learn much. Building a website "myself" by writing code gives me infinite possibilities for what I can learn and put on the site. It is also much harder to make anything look good when you can't just "select a logo and theme" — you need to design and build the theme.
For some reason, I have a need to understand how websites and other software works. Every time there is an abstraction(basically all the time) that gives you an easy way to do something, someone has thought of how it will be used and how to handle all edge cases that the user will never even realize.
When I write a simple `print('Hello world!')` statement in Python, I'm triggering a cascade of instructions. The function has to handle many kinds of cases with weird characters and data. The instruction gets converted to bytecode which make system calls to the OS which does god knows what and tells the hardware to do its magic, moving electrons around in an incredibly specific and complex way through the CPU, GPU, RAM etc...
To me it is utterly fascinating. And this is one of the simplest examples. It bothers me when I use a high-level library or framework and there's a significant gap in my understanding of the underlying stack.
SvelteKit, for example, uses Vite, which I'm not familiar with, and that lack of familiarity leaves me feeling a bit disconnected from fully understanding the development process. I know I will never understand the full stack of abstractions for most things, there is always more to learn.