A profile picture of me smiling, a man in his thirties, with dark wavy hair and a dark beard.

I’m Andre Ramaciotti. You may also know me as ars-dev-br, and I’m currently a senior software engineer at Tremendous. Previously, I worked at AlphaSights, CERTI, and Philips Healthcare.

I’ve been working as a software engineer since 2010. I’ve used a multitude of programming languages, but lately I’ve been focusing on Ruby. I also have an interest in Programming Languages as a study subject, and I’m highly curious about Rust and Functional Programming in general.

Besides working as an engineer, I’m also a registered accountant (in Brazil), and I enjoy being a husband, a father, taking care of my ten cats, reading, gaming, and playing the guitar. If you think we should be in touch, feel free to reach me out at blog@ars.dev.br.

Posts

  • Display file contents in Obsidian with Dataview

    Obsidian released Bases, which covers like 90% of the use cases I had for Dataview. I still use it for a very specific scenario, though.

  • Display Unicode characters in git

    By default, git escapes “unusual” characters with backslashes and their octal code. To stop this from happening, you can set core.quotepath to false.

  • Use fake built-in packages to organize your GNU Emacs config

    By using use-package, you can organize your ~/.config/emacs/init.el file and group related settings together by package. So, for instance, you can both install and setup the company package by using the code below

  • Tools of choice

    Tools that I use and that I actually enjoy using.

  • Never Call an Enum “ai” on Rails

    This one happened recently, we couldn’t find anything online, and it took us some time to solve. In case this happens to someone else, I decided to document it here.

  • Go, First Impressions

    For a while now, I’ve been putting Go down. As someone who’s really into Programming Languages Theory, it just felt wrong to create a new language that, basically, just throws away almost everything that has been developed on the subject in the last years. Forget about null tracking, innovative ways of handling errors, and so on. Everything in Go is “simple,” for some definition of simple.

  • Creating Properties with Dynamic Keys in Ember

    Recently, I had to create a computed property that depended on an attribute value. Initially, I was inclined to try something like the code below, but that doesn’t work. You actually need to call get to be able to use the propertyName value.

  • Software Development and Carpentry

    Some friends and I have this sort of an inside joke that, eventually, we’ll all become carpenters. This joke didn’t come from nowhere, and it actually comes from a trend we’ve noticed in websites such as HackerNews and r/programming. Every time a question such as “What would you do if you were not a developer?” pops up, many answers seem to gravitate towards woodworking.

  • Using Different SSH Keys for Different Hosts

    It’s possible to configure SSH to use different RSA keys for different hosts. On this short post I’ll show how to set it up so git uses the right key for each repository.

  • Notes on Effective Performance Engineering

    These are some notes I’ve written while reading Effective Performance Engineering, a book written by Todd DeCapua and Shane Evans. This book is available for free, you just have to give O’Reilly your email address. Until now at least, I haven’t received any spam on the account that I used to sign up, so I guess it’s trustable.

  • Fundamentals: Bloom Filter

    In this Fundamentals series, I’ll write about some Computer Science concepts that I haven’t paid much attention before. For this first one, I wrote a simple Bloom Filter based on an article that introduces the concept of Enhanced Double Hashing.

  • Quick note on Co- and Contravariance

    This is something that I keep forgetting, so I decided to write a quick note on it. Basically, variance – in a Computer Science context – is a relation between subtypes and type constructors.

  • What Every Software Project Needs

    Recently, I had this idea of writing general guidelines that every software project should follow. Lucky for me, I found an article that covers up almost everything, so I don’t have to write one.

  • Performance Culture

    Joe Duffy’s written an interesting piece on systems performance and managerial culture. Some points I’d like to highlight:

  • Google Sheets, Stocks, and Funds

    Although I’m a developer, I still think spreadsheets are the best tool for certain tasks. I thought I’d had to giveup my portfolio sheet if I was to automate it, but I was happy to see I was wrong. With GOOGLEFINANCE I’m able to fetch quotes for stocks and funds from Google Finance, so I don’t have to type it manually anymore.

  • Postmortem: Angular 2 and TypeScript

    Notice: this postmortem is about a piece of software that’s still on alpha. At the time of writing, Angular 2 latest version was alpha44. Things might have changed since then.

  • On postmortems

    Developers often say it’s all about picking the right tools for the right job. That’s true, but few people talk about the tools they’ve chosen and how they fared. This way, we end up losing a good part of our experience as professionals. Each developer has to relearn the same lessons about the same languages and libraries.

  • Yet another post about monads

    Recently, the concept of monads finally snapped in me. I believe the secret is to use them until you have some intuitive understanding. Then, you can read those zillion other articles on Category Theory and understand what they actually are.

  • A fresh start

    Sometime near the end of 2012 I acquired a VPS1. It gave me the fun and exciting experience of setting up mail, SQL, and web servers.

    1. In case you’re wondering, my VPS was hosted by RamNode, and I have nothing to complain about them.