RSSAmplifier

Blog

Uğur Erdem Seyfi

Recent content on Uğur Erdem Seyfi

rugu.devRSS feed ↗36 posts

Latest posts

A Little Explanation of Little's Law

I recently read Concurrency in Go by Katherine Cox-Buday. In the “Queuing” section, there was a discussion of how we can use Little’s Law to predict our pipeline’s throughput, given sufficient sampling. I honestly wondered why I had not come across this simple idea before, after finishing that part. As I understand it, it can potentially be used in almost any situation where a queue is…

Before Making It Configurable

Configurations exist to allow a program to behave differently without modifying its code. You have a program, you configure it, run it, and it behaves accordingly. In a way, they are like function inputs, but at the application level. They tend to reflect and affect how a system works under the hood. This also makes them closely related to the complexity of our applications. Thinking this way, I…

No, Even JavaScript Has Types

An example of an expression that returns true in JavaScript. Here, 2 + "2" becomes "22" , and 2 * "11" becomes 22 . In the end, "22" == 22 returns true. 🙂 I sometimes see people say that programming languages like JavaScript, PHP, and Perl do not have types. Well, that’s simply not true. Yes, these languages do not enforce types at compile time. They are also not very strict about what you can do…

Tailscale’d Into Homelabbing

Having my own homelab was something I wanted to try for a long time. However, I just couldn’t get started. Mostly because I kept overthinking it. How will I handle dynamic IPs? Do I need something like a local DNS on my router for that? Even if I solve things inside the home, how am I supposed to access it remotely? Do I need port forwarding at the NAT layer? And what about TLS certificates,…

LLMs Are Not Necessarily About Speed

Around 1.5 years ago, I developed a web extension called Mark Scroll Positions both to solve my own need and to experiment. If you are interested in how it looked and the original idea, you can check Introducing: Mark Scroll Positions . But long story short, even though I did not have high expectations for it, other people also started using it after I published it. I received some comments on…

One Year of Using Go

It has been about a year since I decided to learn Go, and more than half a year since I started working at an HFT company that uses it. This is not a very long time with the language, but some of my developer friends have already asked me about my impressions of Go. In this blog post, I want to share my overall experience with it. I will first explain why I felt the need to switch to Go in the…

Using The Corne Split Keyboard For Half A Year

I built my own Corne keyboard around six months ago, in July. I have been using it ever since. Although I am no expert on split keyboards, I accumulated a fair amount of observations during this whole process. I thought that if I wrote down my experiences, they might still be of interest to people who are considering whether to try a split keyboard. Or, if they are already using one, maybe they…

Understanding Go's Garbage Collector

ℹ️ Disclaimer This post was written while Go 1.25 is the mainstream release. Some implementation details may change as the Go team continues to refine the garbage collector. Still, the ideas here should remain useful for building an intuition about what happens under the hood and why certain design choices exist. If you need the most up-to-date specifics, always refer to the official Go source and…

The Key to Organization Is Not Disorganizing in the First Place

Some people think having an organized environment is the result of frequent organizing. My personal journey of becoming more organized actually makes me question this belief. Yes, we can organize things at fixed intervals. However, in practice, I find it too difficult to make this effectively work. To me, the fixed intervals approach associates organizing with costs. You now have a new chore to…

Problems With "Fake It Till You Make It"

I think “Fake it till you make it” is very poor advice if you read it literally, and otherwise, it is simply badly phrased advice. If you take it literally, it encourages people to present themselves as something they are not. If you don’t see any problem with this, then why not phrase it more directly as: “It’s OK to manipulate others until you get what you…

Why I'm Leaving NixOS After a Year?

Around a year ago, I published a blog post explaining my overall experience Switching from Arch to NixOS . You can read it if you’re interested in my early experiences, but, to give you a spoiler, that post ends with me saying: Unfortunately, though, I don’t think the benefits I’ve gotten in this one month of using NixOS so far justified the cost I’ve initially spent and continue to spend…

A Problem With Single-File Codebases

Here’s a tweet from Tsoding (a recreational programmer who creates cool videos); Stop obsessing over splitting code into files. I end up grepping codebases anyway. I literally don't care where you put your functions. miniaudio.h is a single file with 92k LOC and it's fine. File is an OS construct anyway. pic.twitter.com/4zLXGrXEzA — Тsфdiиg (@tsoding) February 14, 2025 I think he has a…

