Building a Modern MICE Imputer: Episode 1

Source: Imputation by Chained Equations (MICE): Bridging the Gap in Incomplete Data Analysis The Missing Data Challenge in Research Missing data is the silent saboteur of data-driven research. Whether you’re analyzing electronic health records, survey responses, or sensor measurements, incomplete observations are not the exception – they’re the rule. A recent systematic review of clinical studies found that over 80% of randomized controlled trials report some form of missing data, with missingness rates often exceeding 20% for key variables. ...

September 19, 2025 · 13 min · Sae-Hwan Park

Beyond Bootstrap: Why Survey Data Demands Specialized Variance Estimation

Understanding the statistical machinery behind survey analysis tools and implementing proper variance estimation in general-purpose languages Disclaimers: The opening story below is hypothetical but reflects the author’s own experience with survey data analysis Code snippets in this article are for illustrative purposes, rather than production-ready implementations Source: Zinn, S. (2016). Variance Estimation with Balanced Repeated Replication: An Application to the Fifth and Ninth Grader Cohort Samples of the National Educational Panel Study. In: Blossfeld, HP., von Maurice, J., Bayer, M., Skopek, J. (eds) Methodological Issues of Longitudinal Surveys. Springer VS, Wiesbaden. https://doi.org/10.1007/978-3-658-11994-2_4 ...

September 14, 2025 · 21 min · Sae-Hwan Park

Beyond Performance: Why Polars Represents a Paradigm Shift from pandas

(source: Pandas vs Polars: Is It Time to Rethink Python’s Trusted DataFrame Library?) Introduction After four years of writing production data science code with pandas, I thought I understood data manipulation in Python. I had memorized the subtle differences between .apply(), .transform(), and .agg(). I knew when to use .loc[] versus .iloc[], when to chain methods versus create intermediate variables, and how to navigate the maze of groupby operations that seemed to change behavior depending on context. ...

September 6, 2025 · 24 min · Sae-Hwan Park

Why Memory-Safe Languages Matter: Lessons from C, Python, and Rust

C, Python, and Rust take different paths to memory safety. Here’s why that difference defines the future of secure coding. (Source: ROPdefender: A detection tool to defend against return-oriented programming attacks) In recent years, the U.S. government has made unprecedented recommendations for the adoption of memory-safe programming languages across critical infrastructure and government systems. The National Security Agency, CISA, and other agencies have explicitly called for migration away from C and C++ toward languages like Rust, citing memory safety vulnerabilities as a primary attack vector in modern cyber warfare. ...

August 29, 2025 · 17 min · Sae-Hwan Park

Announcement: Rust Security Bootcamp!

Announcement: Rust Security Bootcamp! (source: https://analyticsindiamag.com/ai-features/rust-provides-the-ultimate-security-against-hackers/) A Rustacean’s journey through security vulnerabilities and a personal experiment in reimagining how we might learn cybersecurity Disclaimer: I am NOT a security expert. I’d rather position myself as an enthusiastic practitioner. Therefore, please take a grain of salt for any strong claims I make, ideally with doublechecks with credible sources. The Cathedral and the Bazaar of Broken Code Picture this: It’s 2025, and yet another critical vulnerability has just been disclosed. The root cause? A buffer overflow in C code written by brilliant engineers at a top-tier company. Sound familiar? If you’ve been in the security space for more than five minutes, this scenario probably triggers a weary sense of déjà vu. ...

August 23, 2025 · 9 min · Sae-Hwan Park

AOC 2024 Postmortem: What I Actually Learned Throughout 50 Stars

“It’s fine, I’ll just implement a quick DFS and call it a day.” — Me, 30 minutes before discovering that Day 16 required bidirectional search and completely restructuring my approach for the third time. The Setup: Another July Adventure I have a confession: I started Advent of Code 2024 in late July, just like I did with AOC 2023 (which I tackled in August 2024). There’s something liberating about approaching these puzzles without the December time pressure, when the rest of the world is frantically debugging race conditions while battling holiday shopping deadlines. ...

August 15, 2025 · 11 min · Sae-Hwan Park

Rust Handshake Challenge #4: The Postmortem

Where we look back at our journey from simple greeting exchanges to high-performance async servers – and ask the hard questions about learning, complexity, and whether it was all worth it. Source: https://moslehian.com/posts/2023/1-intro-async-rust-tokio/ The Journey’s End Three weeks ago, I embarked on what seemed like a simple Friday night project: implement a 3-way handshake protocol in Rust. What started as curiosity about network programming became an odyssey through the depths of concurrent systems design. ...

August 8, 2025 · 19 min · Sae-Hwan Park

Rust Handshake Challenge #3: Event-Driven Handshaking

Where our thread pool server meets its match, and I discover that sometimes the best way to handle thousands of connections is to pretend threads don’t exist. (Source: https://berb.github.io/diploma-thesis/community/042_serverarch.html) The Tantalizing Promise Fresh from the victory of my thread pool implementation, I felt invincible. My server could handle hundreds of concurrent connections with predictable resource usage. Thread creation was under control, context switching was manageable, and memory consumption was reasonable. ...

August 1, 2025 · 19 min · Sae-Hwan Park

Rust Handshake Challenge #2: Threading the Needle of Concurrency

Where our simple single-threaded server meets the harsh reality of concurrent clients – and how I learned to think in threads. Source: https://commons.wikimedia.org/ One Server, But More Than One Clients Last week’s victory almost felt complete as my handshake server seemed to work flawlessly – until concurrency kicks in. Unless there are only single server and single client (too strong assumption!), we always have to take multiple clients into consideration. ...

July 25, 2025 · 15 min · Sae-Hwan Park

Rust Handshake Challenge #1 Simple Single Threading

The tale of how I went from basic Rust knowledge to implementing a custom 3-way handshake protocol – and what I learned about both networking and Rust along the way. Source: https://commons.wikimedia.org/ The Beginning: A Simple Goal Everything began suddenly and whimsically yesterday – just like many of my curiosity-seeking journeys. Disclaimer: While the story I introduce in this post reflects the real development experience, I’ve intentionally dramatized certain moments to deliver the developer journey in more engaging ways. The actual process was indeed smoother than portrayed – this small project falls well within what the community calls “easy Rust” territory. ...

July 19, 2025 · 20 min · Sae-Hwan Park