Versão interativa:
cv.daniel.sousa.me

Daniel Sousa

daniel@sousa.me · +351 96 906 91 34 · Portuguese · Born in 1991

I have a wide range of skills and interests. My formal education is in Mathematics, but I started writing code while in middle school and never stopped. I studied psychology for a time, I have worked as a translator and I did some systems administration. I am a passionate advocate for Software Freedom.


Experience

Research Scholarship

Dec 2020 - Mar 2022
Azorean Biodiversity Group
Projects: #fieldguide-app

I was integrated into the project Field Guide, which is and environmental education research project funded by FCT and hosted by ITI-LARSyS and the Azorean Biodiversity Group.

In this context I continued the work on the Field Guide app and developed a small device with an integrated circuit to be used in a study.

Assistant Researcher

Oct 2018 - Jan 2020
Formal Vindications, Barcelona (Spain)

We worked on using Coq to mathematically formalise the European Regulation 165/2014, which sets limits on the driving time of trucks.

This position required a wide range of skills, including interpreting legislation, understanding and building different mathematical models, and writing code in both OCaml and Coq. I also worked on a cross-platform application to visualize the data and interact with the main code.

Systems administration scholarship

Jul 2016 - Jul 2018
Departamento de Matemática, Instituto Superior Técnico, Universidade de Lisboa, Lisboa (Portugal)
Projects: #labmat

I was responsible for the maintenance of the computers used by the students of the Mathematics Department of Instituto Superior Técnico (Universidade de Lisboa).

My main tasks were installing and updating the software and systems on both the clients and servers.
I had to ensure that everything was running smoothly at all times which meant predicting and fixing problems wherever they arose.

From time to time I was asked to help in other tasks where my skills could be handy. These included configuring and fixing bugs on a program to manage the department's exams and also replacing and configuring switches.

Mathematics and Descriptive Geometry Tutoring

May 2017 - Dec 2017
Lisboa (Portugal)

I worked with 18 students, some still in high school and others at university level, with a big variety of goals and previous knowledge.

This required not only scientific knowledge, but also interpersonal skills (especially to motivate disillusioned students) and the flexibility to find the best strategies and techniques to teach each individual student.

Cryptocurrency trading

Jul 2017 - Dec 2017
Everywhere
Projects: #cryptotrading

I participated in several ICOs (Initial Coin Offerings), which required both a great deal of technical study of the fundamentals of the project and sentiment analysis.

Later on I also wrote a few scripts for automated cross-exchange trading and market making.

English-Portuguese Freelance Translator

Feb 2015 - Feb 2017
Gengo (online)

I translated a total of 243,577 words of English text into Portuguese (the equivalent of about 3 average sized books, or the biggest Harry Potter book). This included text of the most varied nature, ranging from video games and mobile applications, to descriptions for jewellery auctions.

Lead Software Developer and Analyst

Jul 2011 - Aug 2013
Casa Viva Obras, Lisboa (Portugal)
Projects: #igo #cvtablet

I was responsible for the development and planning of all the company's software, which includes its website, ERP and tablet application.

My responsibilities also included the maintenance of the server (for web and emails) and all the desktop workstations.

I accompanied the growth of the company from a micro-enterprise based on a flat to a small business expanding abroad.

Freelance Software Developer

eyeOS, Barcelona (Spain)
Feb 2010 - Mar 2010

The company behind the (now defunct) eyeOS Web Operating System hired me to help them make their OS more suited to be used in schools of Barcelona and Catalunya.

My main contribution to the project was an improved user management tool. This included features like importing and exporting users from a text file and bulk editing.

Freelance Software Developer

eyeOS, Barcelona (Spain)
Sep 2009 - Oct 2009

Freelance software development job on a project for a school, adapting features of the eyeOS Web Operating System to their needs.

Among other things, I worked on better user group management, improving the internal chat, and integrating an image editor.


Highlighted Projects

Field Guide — Mobile app for Place-Based Learning #fieldguid-app

Jun 2020 - Mar 2022

This app was part of a project in environmental education, in a partnership between ITI (Interactive Technologies Institute) and Universidade dos Açores, with funding from FCT (Fundação para a Ciência e a Tecnologia).

Using geo-location, the app provides students relevant educational and informational material while doing a field trip to a natural park. The students can also use the app to provide their own contributions in the form of questions to scientists, photographs and videos.

We also produced a Podcast around the Mistérios Negros trail. We gathered questions asked by students and sent them to specialists in the respective areas.

Formalisation of European Regulation 165/2014 #lawformalisation

Oct 2018 - Jan 2020
Employment: Formal Vindications

