Printing tool Download PDF

Profile

Having entered the world of computers at the tender age of 5, with a TIMEX 2048, I began programming in BASIC at 7 and I have since then developed my knowledge in several areas of IT.

I have several years of experience in various programming languages, like Python, PHP, C++, Javascript, HTML, CSS and others I use less often, like Assembly.

Nowadays I spend most of my time with Python, with a fair amount of Javascript thrown in, and tools like Docker, Redis, Terraform, Vagrant, Gulp, AWS, Google Cloud Platform, MySQL, PostgreSQL, etc.

Django is my favourite generic web framework. Rails is great too, and if I have to use PHP, then I choose Laravel.

I am a pragmatic perfectionist. I always strive to do the best thing while trying to maintain a healthy balance between perfect and practical. Well built software, with organised, clean and tested code, making use of best practices and proven methodologies is a beautiful thing.

Being also an environmentalist at heart, I always strive to do what's best for the environment and I constantly try to spread awareness of "little big" things that anyone can do and can make a huge difference for everyone on the planet.

I have also always been connected to sports since I was young. Besides bodyboard, surf and MTB, which I do regularly, I practised swimming for 9 years, rowing for 4 years (including a national championship and lots of smaller regional races), and Kung Fu and Tai Chi since 1998.

I am cheerful, sociable, easy going and a person of principles, greatly appreciating values such as honesty, humility, righteousness, patience and loyalty.

Work experience

May 2017Present

Tech Lead

James

Started as lead integrations engineer, working with clients to implement solutions to integrate their systems with James' and to deploy James software on their infrastructure.

Promoted to tech lead after a few months to help define the technologies used and guidelines for how to write code and use version control, as well as implement a DevOps culture with continuous integration and deployment.

Technologies used include Python, Django, Flask, Docker, AWS, Terraform, PostgreSQL, Redis, Ansible, TravisCI, TeamCity, Proxmox, Ubuntu, and Git.

Jan 2016Jul 2016

External Consultant

Wall-i

Wall-i is a digital signage solution that aims to be easier and cheaper than the vast majority of competing solutions by using low-cost hardware like Raspberry-Pis and other mini-computers.

I was brought on board to help create a minimum viable product to install on a few select retail chains as a test. This included re-creating from scratch all the Python code for the media player and media synchronisation on the Raspberry-Pi, improving the operating system configuration, and fixing existing functionalities on the web application (written in Laravel 5).

There were also features with which the previous team was struggling and asked me to take over, like a queue management system implemented entirely by me from scratch using Django, and an alarm scheduling solution for scenarios such as factories where a bell rings to signal beginning and end of workers' shifts.

This was a part-time job, taking up around 4 hours per day, 5 days per week.

May 2012Apr 2016

Chief Software Architect

Wemeter

Designed the whole Wemeter system, a resource consumption monitoring application for big buildings, and had it deployed in two of Portugal's biggest shopping malls, with many other clients lined up.

Led the recruiting efforts for the development team.

The product had a micro-services architecture, with parts written in Python, Go and Java. On the hardware side, it deployed various brands of equipment and a custom hardware solution was being developed with Raspberry Pis, Ubuntu Core and Salt.

This started as a part-time job taking up around 4 hours per day, 5 days per week, until August 2015, when I joined the company full time.

May 2013Aug 2015

Software Architect

Conseev, LLC

Designed the architecture for DoSocial, a social media management platform, and led the team that implemented it from scratch, deciding what technologies to use and how to implement them.

Improved the productivity of the company by introducing concepts like automated testing and continuous deployment, asynchronous work queues, and infrastructure as code.

Responsible for server configuration and maintenance.

Responsible for the technical interviews of new candidates.

Mar 2012May 2013

Software Engineer

Mukuru

Implemented the Textacash money transfer system which became an instant success in Zimbabwe, changing the lives of many people by allowing them to easily have an ATM card and be able to receive money from friends and relatives abroad.

Worked directly with the banks involved, using their APIs and providing technical support directly to their staff.

Improved application caching and performance, introduced asynchronous work queues to the stack, designed a Restful API, and some sysadmin tasks.

Mar 2011Aug 2011

