RUM – Real User Monitoring

2015 – today
Real User Monitoring (RUM) service tells the story of your website’s performance from the perspective of the people who use it.
RUM tracks every visit to every page on a customer’s site and reports on how that site performed for that user. It captures live session data and pushes it to an online interface for review in real time, allowing for the interrogation of large volumes of data.

http://pedroluisf.com/wp-content/uploads/2016/11/NCCLogo-1.jpg
NCC Logo
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Performance_Distribution.png
Performance distribution
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Compare_Distribution.png
Compare distribution
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Impressions.png
Impressions
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Impression_Breakdown.png
Impression breakdown
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Significant_Dimensions.png
Significant dimensions
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Performance_Map.png
Performance map
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Worst_Performers.png
Worst performers
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Sessions.png
Sessions
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Session_length.png
Session length
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Segmentation.png
Segmentation
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Save_Report.png
Save report
http://pedroluisf.com/wp-content/uploads/2016/11/RUM_Alerts.png
Alerts

Project Description

Real User Monitoring (RUM) service tells the story of your website’s performance from the perspective of the people who use it.

RUM tracks every visit to every page on a customer’s site and reports on how that site performed for that user. It captures live session data and pushes it to an online interface for review in real time, allowing for the interrogation of large volumes of data to easily discover things like:

  • the slowest performing pages across the entire site;
  • how performance relates to factors such as:
  • which visitors are seeing the worst performance;
  • whether CDN is delivering the performance value it should;
  • where to focus development efforts and infrastructure investment.

The project is composed of several components, which include:

  • Beacon Capturing – This is the step of capturing the beacon sent by any visitor on the website
  • Offline processing – The process of aggregating the beacons and identifying sessions
  • Admin area – Where customers are provisioned and accounts are controlled
  • Reporting area – The area visible for the customer and where the information is presented

I have been working in this project from November 2015 to today.

Technology Stack

Different technologies were used in the different components of the project.

For the Beacon capturing process a .NET approach using C# was chosen. This choice was mostly because of the ease in which Microsoft .NET framework allows for creating and managing threads as well as concurrency data structures.

For the offline processing a PHP Daemon approach was implemented. This would allow for easy reuse of the resources of the company which were mainly open source oriented. The work assignment was done by consuming a RabbitMQ library.

Data persistence was done using Elasticsearch, which is a NoSQL database, string search engine based on Lucene. Cluster visualisation as well as data manipulation would be done by using Kibana and Logstash.

Both the admin and reporting area were built on a Restful API Phalcon MVC framework, with an Angular JS frontend. This frontend would also make use of Bootstrap, Grunt as a task runner and a local repository of Bower is used for allowing component sharing amongst projects.

A lot of emphasis was given in testing for this project. That means that tools like jMeter and PHPUnit is used for the API, NUnit and Specflow for the beacon capturing process and finally Cucumber and Protractor for the frontend.

Contacts

Company page

Facebook page

Product page

PA – Performance Analyser

2014 – 2015
Performance Analyser (PA) is a tool that allows automated and scheduled testing of websites across a number of real browsers as a way to check if content is being delivering to users in the optimal way and deliver consistent, reliable insight into a client’s website’s performance.

http://pedroluisf.com/wp-content/uploads/2016/11/NCCLogo-1.jpg
NCC Logo
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Job_list.png
Job list
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Run_Test.png
Run test
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Test_Summary.png
Test summary
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Result_Breakdown.png
Result breakdown
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Domain_by_Requests.png
Domain by requests
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Waterfall.png
Waterfall
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Filmstrip.png
Filmstrip
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Video.png
Video
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Request_Map.png
Request map
http://pedroluisf.com/wp-content/uploads/2016/11/PA3_Heatmap.png
Heatmap

Project Description

Performance Analyser (PA) is a tool that allows automated and scheduled testing of websites across a number of real browsers as a way to check if content is being delivered to users in the optimal way and delivering consistent, reliable insight into a client’s website’s performance.

Using 3rd party tools to analyse the website’s requests and payloads, PA can perform tests and provide comparisons like single tests amongst different browsers, multi tests for a given browser or even scripted tests for a complete user journey experience.

