Pedro Assunção
I help build computer software that allows people to buy or subscribe to a car - completely online - at Cazoo.

15 years of web development experience across a multitude of software languages and frameworks including Elixir, Phoenix Framework, Ruby, Rails, C++, C#, Java, Python, GDScript, Javascript, Typescript, and others.

Currently focused on solving problems using PETAL (Phoenix Web framework, Elixir, TailwindCSS, AlpineJS and LiveView).
Professional Experience
Senior Software Engineer at Cazoo
Portugal / UK Jan 2021 to present day
10 months, 6 days
Senior Software Engineer at Cazoo
Working with Elixir, Phoenix, LiveView, and Stripe Billing. Implementing and maintaining micro services that support the car subscription model at Cazoo.
Tools and Technologies
Elixir, Phoenix Framework, Phoenix LiveView, Broadway, SQS, SNS, Jenkins, Ruby on Rails, Docker, Git, Emacs, PostgreSQL, HTML, Json, Elastic Search, React JS, PubSub
Tech Lead / Senior Software Developer / Architect at Drover
Portugal/UK Dec 2017 to Jan 2021
3 years, 1 month, 3 weeks, 2 days
Tech Lead / Senior Software Developer / Architect at Drover
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. Pair programming with many colleagues, both in and out of the current team.

Development of Elixir/Phoenix/LiveView services around - for instance:
- Business pricing calculations
- Authentication and Authorization
- Stripe Billing
- High throughput event handling and piping to external services

Stack includes Elixir, Phoenix, LiveView and many more shiny things. http://joindrover.com.
Tools and Technologies
Ruby on Rails, Elixir, Phoenix Framework, Broadway, SQS, SNS, Jenkins, Docker, Git, Emacs, PostgreSQL, HTML, Json, Elastic Search, React JS, PubSub
Senior Ruby/RoR Developer at Wordans.com
Portugal Aug 2017 to Dec 2017
4 months, 1 week
Senior Ruby/RoR Developer at Wordans.com
Supporting existing and developing new features for Wordans' online marketplace: http://wordans.com
Tools and Technologies
Ruby on Rails, Git, Emacs, PostgreSQL, HTML, Json, Elastic Search
Senior Ruby on Rails developer at Portugal Telecom (via BOLD Int.)
Portugal Nov 2015 to Aug 2017
1 year, 8 months, 3 weeks, 2 days
Senior Ruby on Rails developer at Portugal Telecom (via BOLD Int.)
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.
Tools and Technologies
Ruby on Rails, Jenkins, Git, Emacs, MySQL, HTML, Json, Elastic Search, RabbitMq, React JS, PubSub, Mina, Capistrano
Co-founder and jack-of-all-trades at ZenBlast, LDA
Portugal Jan 2012 to Nov 2015
3 years, 10 months, 5 days
Co-founder and jack-of-all-trades at ZenBlast, LDA
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.
Tools and Technologies
Java, Hibernate ORM, Spring framework, TestNG, Mac OSX, PostgreSQL, H2, SQL, Javascript, CSS, HTML, XML, Eclipse IDE, Ruby on Rails, RubyMine, Mercurial, Maven
Junior/Medior/Senior Software Developer at TomTom Int. B.V.
Amsterdam, Netherlands Nov 2006 to Dec 2011
5 years, 1 month, 1 day
Junior/Medior/Senior Software Developer at TomTom Int. B.V.
PND Content Server and Map shop release system
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.

Mobile Location Based Services
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.

MapShare back-end server
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.

MapShare reporting tool
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.

Safety camera moderator's web console
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.
Tools and Technologies
Java, Hibernate ORM, Spring framework, JUnit, JBoss application server, Eclipse IDE, Linux, Mac OSX, MySQL, SQL, MS SQLServer, Javascript, Openlayers, CSS, HTML, Subversion, Git, Maven, XML, J2MEPolish, J2ME, Ant, Python, Squid proxy, JMeter
Associate Consultant at Infosistema
Portugal Feb 2006 to Nov 2006
9 months, 3 days
Associate Consultant at Infosistema
Santander Bank website's modernization
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.
Tools and Technologies
Java, SQL, JSPs, Servlets, HTML, CSS, Javascript, Ajax, Oracle, Eclipse IDE, Netbeans IDE, JCompiler IDE, CVS, WinMerge
Junior Developer at Sinfic
Portugal Jun 2005 to Jan 2006
7 months, 4 days
Junior Developer at Sinfic
Republic of Angola's Voting Census Software
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.
Tools and Technologies
C#, Visual Basic, SQL, Windows forms, Canon digital camera API, Microsoft fingerprint reader driver and API, Microsoft SQLServer, Microsoft SourceSafe, Microsoft Visual Studio 2005
Freelance Analyst/Designer/Developer at Centro Social de Palmela
Remote Apr 2005 to May 2005
1 month
Freelance Analyst/Designer/Developer at Centro Social de Palmela

Website design and implementation


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).
Tools and Technologies
Mambo content management system, PHP, CSS, HTML, Javascript
Freelance Analyst/Designer/Developer at AnimePaf
Remote Mar 2005 to Apr 2005
1 month, 1 day
Freelance Analyst/Designer/Developer at AnimePaf

Website design and implementation


Design and implementation of a website for the Anime – Projecto de Animação e Formação organization (http://www.animepaf.org) using the Post-Nuke content management system ( http://www.postnuke.com).
Tools and Technologies
Post-nuke content management system, PHP, CSS, HTML, Javascript
Education
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.

Design of various websites using server side technologies like Active Server Pages (ASP), Java Server Pages (JSP), Servlets, PHP Hypertext Preprocessor (http://www.php.net). Good understanding of most Web technologies (HTML, Javascript, Cascading Style Sheets (CSS), etc.).
High school graduation
Electronics Sep 1995 to Jun 1998
2 years, 8 months, 2 weeks, 6 days
High school graduation
High school graduation in the Electrotechnic/Electronics course at Escola Secundária Manuel Cargaleiro.

Final score of 12,40 (0-20).
Research
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.

Administrator 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).
Languages
- 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.
Hobbies
- Gaming
- Guitar and drums
- Paragliding
- Sailing
- Former wingsuit pilot, skydiving instructor, and base jumper wannabe
Additional Information
- Driver's license (Portuguese AP Class – Motorcycles) issued in 31/11/2005;
- Driver's license (Portuguese B Class – Cars) issued in 04/01/2002.
References
LinkedIn Recommendations

More recommendations at https://www.linkedin.com/in/assuncas/