In 2017 I delievered a talk with the title “Boring Ruby Code” at two conferences – Brighton Ruby Conf and Southeast Ruby. After that I always wanted to write a blog post that summaries the approach, but I have never gotten around to do that. Today is the day so here we go.
How we do code reviews at Liefery
When I started working for GitLab I experienced for the first time an engineering culture where code review was really important. After I switched to Liefery I had a lot of thoughts on the topic of modelling a code review process that is tailored to the organisation’s needs. Now you can read about it here.
Mock current time in Elixir
Coming from the Ruby/Rails world I was searching for a way to mock the current time in my Elixir test suite, something like Timecop for Elixir. I didn’t find anything that suited my needs so I decided to give it a go by myself.
Elixir “with” syntax and guard clauses
In this blog post we will take a look at a simple example of refactoring Elixir
code using with
syntax (called a “special form” in the documentation), and guard
clauses.
Case insensitive column in Phoenix
I wanted to have a case insensitive database column to store email address in the open source application I’m working on. I’m using PostgreSQL and there’s a nice extension that does exactly that – citext – so I gave it a try. I spent some time figuring things out so now I’m sharing the knowledge in this blog post.
Upgrading ActiveModelSerializers from 0.8 to 0.10
ActiveModelSerializers is a popular solution in the Ruby / Rails community and I even wrote an article about it a few years ago. Recently I had a chance to cover upgrading ActiveModelSerializers from 0.8 to 0.10 on my company’s blog. You should take a look!
Make your meetings more async
Working at GitLab – fully remote, asynchronous and distributed company – was a valuable experience. One of the most important things that I learned was the approach to meetings. In fact, remote meetings at GitLab were far more effective than most of on-site meetings that I participated in. Now I’m back in an office, but I think that many principles and rules can be applied in an on-site company as well.
ETag tracking and Elixir
I am really fascinated by the idea of abusing ETag (caching mechanism built into HTTP protocol) for tracking users. It is not that I want to do in a real production application; I just appreciate how simple and clever the “trick” is. Also, not so many people seem to be aware of it.
Rails + Postgres Array + ANY LIKE
Ruby on Rails has a good support for Postgres Array type. I really like using this feature when creating a separate database table sounds like over-engineering. In this short post I want to share my solution for the following problem: “find a record for which any of its tags contains a given string”.
Marketing for programmers
I’m bad at marketing products that I created. Just today I had to shut down Codebase Health Check, because I couldn’t get enough customers in the last six months. Fortunately, you have a chance to be much better at marketing than me.