My [English] name is Don. I'm currently an engineering student at UCLA, pursuing by Bachelor of Science in Computer Science and Engineering. I was born an American, but I grew up outside of the United States and only moved to Greater Los Angeles back in 2022. Outside of school, I enjoy writing (on this website), reading, movies, poker, and traveling. I love exploring new places, especially trying out new food. I also enjoy poker and board games in general. Recently, I've been playing a game called Catan. Regarding school: engineering has been quite an experience. Lots of ups and downs, and certainly a lot of work to be done. Read more about my engineering experiences here.
If you want to know more about my curriculum and professional experiences, please check out my portfolio and résumé at ddonle.com. I'm also currently working as a math, physics, and computer science tutor, I left some of my personal notes in the Notes section above, feel free to use them.
Of course not. Here's a bit more to my story:
At the age of 15, I was introduced to computers and programming after inheriting my first laptop from my older brother. I wrote my first few lines of code in C, starting with a simple script to solve quadratic and cubic equations, and then an unsuccessful attempt at solving the quartic. Soon after, I built a simple scientific calculator, a game of tic-tac-toe, followed by a basic version of Snake on the terminal.
Throughout my teenage years, I've tried many other programming languages (like Python or J*vascript), but it turns out I prefer languages that are closer to the hardware, yet high-level enough to be productive like C or C++, and most recently, Rust. Overtime, I also found myself drawn slightly more to the electrical engineering side of computers—which ultimately led to my choice of major in college.
I have some experiences in various technologies in web development, but I prefer to work in fields that involve system and low-level programming, which includes: Low-latency C/C++; Computer vision; ODEs/PDEs modeling and physics simulation; 2D and 3D Graphics Rendering; and General-purpose GPU programming.
I started digging through the internet back in middle school to collect and read scientific textbooks. While doing so, I couldn't help but encounter a lot of interesting computer science and math blogs. As a result, I got inspired by some of them and decided to create this website: a place for me to upload my writings and projects. I primarily write about math, programming, and physics, and occasionally about everyday topics like food reviews.
This website was formally built back in summer of 2024, but I've been writing a lot of the content on this website on LaTeX documentations way before that. I coded this website from scratch using HTML, CSS, and vanilla Javascript (ancient and primitive, I know, but they works). For this reason, the website might not be very well-optimized, so please excuse me. To view the source code, click on the logo on the side navigation bar or follow this link.
Structure: There are two types of blogs on this website: articles and posts. Articles are technical and focus specifically on topics in math, computer science, physics, or engineering. Posts, on the other hand, are shorter, usually non-technical, and primarily cover everyday niche topics.
Building an entire blog system from scratch is no easy task, but the fun part about doing so is me having fine-grained control over everything. However, too much control over something can be a real headache. This means that if something goes wrong on this website, it's entirely my fault.
Instead of using pre-built components or a template like any sane person would, I decided to write thousands of lines of CSS and Javascript and I had to constantly fix the code to ensure that it works well on both desktop and mobile. Now that I'm looking back, I think that it was a real pain and a waste of time, but here we are.
That said, all of it still ties back to one thing: future-proofing my work. Whenever I create something, I always think about my future self. I constantly ask how I can make things a bit easier down the line, like the choice of loading certain components dynamically. This choice actually tanked performance, but it did make things easier for me whenever I want to add, let's say a new section on the top bar. Because of that, I've lost count of how many times I've changed the design just to make the process of updating content easier.
Please don't get me wrong. I DO place a major emphasis on efficiency, optimization, and speed. But that's only for my work in system programming, or if it's something related to web dev that really needs performance, I'd just use a framework like Next. For a personal, hobby project like this, I don't really care. The slight inefficiency is small enough to be considered negligible, and I'm happy with that.
Earlier, I did say that I built this website from scratch. I was lying. Nobody builds anything from scratch, we're all standing on the shoulder of someone. Some other tools I used are MathJax, a javascript library that helps display fancy equation like this:
On your left side, in the side navigation bar, I used ghchart by 2016rshah to display my GitHub activities. I wish he had added an option to change the cell colors, as it would've worked better with dark mode. Someone even opened a pull request for it, but the author is nowhere to be seen. I also use prism.js to provide some nice code syntax-highlighting for websites like below. You can change the code theme in the setting
About the logo: that's the trajectory of a double pendulum in a computer simulation.
The general layout of this website should be completed, but I will still add some new features every once in a while, if I have time. This website is still relatively new anyway.
Some features I might add in the future:
This website is private, and it was created solely to display my writings, projects, and personal things that are interesting to me; therefore, the quality of this website is subjective only to me. If you have any suggestions on how this website can be improved, or if you find any:
feel free to reach out to me using the email address below. Any feedback or thoughts about this website would be greatly appreciated.
I am also open for conversations, so if you just want to have a chat, you can reach out to me via discord or telegram.