RSSAmplifier

Blog

Costa on Software

Recent content on Costa on Software

blog.alexoglou.comRSS feed ↗30 posts

Latest posts

Video at scale: The hard problem Spotify quietly solves

For over a decade, the digital landscape has been littered with the remains of would-be “YouTube killers.” Well-funded startups have tried and failed to unseat the reigning king of online (medium length) video. Their failures can largely be attributed to a common strategic flaw: a full-frontal assault on a well-entrenched incumbent. They built platforms with the explicit goal of being…

My first (sprint) triathlon

Me getting out of the lake This October I participated in my first sprint triathlon. Sprint triathlon consists of: Swimming for 750 meters Cycling for 20 kilometers Running for 5 kilometers I decided to do this early June, so I had around 4 months to prepare, or 3 if acknowledging that August was vacation time with friends. It was a great experience that made me realize a few things, that after a…

Balancing long-lived connections in Kubernetes

If you’re experiencing uneven load distribution across your Kubernetes pods, you might be dealing with long-lived connections. Long-lived connections are persistent network connections between clients and servers that remain open for extended periods, rather than being established and closed for each request. While these connections can improve performance by reducing the overhead of…

What 'Project Hail Mary' teaches us about the Planetscale vs. Neon debate

Lately I have been observing the constant picking of Neon, mainly I presume for its performance from Planetscale’s CEO, and the X/Twitter community. Here are some of the many tweets I have encountered, but I didn’t save them, so a simple search resulted on the following list, just to get the gist of it. According to @PlanetScale , neon is the second-ranked PostgreSQL…

Is Aging a PPDA-complete problem? That Means We’ll Never “Solve” Aging

The race to delay aging has become a global fascination. From scientists in academic labs to individuals tracking their biomarkers daily, the momentum around extending human life is accelerating. I’ve been drawn into it myself. My own initiation into the field came through David Sinclair’s book Lifespan, which left a lasting impression. Since then, I’ve become an active participant in the…

Hedging: A 'Simple' Tactic to Tame Tail Latency in Distributed Systems

Picture this: your distributed system humming along nicely, serving thousands of requests per second with blazing-fast response times. Then suddenly, a handful of requests start taking ages to complete, and your carefully crafted service level agreements start to crumble. Sound familiar? This happens due to the notorious tail latency problem—where a small fraction of requests can become the…

Emoji Sorting: Not Bias, Just Unicode

This exploration started after seeing a controversial tweet suggesting emoji sorting in programming languages exhibited white supremacy (troll post). The issue was even raised in the Gleam programming language repository, demonstrating how technical implementations can sometimes be misinterpreted through a social lens. Tweet that inspired my exploration around emoji sorting How emoji sorting with…

Iterators in GoLang

Iterators in GoLang were introduced in Go 1.23, and it was about time. Many programming languages like Python, Ruby, and JavaScript have iterators, which are powerful tools for iterating over collections. This post explores how to use iterators in GoLang, specifically demonstrating their use with the for loop and an example from Advent of Code 2024. Why to use an iterator Iterators provide a…

Enhancing Go performance: Profiling applications with flamegraphs

Profiling is an essential practice for optimizing the performance of your Go applications. While many tutorials focus on profiling HTTP servers, it’s equally important to understand how to profile non-server Go programs. In this guide, we’ll explore how to set up profiling in your Go application, visualize the results using various tools, and address common challenges you might encounter. Setting…

Navigating Loops in Go: The Role of Labeled continue Statements

Reflecting on my computer engineering studies, I recall my professor’s cautionary words about the goto statement. He emphasized that its misuse in early programming led to convoluted, hard-to-maintain code—often referred to as “spaghetti code”. This widespread abuse prompted many languages to eliminate goto in favor of more structured control flow constructs. The seminal 1968 letter by Edsger W.…

File Caching and Container Memory: What Docker Stats Isn't Telling You

Tl;dr: Docker’s memory stats can trick you, especially with databases. In this post I explore why file caching creates misleading memory graphs and explore alternative monitoring metrics for container performance. When monitoring containerized applications, particularly databases, relying solely on docker stats for understanding memory usage can be misleading. This post explores the nuances…

You are not a Senior Front-end Developer if you don’t know JavaScript

Tl;dr Learn the fundamentals of JavaScript, even if you’ve been working with React for years. There’s a good chance you’re missing concepts that could make your life easier and expand your skill set. Over the past three years, I’ve led engineering teams and interviewed more than 100 Front-end engineers. I typically conduct a code-pairing session to assess candidates’ foundational knowledge,…

Book Review: Project Hail Mary

Just finished Project Hail Mary. One of the main takeaways from me, was that I achieved a front-page post on HackerNews, with my post “What ‘Project Hail Mary’ teaches us about the Planetscale vs. Neon debate”. Besides a front-page post on HackerNews, I can definitely say that this book really carried me away. Andy Weir has a talent for writing fiction that makes you feel…

