Carlos Quintana Blázquiz

Experience

Proton Technologies AG

Geneva (Remote)

Software Engineer

Jul 2021 - Present

  • Design and development of the backend and clients for Pass.
  • Strong focus on privacy, cryptographic correctness and zero-trust design (client does not trust the server, and server does not trust the client).
  • Development of a "chaos client" for the Pass Backend (client that runs multiple operations that make no sense, trying to find bugs in the logic, and in case of finding one automatically generating a test case for reproducing it).
  • Development of internal tools that fulfill needs of the developers.
  • Was part of the DevOps chapter, focused on ensuring best practices across teams and providing tools for developers.
  • Developed a PHP extension (in Rust) for speeding up a CPU-intensive operation.
  • Implementation and mantainance of a custom DNS resolver for internal test environments that was able to resolve queries from the outside (used also in automatic external certificate requests).
  • Helped the cryptography team on a project, developing the backend, improving its performance and solving ops problems.
  • Integration of SimpleLogin into Proton. Also contributed to both their backend code and their browser extension.
  • Contributed to the implementation of the Pass cryptography model on the clients (Web, iOS and Android).
  • Active member of the development for the Android Pass application. Source code.
  • Contributed to making the Android autofill feature of the Proton Pass app unit-testable and speeding up the testing process from 4h to 200ms (72000 times faster) across a number of sites.
  • Lead the development of a Rust library for sharing code across the web, iOS and Android Pass clients. Source code.
  • Speaker on many internal technical talks, such as "Cryptographical model of Proton Pass", "How Pass uses Rust", "Android Autofill on Proton Pass" and "Screenshot testing on an Android app".
  • Teacher of an internal formation about Rust given to the Pass team.
  • Designed and developed the Passkey cryptography flows on a Rust library so they can be reused across all clients. Source code.
  • Added support for Passkeys on the Android app. Source code.

Verbio Technologies

Barcelona

Engineering Technical Lead

Jul 2020 - Jun 2021

  • Some of the charge responsibilities included: software architecture of the team, intellectual property, licensing, continuous integration, versioning, tools and deployments.
  • My responsibilities also included interviewing new candidates for multiple positions, from frontend positions to backend engineers, and sometimes for C-level ones.
  • Other related tasks included detecting project requirements, designing solutions and discuss them with the team, implementing project requirements (mostly in Rust), designing architectures (both systems and software) for multiple teams of the company, and ensuring the code quality standards.
  • I also was in charge of mentoring team members on software engineering issues, assisting in planning software engineering tasks and declaring deprecated or obsolete software features and versions.
  • I was part of a group of people inside the company which tried to unify practices, resources and procedures in order for our software to be easier to integrate between teams, and also move the company forward taking into account the interests and needs of the different teams.
  • Gave multiple internal formations, specially focused on the Rust programming language, with a strong focus on concurrency, parallelism and advanced features of the language.
  • I took part in the design and implementation process of some of the core features of the company's software, such as licensing, securing the Intellectual Property and making sure it could scale horizontally even in on-premise situations.

Software Developer and DevOps Engineer

Jun 2018 - Jun 2020

  • Helped the company to integrate DevOps, CI and CD in their day-to-day workflow.
  • Lead the migration of a whole team to containerization and deployment-ready code.
  • Lead the migration from an interpreted language (Python) to compiled ones that were suitable for on-premise deployments (Rust and GoLang).
  • Developed a solution in GoLang that integrated with all the other voice-based products of the company, with the hard constraint that it had to work in real time.
  • Developed internal tools for the company.

V2M Software

Barcelona

Mobile and FullStack Developer

Nov 2015 - May 2018

  • Developed mobile solutions for clients (mostly Android) that interacted with different types of backends (REST APIs, Bluetooth communications for industrial hardware and real-time location databases). Also lead the development for the company's main product mobile application.
  • Worked in both the backend and the frontend of the company's main product (ASP.NET).

Education

Computer Engineering Degree

La Salle URL

2013 - 2018

Finished my computer engineering studies with honors in Programming Projects, Web Projects, Operating Systems, Security, Distributed Systems, Data mining, and also my final project.

Odontology (Unfinished)

Universitat de Barcelona

2010 - 2013

I started my studies in odontology because a personal interest derived from a family business. Didn't finish them, as I realized I really wanted to study engineering.

Personal Projects

Shopping List

Shopping list server and Android application for use in my family. It has an HTTP server and offers a secure way of accessing the list and editing it (even via a smart speaker). It also has an Android application that emulates the UI and behaviour of the Google Keep application.

Git Switch User

Rust command line application for making it easy to manage different git identities on the same machine.

MQTT2Influx

Simple Rust server that listens for MQTT events and stores them into an InfluxDB database. Specifically adapted to Zigbee2Mqtt events. It also exposes an HTTP API for displaying the latest values.

Dotfilers

A dotfile manager written in pure Rust. Mostly created for personal use.

QMKontext

A two-part system that allows your computer to send the current context to a keyboard using QMK so it can react to it.

Verbio Speech Center Client

Rust and Go clients that connect to the Verbio Speech Center. They allow to send audio for speech recognision using their GRPC API. They are used as an example client in their official documentation.
photo of me

Skills

    • Programming
    • Rust
    • Golang
    • Python
    • Java
    • Kotlin
    • Android
    • Javascript
    • PHP
    • SQL
      Developer Tools
    • Git
    • CI/CD
    • RabbitMQ
    • HashiCorp Consul
    • HashiCorp Nomad

Languages

  • Spanish
    Native
  • Catalan
    Native
  • English
    C1
  • French
    Basic

Hard Skills

  • Appreciate code quality
  • Can work autonomously from vague requirements
  • Love sharing knowledge
  • Value good documentation
  • Deep knowledge of common coding good practices (TDD, SOLID...)

Relevant

  • 50th in Tuenti Challenge (2017)
  • C1b3rwall 2020 (Security formation by Spanish National Police and Europol)

Interests

  • DevOps
  • Process automation
  • Linux
  • Security
  • Mobile development
  • IoT