This was integrated in a project funded by the European Union and by the Generalitat de Catalunya, in a partnership with Formal Vindications S. L. and the Universitat de Barcelona.

The goal was to find a formal specification of a law (in this case, the European Regulation 165/2014) in Coq, write a program in OCaml to decide whether the driver was following said regulation, and most importantly, provide a verified formal proof in Coq that the program indeed followed the stipulations of the law

As of my departure from the project, the team had written 3 scientific papers, as well as a lot of technical papers and white papers. We also wrote thousands of lines of code trying to approach this innovative endeavour from multiple angles.

User interface for the #lawformalisation project #uilawformalisation

Dec 2018 - Mar 2019
Employment: Formal Vindications

As we were writing the code for the #lawformalisation, it became apparent that it was hard to showcase what it was doing and the results. In order to tackle that, I wrote a user interface to visualise the data and the flow of the programmmes.

This was written in such a way that it could run as a webapp and connect to the server to fetch the output of the code. But it could also be built using Electron or Cordova to obtain a standalone computer or mobile app that ran the main code locally.

Cryptocurrency trading bots #cryptotrading

Sep 2017 - Dec 2017

In 2017 I had a number of low liquidity cryptocurrencies as as investment. This required me to follow different exchanges to understand how I could better take the profits. While doing so I started noticing some reliable patterns of market inefficiency.

To take advantage of these inefficiencies, I wrote some scripts to monitor the different markets and then make and take orders across the exchanges. This not only netted me a very nice profit, but also helped the system by making the price across exchanges more consistent and by adding volume.

Maintenance of computer labs in the Department of mathematics #labmat

Jul 2016 - Jul 2018

The main task of the scholarship was to maintain two computer labs with around 20 workstations each. We had a setup that allowed us to have a single installation for all computers that was exactly the same everywhere. All users had access to their data using their university credentials on any computer and could use them as if it were a local installation with synced data.

The terminals booted through PXE. A barebones OS mounted an overlay partition with a read-only NFS containing a Debian system fetched from a central server and a read-write tmpfs on RAM to store all session data. For persistent storage, Técnico's AFS was mounted on /home/userid, allowing the students to seamlessly access their data everywhere.

Casa Viva's ERP #igo

Jul 2011 - Aug 2013
Employment: Casa Viva

This system was central to all the processes inside the company. Every step of the services provided by the company was made using the software, which made the work a lot more streamlined.

The job of the software started on receiving the quote request from the client. After a visit to the client, the software assisted the work manager building a technical report. Afterwards it sent a request for a quote to the partners, who filled it directly there and it built a report with a visualisation and all the information of the different quotes.

The function of the software didn't end there. It also assisted on the follow up with the client, even after the quote was selected. It also helped managing human resources, invoicing and the public facing website.

Casa Viva tablet app #cvtablet

Oct 2012 - Feb 2013
Employment: Casa Viva

To try to streamline even more the creation of the technical report, we built a tablet app that the work manager could take to the visit with the client. The idea was that they could input directly the most common works and take notes there for everything else.

Unfortunately after many iterations it became clear that we couldn't make the app simple enough. It was always a bit too intrusive to allow for a normal interaction with the client.

Regardless of that, it was a very interesting project because it allowed me understand the job of everyone else in the company in detail and at times required me to think outside the box to search for new solutions.

SportScience registration for running events #runningregistrations

Apr 2008 - Aug 2013

In 2008 the process of registering for running events was really clunky. Usually runners had to fill a form by hand, which was mailed to the organisation. They paid through a wire transfer, having to also mail the slip.

Even worse was the amount of work left for the organization of the event. They were receiving many assorted forms, which had to be processed one by one in order to compile all the information. It got even worse when they had to reconcile all the financial information.

I built a platform that allowed the participants to register and pay online. The participants could even reuse the data inserted for previous events. This was especially helpful for teams which had to register dozens of runners.

The payment was directly assigned to the registration and the organisations had access to a backoffice with all the information well structured and updated in real time.

On top of all this, we also published the final results. Traditionally it would take a long time for the participants to be able to see the full results, but we published them minutes after the event finished.

This also allowed us to have a central searchable database with the results of hundreds of events. We even scanned results from old events, providing the runners their history.


Education

Master in Mathematics and Applications

Instituto Superior Técnico, Universidade de Lisboa
2018 - Present

Pure Mathematics track

1st semester of the degree in Psychology

Faculdade de Psicologia, Universidade de Lisboa
2017 - 2018

Bachelor in Applied Mathematics and Computation

