Benefits of the AWS Lambda and the serverless approach

Thinking about switching to a serverless architecture? Or creating a new mobile application and don’t want to deal with server configuration and upgrades? AWS Lambda is your friend then. But is it a silver bullet? I don’t think you believe in those. Read more to check some pros and cons I discovered while working with it on a daily basis.

Read more

Setting up AngularJS development environment on Windows

This is a short guide on how to setup a development environment for AngularJS on Windows using Grunt and Bower. I had to do it recently, so decided to share instructions, since it may save you some time, especially if you want to avoid the trial and error path.

Read more

Does your client-side framework provide enough isolation?

Modern web applications are complex. They can be really big. And what is the best way to reduce the complexity of something big? Right, divide it into smaller manageable chunks. Component is a widely-used abstraction nowadays. One can find components in AngularJS, Angular 2, ReactJS and Polymer. But do these components really reduce the complexity of our apps ? Read the detailed answer with many examples in this blog post.

Read more

Polymer 1.0 — One Thing You Should Remember About Properties

At some point Polymer components can grow from several lines of code to several hundred, depending on their complexity. Those components can be throughly tested and work perfectly. But at some point they can just stop working after simple code formatting change. It’s because almost all Polymer components have a small time bomb inside…

Read more

Polymer and React.js — Clash of Titans

Recently, I had a chance to apply React.js and Polymer in real-world applications. While both React and Polymer share the same idea of components, they use rather different approaches to achieve the component-oriented design of the front-end. In this post I’m describing pros and cons of both tools that are important for me.

Read more

Turn off your...everything

We are living in amazing digital age. We have on-line collaboration tools, real time messaging and thousands of other useful things. Currently, there is an mobile app or a web service for virtually everything. All those things are giving us almost infinite power. This is a story about how all these tools are killing our productivity

Read more

Writing a generic CRUD controller using Mongoose and Express.js

Often, web applications have REST API for multiple models with the same set of supported methods, e.g. CRUD operations. In this case, we have to write a lot of boilerplate for every model, which is very annoying and breaks the DRY principle.

In this post I’ll describing a possible solution to this problem for REST API backends that use Express.js and Mongoose.

Read more

Testing Isomorphic ReactJS Components with Mocha and Should

ReactJS framework allows to decompose your application UI into small reusable parts called components. Components are small, self-explanatory and don’t rely on any external state, meaning they are easy to test. The framework comes with a set of test tools called React Test Utils.

If you are writing an isomorphic JavaScript application, you probably want to be able to run components tests without a browser. But once you try to use React Test Utils the following error may occur:

ReferenceError: document is not defined
    at Object.ReactTestUtils.renderIntoDocument (node_modules/react/lib/ReactTestUtils.js:70:15)

In this post I’m explaining the reason of this error, how to resolve it and give some examples of using Mocha and Should to test a ReactJS component.

Read more

Why Do Travel Startups Fail?

Do you have a good startup idea in the travel industry? Awesome! Read this before your start. Most likely your idea sucks. These observations were made while working on the project and doing some research in the area.

Read more

Using ES7 decorators with Babel 6

Though ES7 features are experimental, many of us have already tried them using Babel 5. After upgrading to 6.x the following error can happen:

Decorators are not supported yet in 6.x pending proposal update

This post describes how to overcome this issue and explains why does it happen.

Read more

Spring MVC CSV Message Converter

Sometimes we need to return a CSV (yuk) document in the response. It’s possible to write the document directly to the output stream of the HTTP response but this approach is not generic and requires some boilerplate code if we need to use this functionality across several controllers/methods. In this short tutorial I’ll show how to use Spring MVC message converters mechanism to solve this task.

Read more

CSV & Co — Analyzing The Data From The Legacy Systems

From time to time I need to analyze lots of data from legacy systems. Usually, it’s CSV or some similar format that utilizes flat text files. When implementing integration with such systems it’s important to know if input data is correct and find any inconsistencies in it to understand the source of possible problems. Some people like trial-and-error path, while I prefer more deterministic process. In this post I’m describing tools I use to work with such files.

Read more

Working From Home — How to be a productive remote worker?

Many of my friends wonder how can I work from home, stay productive and do not go crazy with constantly staying at home. I’d like to shed light on remote work from an employee’s point of view.

Read more


Hi everyone! Tomorrow I will leave La Coruna, Spain, so I think it’s good time to write about GUADEC‘2012.

First of all I’d like to thank GNOME Foundation and GSoC for sponsoring me. Also I want to thank PiTiVi and GStreamer for supporting me during all the event. And another one thanks goes to everyone who was attending this great event - it was a great pleasure to meet all of you folks!

So how was it?

Read more