• Welcome to my new journal!

    Hi everybody! After thinking about it during some days, I've decided to start a new journal (AKA blog) after a failed attempt on November 2003 (which only lasted three posts, IIRC). I didn't know what to write in it, had almost no readers (obviously), and had few time at that moment to keep it growing. At the moment, I've in mind several ideas of texts to write in this new blog.

  • About

    Author Writer by hobby, typically covering programming topics. No fiction. Developer Author of various Open Source projects and contributor to many more. BSD enthusiast. Motto: production software can be beautiful. Engineer Senior Software Engineer and, previously, Senior Site Reliability Engineer at Google. Social Reachable via all the traditional contact mechanisms and the major social networks. Keep reading. Introduction My full name is Julio Manuel Merino Vidal but I usually go for its shorter form: Julio Merino.

  • Archive

    2019 Date Title Reading time September 2019 2019-09-27 Sample REST API in Rust and Go 13 minutes 2019-09-21 Safely restoring the previous working directory 3 minutes March 2019 2019-03-22 Optimizing tree deletions in Bazel 4 minutes 2019-03-06 Darwin's QoS service classes and performance 6 minutes February 2019 2019-02-22 Using setenv equals setting global variables 4 minutes 2019-02-07 Encode your assumptions 4 minutes 2019-02-05 Hello, sandboxfs 0.

  • Essays

    Writing is one of my hobbies and you can access all of my articles, papers, and essays online. This hobby started a long time ago and matured with The Julipedia, my former blog, which I began in June 2004 and that was subsumed into this site on May 2016. To see the full collection of articles, visit the series section for a curated list of a few article series I've published, and the archive for a full dump of all the articles hosted on this site.

  • Series

    CLI design Date Title Reading time 2013-08-12 CLI design: Series introduction 2 minutes 2013-08-15 CLI design: The CLI is the presentation layer 3 minutes 2013-08-19 CLI design: Error reporting 5 minutes 2013-08-22 CLI design: Requesting and offering help 5 minutes 2013-08-26 CLI design: Putting flags to good use 5 minutes 2013-08-29 CLI design: Do not reinvent option parsing 3 minutes 2013-09-02 CLI design: Subcommand-based interfaces 5 minutes 2013-09-05 CLI design: Single-command interfaces 4 minutes 2013-09-09 CLI design: Handling output messages 4 minutes 2013-09-12 CLI design: Screen wrapping 4 minutes 2013-09-16 CLI design: Consider interactive prompts twice 4 minutes 2013-09-19 CLI design: Series wrap-up 1 minute Header files Date Title Reading time 2013-11-18 Header files: Series introduction 2 minutes 2013-11-21 Header files: Multiple-inclusion protection 3 minutes 2013-11-25 Header files: Self-containment 4 minutes 2013-12-02 Header files: C++ ipp files 2 minutes 2013-12-05 Header files: Avoid C++ 'using' directives 3 minutes 2013-12-09 Header files: Poor man's replacement for modules 4 minutes 2013-12-27 Header files: Qualify your identifiers 2 minutes 2013-12-30 Header files: Poor compilation times in C++ 1 minute 2014-01-01 Header files: Series wrap-up 1 minute Production software Date Title Reading time 2013-10-10 Production software: Series introduction 1 minute 2013-10-14 Production software: Be wary of assertions 3 minutes 2013-10-17 Production software: Constants will bite you 3 minutes 2013-10-21 Production software: Hide new features behind flags 3 minutes 2013-10-24 Production software: Logging 7 minutes 2013-10-28 Production software: Identifying your builds 3 minutes 2013-10-31 Production software: Series wrap-up 1 minute Readability Date Title Reading time 2013-06-03 Readability: Series introduction 2 minutes 2013-06-06 Readability: Blocks and variable scoping 4 minutes 2013-06-10 Readability: Blank lines matter 4 minutes 2013-06-13 Readability: No abbreviations 2 minutes 2013-06-17 Readability: Mind your typos and grammar 2 minutes 2013-06-24 Readability: Document your types 3 minutes 2013-06-27 Readability: Avoid comments 5 minutes 2013-07-01 Readability: Abuse assertions 3 minutes 2013-07-04 Readability: Dictionaries are not data types 5 minutes 2013-07-08 Readability: Do not abuse classes as global state 3 minutes 2013-07-18 Readability: Explicitly state complementary conditions 3 minutes 2013-07-22 Readability: Conditionals as functions 3 minutes 2013-07-25 Readability: Don't modify variables 4 minutes 2013-07-29 Readability: Narrow try/catch blocks 3 minutes 2013-08-01 Readability: Series wrap-up 2 minutes Rust review Date Title Reading time 2018-05-25 Rust review: Introduction 3 minutes 2018-05-29 Rust review: Immutable by default 3 minutes 2018-06-01 Rust review: The borrow checker 3 minutes 2018-06-05 Rust review: Protect the data 5 minutes 2018-06-08 Rust review: Learning curve 4 minutes 2018-06-12 Rust review: Expressions, expressions, expressions 3 minutes 2018-06-15 Rust review: The match keyword 2 minutes 2018-06-19 Rust review: The book 4 minutes 2018-06-22 Rust review: The ecosystem 4 minutes 2018-07-10 Rust review: Closing thoughts 5 minutes Shell readability Date Title Reading time 2018-02-26 Shell readability: main 2 minutes 2018-03-02 Shell readability: function parameters 3 minutes 2018-03-09 Shell readability: strict mode 6 minutes 2018-03-13 Shell readability: local 5 minutes

  • Software

    As an open source enthusiast, I have authored and maintain a few projects of my own. You can get details on the majority of these by visiting my GitHub profile and my OpenHub profile. The following is just a sneak peek of the projects I started: Authored projects Boost.Process: A flexible framework for the C++ programming language to execute programs and manage their corresponding processes.

  • Work

    I am a Software Engineer by profession. My expertise is in C++, Python, shell scripting, test automation, and (Unix) operating systems. I am recognized for writing clean code and for steadily delivering results with attention to the finest detail. I enjoy working on infrastructure-level software and my motto is simple: production software can be beautiful; you just need to hold it to the same high standards as you hold user-facing products.