Java Developer in Lisbon, Portugal
Full-Stack Developer2016 - 2017Kaja (via Toptal)
Technologies: Node.js, PHP, Angular 1.5, Java
- Developed an intelligent itinerary planner that takes into account multiple variables, such as the users' preferences, point-of-interest properties (location, rating, category, etc) using machine learning techniques such as spatial clustering and genetic algorithms.
- Developed a recommender system for events based on the users' Facebook liked pages. The system further cross-referenced the Facebook data with Last.fm's API in order to discern musical tastes.
- Added i18n to the product (both static and dynamic elements) using Microsoft Azure's Cognitive Services for automatic cached content translation.
- Implemented a customized itinerary viewer with Google Maps. Implemented custom map overlays and integrated with the Directions API with client-side caching.
- Implemented a complete redesign/rebranding of the website.
Invited Assistant Professor2016 - 2016Universidade Europeia (Laureate International Universities)
Technologies: MySQL, Assembly
- Taught and was responsible for the curricular unit Databases given to first-year students majoring in Game and Apps Development.
- Taught and was responsible for the curricular unit Computer Architecture given to first-year students majoring in Computer Science and Computer Science with Management.
- Placed in the top 10% of faculty with regard to student satisfaction.
Postdoctoral Researcher2016 - 2016Instituto de Telecomunicações
Technologies: Java, V-REP, Evolutionary Computation, Artificial Neural Networks
- Developed a novel technique to automatically synthesize neural-based control for robots with complex morphologies.
- Developed a client-server application to interact with the V-REP robotics simulator via its API, enabling the parallel and distributed evaluation of robotic controllers.
- Published 3 peer-reviewed publications.
- Winner of the Fraunhofer Portugal Challenge 2016.
Doctoral Researcher2012 - 2016University Institute of Lisbon (ISCTE-IUL)
Technologies: Java, Evolutionary Computation, Artificial Neural Networks, Distributed Computing Systems, Machine Learning, Robotics, Electronics
- Developed a novel artificial intelligence approach for automatic synthesis of robotic control.
- Designed and developed the hardware, software, and artificial intelligence for a real-world swarm robotics system.
- Published 24 peer-reviewed publications.
- Maintained and improved a custom distributed computing system.
- Applied digital fabrication techniques for fast, iterative hardware design.
- Won a Paper of Excellence award (IEEE ICDL-EPIROB, 2012), was nominated for a Best Paper award (PPSN, 2016), and won a Best Robot Video award (AAAI Video Competition, 2016).
- PhD thesis won the "Fraunhofer Challenge" (Fraunhofer Portugal AICOS) and the "Best PhD Thesis in Robotics" award (Portuguese Robotics Society).
Teaching Assistant2013 - 2015University Institute of Lisbon (ISCTE-IUL)
Technologies: Java, OOP
- Taught the curricular unit Introduction to Programming to first-year students majoring in Computer Science, Computer Science with Management, and Computer Science with Telecommunications.
- Taught the curricular unit Object-Oriented Programming to first-year students majoring in Computer Science, Computer Science with Management, and Computer Science with Telecommunications.
- Organized multiple events at the university in collaboration with the local IEEE student branch.
Web Developer2009 - 2012PTWS Lda
- Developed custom full-stack eCommerce solutions based on open-source platforms.
- Created 3rd party payment gateways for multiple eCommerce platforms.
- Managed a small team of developers.
- Installed, configured, and developed modules for web software (Joomla, PrestaShop, WHMCS, and more).
- JBotEvolver (Development)https://github.com/BioMachinesLab/jbotevolver
JBotEvolver is a Java-based open-source and versatile simulation platform for education and research-driven experiments in evolutionary robotics (ER). JBotEvolver has been used in previous ER studies of our research group: in offline evolution to online evolution and learning, single to multi-robot systems, and in a number of undergraduate and graduate courses at the University Institute of Lisbon (ISCTE-IUL).
- Conilon (Development)https://github.com/BioMachinesLab/conillon
Conillon is a lightweight distributed computing platform. It allows Java-based tasks to be computed on a grid of computers with minimal effort and overhead. The necessary Java classes are loaded by worker nodes as needed.
- A Sea of Robots (Other amazing things)https://www.youtube.com/watch?v=JBrkszUnms8
Winner of the "Best Robot Video" at the video competition held yearly by the AAAI international conference.
- Color Orbs (Development)https://www.microsoft.com/en-us/store/p/color-orbs/9wzdncrdrhpf
A game for Windows Phone that tests the player's memory and reaction speed. The player has to click colored spheres in the correct order and can also use power-ups to make the task easier. Color Orbs received the first prize in the Windows Phone App Code Camp competition.
- Jhip8 (Development)https://github.com/miguelduarte42/Jhip8
Jhip8 is a Chip-8 interpreter written in Java and was intended as a first experiment in the world of emulation. The project implements all the opcodes and features with the exception of sound.
- Chip8JS (Development)https://github.com/miguelduarte42/Chip8JS
- Moppy + Floppy Guitar (Other amazing things)http://miguelduarte.pt/2012/06/10/how-to-play-music-with-floppy-disk-drives/
Adapted the open-source project Moppy to be able to play sound in multiple floppy drives using a MIDI keyboard as input. A later version allowed music to be played on the drives using a real guitar (see URL for videos).
ToolsPrestaShop, Eclipse IDE, RedBean ORM, Git, Adobe Photoshop, Adobe Illustrator, Atom
ParadigmsObject-oriented Programming (OOP), REST
PlatformsMacOS, Linux, Windows
StorageJSON, MySQL, MongoDB
OtherEvolutionary Algorithms, Neural Networks, Robotics, Artificial Intelligence (AI), Ajax, ROS
Libraries/APIsGoogle Maps, Node.js, jQuery, React, OpenCV, Ggplot2
- Ph.D. in Computer Science2012 - 2016University Institute of Lisbon (ISCTE-IUL) - Lisbon, Portugal
- Master's degree in Computer Science2010 - 2012University Institute of Lisbon (ISCTE-IUL) - Lisbon, Portugal
- Bachelor's degree in Computer Science2007 - 2010University Institute of Lisbon (ISCTE-IUL) - Lisbon, Portugal