How nearshoring improved one project’s quality

Let’s call it Application X* (the software is real, but I changed the name).

When a few years ago our developers first looked at the existing code of Application X, they were not exactly happy. It wasn’t the cleanest they’ve seen. It was far from the standards they got used to. PHP was polluted with HTML and MySQL queries. The names of variables were not in English, but in the client’s native language.  The project tracking solution used by the client’s dev team so far was clunky and the development methodology was in it’s infancy.

These were some of the challenges we faced after we decided to take over the development of Application X. So, what happened?

Read more...

Caching complex objects with Laravel 4.2 and Redis – part 1

Laravel supports various cache drivers out of the box. One of them is Redis. I am not going to describe Redis with it’s features and advantages here, it’s not the purpose of this document. The only important point in scope of this document is that Redis supports tags. Feel free to google a bit what is „cache tagging”.

Read more...

Slack: how a bizarre dream became reality

I remember that day – we all had a big laugh.

About 5 years ago, the corporation I worked for announced the “zero e-mail program”. The global policy was meant to do exactly what it said – make our inboxes obsolete. Back then it seemed like a joke. The rumors said we would be using a hybrid of Facebook and Skype, invented specifically for businesses.

As we kept sorting out the tens of e-mails that were cc’d to us last night without any specific reason, sarcasm filled our rooms. We refused to take the whole idea seriously. It often happens when low-level employees are presented with a bold managerial vision. They are the soldiers on their front-line, and they know that their assault rifles will not be swapped for plasma guns, even when the president says so. Not in their life.

Read more...

Automated server configuration and deployment with Ansible

In many cases configuring a new server is a repetitive task. Once the operating system is installed, we have to add accounts for administrators, install some basic packages, setup the application and secure everything. Even though there are some differences between servers designed for two different applications, certainly there will be some common things too. Especially in case of the same technology (not to mention exactly the same stack, like Symfony + nginx + MySQL).

For almost two years we’ve used Ansible at FINGO for preparing configuration of servers. This allowed us to spend more time on creative and interesting things, since the repetitive tasks were written once and now we can just include them from some common modules.

Read more...

How PIZZA makes Poland’s programmers better

It was early Saturday morning when I entered the main lecture room at the Institute of Computer Science at the University of Wroclaw. Some of the 100 young people at the audience were still dozing, some pumping their veins with coffee, others immersed in their laptops. The oldest ones were in their thirties, some of them as young as 16 and 17. They were all about to take part in PIZZA – an annual programming competition hosted by the students of the Institute.

Read more...

CSS variables

Every developer who has developed any webpage has the same problem: a change of primary color implies changes in many CSS files and careful find/replace operations for all occurrences of specific value.

Some of us are already using CSS pre-compiler libraries (like Less), which allows us using variables on CSS level in our code.
Less can be embedded strictly using client-side pre-compilation, without a need to compute it on application server (like PHP or ASP scripts), which would definitely make it easier to start using Less stylesheets in our project.

Read more...

4 ways in which agile software development helps companies grow with less pain

Having software developed by an external vendor usually entails a degree of uncertainty, especially when done by a new partner. It is quite obvious that building trust often requires some time. The fact that the application will be unique and has not been tested by “crash test dummies” in the past is an additional risk factor. While all this is true, custom made solutions are sometimes a necessity – out-of-the box products simply won’t get the job done. The question is how the process of designing and developing the software can be a smooth ride for the client. Enters agile software development – here are five ways in which it takes the load of a client’s back.

Read more...

We use cookies to enhance your user experience. By continuing to browse the site, you are agreeing to our use of cookies.
Read more