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, 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 ours and to deploy our 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, PostgreSQL, Redis, Ansible, TravisCI, TeamCity, Proxmox, Ubuntu, and Git.

Aug 2009Present

Overlord

Ground Up

Since Ground Up is my one man operation, I am responsible for everything, from communicating directly with clients, to project management, implementing the solutions for each project, researching and experimenting with new technologies, etc.

I work with other highly intelligent people from a pool of contacts I have gathered over the past 15 years, bringing in the required expertise for each project.

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 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.

May 2012Apr 2016

Chief Software Architect

Wemeter

I started as the lead software engineer on the project since its inception, being responsible for everything from planning, designing and implementing features, deciding what technologies to use, helping the company choose which path to follow in terms of what functionalities should be offered first or at all, interviewing and selecting candidates to join the development team, among other things. I started as an external consultant and in April 2015 I was brought in full-time to lead the whole technical side of the project.

Wemeter is a resource consumption metering application designed to give office buildings, shopping malls and other big buildings detailed information and analytics about their spending on water, gas and electricity, with other metrics being planned for the short-term future. It is currently deployed in two of Portugal's biggest shopping malls, with dozens of clients on the waiting list, including international ones.

The product has a micro-service-oriented architecture, with tools written in Python, Go and Java. On the hardware side it deploys various brands of equipments and we were developing our own hardware solution starting with Raspberry Pis, for which I was using Ubuntu Core and SaltStack.

May 2013Aug 2015

Software Architect

Conseev, LLC

I was the software architect on DoSocial.com, a powerful social media management platform, similar to Buffer.

As this was a greenfield project, I had the liberty to choose most of the technologies used. This allowed me to introduce some web technologies to the company. By introducing tools like unit testing, Fabric, Beanstalkd, Vagrant and Ansible, I radically improved several aspects of the company's projects by automating deployments, improving performance and making applications more stable.

Besides the implementation of the vast majority of the code, I was also responsible for the server configuration and maintenance, software installation and configuration, and generally making sure things were running smoothly.

I was also part of the recruiting process for the company, as the responsible for the technical interviews of new candidates.

Server maintenance and operational tasks were also part of my regular activities, such as migrating large databases to new servers, setting up MySQL replication on them, code reviews, etc.

Finally, I also contributed to the business side by giving feedback and making suggestions to help steer the company to success.

Mar 2012May 2013

Software Engineer

Mukuru

I was the sole developer responsible for implementing the whole Textacash money transfer system that became an instant success in Zimbabwe, since it changed the lives of so many people by allowing them to easily have an ATM card and be able to receive money from friends and relatives abroad. More information here:

- http://www.mukuru.com/zimbabwe/currencies/txt-a-cash-zw-usd
- http://www.cabs.co.zw/index.php/delivery-channels/textacash

I worked directly with the banks involved in the project, using their APIs and making sure everything was implemented as intended and also providing technical support directly to tellers and banking staff.

Mukuru is mainly a money transfer business and uses a web application as its main tool. I was responsible for a little of everything, from improving the application caching and performance (I was the one who introduced Beanstalkd to the application stack), to designing a Restful API, developing new services and products from scratch, and some system administration 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.

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 work on the project ended prematurely due to me suffering an injury that prevented me from commuting to the company office for several weeks, which led to the rest of the project being developed without my participation.

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.

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.

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 DireIctX and C++.

19972000

Systems Administrator

H. Blanco Buying Agency

I was responsible for administering the software and the computer network of the company.

Online presence