Instituto Superior Técnico, Universidade de Lisboa
2009 - 2016

Programming languages and frameworks

This is a very informal self-assessment of proficiency based on my experience with it, how long it has been since I last used it, and also how much more there is too know.

Web

HTML
CSS
Javascript
Angular
Bootstrap
PHP
MySQL
Ruby on Rails
Electron
Ionic
WordPress

General purpose

Python
OCaml
Ruby
C

Mathematics

Mathematica
Coq
Pandas

Tools

Git
SVN
Shell scripting
Debian administration
Colemak
Vim
Emacs

Languages

This is my self-assessment of proficiency following the Common European Framework of Reference for Languages (CEFR).

Portuguese

Native

English

Listening
C1
Reading
C2
Spoken Interaction
B2
Spoken Production
C1
Writing
C1

Spanish

Listening
B2
Reading
B2
Spoken Interaction
B1
Spoken Production
B1
Writing
B1

Japanese

Listening
A1
Reading
A1
Spoken Interaction
Spoken Production
Writing
A1

Training

International Conference on Commuities & Technologies
20 - 25 Jun 2021
Days in Logic, Faculdade de Ciências, Universidade de Lisboa
30 Jan - 1 Feb 2020
Wormshop: Workshop on Proof Theory, Modal Logic and Reflection Principles
5 - 8 Nov 2019
Summer School and Workshop on Proof Theory
9 - 13 Sep 2019
School on Univalent Mathematics
1 - 5 Apr 2019
Fifth International Workshop on Coq for Programming Languages
19 Jan 2019
8th ACM SIGPLAN International Conference on Certified Programs and Proofs
14 - 15 Jan 2019
Summer School and Workshop on Proof Theory
2 - 7 Sep 2018
Advances in Modal Logic
27 - 31 Aug 2018
Workshop "Mathematics and Art" by the Portuguese Mathematics Society
17 - 18 Jul 2017
The Science of Predictions, conference organized by FFMS
16 Nov 2016
Extra weekly course on Set Theory, Instituto Superior Técnico
Sep - Feb 2015
Formação de Animadores, Serviço da juventude, Patriarcado de Lisboa (9 full weekends)
2011 - 2014
Mathematics Winter School, Instituto Superior Técnico
3 - 5 Feb 2014
Intensive 50 hour Spanish language course
Aug 2013
Mathematics Summer School, Instituto Superior Técnico
23 Jul 2013
Gulbenkian Summer School on Representation Theory
15 - 19 Jul 2013
Gulbenkian Summer School on Combinatorics
23 - 27 Jul 2012
Mathematics Winter School, Instituto Superior Técnico
6 - 8 Feb 2012
Workshop "Open Source Strategies and Technologies", ISCTE
12 Jul 2011
SAP Conference Day Mobilidade Empresarial
6 Jul 2011
Mathematics Winter School, Instituto Superior Técnico
9 - 12 Feb 2011
Cloud Computing Forum
25 Nov 2010
Mathematics Winter School, Instituto Superior Técnico
1 - 9 Feb 2010

Other Activities

I have been involved in different youth groups in my parish, taking various roles. Between 2007 and 2018, I taught the catechism to children with ages between 9 and 15. During retreats and similar activities I was part of the team who was entrusted with the participants's children, with ages between 1 and 12. We not only looked after them, but also adapted the contents provided to their parents for them.

I often organize and help in small events on my parish, most of them for fund raising. Among those events are bake sales, youth song contests and prayers.

On occasion I have helped organize larger running events, with about a thousand participants, doing various tasks such as sorting the bibs, handing them to the runners, setting up the hardware and software of the transponder timing system, leading a team of volunteers and general resource and people management.

Whenever possible I like to attend conferences about Mathematics and other topics to broaden my knowledge. I also like to take part in discussion-oriented meetups.

I have been exclusively using GNU/Linux since 2007 (mostly Debian and Arch) and I consider myself semi-competent using its resources. I also run a Debian server which runs my personal email and a handful of scripts.

In 2016 I organized a talk by Richard Stallman, which about 200 people attended. I'm previous a member of the executive board of ANSOL - Associação Nacional para o Software Livre. It is a national association that promotes Free Software, in the image of FSF and FSFE.

I had piano lessons for 10 years and I also studied guitar more informally. I have played guitar and sang in church choirs since 2008.

On my free time I like to go to board game gatherings and I also organize board game afternoons and evenings at my home. I've also contributed to open-source implementation of board games and organised tournaments.

I am certified in providing first aid (Emergency First Response) as part of my scuba diving training (PADI's Master Scuba Diver).