Development posts


Building a set of tools for managing a hosting platform

At Ragnarson we have unique experience in building Platform as a Service infrastructures for applications. For more than one year, I have worked on a private solution for a big player from Asia. We made a platform using several tools and services. Here is the list of some of them:

  • Workflow (previously Deis) for managing applications,
  • Amazon Web Services as instances provider and file storage,
  • Kubernetes as the scheduler for Workflow,
  • PostgreSQL, Redis and ElasticSearch for storing and caching data,
  • Cloudflare as a DNS provider,
  • Chef to make an infrastructure configuration repeatable and testable,
  • DataDog for metrics,
  • Kibana and Logstash as a logs aggregator,
  • Jabber for exchanging messages
Continue reading

Test the things that matter

Testing your application is a crucial thing to ensure that everything is working as expected. It gives you a quick feedback if the new feature can be shipped and you didn’t introduce any regression. It’s pretty much an integral part of development. If you like the TDD technique it means that you write your tests even before writing the actual code. But you have to remember that your tests are also an important part of your codebase and you have to take care of them. They should be easy to understand and modify in the future. It’s also important to isolate your tests as much as possible and check things that really matter. Let’s look at some example.

Continue reading

JavaScript Generators


ECMAScript 2015(ES6) brings a lot of new great features and overall language improvements. Among them we will find Generators which seems to be one of the most exciting and enjoyable JS extensions. The primary and the most important thing about them is ability to pause and resume them at a desired moment. Implementation standard by itself allows us to use it in two ways. We can think of them as data producers (iterators) and data consumers (observers). Combination of those two allow us to turn them also into coroutines to handle more sophisticated tasks. How does all this work and in which situations we can use generators to make our code more readable and maintainable?

Continue reading

Database Views in Rails with Scenic

This article describes how database views can be a solution for an application with complex relationships and how Scenic gem simplifies the task of implementing those views in your Rails application.

Continue reading

Blockchains: A brief introduction

This post begins a series about the blockchain technology wherein I will try to answer the common questions like what it is, how it works and where blockchains are used. However, I will not go into technical details, I will only focus on a general overview.

Continue reading

Code The Flow - How To Write Code In More Productive And Fun Way

Spend less than 2 minutes to discover three simple tricks that will help you to be in the coding flow! Write the code in the more effective way. Code with better quality. Be more satisfied with the time spent on programming.

Continue reading

Introduction to fragment caching in Rails

You’ve probably read or heard a lot that the two most difficult concepts in computer science are naming things and cache invalidation. The quote has appeared numerous times in books, blogs, and other programming sources in one form or another. While the only remedies for coming up with names are practicing a lot, being clear in our intentions or having a sudden epiphany (none of which are quick and simple), Rails tries to help us with the caching part as much as possible. Caching can significantly improve web application performance. This requires little additional code, especially if we have a large number of complex partial rendering.

Continue reading

Validation outside ActiveModel

On the latest Euruko Ruby Conference (Bulgaria, Sofia, 2016) I had a lightning talk about a different approach to data verification. Today, I want to share and explain more of the good stuff in validation.

In a Ruby on Rails application, we use validation...

Continue reading

Are service objects enough?

There have been a lot of buzz around service objects in Ruby community. It started some time ago and new articles about them popped up like mushrooms. I still think about myself as a “developer in progress” and I think it’s a good approach for all of us. We should always keep learning new stuff. For me, the so-called service objects were like a milestone. A lot of things started to look simpler with them. So how does the perfect implementation of service objects looks to me?

Continue reading

Flow daily routines - create habits that boost your productivity

This article is the next episode in our Flow series. You can find the first episode here. In this part, we will talk about daily routines that can help you go into the flow state

How you start is how productive you are

The most effective ways to enter the flow state are focus and involvement. This is why it is so important to start in a good way. It has a critical impact on your productivity and state during the entire day.

Continue reading

Developing as a developer - a journey through learning

Hey there traveller, I want to share a story with you. Some time ago I set off for a programming journey. This has been a fun and rewarding adventure. It was also filled with unexpected frustrations, roadblocks and dangers. I have been on the learning...

Continue reading

My first experience with Ragnarson - a logo design

There comes a time in your life when you apply for a job. Sometimes, your potential employer gives you a recruitment task to check your skills and qualifications. When applying to Ragnarson, one of my tasks was to redesign the existing logo. In this...

Continue reading