All Posts
Dark mode coming soon!
Case Study: Custom React Hooks in a Push-to-Talk (PTT) Web Application
Recently, I had a school project. In the project, we are supposed to create a push-to-talk web application. The sender will stream their audio via a WebSockets connection to a server, which will relay the audio to the listener. Not only that, we had to use the Web Audio API to process the audio data on the sender and listener's devices. This meant that there was a high chance of coupling, not only between the UI component and application logic, but especially between the audio processing logic and the WebSocket streaming logic. Thus, in order to make it reusable, I wanted to enforce some separation of concerns from the get-go. It was decided: they will become custom React hooks.
Why I Migrated My Website From SolidJS to Astro
I recently migrated my main portfolio site from SolidJS to Astro, and I thought that in order to celebrate the launch of the new site, I would write a blog post sharing a little bit about the reason behind the migration. In this post, I will talk about the history of my website, why I decided to migrate it to Astro and what is to come in the future.
How to Create Multiline Lists and Elements in Markdown Tables using Jekyll
Markdown syntax is very lightweight and almost resembles normal text, which makes it a very useful tool for writing notes, documentation, and the like. However, because of this simplicity, it lacks some features that are present in more complex markup languages like HTML. One of these features is the ability to create lists and other multiline elements inside table cells.
5 Simple TypeScript Utility Types for Safer Code, with Use Cases and Examples
TypeScript's type system is very powerful, allowing developers to build very complex types. At the same time, it is very flexible, allowing for incremental adoption. One of its main features is utility types to help you write safer code. While TypeScript comes with many utility types out of the box, sometimes you need to create your own. Doing this can be a bit tricky to get right, but fortunately, a lot of utility types can actually be quite simple while still being very useful.