Book Review: The Psychology of Money

Recently I decided after a long time to read “The Psychology of Money” by Morgan Housel. The main reason that I decided to read this book was a constant recommendation from successful “indie-hacker” entrepreneurs, so I decided to give it a try. As I constantly try to build products that will help me advance in my goal for financial independence, I thought that this book…

Use Ollama to generate commit messages from Changesets 🦋

Unnecessary automation is encoded in a programmers DNA In the world of continuous software development, efficiently generating commit messages can save valuable time (μS - microseconds). This article explores how to automate this process using large language models (LLMs). For products that have continuous releases and work with changeset 🦋, I have some good news for you. Now you can save some μS…

How to create a magic curtain effect with a few lines of code ✨

This one is from the archive 📂 When I stumbled upon Radix Themes page for the first time, I was taken by surprise. I immediately asked myself, “How is this possible?”. Changing component and page colors so seamlessly, linearly, and perfectly – they must be doing some kind of magic. Magic Curtain Effect in Radix's website How did they do this I am a true believer in the Feynman’s…

Better Context Menus With Safe Triangles

My blogpost got featured in Smashing Magazine 🫶, go and check it out.

Solving Clmystery

What a brilliant game to play while refresh your rusty bash skills Why I played this game Lazy Sunday, and I was looking for material to refresh my rusty bash skills. Looking through the web, I found out about Clmystery. A github repo that utilizes roleplaying and storytelling, while helping you remember all the bash commands you forgot about. Steps to solve this Step 1: Clone the repo and print…

Create Postcode map from OpenStreetMap data

The final result in Kepler.gl. Why I even started working on this madness? Anyone who is working with geospatial data, will probably sometime in h/er/is career will need to aggregate data based on a common field. For a project of mine, I wanted to provide insights about neighborhoods and how they are evolving over time. As I started mining the web and aggregate the data, the Least Common Multiple…

How to increase Ad Effectiveness with clean designs

Does attention-grabbing content mean higher conversions? Credits for the image to Alina Starovoitova. We live in an attention driven economy. Attention span is continuously decreasing, and advertising is trying to grab a piece of our browsing time like a peacock with its wings open. During the last year, I have built a startup focused on providing user-insights to designers, and I consulted…

Investigating the designer’s aesthetic-accessibility paradox

Accessibility and Aesthetics do not have a Linear Relationship I stumbled across an article on medium last week from the UX movement. The content was describing the paradox of Accessibility and Aesthetics. Although I enjoyed reading this, I found my self disagreeing with the paradox the writer is expressing, and wanted to mention that we, designers, have a strong aesthetic bias which we need to…

How AI will enable Predictive Design in Creatives

A.I. will enable Predictive Design in Creatives Artificial Intelligence is changing the way we create content and how we design. Clarifying that by A.I. I don’t mean supercomputers trying to figure out how they can help us design the best creatives the world has ever seen, but sophisticated algorithms written in order to help us approach humans more efficiently. With A.I. and the latest…

Multi-threading or Multi-processing with Python and Selenium

What is the best way to speed up Selenium paraller tasks? Multi-threading or Multi-processing? At my company Loceye, we are scraping the web all day long to create datasets and rule the world. Or kind of. Recently I stumbled upon multi-processing and multi-threading. As I started building the scraping scripts with Selenium I was using Threads with no extra thought. And suddenly I was surprised not…

Shut the portrait up

The problem Open offices are killing productivity. It’s not me that is saying this. Cal Newport is embracing Deep Work as a median to achieve greatness in an era of highlight±shallow work and highlight±distraction. I happen to run a startup with some other folks, Loceye.io. This is our first working experience as professionals and we are constantly trying to create new procedures and improve…

Going from Wordpress to Gatsby

State of Gatsby This year’s Github report about projects revealed something. Gatsby is growing fast, as fast as it loads your webpages 🚀 More and more developers are building their portfolios and their blogs in Gatsby. I had my blog in a Wordpress site and I wanted to migrate to Gatsby. The problem The process wasn’t easy because I couldn’t find an easy and straightforward way…

Enable Formatting with ERB files in VScode

I was searching online for a ERB beautifier and couldn’t find a complete solution that I could use on my Ubuntu and MacOS setup. In order to solve this problem I created a task where it runs HTMLbeautifier that is capable of understanding embedded Ruby. Step 0 Install HTML Beautifier : Install the gem by writing gem install htmlbeautifier on your terminal. Step 1 Create a task file: Click on the…

Brute Forcing Forms with Scrapy

I recently had the opportunity for me and my team to attend WebSummit as a startup. And if you don’t already know Web Summit gives you a great opportunity with the Alpha package to get 3 people of your team for a very low price. And then as a team of 8 I decided to send them and request one more of this package, leading to a discount per ticket only for Alpha exhibitors for a short of time.

About me

Page is WIP 🏗️

My public talks

This is a test

Open Source Projects

This is a test