Web and Android developer

Viatecla

I was responsible for the development of the Android version of one of the company's products, and used my experience as a web developer to help and advise in other projects, in particular the new HTML5, CSS3 and Javascript smart tv interface for the company's video-on-demand product.


I also used C# to implement the backend for a data visualisation simulator written by someone else in Silverlight, communicating via web services, and investigated several possible mapping solutions (Google Maps, Bing Maps, OpenStreetMap, mapnik, Mapbox, TileMill) for implementing some new features in one of the company's tourism products.

Additionally, I interviewed candidates for potential roles inside the company, assessing their technical knowledge and personal motivation.

Mar 2010Mar 2011

Web Developer

log / DRI

Worked as an outsourced developer on-site for a client (DRI) that did projects for companies like CIMPAS, Chronopost e PTInovação.

Most projects were related to CRM and were based on one or more of these technologies: PHP, SugarCRM, Drupal and Zend Framework.

Being one of the persons with most experience on HTML, CSS, Javascript and especially Drupal, I helped a lot with those technologies.

Sep 2000Mar 2010

Web developer, systems administrator, trainer

Fernão Mendes Pinto Secondary School

My main responsibility was to maintain the school's website, which at first was based on a very simple Content Management System created by myself with PHP and MySQL. As time passed and the needs increased, the CMS was moved to Drupal, which, although no longer maintained by me, is still the CMS in use.

In 2006 Moodle was added as an online resource for students and teachers, and the site was moved to a Virtual Private Server, the maintenance of which was also my responsibility.

Google Apps was also used to provide email accounts for all the school's staff, as well as all the other online tools Google Apps offers. Students were supposed to also have email accounts and the solution to manage the accounts was already in place but the school board never decided to go ahead with it.

I also provided training for teachers about the online tools they had available, as well as several workshops about various computer-related subjects, including linux and open source software.

This was a part-time job, taking up around 4 hours per day, 5 days per week.

Apr 2009Aug 2009

Web developer

Writers Federation

Development of the website "Writers Federation", a website for writers to expose their work with some social networking characteristics, based on Drupal. The site's design was implemented by another company, contracted by the client.

Aug 2008Nov 2008

Web developer

Artist Level Networks

I was the senior developer responsible for the development of the website for Artist Level Networks, a social network for artists implemented with Drupal. My role on the project ended prematurely due to a sports accident preevnting me from working for several weeks, which led to the rest of the project being developed without my participation.

This was a part-time job, taking up around 4 hours per day, 5 days per week.

Oct 2007Oct 2008

C++ developer

AnubisNetworks

I was responsible for creating the proof-of-concept prototype for the core module of what would become the following version of AnubisNetworks' various anti-spam products.

Mar 2005Oct 2005

Web developer

ICANS21

I developed and maintained a conference management system for the ICANS21 (21st International Conference on Amorphous and Nanocrystalline Semiconductors), , that took place in the Faculty of Science and Technology, of the New University of Lisbon. Features included hotel room reservations, online payments, and online abstract evaluation and voting.

I also provided technical support for the event organization and to the system users during the conference.

This was a part-time job, taking up around 4 hours per day, 5 days per week until I left my previous job in August, from which point on I worked full time on this.

May 2005Aug 2005

Web developer

Simbiose

I was responsible for the initial development of a content management system to serve as the base for every future project of the company. Drupal was proposed instead of "reinventing the wheel" but the company eventually decided they would prefer to have their own proprietary platform and Drupal was abandoned.

This was a part-time job, taking up around 4 hours per day, 5 days per week.

Jan 2005Mar 2005

Web developer

Materiais 2005

I developed and maintained a conference management system for the Materiais 2005 - III International Materials Symposium and XII Portuguese Materials Socitey Meeting, which took place in the Aveiro University. Features included hotel room reservations, online payments, and online abstract evaluation and voting.

I also provided technical support for the event organization and to the system users during the conference.

20002002

Developer

CDX Project

I was a contributor and later one of the core developers of CDX, a library for game and multimedia applications development, based on DirectX and C++.

19972000

Systems Administrator

H. Blanco Buying Agency

Online presence