It can also crawl websites, giving a global picture of overall performance, identify the worst performing pages and even offer performance optimisation advice.

Finally and after tests are complete, PA will offer insights into perceived performance, with metrics such as Speed Index and visualisations such as the Performance Heatmap.

WebPageTest (WPT) is the 3rd party tool used to analyse the website’s content. Currently being maintained by Pat Meenan from Google, WPT is an open source project developed initially by AOL and made publicly available in 2008.

The project is composed of several components, which include:

  • WPT agents – These are VM’s which include the WPT tool and will resend the results back to a central server.
  • Offline Processing – This is where all the information collection is handled, analysed and stored.
  • Admin area – Where the configuration of the tool is available.
  • Reporting area – This is the area exposed to the customers and is the place where all the reporting is done and the results are available.

I have worked in this project from May 2014 to October 2015.

Technology Stack

Different technologies were used in the different components of the project.

For the WPT agents, these were VM’s running Microsoft Windows with a local instance of WPT installed. These would eventually report back to a central server that was running a simple Silex API.

The offline processing was composed of PHP Daemon instances, running on top of a modular Symfony 2 application. Work assignment was retrieved by consuming RabbitMQ queues and data persistence was done using Doctrine 2.

For the admin area, an Silex application was chosen, which is a lightweight symfony based framework, mainly because of its simplicity.

For the reporting area, a Zend 1 MVC application was implemented. Using Bootstrap, Grunt as a task runner and a local repository of Bower for resource management, the frontend also had a certain degree of jQuery and jQueryUI, mainly for visualisation purposes.

Due to the complexity of the several components and their interaction, the development environment was build on top of a vagrant solution (a virtualization tool) for an easy deployment and allowing any new resource to be up to speed in the least amount of time possible.

Contacts

Company page

Facebook Page

Product page

eCommerce @ Rocket Internet

2012 – 2014
Rocket Internet is a German Internet Company headquartered in Berlin. The company builds online startups and owns shareholdings in various models of internet retail businesses. The company model is known as a startup studio or a venture builder.
Rocket Internet opened a hub in Portugal called Porto Tech Center, and started developing new projects aiming towards the Asian and African market.

http://pedroluisf.com/wp-content/uploads/2016/11/download_logo_0_0.jpg
download_logo_0_0
http://pedroluisf.com/wp-content/uploads/2016/11/Jumia0.png
Jumia Splash
http://pedroluisf.com/wp-content/uploads/2016/11/Jumia2.png
jumia Index FR
http://pedroluisf.com/wp-content/uploads/2016/11/Jumia1.png
jumia Index EN
http://pedroluisf.com/wp-content/uploads/2016/11/Jumia4.png
jumia Product Lens
http://pedroluisf.com/wp-content/uploads/2016/11/Jumia5.png
jumia Cart
http://pedroluisf.com/wp-content/uploads/2016/11/Backend_2.png
Backend screenshot
http://pedroluisf.com/wp-content/uploads/2016/11/Backend.png
Backend screenshot
http://pedroluisf.com/wp-content/uploads/2016/11/PET_1.png
PET screenshot
http://pedroluisf.com/wp-content/uploads/2016/11/PET_2.png
PET screenshot

Project Description

Rocket Internet is a German Internet Company headquartered in Berlin. The company builds online startups and owns shareholdings in various models of internet retail businesses. The company model is known as a startup studio or a venture builder.

Rocket Internet opened a hub in Portugal called Porto Tech Center, and started developing new projects aiming towards the Asian and African market.

Two of these projects in which I was involved were Office Fab / Office Yes and Jumia. I worked with these from 2012 to 2014.

OfficeFab / OfficeYes

OfficeFab (Malaysia) and OfficeYes (India) were eCommerce websites that focused on B2C and B2B solutions. Their products were mainly focused on office materials and some computer components. The B2B software was built from scratch within the project lifetime.

OfficeFab, due to it’s higher B2B approach also used a CRM, namely Zoho CRM, which required a custom integration and automation.

