Nicolás Andrade

Software and full-stack Developer | jobs (at)

I'm Nicolás Andrade, full-stack developer and senior PHP programmer with experience on high-traffic websites -above 20 million visits a day. I'm working as Lead Software Developer for MindGeek Canada in Montreal, managing a dynamic and growing team of backend software developers.
I'm familiar with all layers of the web application or service stack. This includes:
  • Network, server, hosting environments and their constraints: scalability, storage, file-systems, redundancy, race conditions, DevOps.
  • Data modeling: using reasonable data storage depending on the needs: traverse, index, handle transactions, replication, redundancy, etc.
  • Business logic: good understanding of the project end-goal and business logic.
  • Programming: API Design, framework decisions for scalability, performance and maintainability.
  • Being an actual user: it's impossible to give a good service to the users if you don't use your own product.
I'm also a regular-stance snowboarder, a mid-field soccer player and longboarder. On a sidenote, you can talk to me in English, French or Spanish.

I'm running a technical blog and from time to time I write something on my personal weblog.

Working experience


Current position: Lead Software Developer.

I've worked on 6 projects in the company as back end software developer such as and

The company being in constant expansion and new teams being built, it didn't took long until I was promoted to lead software developer.

The technologies involved in most of the projects I've worked in are PHP, MySQL, Redis, MemCache.

I worked in the Tubes division in not least than 6 end-user products and in some internal tools. I take care of interviewing and hiring, mentoring and supporting; of the communication between the BackEnd team and different teams such as Content, Product Owners, SEO, Security and IT; and everything related to the high-traffic projects, such as infrastructure design, software architecture, resources management, tasks management. code reviews and deployments.

“Nico is a leader you definitely trust and want to work with. His approach of open communication and trust has made a big positive impact on the team's dynamic. On the technical side, Nico's analytical and problem solving skills, his sense of responsibility and his impressive knowledge of the variety of technologies we use made him one of the pillars of the TrafficJunky team.”

Ilyas Bakouch, Software Engineer at MindGeek

“Working with Nico was a great experience. As a team lead he was always opened for discussions and suggestions. I remember many times where I went up to him and we discussed how to tackle issues and you could see he was actually listening to what you had to say and taking it into account. On many occasions, even if he wasn’t sure that me, or my teammates, had the right solution; he allowed us to try our solution and learn from the results. He would also give great advice on how to proceed to succeed.”

Terry Lemaire, Software developer at MindGeek

Lead BackEnd Developer @ Mindgeek
From Aug 2012 to present

Worked and rewrote many products in the Tubes divison

ExtremeTube @ Mindgeek
ExtremeTube is an adult-content web site of videos, splitted in segments and categories. ExtremeTube is one of the most visited web sites over the Internet, receiving more than 9 million page views per day. Such amount of traffic can be served because of highly-optimized code, highly-optimized caching engine, several CDNs spreaded over the world and very clean code.

PornMD @ Mindgeek
PornMD is a powerful search engine with content from the biggest porn sites in the web: PornHub, YouPorn, XTube, Tube8, KeezMovies, SpankWire and ExtremeTube. It's main goal is to send traffic to different websites owned by ManWin.

