Álvaro António Silva Ferreira Vieira Santos
Location:
Lisbon Metropolitan Area, Portugal
Email:
alvaro.work.{If you're not a web crawler/bot, replace this with santos}@gmail.com
Quick intro:
- Currently a full-stack developer, but my interests are broad.
- My work style is autonomous, methodical, and thorough.
- I think most programming languages are fungible and that the few exceptions make for interesting work.
Work experience:
Role:
Software Developer
Where:
Epos Now (Remote)
Period:
February 2023 – Present
Description:
Continuation of the previous role. Noteworthy projects I've been a part of include our Kitchen Display System rework (in which we overhauled the entire build process & deleted/reworked more than a third of the project's code), our Credit Card Surcharging offering, porting our third-party app integration from ASPX to React, and a port of our Till software to Flutter.
Role:
Junior Software Developer
Where:
Epos Now (Remote)
Period:
November 2021 – January 2023
Description:
Full-stack software development with an emphasis on front-end. Most of the front-end work was done with TypeScript and React, and most of the back-end work was done with C# and SQL. Other technologies were used less often on a project-by-project basis.
Noteworthy projects I've been a part of include the rework of our Kitchen Display System and designing/implementing the company's Spanish Fiscalisation offering. Interesting tasks include debugging sessions deep enough to reach Chromium's source code on more than one occasion & performing digital archaeology on legacy systems.
Role:
Teaching Assistant
Where:
Informatics Department at FCT-UNL (On-site and remote)
Period:
(Intermittent) September 2017 – July 2021
Description:
Term-long positions for several classes (Computer Graphics, Algorithms & Data Structures, Object-Oriented Programming). My responsibilities were to run lab classes, hold office hours, grade projects & tests, and oversee tests & exams.
Education:
Program:
PhD in Computer Science
Where:
FCT-UNL (Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa)
Period:
September 2020 – August 2021 (Did not complete)
Classification:
N/A
Program:
Integrated Master's in Computer Science and Engineering
Where:
FCT-UNL (Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa)
Period:
September 2014 – July 2020
Classification:
18/20
Skills:
Technological stuff I:
- Use pretty often at work: git, TypeScript (& JavaScript, React, Redux, Jest + React Testing Library, Karma + Mocha + Chai, Webpack, Node, HTML, CSS), C# (& ASP.NET), SQL (mostly SQL Server & SQLite, occasionally PostgreSQL).
- Use every now and again at work: Dart, Flutter, Python, Shell Scripting, Go, nginx, Miscellaneous DevOps Tools (GitLab pipelines, Podman, Kubernetes, AWS, Terraform).
- Used pretty often during my course: Java (default language for several classes), WebGL (in a computer graphics class for which I was a teacher's assistant thrice).
- Was exposed to in varying amounts during my course: C, OCaml, Scala & Akka, C++ & CUDA, Prolog, Kafka, Verifast, Dafny.
- Would like to use or learn, or that I just think looks neat: Rust, Erlang/Elixir, Pony, Haskell, Idris, SMT solvers in general, TLA+. Lisps in general deserve an honourable mention although I go back and forth on my opinion of them.
Linguistic:
- My native language is Portuguese.
- I was also raised speaking English in a bilingual household — I would describe my proficiency level as "native with an accent and the occasional idiosyncrasy".
Miscellaneous:
- My work style is autonomous, thorough, and methodical. I make a conscious effort to solve things by myself when possible, and I always approach tasks with the goal of not only "resolving" them but of also gaining a deep understanding of the problem domain. The prototypical example of this is the time I tracked down a slowdown in some TypeScript code to Chromium changing a build configuration's default value and fixed it for a 100x speed-up.
- I fully embrace asynchronous & open communication. Text-based asynchronous communication is easy to share and persist, allowing people to join the conversation at their own leisure & giving each participant time to structure out their thoughts. I often volunteer to create written summaries of voice-based meetings to ensure everyone has a chance to join the conversation.
- I naturally gravitate towards mentoring & leading roles. Partly because of the depth of the knowledge I accumulate through my thorough investigations, partly because of my previous experience in teaching roles, and partly because of my personality, I regularly end up in "force-multiplier" roles in spite of having few years of industry experience.
Events:
Event:
OPLSS (Oregon Programming Languages Summer School)
Role:
Participating PhD student
When:
June 2021
Where:
Online due to the COVID-19 pandemic
Description:
Summer school for various advanced topics in Programming Languages.
Event:
POPL (Principles of Programming Languages)
Role:
Student volunteer
When:
January 2019
Where:
Cascais, Lisbon
Description:
Research conference in the field of Programming Languages.
Event:
Outreach events for the Informatics Department at FCT-UNL (EXPO FCT, Ciência Viva, TOPAS LX, NOVA Steam Academy, ClubeMath, Noite Europeia dos Investigadores)
Role:
Help organise the events and/or monitor & assist the participants
When:
2017 – 2019
Where:
Mostly at FCT-UNL
Description:
Open days at the department, programming contests, summer courses & one-off programming sessions for primary and secondary school students.