Bright Devs Blog

How to deploy a service to Amazon Elastic Container Service with CloudFormation?

How to deploy a service to Amazon Elastic Container Service with CloudFormation?

aws ecs cloudformation zuul

Containers are becoming the standard way of deploying software. Every cloud vendor now offers one or multiple ways to run containers on their platform. Most of our clients uses AWS to host their SaaS solution. As part of a new development for one of our clients we have decided to move away from Elastic Beanstalk and embrace containers. Amazon Elastic Container Service is an orchestration service that supports Docker containers and is generally available for over a year. Given our small development team it seemed like the best choice since it takes away most of the cluster management headaches. In this post I will describe how we deploy a container to ECS using CloudFormation.

How to deploy a service to Amazon Elastic Container Service with CloudFormation?
What would Paulo Coelho say

What would Paulo Coelho say

productivity effectiveness recovering

Who would not like to be successful and manage their time wisely to have it for everything and for everyone? We all would. But to do that we should focus on our life for a bit longer than few seconds and think which elements of it make us less effective, and in consequence less happy. We should focus on recovering.

What would Paulo Coelho say
Your first chart in Android App with CSV parser

Your first chart in Android App with CSV parser

android UI chart CSV

If you have ever needed to add a chart to your Android app, you certainly have heard about MPAndroidChart by PhilJay. If not, consider using this powerful library. Let me show you how easy it is to start!

Your first chart in Android App with CSV parser
Implementing in-app language change

Implementing in-app language change

android java kotlin language dagger

Android resolves language- and culture-specific resources based on the system locale setting. This is a desired behavior that makes perfect sense. Despite it’s officially not encouraged you may still need to write an app that allows the user to change its language without leaving it. In this article I will show you one of the possible ways to implement such feature.

Implementing in-app language change
In-memory database tests with Querydsl

In-memory database tests with Querydsl

kotlin querydsl hibernate jpa database

Writing tests is an important skill of a software engineer. I used to write lots of very focused, narrow unit tests. However, I often found such tests to hinder refactoring and barely help in catching regressions. Whether such issues were caused by my poor design choices or are intrinsic to unit tests is not the focus of this post. However, the fact is that nowadays I tend to write more coarse-grained, integration style tests. There is one downside to such approach: speed. For instance, using Hibernate with a full fledged database is relatively slow compared to using a fake repository implementation. Today I write about abstracting the database access using Querydsl in a way that aids testing.

In-memory database tests with Querydsl
From React to React-Redux in a few steps

From React to React-Redux in a few steps

React Redux

In this post I’m going to focus on connecting React components with Redux. If you are just starting out with React + Redux or you have already worked with these before, but want to make this concept a bit clearer then feel invited to read this post till the end ;)

From React to React-Redux in a few steps
Downtime

Downtime

breaktime productivity team

If we keep track of our daily schedule really thoroughly, we might be shocked how much time we waste in five to fifteen-minute breaks. I am saying “waste” not by accident here since we are often wasting our time during breaks instead of recharging batteries. The good news is that brief mental breaks taken in a reasonable way still help us re-focus, regain motivation and reevaluate goals.

Downtime
Working with Chrome Extensions

Working with Chrome Extensions

Chrome Extensions Chrome JavaScript

Chrome Extensions can make your life easier whenever you want to add a new feature to the Chrome Browser. Working with extensions is quite easy. It’s just the good old JavaScript code and not much more. There are however few things worth taking into consideration while working with the extensions.

Working with Chrome Extensions
Microbenchmarking on Android

Microbenchmarking on Android

android java kotlin benchmark

Since Kotlin becomes more and more popular, especially amongst Android developers (and it’s officially supported by Google), some people decided to compare its runtime performance with Java. After reading a few articles I wanted to test it myself and now I’m ready to share some of my observations and experiences.

Microbenchmarking on Android
How to use different Google configurations for each build config

How to use different Google configurations for each build config

ios xcode build configurations

If you have ever used Google Sign-In, Firebase, or Google Analytics for iOS, you should be familiar with a GoogleService-Info.plist configuration file. Using property list files instead of setting every required property manually in code is convenient, especially while using more than one Google service at once and the configuration grows. But have you ever wondered how this can be adjusted to multiple environments?

How to use different Google configurations for each build config