Senior Software developer. Researcher of shiny new things.
Pedro Miguel G.D.S. Assunção
Drover (joindrover.com) - Portugal/UK - Since December 2017
Tech Lead / Senior Software Developer / Architect
Making sure the code base is consistent across all development teams, championing best practices and design strategies. Introducing new ways to make developers' lives easier by procuring tools for all aspects of code health, security and performance. Architecture and prototyping of micro-services with the long term goal of splitting up code into more manageable and testable pieces.
Stack includes Elixir, Rails and many more shiny things. http://joindrover.com.
Wordans.com - Portugal - August 2017 to December 2017
Senior Ruby/RoR Developer
Supporting existing and developing new features for Wordans' online marketplace: http://wordans.com
BOLD International - Portugal - November 2015 to August 2017
Senior Ruby on Rails developer
Development of various internal systems (and support gems) with RoR, using MySQL, RabbitMQ. Everything extensively based on automated testing, pair programming, and git blaming :)
Maintenance of the identity and access management systems responsible for providing systems accesses for the entire organization. Development of solutions for those same systems.
ZenBlast, LDA - Portugal - January 2012 to November 2015
Ruby on Rails platform to manage the cultural and sports group of a major Portuguese bank (BPI);
Invoicing application "VOS", which includes modules for accounting, stocks, salaries, medical clinics management, and more;
Development of a dropzone management software application, to handle schedules and passenger manifest at any parachuting operations site;
Development of other custom-made software applications and websites.
Maintaining the old map shop release system and PND content server (i.e. home server) and working on developing the next generation of the same products.
Short stop through the Mobile department. Though only a month, this project provided some insight on location based services, namely routing and geocoding of addresses, and development on mobile platforms (Midlets). Went back to the old department due to some company internal project restructuring.
TomTom Int. B.V. - Amsterdam, Netherlands - November 2006 - January 2009
One of the original developers of TomTom MapShare technology's back end server. This system is responsible for the storage, processing, and distribution of map and POI (points of interest) corrections to it's more than 20 million users. This was TomTom's most important project in 2007.
Adopting the Scrum agile methodology from the start, was responsible for the design and implementation of the entire solution (backend server and a web interface where TomTom content moderators can manage incoming corrections), along with 2 other team members.
As with all server-side projects, the solution had to tackle the usual performance and scalability challenges, as well as the immense amounts of handled data. The answers to these issues were translated into the following:
- Database tweaking - Some particular parameters had to be tweaked in order to make the most out of our database cluster.
- Read/Write connection splitting - To take advantage of a cluster (master/slave replication) this had to be implemented. In this case, at the application level (custom data source RW splitting module).
- Connection data streaming - Some tweaking had to be performed in order for the database to stream the results to the application, instead of building it up in memory on the database driver. We went one step further and implemented streaming from the DB directly to the HTTP clients (minimal memory footprint on the server).
- Data distribution caching - All the optimizations on a database cluster will eventually prove less fruitful than a proper caching strategy so we also implemented this, though using an out-of-the-box solution.
Was also responsible for the creation of other smaller tools (testing, load/stress runs, etc.), some Python scripts for performance measurement and charting of results, and a maven plugin for the generation of a SQL schema from Hibernate annotations.
Sole responsible for the design and implementation of a data aggregation and reporting tool for the MapShare backend server's data. This project was born from the management's need to monitor and get information about the current status of the project, namely the number of users sharing corrections, what kind of devices are sharing data, how much data is being shared, what type of corrections are more common, etc.
This tool consisted on scheduled data aggregators, that retrieved information from the live MapShare system and stored it in a processed/aggregated form, and a web interface - where management could see the aggregated data and generate Excel reports from it.
In the same team that developed MapShare, was responsible for the design and implementation of a new (web) version of the TomTom safety cameras moderation tool. This tool allows TomTom content moderators to manage safety (speed) camera information, basically deciding what will end up in user's devices.
This project relied intensively on Ajax, around an openlayers map interface, when moderators could view, change, import, and export information on safety cameras that was previously gathered from several sources.
One of the developers responsible for the redesign of the home banking website of one of the company’s clients (Santander/Totta Bank). This included new features, according to new services offered by the bank to its customers, a new web layout, and the integration with an existing CMS.
Also responsible for the development of a new web application, targeting customer investments - for both home users and companies. The development of this application included integration with one of Infosistema’s core products, a connector to retrieve stock quotes from Reuters.
One of the three core developers of the Republic of Angola’s voting census software applications, put into production in November of 2006. More than 7.5 million of Angola’s inhabitants registered themselves using the new electronic census framework.
Other software applications developed included one to allow an Angolan province’s govern (Huila) to keep a register of the region’s farms and crops, as well as some other in-house software products.
Design and implementation of a website for the Social Centre of Palmela (http://www.cspalmela.org), a non-profit social care institution, comprised of several child-oriented services, for children older than 3 months, like hobby workshops, psychological support, etc. The PHP content management system Joomla (previously known as Mambo) was used for the implementation of the website (http://www.joomla.org).
- Geographic information systems course “Introduction to ArcGIS (9.x) level II”
- Core Spring 2.0, with Alef Arendsen from Interface 21
Major in Computer Science
Major in Computer Science Engineering - Management Area, at Escola Superior de Tecnologia de Setúbal. Final score of 12 (0-20).
The final year project consisted in the creation of an ORPGs (On-line Role Playing Games) development framework. Also, a paper about the idea was submitted (and accepted), and a poster was presented, at the Level Up 2003 conference (International Conference on Digital Games Research) in Utrecht, the Netherlands. This project achieved a final score of 17 (0-20).
BsC in Computer Science
BsC in Computer Science Engineering - Management Area, at Escola Superior de Tecnologia de Setúbal. Final score of 12,41 (0-20).
Final year project for the BsC in Computer Science Engineering, which consisted in the creation of a virtual community, for Portuguese martial artists, and all required services like news, events, discussion forums, information directories, etc. This project achieved a score of 20 (0-20).
Several projects developed using the Java programming language, including:
- Implementation of lexical and syntactic analyzers;
- Software applications based in Enterprise Java Beans;
- Agent and multi-agent based systems;
- Implementation of artificial intelligence algorithms.
Programming and development in Linux, mostly in C/C++, using multimedia development technologies (for example, SDL – http://libsdl.org and OpenGL).
Development of software projects using database management systems, including Oracle, MySQL and SQLServer.
Graduation in Electronics
High school graduation in the Electrotechnic/Electronics course at Escola Secundária Manuel Cargaleiro. Final score of 12,40 (0-20).
MaDlabs - Multimedia and DB Laboratories
Founding member of this research group from the Escola Superior de Tecnologia de Setúbal school, having developed several projects, including the new group website (no longer online), the creation of a website for the Naval Club of Lisboa and the development of a support platform for the group teachers.
One of the main administrators of the group's several Linux web, mail, and ftp servers, also providing support in the management of the group's currently used groupware platform (GForge – http://www.gforge.org).
- Excellent written and spoken English skills. Daily usage, for research and development purposes, of English technical manuals, books and magazines;
- Rudimentary written and spoken French and Spanish skills.
- Guitar and drums
- Former wingsuit pilot, skydiving instructor, and base jumper wannabe
- Driver's license (Portuguese AP Class – Motorcycles) issued in 31/11/2005;
- Driver's license (Portuguese B Class – Cars) issued in 04/01/2002.
Available on request