Joaquim Silva
Phd. in CS, Systems Engineer at Cloudflare and Guest Lecturer at University of Porto
Joaquim Silva
Phd. in CS, Guest Lecturer at University of Porto and Researcher at CRACS/INESC
Hello and welcome to my page. My name is Joaquim Silva and I am the holder of a Ph.D. in CS, systems engineer at Cloudflare, and guest lecturer at Faculdade de Ciências da Universidade do Porto. My Ph.D. research focused on Edge-Computing, where I developed a framework to allow computation offloading using hybrid clouds with configurable task executors, offloading strategies and cloud architectures. My thesis title is Adaptive Computation Offloading in Mobile Edge Clouds. I've researched Edge-Clouds and Edge-Computing for over six years in multiple projects. I am a travel nerd, dog lover, runner, and IoT geek. I like to automate everything so that I can to make my life easier.
Work
Education
I hold Ph.D. obtained in December 2021, at the MAP Doctoral Program in Computer Science. The MAP Doctoral Program is a joint Ph.D. degree by the Universities of Minho, Aveiro, and Porto. My Ph.D. research has been on Edge-Computing, with the theme Adaptive offloading of computation in mobile edge clouds. During my Ph.D. I've published several research papers related to my research topic and developed a framework for edge-computing called Jay that runs on a plethora of devices and provides the means for developers and researchers to develop and test with edge-computing efficiently.
Msc. in Computer Science with a Major in Distributed Systems - Faculty of Sciences University of Porto
In July 2015, I completed my MSc. in Computer Science at Faculdade de Ciências da Universidade do Porto, with a major in Parallel and Distributed Systems. Final grade: 18 out of 20 (a B). Classification in masters dissertation: 19 out of 20.
Bsc. in Computer Science - Faculty of Sciences University of Porto
I completed in September 2013 the BSc. in Computer Science at Faculdade de Ciências da Universidade do Porto, with a final grade of 14 out of 20 (an A).
Projects
The "Safe Cities" project is a joint venture between Bosch and the University of Porto that aims to anticipate and answer the challenges of modern urban societies, more and more dependant on the technological evolution in the fields of sensing, data transmission, data storage, and remote intelligent processing, to fulfill its security, privacy, comfort, and efficiency needs.
The Hyrax project proposes a novel vision of a hyperlocal edge cloud, i.e., a computational/storage cloud comprised solely of a collection of nearby wireless edge devices, to pool these devices’ data and processing power to support a new class of proximity-aware applications that benefit the owners of these devices. The premise behind these edge clouds is that all of the constituent nodes are edge (and not server-caliber) computers and that any computation is done completely within the edge cloud, i.e., there is no offloading/tethering of the computation/data to a non-edge, back-end, traditional-cloud infrastructure.
Authenticus is a project developed at the University of Porto and CRACS/INESC TEC, co-funded by FCT, that aims to build a national repository of publications metadata authored by researchers of Portuguese institutions. The system automatically uploads publications from multiple indexing databases, automatically associates publication authors with known researchers and institutions, provides specialised interfaces to researchers and institutions to confirm or dismiss proposed associations, allows interoperability with other CRIS systems, provides synchronisation with ORCID, both for import and export, among many other functionalities.
Grants & Fellowships
SafeCities Grant
During my Safe Cities grant, I've been working on the Jay framework, developing it, and using it to study different edge-computing offloading strategies and configurations. To do this, I designed a demo application that has real-life use cases. The demo application relies on machine-learning models, using TensorFlow, to detect multiple objects in images. This demo application runs on Android devices and x86 machines (such as Cloudlets and Cloud servers) using the Jay framework.
Using this demo, I have done two different studies. The first focused on optimizing task placement to minimize task completion time. To do this, I've envisioned a scenario with three tiers: Mobile devices, a cloudlet server, and a cloud server (using Google Cloud Compute Instances). In this study, I've implemented multiple scheduling policies and used multiple image datasets (varying in size and image resolution), and showed that one could benefit from using all network tiers to distribute computations, minimizing multiple common bottlenecks (such as data transfers and limited computational resources).
On the second study, I shifted the goal, and instead of simply looking for the fastest task completion optimization, I introduced energy-aware scheduling policies to optimize task energy consumption while keeping a good quality of experience. This work showed that it is possible to obtain significant energy savings with minimal impact on the users quality of experience
FCT PhD Fellowship
I was awarded a merit scholarship from MAP-i/FCT. During this scholarship, I worked on the preliminary steps of my Ph.D., including one year of classes and thesis proposal preparation. After the first year, I developed a version of P3 (Parallel Peer to Peer) for Android devices using Wi-Fi and Wi-Fi Direct for device-to-device communication and the Mandelbrot set as a computation-intensive problem. I presented this work in the CrossCloud’17 workshop. After P3-Mobile, I have done some simulation work using ns-3 and Mininet-Wifi. I worked with some MSc students and contributed to their MSc thesis. In the later months of this scholarship, I started developing Jay, the framework that enabled me to do most of the most relevant work for my Ph.D., and also, in parallel, I have worked on developing automation mechanisms to perform experiments with multiple devices and configurations.
Hyrax Grant
I worked on the Hyrax (CMUPERI/FIA/0048/2013) project. During my grant, I studied different simulation tools and performed several simulations. Namely, I compared multiple WiFi technologies and distinct overlays for mobile ad-hoc networks. Furthermore, I contributed to the development of an Android app that implements mobile ad-hoc networks using Bluetooth, WiFi, WiFi Direct, and WiFi TDLS to form the network and distribute content between devices. In the context of this project, I spent one month at Carnegie Mellon University with Professor Priya Narasimhan, Co-PI of the Hyrax project.
Authenticus Grant
I worked on the Authenticus (AE2013-0040) project. During my grant, I worked on String-Matching algorithms to match scientific journal metadata, a tool to export and print publication lists using XSLT transformations, and implemented several new interfaces and functionalities to the platform.
Teaching
Guest Lecturer
I am currently a Guest Lecturer of the Databases [CC2005] course of the Bachelor’s Degree in Computer Science and Master’s Degree in Network and Information Systems Engineering. I am lecturing the Databases course to 2 classes (4 hours weekly).
Guest Lecturer - Databases
I’ve been a Guest Lecturer for the Databases [CC2005] course of the Bachelor’s Degree in Computer Science and Master’s Degree in Network and Information Systems Engineering. During this period, I taught the Databases course to 2 classes (4 hours weekly).
Teaching Assistant - Introduction to Computers
I’ve been a Lab Technician for the Introduction to Computers [CC1002] course of the Bachelor’s Degree in Computer Science. During this period, I helped the Professor during practical classes.
Internships
Summer Internship - UT-Austin
I was one of 4 students from UP selected for a Summer Internship at the University of Texas at Austin, within the UT Austin-Portugal initiative. At Austin, I worked with Professor Keshav Pingalli’s research group in the Galois Project.
Publications
Energy-Aware Adaptive Offloading of Soft Real-Time Jobs in Mobile Edge Clouds
Simulation of mobile edge-cloud applications using Mininet-WiFi
Using edge-clouds to reduce load on traditional wifi infrastructures and improve quality of experience
Benchmarking wireless protocols for feasibility in supporting crowdsourced mobile computing.
Simulation of algorithms for mobile ad-hoc networks
My MSc. thesis focused on studying, via simulation with ns-3, different network formation strategies for edge-clouds formed by mobile devices. With simulation, I was capable of scaling the number of devices and study the scalability of multiple network formations.
Software
Jay's a framework written in Kotlin (JVM compatible) to facilitate development, testing, and deployment of Edge-Computing applications. With Jay, developers and researchers can efficiently implement scheduling strategies and computational tasks to be distributed across different devices, from edge devices, cloudlets (or edge-servers) to clouds. Jay provides metrics that ease the task of task completion estimation and power consumptions.
Jay Workbench is a simple automation tool written in Python to configure and control Jay instances.
P3-Mobile
P3-Mobile is a proof-of-concept experimental application of edge computing. P3-Mobile aims to optimize computation speeds by using a network of mobile devices. The P3 distribution model works like a tree, where higher nodes divide work to their siblings to complete a task. The current P3-Mobile implementation calculates the Mandelbrot set using Wifi and Wifi-Direct for network formation and device discovery. A demo application is available.