January 28, 2019

Google Datastore with a relational data model

I’ve been working on a medium-sized European software as service (SaaS) for the last two years. Almost everything we use comes from Google, which includes Cloud Datastore as our primary source of truth. I’m not advocating against it - depending on your use-case it might be a great fit. Instead, I’m presenting the issues we have with it (and other NoSQL/document databases) due to our domain models being very relational. Read more

December 10, 2018

Why you should start blogging

There are plenty of good reasons why you should start blogging right now or at least consider doing it. I’ve blogged previously about a decade ago and started doing it again since last year. I’ve seen plenty of benefits from this blog (and the previous one) and will talk about them in this blog post. In the end, I will propose a few modern solutions needed for starting your own blog. Read more

October 28, 2018

Refactoring Gorsk - Why and how

Refactoring source code should be a constant process in software’s lifecycle. I advocate for 20-25% of time spent on developing software to be used on refactoring exclusively. After working with Gorsk in two projects running now in production (one of them being a large SaaS), I’ve found many things I don’t like about it. During the development of those projects I refactored some things, but I decided the base needs to be updated too. Read more

September 15, 2018

Beyond REST

I’ve been dealing with RESTful services for the last three years, both professionally and for hobby projects. Since I came from SOAP/XML/Oracle background, REST felt so great and modern. Even though I felt late to the party, I think I didn’t lose that much. However, with the advancement of Cloud Native projects, I feel like I’m getting behind modern tools and technologies. And I want to change that. Read more

August 30, 2018

Marshal YAML fields into map[string]string

Recently we moved some of our hard-coded web-app configuration values into a YAML file. Arguing aside (YAML vs TOML vs …), YAML does a great job being easily readable by us - humans. By default, the yaml library marshals maps into map[string]interface{}, requiring a small change to get it marshaled into map[string]string. Read more

August 16, 2018

Twisk - Golang RPC starter kit

Twisk, an acronym for Twirp starter kit, helps you get started with a simple Golang RPC framework with protobuf service definitions - Twirp. It features everything from authorization, implemented CRUD on a single entity, logging, configuration and more. Using minimal dependencies, idiomatic code and best practices, it helps you get started with Golang backend API development - both JSON and Protobuf. Read more

June 10, 2018

Serve SwaggerUI within your Golang application

I’ve previously written an Article on generating OpenAPI (Swagger) spec automatically within Golang. It’s the most popular article on this blog since lots of developers are searching for it. In it, I mentioned that in order to serve the swagger.json with SwaggerUI, a Docker instance is required that will serve SwaggerUI. There is an easier way to implement it, and this article will demonstrate how to do it with net/http, Gin and Echo. Read more

June 4, 2018

Switched from Mac to Ubuntu

After being a Mac user for about a year, I decided to switch to GNU/Linux or to be more precise Ubuntu, for plenty of reasons. After few weeks of researching what laptop to buy, I asked for a Thinkpad X1 Carbon 5th Gen from my company. Besides writing a software review,this articles include hardware comparison between the Thinkpad and MacBookPro (ntb 2016) as well. Read more

May 26, 2018

Working with Go Web Frameworks - Gin and Echo

Recently I spent a lot of time working with both Gin and Echo. Primarily I wrote an open source restful starter kit named Gorsk (GitHub/Blog post). Besides Gorsk, I’m working on two web apps utilizing Gin/Echo. Even though the reasons for (not) using Golang’s ‘Web frameworks’ are mentioned quite often, I have built my own opinion on these. Read more

April 16, 2018

Removing comments

A decade ago I was happy if there were comments on my blog. Ten years later, having a full-time job, family and lots of other responsibilities I have no feeling about them. I feel good helping and informing others, but I feel comments on this blog aren’t benefiting much in this area (helping others). Additionally, I prefer the cleaner look and shorter loading times of the website. Therefore, comments are no more. Read more

2018 © Emir Ribic - Some rights reserved; please attribute properly and link back. Code snippets are MIT Licensed

Powered by Hugo & Kiss.