Both of these projects were discontinued, mainly due to insufficient revenues.

Jumia

Jumia is one of the most successful projects developed by Rocket Internet and Africa’s first ever unicorn.

It is an all purpose, multi categorised, online shop, that targeted the African Market and eventually went to be known by many as the African Amazon,

Jumia is currently covering eleven countries like Nigeria, Egypt, Ivory Coast, Morocco, Uganda and Kenya.

Jumia was eventually renamed to AIG (Africa Internet Group) and is still operating and being developed within Porto Tech Center.

Technology Stack

All projects developed within Rocket Internet shared a Core architecture, that was eventually tailored to suit customer needs. It was built using PHP 5.3 and MySQL.

This would present some challenges. Like not being able to manipulate the main Core architecture and have to circumvent some best practices to reach the desired outcome, but also more complex tasks like Core upgrades, which could lead to regressions on the application.

The project in itself was built using two different layers.

The Frontend, also known as the presentation layer, is where the product placement and customer interaction would occur. This was built using Yii framework with a strong jQuery component.

The Backend, or also called admin area is where product and order management would take place. It was built using Zend framework with a very strong product management tool called PET built using ExtJS framework.

Frontend and Backend synchronisation was done using Apache Solr for the product indexing, Memcached for the website content and RabbitMQ for triggering changes. Order placement was done using webservices.

A testing approach was also implemented and PHPUnit was used.

Contacts

Rocket Internet website

Rocket Internet LinkedIn page

Porto Tech Center website

Porto Tech Center LinkedIn Page

Porto Tech Center Facebook Page

Officefab Linkedin Page

OfficeYes LinkedIn Page

Jumia LinkedIn Page

Jumia Facebook Page

Winphar – Pharmaceutical software

2010-2012
Winphar is a product developed by Simphar S.A., a Portuguese company aiming to fulfil the need for a software that could provide for all the intricacies of running a pharmacy, and comply with the existing legislation enforced by Infarmed

http://pedroluisf.com/wp-content/uploads/2016/11/winphar_logo_full.png
Winphar Logo
http://pedroluisf.com/wp-content/uploads/2016/11/winphar_pos.jpg
Winphar POS
http://pedroluisf.com/wp-content/uploads/2016/11/balcao.png
Mainscreen
http://pedroluisf.com/wp-content/uploads/2016/11/winphar_bg2.jpg
Screenshot
http://pedroluisf.com/wp-content/uploads/2016/11/winphar.png
Menu Sample
http://pedroluisf.com/wp-content/uploads/2016/11/winphar_bg1.jpg
Screenshot

Project Description

Winphar is a product developed by Simphar S.A., a Portuguese company aiming to fulfil the need for a software that could provide for all the intricacies of running a pharmacy, and comply with the existing legislation enforced by Infarmed.

I was involved in this project between 2010 to 2012.

Winphar is a desktop application that allows for stock and prescription management, commercial, robotics interaction and automatic product updates according to existing legislation.
This last part of the application was required by law, according to Portuguese legislation and therefore would be target of random audit processes, which meant it had to be exhaustively tested.

The prescription management would also require a constant communication between the application and regulatory services, and that would also have a very strict set of rules being enforced.

Technological Stack

The desktop application was built primarily in Microsoft VB6. It also used a MS SQL database. Active Reports was the chosen tool for reporting.

The robotic interaction was done via the file system, using a protocoled communication, previously agreed upon with the manufacturer.

Automatic product updates and prescription communication were done through Web Services and using SOAP communication protocol.

Some side projects were created alongside the main application and because these were new projects, the technology used was mostly .NET.
That lead to some backwards compatibility issues that would have to be addressed in order to allow for a smooth communication between COM and .NET components.

The company website was also under our care, so maintenance was required every now and again. Because this website had been built by an external company, a few years before, it required some intervention using open source technologies, and using procedural languages, namely PHP 4.x. This led to a turning point in my career, as I started to learn and be curious about the open source “world”.

Contacts

Company Website

LinkedIn page

Facebook Page

SIG – The precursor to Sendys

