I had a difficult relationship with side projects in the past. Basically I could never get anywhere with them. Thanks to a set of techniques that I called “slow programming” I started to develop side projects in a way that brings me joy. And this is the story that I’d like to share with you.
My personal perspective on how our team with remote-first processes was affected by the Corona crisis and what I learned from it.
One of my favourite topics during job interviews is driving change. “Do you remember a situation when you wanted to change some process in your team? How did you approach this situation? How did you convince your colleagues?”
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.
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. You can read about it here.
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.
In this blog post we will take a look at a simple example of refactoring Elixir code using
withsyntax (called a “special form” in the documentation), and guard clauses.
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.
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!
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.
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.
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”.
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. Apparently it’s not so easy to build a profitable business as a side project. Fortunately, you have a chance to be much better at marketing than me.
This is your complete guide to removing Action Cable from a Rails 5 app.
Programmers love to approach new business problems thinking about frameworks, libraries, tools or methods which can be used. However, my experience shows that quite the opposite way is most successful - postpone writing the code as long as it’s possible.
Tiddle is my gem which provides Devise strategy for token authentication in API-only Ruby on Rails applications. Its selling point is that it supports multiple tokens per user.
I always wanted to build my own ecommerce platform from scratch. That’s not because I don’t like to reuse existing code - I really love to. That’s because I believe that we can do better. Now I have a chance to do it.
“View in Browser” link is a common feature of email campaign systems like MailChimp. It’s a really nice idea - when you code your shiny CSS-heavy emails you want to have a fallback for malfunctioning email clients.
My mobile network operator keeps calling me. They called at 12:13, at 15:46, at 18:36 and at 20:54. I’m using a pre-paid, so the only thing they can offer me is a subscription. Obviously, I’ve told them many times that I just don’t want it.
When you deal with complex forms The Rails Way is not enough. You have to introduce another abstraction for handling more sophisticated validations.
This is going to be a short piece on one particular habit which I practise when writing code. It’s extremely simple and obvious, but I’m surprised how many programmers skip it.
Definition: Append-only CSS: CSS you are so afraid of changing that you exclusively append new rules to one never-ending file, leading inexorably to bewilderingly complex selectors with CSS specificity scores so high they’ll break your calculator. Sounds scary? Sounds familiar? Read on.
I hate using modal dialog when the new content could be easily nested in the same page. I just don’t like the user experience of a popup. Why limit yourself to a small box when you can show it in the full-blown layout?
In this blog post I want to reflect on things which make Ruby a beautiful language to read and write, and on things which make Ruby on Rails a convenient tool to quickly prototype.
This post describes how to use Tiddle - gem for token authentication which I created. Tiddle is a Devise authentication strategy which supports multiple tokens per user.
This post describes the application architecture pattern which is (in general) nothing new, but (from my experience) rarely applied in the Rails world. I’m talking about the nice and simple abstraction - message queue. But let me start by describing the goals I want to achieve and some alternative solutions.
Programmers make mistakes. Some of them are just annoying (for others to read) and some are really dangerous. Here is my selection of 10 mistakes done by Ruby / Ruby on Rails developers. These tips are easy to follow and can save you much time of later debugging.
It’s been a while since my last post. I was writing my engineer’s thesis which caused general disgust towards writing at all. Anyway, these sad times are over and here comes the shiny new blogpost about introducing service layer in Rails applications. It does not contain any breakthrough thoughts, but is rather a mixture of ideas I learned from great Ruby developers.
I’ve recently started playing with AngularJS. Coming from the Rails world I expected a structure enforced by the framework, good default configuration and separation into development, test and production environments.
This time I want to share my thoughts concerning two approaches to testing - black-box testing and white-box testing. I gave a talk about it at Łódź Ruby User Group. You can find the slides here.
Here you can find a couple of my personal opinions about talks at wroclove.rb 2014 which took place in March 14th - 16th in Wrocław. I tried to keep my feedback 100% positive in order not to upset anybody, but if you are - write a comment and we’ll discuss.
Recently I’ve been forced by the circumstances to learn Chef. It’s simply not possible to manage about 15 servers without any automation tool. I’m not a master of shell scripting (neither I like it), so using Ruby in this field sounds great to me.
This post is based on my presentation given at Łódź Ruby Users Group.
We are using Paperclip to handle image uploads in one of our applications and after migrating from 4 GB instances to a number of really small 512 MB instances we started to experience an error which looked similar to this:
subscribe via RSS