While I worked in the project I was in charge of the code, third-party providers integration, deployments and testing. I also managed the migration to a different datacenter and a set of domain changes (before was, now is

Integrated to a third-party service which helps in the search between more than 1.2 million videos, PornMD provides a set of filters to get exactly what you're looking for. When no exact match is found for your query, we'll use your history information to get suggestions we know you'll like. Give a try to the Porn Doctor at

SpankWire @ Mindgeek
Originally written in .NET, my team took over SpankWire and rewrote it in PHP to standardize the framework across the division. The rewrite took around 2 months and required the PHP team to reverse-engineer the MS-SQL database.

Backend Developer @ Mindgeek
From Nov 2010 to Aug 2012

Worked at VideoBash, multiple small products and PornHub

VideoBash @ Mindgeek
Mainstream website. Has more than a million visits per day. Has been developed by the ManWin team and I work mainly as mantainer and helping the content department when they have any issue or question. We coded the Back-end CMS as well. Internally works with Sphinx as search engine, Redis as NoSQL database and MySQL to store information.

According to them: Video Bash is your first and final stop for free funny videos, games and pictures guaranteed to brighten up your day. The funniest jokes and the most unbelievable pranks caught on tape have been collected in one spot for your viewing pleasure. This is entertainment at its best and no one does it better than Video Bash. These funny clips crackle with humor and they will definitely have you laughing till your sides hurt. Quality is our number one priority and the free funny vids here are the best of the best. There are no mediocre videos here. All the videos, jokes, pranks on Video Bash are the cream of the crop and you'll be hooked from the get go. The best part is you don't have to keep all this good stuff to yourself, you can share all the free entertainment videos with your friends.

PornHub @ Mindgeek
I've been the only Pornhub developer during a period of 2 or 3 months; until my manager assigned another PHP programmer to work with me. At that time the project was growing at high speed but the company was missing resources. Two months later we got another member in the team, a very experienced PHP software developer who came to the team to take the leading position, according to my manager's expectations. Of course it was not announced to us like that, it's hard to face 2 developers who are taking care of a project to tell them "the new guy will be your lead", isn't it? And so far we were doing a good job.

Some weeks later another web developer joined the team, and since then we needed somebody to take for real the leading position. It's not easy to have a big projects in hands of four high skilled programmers without anybody taking the lead. Where were we going? Who will coordinate all tasks? With four people in a team, the product managers started to request more from us, but we were lacking internal management. Four creative minds are not a guarantee of success, if each of them pull in the wrong direction. That's why I've talked with my manager to help me to take the leading position: I was the developer with most experience in that particular project and I had a couple of innovative ideas to apply on it. That's how I became, for a period of 5 months, the Pornhub lead developer. The biggest project in the company -in terms of revenue- was on my hands while I was learning on my own -with some help of my superior, some management books mixed with MySQL, Sphinx and Redis manuals- how to manage a team. I've proposed many changes in the daily tasks, changes in the workflow, in the way we were interacting with other teams such as web designers, front-end developers, product managers, advertisers, quality assurance and system administrators among others; and established a working way that nowadays is still in use, even if I am not managing the team anymore.

At that time I was responsible of reviewing all changes in the project -code, database structure, new implementations, caching strategies, infrastructure- while another member of the team was in charge of task assignements. This gave me the opportunity to focus 100% in the technical aspect of the project and making sure that each release was fully stable. I was getting all commits in the Development branch and merging them in the Production branch according to requirement's priorities, and only me was allowed to make changes in the production environment. Nobody than me was allowed to deploy. I decided what was going to live and what will stay in the development branch until was fully optimized, always keeping happy my product manager.

But that was not the end. Such a big project as Pornhub can not be handled by somebody who's making the first steps on management. The best thing to do at that moment for my career, for Manwin and for the project was to change the lead of the team for a more experienced developer. Somebody older in the company. That's how I got switched with another lead programmer; he took Pornhub and I took part of his workload. I've got assigned a team of three new Manwin employees to work on four projects simultaneously. Given that I had the experience of managing a single big project before; with the team change the challenge was to keep being focused in four different projects, training new developers to feel comfortable in the company, making them feel confident on themselves and on myself to deal with high-traffic volume while mixing different technologies and dealing with external teams. My story continues on my next position: lead software developer at Manwin Canada

About PornHub: its based on 100% object-oriented PHP using an in-house framework. The technologies involved in Pornhub are mostly MemCached -we were moving away from it when I was leading the team-, MySQL databases with replication, Sphinx as the search engine, multiple external services on REST calls and Redis as a NoSQL database. It's hosted in 10 web servers behind a high-availability proxy, has 8 relational database servers, six Redis servers, four Memcached and four Sphinx.

From Nov 2010 to present, Canada


GotVertigo used to be a boutique agency start-up working with multimedia companies on web sites, mobile applications, advertisement, campaigns, marketing and product development.

Lead Software Developer @ GotVertigo
From Jan 2008 to Oct 2010

I've worked as an associate with GotVertigo for more than 2 years as Head and Lead Developer, working with different technologies and great customers. I was in charge of integrating different technologies in our developments, according to the customer needs and budget.

With them I made many developments for different big companies and small startups, and I participated on many internal projects.

“Nicolas is a very responsible developer and a very deep technology enthusiastic. It was very constructive to me have been worked with him.”
Claudio Marcelo Galarza, Owner, GOT.VERTIGO

“Nicolás is an amazing programmer and most important a great partner. As our lead programmer he directly managed the development team and was a key participant in the succeed of every single big project we did (most of them for big corporations like Universal Music and also for an important list of international startups). I strongly recommend him for any kind of new media project, specially if he can be on a leading development role.”
Pablo Grandinetti, Creative Director & CEO, GOT.VERTIGO

AlloClips @ GotVertigo
Deprecated website. Originally this site was developed for Universal Music France as a portal to stream videos from their labels and artists. As they had different content providers we centralized all the information in a single place, ingesing the information in different ways. Our system had connection to many servers: a search server to provide faster and accurate results, multiple CDNs for images and tokenized videos to avoid unauthorized downloads, emailing systems and more.

In the back-end site we provided a flexible CMS with statistics, so the customer was able to see trends, analyze the impact of different campaigns, see the blogs with more stream, trace the time a video was watched (how many people started to see the video but didn't reached the half of the duration, how many people watched until the end, how many people restarted to play the video, etc) and from which sources (the site itself, affiliated blogs, etc).

I worked as head developer for this project, being responsibly of it's technical success. Currently it has been replaced by the official Universal Music France website.

Canal Internet @ GotVertigo
Mainstream website providing specially produced content by Endemol Argentina, mainly for the latin american public in the United States. Was coded in PHP, using MySQL as database, and integrates a customized ad-platform to show HTML ads, pre-rolls and post-rolls as well. Today was discontinued. @ GotVertigo
Video site for the United States. Has content from HBO and AOL.

AlbumYa! @ GotVertigo
Something like the albums created with iPhoto (Apple software) but online.

VideoClick @ GotVertigo
Another video site, with user generated content. But there's a big difference with this one: the best rated videos are streamed in TV in France and Germany. It's integrated with the Ipercast CDN and an automatic TV scheduler; which receives the information from this application and streams the video directly on TV.

Whspr @ GotVertigo
A site where companies and agencies can publish press releases, and bloggers receive them according to their interests and preferences.

CanalThemis @ GotVertigo
Extranet for publishing, sharing and managing different media types of the French Ministry of Justice. Content can be published in different websites embedding the Flash Player. Actually serves different french ministries.

Universal Music France @ GotVertigo
Originally, this is the official web site for Universal Music France, including information, videos, news, albums, latest releases and photos of they artist's in a single page. The project includes also a full-featured back-end including ad management system, statistics and royalties report for the artists

From Jan 2008 to Oct 2010, Argentina


Development company based in Argentina. I've done some work for different pharmacy websites, mostly based in the United States. It was a nice environment, but after some months I left the company to join GotVertigo because the projects where much more challenging.

Backend Software Developer @ Proyectiva
From Nov 2007 to Dec 2007

From Nov 2007 to Dec 2007, Argentina

Beseder MMG Designs

Small web development company and hardware retailer store. The biggest project in Beseder MMG Designs was a chain of digital photo printing stores; we provided all the front-end, back-end and communications system and technical support. I was in charge of source code and performance measurements.

Backend Software Developer @ Beseder MMG Designs
From May 2007 to Sep 2007

I participated in many different projects involving Perl, MySQL, PHP and their hosting infrastructure.

Grupo MuM @ Beseder MMG Designs
CMS for a group of studens of the University of Buenos Aires

Librerí­­as el Atril @ Beseder MMG Designs
On-line commerce for a bookstore

Sistema de Kioscos Digitales @ Beseder MMG Designs
First version of the printing system for photo kiosks. Can crop, zoom, print and send pictures to the minilab trhough a network connection. Reads CDs, pendrives, SD cards and Memory Sticks.

From May 2007 to Sep 2007, Argentina


Instituto Nacional de Estadística y Censos of Argentina, something like the national institute of statics. I worked as software developer for specific projects, mostly based in ASP and Microsoft SQL.

From Mar 2007 to Jun 2007, Argentina

Womans Youth Team Handball World Championship Tournament Sherbrooke 2006

From Aug 2006 to Sep 2006, Canada


Development company with headquarters in Buenos Aires and offices in the United States and Spain. With Exelsum I've worked mostly on Intranet and Extranet projects for different first line companies such as Red Hat Latin America and 3Com Latin America, using PHP and Oracle 9i or PostgreSQL.

Backend Software Developer @ Exelsum
From Sep 2004 to Jun 2006

American Switching Network @ Exelsum
CMS with protected content, mailing system with attachments, URLs protected with tokens.

RedExport @ Exelsum

Red Hat Latinoamérica @ Exelsum
CMS and sales management system with business opportunities for RedHat. Notifies about bugets near to be closed. Used in latin america and Brazil.

From Sep 2004 to Jun 2006, Argentina

Telecom Internet

IPS for enterprises and home customers.

Technical Support Agent @ Telecom Internet
From Mar 2004 to Aug 2004

Provided technical and network problem resolution to end-users (customers) by performing a question diagnosis while guiding users through step-by-step solutions. Solutions include easy fixes such as resolving username and password problems, uninstalling/reinstalling modems and network devices, verifying proper hardware and software set up, power cycling equipment and troubleshooting email issues.

EDoc @ Telecom Internet
Easy Domain Checker, a tool developed in PHP to generate reports, diagnose DNS, FTP or email problems of customer's domain. Idea was to help operators without knowledge to solve some difficult issues, or without knowloedge of tools like nslookup.

From Mar 2004 to Aug 2004, Argentina


Full-Stack Developer
This includes networking, server and hosting environments and their constraints: scalability, storage, file-systems, redundancy, race conditions, DevOps, deployments, disaster-recovery, observability.
Team management and building
As a Lead Developer I've dealt with different people styles, building a team of specialists in the different aspects of the software development process: front-ends, back-ends, managements, database specialists, code specialists, strategy specialists, etc.
More than 7 years of experience with Object-oriented PHP, using frameworks like Zend Framework, CakePHP 1.3, Kohana 3, Symfony 2; and collaborating with the development of in-house frameworks serving more than 20 million visits a day.
MySQL was picked as the database server in multiple projects. I'm familiarized with it and it's internals, such as the different storage engines, replication, multi-master environments and load-balancers. I've used tools as MySQL WorkBench, PhpMyAdmin and of course the command-line interface. I've optimized MySQL servers and usage across many different projects.
Redis is an open source, advanced, replicated key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

Redis can handle atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set.

In order to achieve its outstanding performance, Redis works with an in-memory dataset. Depending on your use case, you can persist it either by dumping the dataset to disk every once in a while, or by appending each command to a log.
Memcached is a general-purpose distributed memory caching system that was originally developed by Danga Interactive for LiveJournal, but is now used by many other sites. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read.

I've used MemCache in almost all my projects, together with NutCracker (aka Twemproxy) for better sharding, load balancing and performance.

English, French and Spanish spoken
I was born and lived in Buenos Aires, Argentina. Then I moved to Montréal where I use English and French in a daily basis. Just talk to me in English, French, Spanish, PHP, SQL, or Bash and we'll get along.

HA Proxy
High-Availability Proxy is a product developed to balance the load across multiple backend servers or interfaces. It performs advanced health checks on each backend server to define it's availability.

Some of the biggest products I've worked with are using HA-Proxy in production environment.

Data Modeling
A good data modeling strategy helps to avoid strange and code to compensate for edge cases not covered by the modeling.
It's very important to know how to create a reasonably normalized relational model, with foreign keys, indexes, views, lookup tables, etc.
However in many cases it's much better to de-normalize the information and rely in not-so-strict data structures such as documents or graphs.

Kibana and Google Analytics
You need information before building a solution to a problem. You need information after the solution has been implemented. Kibana and Google Analytics are great sources of information, as well as Google WebMaster Tools. I worked with all of these already.

Zend Framework Zend Framework is a simple, straightforward, open-source software framework for PHP 5 designed to eliminate the tedious details of coding and let you focus on the big picture. Its strength is in its highly-modular MVC design, making your code more reusable and easier to maintain.

Phing PHing Is Not GNU make; it's a PHP project build system or build tool based on Apache Ant. You can do anything with it that you could do with a traditional build system like GNU make, and its use of simple XML build files and extensible PHP "task" classes make it an easy-to-use and highly flexible build framework. Features include running PHPUnit and SimpleTest unit tests (including test result and coverage reports), file transformations (e.g. token replacement, XSLT transformation, Smarty template transformations), file system operations, interactive build support, SQL execution, CVS/SVN operations, tools for creating PEAR packages, and much more.

Composer Composer is the de-facto standard for Dependency management in PHP projects and supports repositories in Git and SVN

CDNs I've worked with different content delivery network providers such as Ipercast, Level 3 and LimeLight networks. Many of these companies offer audio and video services including encoding, securing, distributing managing assets.

I've used protected CDNs with hashes and IP ranges for static (small) and large content; and as Http reverse proxy as well, such as Incapsula.

Amazon Web Services

jQuery jQuery is a new kind of JavaScript Library.

jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.


nmac (at) nmac com ar

Montréal, QC, Canada;
or Buenos Aires, Argentina.

+1 438-821-NICO