Since we started to work on our own products, it was clear we have to keep dialog with our users in order to maintain best direction for the products’ evolution. After a few more or less successful tries, we ran into Drift, nice and clean solution for customer support (and …
Railsware Blog
on product management, engineering, design, culture and many more...
Mocking ES6 module import with and without Dependency InjectionES6 module system is a great addition to JavaScript language, but sometimes it’s at odds with writing tests, because you need to mock imported function. Usual solution is to use Dependency Injection akin to what is used in Angular.JS. You need to wrap the whole module into some function and …
ES6 module system is a great addition to JavaScript language, but sometimes it’s at odds with writing tests, because you need to mock imported function. Usual solution is to use Dependency Injection akin to what is used in Angular.JS. You need to wrap the whole module into some function and …
Using Configurable Shared Examples in RSpecShared examples are a good tool to describe some complex behavior and reuse it across different parts of a spec. Things get more complicated when you have the same behavior, but it has some slight variations for different contexts. In this case it’s easy to end-up having a bunch of …
Shared examples are a good tool to describe some complex behavior and reuse it across different parts of a spec. Things get more complicated when you have the same behavior, but it has some slight variations for different contexts. In this case it’s easy to end-up having a bunch of …
Smart Checklist – tasks organizer built-in in your JIRAWe are glad to introduce you the new version of Smart Checklist add-on for JIRA Cloud. It’s hard to believe, but the first version of our add-on has been launched on Atlassian marketplace half a year ago!Over this time, Smart Checklist has become a MUST tool in our company’s processes …
We are glad to introduce you the new version of Smart Checklist add-on for JIRA Cloud. It’s hard to believe, but the first version of our add-on has been launched on Atlassian marketplace half a year ago!Over this time, Smart Checklist has become a MUST tool in our company’s processes …
Using flowcharts to create consistent scopeIn product development, original idea takes lots of transformations on it’s way to the actual implementation (writing code which works and provides desired benefit, that is). One of those is transition from sketches/designs (“sketches” further) done by UX/designer into actual stories that developers would take to iteration. Writing stories should …
In product development, original idea takes lots of transformations on it’s way to the actual implementation (writing code which works and provides desired benefit, that is). One of those is transition from sketches/designs (“sketches” further) done by UX/designer into actual stories that developers would take to iteration. Writing stories should …
New offices, new chapter.Changes all around! In 2016 we changed locations of our offices both in Kyiv and in Krakow. Railsware has developed a lot in last 5 years and for all that time we’ve felt a strong need of finding new, cosy spaces where we would feel comfortable and productive. After months …
Changes all around! In 2016 we changed locations of our offices both in Kyiv and in Krakow. Railsware has developed a lot in last 5 years and for all that time we’ve felt a strong need of finding new, cosy spaces where we would feel comfortable and productive. After months …
Touch Bar interface for Slack. Railsware vision.As it is well known by (almost) every Mac user who is alive and conscious, On October 27th Apple unveiled their updated notebook line. Although there are a ton of buzz about it being underpowered and overpriced, we would not rush to conclusions until actual devices will be shipped to …
As it is well known by (almost) every Mac user who is alive and conscious, On October 27th Apple unveiled their updated notebook line. Although there are a ton of buzz about it being underpowered and overpriced, we would not rush to conclusions until actual devices will be shipped to …
Stand-up meetings: Railsware wayWhile I don’t think that anyone who has ever used any modification of Agile methodology would require definition of a stand-up meeting, its still needed to have some base to start from. Let’s say this is a team meeting, usually done standing, so physical inconvenience would force people to be …
While I don’t think that anyone who has ever used any modification of Agile methodology would require definition of a stand-up meeting, its still needed to have some base to start from. Let’s say this is a team meeting, usually done standing, so physical inconvenience would force people to be …
Manage Client Happiness with Regular DemosRegular Demos – is one of the most powerful instruments of managing your client’s expectations. That’s the way you can formally get acceptance of your team’s work and eliminate frustration risks caused by missing functionality. It’s like “selling” product to the consumer and motivating them to buy it. This article …
Regular Demos – is one of the most powerful instruments of managing your client’s expectations. That’s the way you can formally get acceptance of your team’s work and eliminate frustration risks caused by missing functionality. It’s like “selling” product to the consumer and motivating them to buy it. This article …
Important overhaul Elixir did to Erlang to become appealing web-development toolI often hear the same question: if Elixir works on the Erlang VM, why not use Erlang for programming web-applications instead of Elixir? The short answer is – you can’t create something akin to Phoenix/Ecto with pure Erlang. Does it mean that Elixir is a totally different language? No, it …
I often hear the same question: if Elixir works on the Erlang VM, why not use Erlang for programming web-applications instead of Elixir? The short answer is – you can’t create something akin to Phoenix/Ecto with pure Erlang. Does it mean that Elixir is a totally different language? No, it …
Developing desktop applications with Electron and BozonA pretty cool and ambitious idea of writing non-web applications with web technologies is all over the place nowadays. We’ve got React Native for developing mobile apps with JavaScript, there are NW.js (formerly node-webkit) and Electron (formerly atom-shell) for building desktop applications with HTML, CSS and JavaScript, and many other …
A pretty cool and ambitious idea of writing non-web applications with web technologies is all over the place nowadays. We’ve got React Native for developing mobile apps with JavaScript, there are NW.js (formerly node-webkit) and Electron (formerly atom-shell) for building desktop applications with HTML, CSS and JavaScript, and many other …
How we use Slack custom emoji to poll groups quicklyDo you know how to make quick, simple pools inside your group without any specific form-based tools? Google or Wufoo survey requires plenty of preparation and distribution time. Slack is good We use Slack messenger as team collaboration tool inside Railsware.Luckily it provides nice ability to add reaction to every …
Do you know how to make quick, simple pools inside your group without any specific form-based tools? Google or Wufoo survey requires plenty of preparation and distribution time. Slack is good We use Slack messenger as team collaboration tool inside Railsware.Luckily it provides nice ability to add reaction to every …
Understanding PostCSS and plugins potentialMost front-end developers have already heard about PostCSS, maybe some of them have tried to use it. It is quite a popular tool nowadays, but not yet as massively used as SASS or LESS. However, the buzz around PostCSS is increasing dynamically and benefits over other systems becoming even more …
Most front-end developers have already heard about PostCSS, maybe some of them have tried to use it. It is quite a popular tool nowadays, but not yet as massively used as SASS or LESS. However, the buzz around PostCSS is increasing dynamically and benefits over other systems becoming even more …
User stories: why?In this article, I am trying to describe my own view on stories in product development and to share some efficient ways of working with them.Let’s start, however, with the question of why there should ever be stories. I have to mention that stories is just one of tools Railsware …
In this article, I am trying to describe my own view on stories in product development and to share some efficient ways of working with them.Let’s start, however, with the question of why there should ever be stories. I have to mention that stories is just one of tools Railsware …
Debugging Capybara: screenshot of error page on CircleCIHaving real screenshot of a failed integration spec can save hours of debugging. We had screenshot with error on the local development environment, and wanted to have it on Continuous Integration server. Luckily for us, it’s a real no-brainer, if you use CircleCI. There is no need for custom S3 …
Having real screenshot of a failed integration spec can save hours of debugging. We had screenshot with error on the local development environment, and wanted to have it on Continuous Integration server. Luckily for us, it’s a real no-brainer, if you use CircleCI. There is no need for custom S3 …
Responsive layout tests with Capybara and RSpecResponsive web design is not a feature these days, bur rather a must. So, while implementing responsive layout in your application, you might find helpful adding verifications to your acceptance tests and ensure accessibility/inaccessibility to your app functionality depending on the screen size. Capybara has a method to resize the …
Responsive web design is not a feature these days, bur rather a must. So, while implementing responsive layout in your application, you might find helpful adding verifications to your acceptance tests and ensure accessibility/inaccessibility to your app functionality depending on the screen size. Capybara has a method to resize the …
SQL Joins Visualizer – build SQL JOIN between two tables by using Venn diagramsHello my dear friends.Today we will learn about SQL Joins and my new little app that helps to build and understand them. SQL join A SQL join clause combines records from two or more tables in a database. It creates a set that can be saved as a table or …
Hello my dear friends.Today we will learn about SQL Joins and my new little app that helps to build and understand them. SQL join A SQL join clause combines records from two or more tables in a database. It creates a set that can be saved as a table or …
Flexbox as a solution for browser reflow optimizationWhile we’ve been developing one of our products (Mailtrap), we needed to create 2 column page layout with inner blocks stretching down to the whole height of browser window with sticky footer and header. The page layout looks like this:This layout has several nesting levels which makes it more complicated to …
While we’ve been developing one of our products (Mailtrap), we needed to create 2 column page layout with inner blocks stretching down to the whole height of browser window with sticky footer and header. The page layout looks like this:This layout has several nesting levels which makes it more complicated to …
Make AngularJS 1.0.7 work with Jasmine 2.0During setup of Jasmine 2.0 for AngularJS 1.0.7 application it turned out that they are not compatible. The reason is that Angular 1.0.7 is compatible with the older version of Jasmine – 1.3. And there were several breaking changes in Jasmine private API which was used by AngularJS. There were …
During setup of Jasmine 2.0 for AngularJS 1.0.7 application it turned out that they are not compatible. The reason is that Angular 1.0.7 is compatible with the older version of Jasmine – 1.3. And there were several breaking changes in Jasmine private API which was used by AngularJS. There were …
Git Clean-up in Local and Remote Branches, RepositoriesAfter working with branch per feature for a while any Git-repository becomes a mess of outdated and not finished branches. To deal with this issue, we need to clean-up three kinds of branches: In this tutorial we suppose, that “master” – is a default branch, where everything is merged (for …
After working with branch per feature for a while any Git-repository becomes a mess of outdated and not finished branches. To deal with this issue, we need to clean-up three kinds of branches: In this tutorial we suppose, that “master” – is a default branch, where everything is merged (for …