Some time ago, I got the chance to boot up a NodeJs website for tracking shipments for Namshi. The approach that was suggested was to build up fine-tuned front-end before/during delving into the API design/implementation that was supposed to feed this website with shipment data. Shipment information comes from various sources of all shipment companies that Namshi is working with. In short, finishing up the API was a lengthy project. After the API is finished, the front-end application was supposed to be built and passed on to the designers to finish it up. Discussions were still going on regarding how the website will look/function.

Read on →
Comments

Intro

So here is the situation: your Symfony2 powered website supports a bunch of countries/language, each country requires a specific set of data to be served, and to top it all up, you are using separate databases for each country and the databases are handled by doctrine.

If you are faced by such a situation, you will feel the pain of managing locales and switching between different entity managers in your code.

Read on →
Comments

It has been a year+ since I joined Namshi. I started as a Junior Software Engineer straight out of college. Getting introduced to the tools and best practices in the industry is a completely different experience than I ever experienced in college. It is also one of the most interesting phases of professional work as you get to experiment and play around with these tools. Help! was the most used word during my first couple of months. My teammates’ role in supporting and helping me is the determining factor that decides how well I will be using the technologies we have.

In this spirit, I would like to write about my Top 10, now I consider funny, pitfalls I made during my first year.

Read on →

I was recently given a tutorial by @odino on how to use doctrine annotation reader along with PHP’s Magic Methods to dynamically hydrate entities and bind raw data coming from a data source to custom entities.

We basically have a data source (say, a key value store) which provides data (which we don’t have control over) that might contain irrelevant information or its keys might not be declarative enough. So we need a generic and clean way to perform filtering, transform key names and “hydrate” our entities. By clean I mean, loops and array manipulation should be kept to a minimum.

Say we have the following data coming from our data source:

1
2
p1 => 'yellow',
p2 => '15'

From the point of view of our data source, p1 refers to the color and p2, let’s say, height variable.

Read on →

It was not until I did my first weekend manual testing procedure on Namshi.com till I came to realize how much time consuming testing can become. All critical paths starting from registration and login to buying a product using the available payment methods should be accounted for. Along with that, any irregularities on different pages on the website must be reported.

Read on →