Making JavaScript Simple Again (With The HyperScript Function)

This essay presents a list of reflections on my attempts to create a simple workflow for building front-end applications using vanilla JavaScript. I first discuss what it was like to code when I first started programming and the things that I enjoyed about it. Then I walk through several approaches I tried in the pursuit of simplicity and also share the problems I ran into meanwhile. Later, I show…

Introducing: HackerNews Domain Stats

You can quickly try the app through hnstats.rugu.dev Or, see the source code kugurerdem/hn-domain-stats I like hanging out on Hacker News, reading essays. I also enjoy submitting essays I like that haven’t already been shared there. This way, the author gets recognition and others get to read something they might enjoy too. Plus, more karma never hurts. 😀 For that, I’ve been using an…

Rethinking AI Pessimism

I frequently come across people thinking, ‘Why bother learning something if AI will do it better than me in the future?’ Alongside this thought, I also noticed a rise in pessimism. I believe this pessimism originates from three misconceptions: (1) overlooking the difference between instrumental and intrinsic value, (2) underestimating our ability to adapt to change, and (3) losing…

The AI Productivity Trap

For me, whether AI can be beneficial or not is out of the question, and I am not here to discuss that in much detail. I already heavily use tools like aider (a terminal-based alternative to Cursor), autocompletion assistants such as copilot , and conversational LLMs like claude , chatgpt , and deepseek all the time. So, I truly believe there’s immense value these tools can provide, and I’m not…

Just Write.

I can’t remember when I truly realized the power of writing. But as far as I remember, I’ve been trying to use writing as a tool for putting order to the chaos in my mind since high school. Currently, I have a diary with about 325 pages (assuming each page consists of 500 words). And there’s probably at least an equal amount other writings I wrote for different purposes but deleted in…

I've been a guest on Brodie Robertson's Podcast

I recently wrote a short essay called Linux Asceticism , and it got a lot of attention on platforms like Hacker News and Reddit. I also received an email from Brodie Robertson , telling me that he would soon release a video on his main channel about my essay. He also invited me to be a guest on his Tech Over Tea podcast series. It really surprised me to see a Linux content creator that I was…

NixOS Hates Precompiled Programs (Learn How To Fix It)

I’ve been using NixOS for about six months and am generally satisfied with my experience. However, in this essay, I won’t talk about how great NixOS is, but rather about one common issue that many users, including myself, have faced or will face in the future. In NixOS, most pre-compiled programs will not work out of the box. In this essay, I’ll share my experiences on this issue and…

Linux Asceticism

Most well-known living philosophies -such as Cynicism, Epicureanism, Stoicism, Buddhism, and Sufism- advocate some form of Asceticism . This could involve various acts such as fasting, deliberately confronting personal fears, or even something as subtle as choosing not to pour salt on food. But regardless of the specific way that these practices are pursued, the main goal remains the same:…

Lessons from Plain Text

When you interact with a text file using an editor, what you see doesn’t necessarily reflect the data stored in the file. Sure, the contents of plain text files are byte codes encoded in formats like ASCII, UTF8, or UTF16, and these byte codes are the ultimate source of truth. But in the end, it’s still your text editor that chooses how to interpret and represent that ultimate source…

Stop Being an NPC

When we encounter new information that conflicts with our current beliefs, we typically follow one of the preceding options: Ignore the new information. Place it into your existing belief system, regardless of whether it is consistent with your other beliefs. Create an ad hoc explanation to keep our beliefs intact. Adjust or revise our existing beliefs. Since the last option is typically the most…

Understanding Concurrency, Parallelism and JS

Up until now, I was not aware that concurrency and parallelism were actually different things since they are often used interchangeably by some. I just learned that this is not the case while reading Chapter 9 of the book “Clojure for the Brave and True.” This made me want to learn more about concepts related to concurrency and parallelism, especially concerning the programming…

Debug Smarter

