Joaquim Silva

Phd. in CS, Systems Engineer at Cloudflare and Guest Lecturer at University of Porto

contact joaquimsilva.me

Joaquim Silva

Phd. in CS, Guest Lecturer at University of Porto and Researcher at CRACS/INESC

contact joaquimsilva.me
Download Vitae

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

February 2022 -
Systems Engineer at Cloduflare

Working on the Cloudflare Workers team.

Education

September 2015 - December 2021
Ph.D. in Computer Science at the MAP Doctoral Program in Computer Science

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.

September 2013 - July 2015
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.

September 2008 - September 2013
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

February 2020 - February 2022
SafeCities

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.

January 2015 - September 2019
Hyrax

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.

February 2014 - January 2015
Authenticus

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

February 2020 -
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

October 2015 - September 2019
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.

November 2014 - September 2015 -
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.

April 2014 - October 2014 -
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

February 2021 -
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).

February 2019 - July 2019 (2nd Semester)
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).

February 2017 - July 2017 (2nd Semester)
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

July 2014 - August 2014
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

Jay: Adaptive Computation Offloading for Hybrid Cloud Environments

2020 - FMEC'20
Ramble: Opportunistic Crowdsourcing of User-Generated Data using Mobile Edge Clouds

2018 - INFORUM'18 (extended abstract/poster)
Simulation of mobile edge-cloud applications using Mininet-WiFi

2018 - DAIS'18
Video Dissemination in Untethered Edge-Clouds: a Case Study

2017 - ICFEC'17
Using edge-clouds to reduce load on traditional wifi infrastructures and improve quality of experience

P3-Mobile: Parallel Computing for Mobile Edge-Clouds

2016 - DAIS'16
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

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

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.