2005 – 2008
SIG (Portuguese acronym for Integrated Management System) was a management software developed by Prologica, that later on went to be part Geslogica, both Portuguese companies founded around 1992-1994. Those companies eventually ended up being acquired by CapGemini, a French consultancy company.

http://pedroluisf.com/wp-content/uploads/2016/11/Capgemini.jpg
Capgemini Logo
http://pedroluisf.com/wp-content/uploads/2016/11/sendys.png
Sendys Project
http://pedroluisf.com/wp-content/uploads/2016/11/SIG1.png
SIG For Windows
http://pedroluisf.com/wp-content/uploads/2016/11/CRM.png
SIG CRM
http://pedroluisf.com/wp-content/uploads/2016/11/SIG2.jpg
SIG For Windows
http://pedroluisf.com/wp-content/uploads/2016/11/SIG-Viagens.png
SIG Travel

Project Description

SIG (Portuguese acronym for Integrated Management System) was a management software developed by Prologica, that later on went to be part Geslogica, both Portuguese companies founded around 1992-1994. Those companies eventually ended up being acquired by CapGemini, a French consultancy company.

I was involved in this project between 2005 to 2008.

SIG was a modular application which contained five major modules:

  • Commercial Management solution;
  • Human resources;
  • Accountant;
  • Business asset management;
  • CRM (Customer Relationship Management);

SIG went on evolving into a more robust and web based solution. It underwent lots of code changes and modernisation and was eventually re-branded and had an image uplift.

The final solution went to be called Sendys and a few more products were added into the end package. It is an ongoing project with bundles of success on the Portuguese market.

Technology Stack

SIG went on development to replace the old MS-DOS solution existing until then.

SIG was a Desktop application built in VB6. It was a language developed by Microsoft that allowed for fast-paced development while integrating the newer features of forms and graphical objects at the time. it was a compiled language which meant that new releases would imply some sort of technical support.

It used a MS-SQL database for data persistence. There was a lot of development on Database querying, as most of the solution was relying in Stored Procedures for many calculations and data manipulations needed throughout the application. This is chosen mainly for performance reasons and also code abstraction.

Crystal Reports was the technology chosen for reporting.

Due to several custom development required by some customers, the development of a lot of side projects were a common rule, many of them could go from a single Excel sheet that would consume a DLL developed specifically to “bridge” the data transfer, up to a more solid, robust and bigger side application built using the same technologies than the original.

This would lead to a lot of small development teams being assigned to custom projects, suited to fill the need of specific customers.

The latest products of this solution (CRM) started implementing .NET C#. By that time the web was emerging fast, and an adaptation to a web based solution was needed.

Contacts

Company website

LinkedIn Page

Facebook Page

BANIF – IBM AS400

2001 – 2005
BANIF was a Portuguese bank with headquarters in the island of Madeira and with offices in Lisbon. It had a software maintenance contract with CapGemini that was developing applications for IBM mainframes.

http://pedroluisf.com/wp-content/uploads/2016/11/Banif-Bank-ING-rgb-neg-hor__03916_zoom.jpg
BANIF Logo
http://pedroluisf.com/wp-content/uploads/2016/11/as400-main-menu.jpg
AS400 main menu
http://pedroluisf.com/wp-content/uploads/2016/11/IBM_System_I_Solutions.jpg
IBM AS400 Mainframes
http://pedroluisf.com/wp-content/uploads/2016/11/as400_spoll.jpg
AS400 Spool queue menu

Project description

BANIF was a Portuguese bank with headquarters in the island of Madeira and with offices in Lisbon. It had a software maintenance contract with CapGemini that was developing applications for IBM mainframes.

I worked in this project from 2001 to 2005.

The main focus of the project was to maintain the banking platform and eventually create new solutions and new features.

This bank went eventually bankrupt at the end of 2015 as a result of the serious banking crisis that Portugal went through since 2008.

Technology Stack

The platform used was the IBM AS400. The access to it was done via windows machines. The programming languages used were mainly COBOL and RPG IV.

Contacts

Banif website

Capgemini website