Introduction to Apache Thrift

Recently I gave a presentation to our development team about Apache Thrift ( – great software framework that allows applications written in different programming languages to communicate with each other. What differentiates it from other solutions is that Apache Thrift is relatively easy to implement and maintain. I have written this article to preserve the presentation contents and supplement it with additional code examples. Some history and background Thrift was conceived in Facebook in 2007. Their company culture allows its developers to choose any programming language, which seems best for particular solution. This, obviously, led to multitude of applications written in different languages. That’s when a need for a tool […]


Live the eMAG experience from behind the scenes!

Posted by on

Are you at the beginning of your career and want be part of the team that creates the future of the online commerce in the region? Join the eMAG Talent Internship program! You can choose from 20 positions of paid internship in Bucharest, Iasi and Craiova, out of which 12 in the Software Development department, and 6 in the Platforms area. We are fundamentally curious, we learn by experimenting and are always looking for out-of-the-box ideas and solutions. If you are passionate about programming, like to learn and always listen and understand a subject before “jumping” into the code, our Code Gods team is waiting for you. You will use […]

eMAG Tech Talks: Sonata Admin & AngularJS

This eMAG TechTalks session covered some very interesting subjects brought up by our colleagues Dan Gurgui and Gabriel Nicola, namely the main ideas and concepts behind two interesting technologies – Sonata Admin and Angular JS. So let’s just have a look at what we’ve learned from Dan and Gabriel. Sonata Admin Dan talked about how in eMAG we are always developing back-end functionalities for the administration of database records (simple CRUDs).  Most of the times the requests come in a generic form like “Product management interface”. From this point we start iterating aso that we get a bigger understanding of what’s needed, we get a filter for order id, a […]

eMAG Tech Talks: HAProxy & eMAG Technical Academy

It’s been a busy time for eMAG TechTalks and we had a very interesting session this week, with George Negoita taking us through his knowledge of HAProxy and Adriana Cirstea and Andreea Scurtu giving us their insight on our Technical Academy. Let’s take a quick peek at each topic and what they are actually all about: HA Proxy In the first discussion topic, George Negoita shared some of the knowledge that our infrastructure department has gained in more than four years of using HAProxy in eMAG. He started with some theoretical aspects of high availability, redundancy and scaling. Scaling was one of the hot subjects in eMAG in the last […]

Skill upgrade: RabbitMQ @ eMAG Technical Bundle

In the past articles we’ve talked about our eMAG TechTalks sessions and how they help us understand what some of our teams are up to, what technologies they are using and what those technologies can bring to eMAG. But these are just presentations and you may or may not get a good grasp of whatever the subject may be. So we thought we should have some workshops just to have a complete package on knowledge and understanding brewing in the company. Thus the eMAG technical bundle was born. The first session took place in January and we had fun with RabbitMQ. More workshops will follow and they will cover more […]

Back to school with “Fii Practic event @Iasi”

Ever wonder how it would be to return to school (of course, once you finished school and got to work on several jobs? Well, we can make it happen through our eMAG Workshops program. But here we are no longer students, we are fully equiped experts ready to transfer their knowledge to young talents hungry for practical real life projects. Under the cheering „Keep your brain fit!”, we invite students to join our hands on technical learning sessions built on topics of interest in their field. Our promise is to spice up each session by using the latest technologies. Between March 12 – April 24, we will reopen the gates of […]

New session of eMAG TechTalks: Regex & Web Application Messaging Protocol (WAMP v2)

As you may remember, we talked in a previous article about our internal technology-related discussions, or eMAG TechTalks as we so lovingly named them. We explained how we come together once in a while, grab some drinks and chips and listen to our colleagues talk about how they use a certain technology, how it can help us witheveryday tasks and workflows, or how it just makes life easier, either for us or our customers. And no, it’s not a boring gathering where just one guy takes the stage, talks his heart out and everyone goes home understanding nothing. It’s an interactive gathering where everyone asks questions and pushes the speaker to […]

Effective communication in software development projects – in 7 easy steps

In this article I will show you how you may increase the effectiveness of communication in your projects (not only IT-related) by following seven simple rules. eMAG’s day-to-day operations are heavily dependent on the work of Software Development department – it comes as no surprise in a business of such scale. We are present in four countries, employ about 2000 people in multiple offices and at any given moment work on hundreds of projects, many of them involving some kind of software development or technical support. Multiple factors make up the successful project: clear vision, thorough analysis, skilful development and good management – to name a few. There is however […]

Delving into OrientDB

OrientDB looks very awesome for so many reasons and it seems like they crammed every possible buzzword and juicy feature a database could (ever?) have. But like any responsible tech-geek, you must first do your due diligence and investigate as many aspects of the new kid on the block before committing to it and losing countless nights as a slave to missing documentation or hidden “features”. In order to fulfill this due diligence, I decided to walk through and try to use the various available PHP-based drivers and see what they can do (out of the full spectrum the database offers) and what their underlying communications protocols allow them to […]

Nothing is micro about microservices

What is a microservice? There is nothing micro about eMAG but as we like to do things as simple and as efficient as we can, I’d like to talk to you a little about how we use microservices and how they improve our work and make our projects shine. So what exactly is a microservice? You might find lots of articles, each having a different approach on how they explain it but, in a nutshell, it means using lots of small applications that communicate with each other and get the job done fast, and not having just a few big ones that need entire teams to handle them. Not to […]