In this essay, I share some tips that I’ve found particularly beneficial for my own debugging experience. Hope it helps the reader as well. If you have any cool tips you’d also like to share, feel free to share them. I might include them in the essay and give you credit for it. Writing Logs to STDERR I’ve noticed that developers, myself included, often instinctively write debug…

Switching from Arch to NixOS

I’ve switched my desktop computer environment from Arch Linux to NixOS and used it for about a month. I want to share my migration experience in case it might interest or even help others. I also want to thank my friends Onur and Mert for encouraging me to switch to NixOS and providing help. Why Migrate from Arch in the first place? As someone who likes playing with tools to understand how they…

Introducing: Mark Scroll Positions

ℹ️ Disclaimer This post was written when Mark Scroll Positions was first built. Since then, it has been modernized by a lot, and the application does not look as it’s been showcased in here. Still, the ideas here should remain useful for building an intuition about how it works. Try the extension in Chrome or in Firefox See the source code kugurerdem/mark-scroll-positions I like reading blog…

Importance of Intentionality in Digital Consumption

A significant amount of my time of the day is spent interacting with computers and cell phones. Some of these are due to habits (like having a feeling of missing out), some are due to reasons related to dopamine (like watching movies, tv-series or content which are supposed to be fun), and some are related to work (software development) or productivity (writing, communicating, researching). So, I…

Contemplating Simultaneous Thinking, God and Logos

I usually enjoy listening to certain types of ambient music or sounds when doing repetitive tasks or even when meditating. In the comment section of these kinds of videos, there are often people spreading love and writing nice things to each other. After consuming so many videos of this kind, I’ve started to predict that these kinds of comments would be present in a video even before opening…

Debloating My Android Phone with ADB

My mother recently mentioned that her phone is continually opening certain windows and prompting her to use services she doesn’t need. After checking her phone and doing some online research, I found out that many others have also complained about this issue. Apparently, she was referring to pop-ups triggered by a pre-built program called “SIM Menu”. This program basically allows…

Incorporating AI Tools Into My Terminal Workflow

For those who may not be aware, Neovim is to me what a lightsaber is to a Jedi. It forms an essential part of my routine, as I use it for nearly all my tasks involving text. Be it drafting an essay, sending an email, or coding, Neovim is my go-to tool. Moreover, I have a deep admiration for the UNIX philosophy and its command-line interface programs. It’s quite fascinating to observe how…

Understanding Keyboard Events Better

In this essay, I describe how I made a Node.js module to listen to keypresses across the system on Linux machines using X. This experience helped me grasp how the OS and Window Managers handle keyboard inputs, clarifying the reasons behind an unexpected behavior I had encountered before, which I also mention in the essay. If you’re interested in learning more about how keyboard events are…

Sockets and Message Framing

I’ve recently been involved in a fintech project that demands high performance, posing various challenges related to a solid understanding of low-level concepts, concepts that are primarily relevant to the inner workings of the tools and protocols used beneath the surface. One challenge involved separating two tasks into different processes: The main process, responsible for constructing the…

Reflections on My Journey into Software Development

This blog post is a review of my journey into software development up until 2023-09-22. It is not intended to be a series of detailed explanations/guidelines for my career choices. Consider it more like personal reflections on events that shaped me as a developer. So, take the things that I say here with a grain of salt. My First Introduction to Programming I used to hang out with my cousin a lot…

On the Importance of Typing Fast

Typing Fast is Important It is often mentioned that the bottleneck in building software projects is not one’s typing ability but ability to think clearly, and to design the architecture effectively. Afterall, if typing speed was so essential to programming, the time difference between rewriting an already existing project with that of creating it from scratch would not be as high as it is.…

My Experience on Switching to Arch Linux

About a year ago, I was invited to a pair coding session at the startup where I was working. The developers were receiving consultancy from a strange person. At one point, he took control of the screen sharing while reviewing some of the pull requests that had been made to our codebase. When he shared his screen, there was nothing but a black screen. Suddenly, a terminal screen appeared with his…

An Argument for Idealism

This essay was originally written for the ‘Introduction to Philosophy I’ (PHIL103) course at Bilkent University, where we delved into various branches of philosophy, including consciousness. It reflects some of the thought processes that arose as I grappled with these philosophical questions. It’s important to note that this essay is not an exact reflection of my personal…