Developing a database. Part 1. Why may you need indexes and how does Hash index work.

I plan to write a series of posts about databases internals. In order to make it easily perceivable, I’ll be writing a NoSQL DB from scratch in Ruby. No doubts that it’s not the best fit for database development, but it’s extremely readable and will help us a lot. This one will be about why may you want to have an index and what is a Hash index.

UPD. I decided to not continue this series because it takes too much effort to investigate deep enough to explain, but it had got much fewer views and likes than more applicable ones. Probably will return to this topic once, but not now.
Continue reading

Ruby on Grapes. Why did we choose Grape and why would I choose it again

Today I gave a talk on Ruby User Group Berlin meetup, here is a recap of it in a readable format.

In my team, we are building a new and fast-evolving SPA product. We are small in terms of a number of developers and we are agile in terms of the market. We test the design of an idea, quickly implement it, test it with real users, then either keep and improve or change or remove. Quite a quick pace, so when we were choosing the web framework we wanted it to be more a helper for us rather than a box, out of which we cannot step.

Continue reading

Chop-chop, MongoDB! Leveraging indexes power. Part 1

As you may know, PostgreSQL provides you four index types: B-tree, Hash, GiST and GIN. They all named the way that if you don’t know ’em you’ll never get which one do you need. In MongoDB indexes are named in a more human-readable way. Here they are:
1. Single field index.
2. Compound index.
3. Multikey index.
4. Text index.
5. Hashed index.
6. 2dsphere, 2d, geoHaystack indexes.

Since I’m using Mongo for more than a year now, I worked with few of them and will elucidate you the most commonly used ones.

Continue reading

Introduction to Terraform. Terraform + Github

Not a long time ago I had no idea about what is the tool named Terraform. It was just beyond my bounds of interests and problems. But a month ago I changed a company and then had to deal with it. And guys, it’s wow. It’s so amazing thing so I even started liking DevOps job.

In few words it’s a tool to do infrastructure as a code. As they say on their website “Terraform enables you to safely and predictably create, change, and improve production infrastructure”.

In this post, I’ll cover why may you (as a developer or a DevOps) need it and how to get started. Getting started will be not just a hello world, but a real example, you can try right away.

Continue reading