Oscar Forner
$(whoami) Projects Resume

Resume

This is an HTML version. In here you can find an interactive application version and in here you can download a PDF version.

Experience
2021 - Present: Backend Engineer at Sketch
2020 - 2021: Lead Software Engineer at Paack

During my time in Paack I have worked in the Warehouse Management System, a new platform to allow parcels to be scanned and assigned to routes in a timely fashion. Moreover, I lead the revamp of the Business Rules Management System, a platform to allow Product People to change the rules applied to deliveries without having to change code. During this reworked the whole architecture of the system changed, and a new UI was developed to fulfill the new requirements. I also had to design and implement the migration process for the system to avoid downtime.

In addition, I have also worked on the development of the New Retailer API that handles the traffic from all the new retailers and it has become the new way to integrate against Paack.

As part of my role as Lead Software Engineer I mentored several people in my team and I was heavily involved in the hiring process of the company.

2018 - 2020: Senior Software Engineer at GlobalSign

High Performance Platform: Serves thousands of request to generate SSL certificates per second. I took care of the migration of backend storage from MongoDB to PostgreSQL.

Kubernetes prototype: I implemented a prototype of the system used in production to test the feasibility of a future migration.

Others: I Mentored multiple new-hires and had a highly involved role in the hiring process. As a side project I developed an static analysis tool to enforce the code style used in the company.

2016 - 2018: Software Engineer at VCA Technology

Network library: Allows the user to interact with Boost ASIO through the std::stream interface.

Tools: Improve the toolchain used internally to allow the usage of clang-tidy for the linting of our code. Another tool allows to switch between several versions of the toolchain without having to change the environment.

Backend development: Several activities regarding the extension and implementation of new features in the backend of the product such as Authentication and GStreamer sinks.

2015 - 2016: Software Developer at Programming Research

Static analysis of code: Checks if the code has some patterns that have an undefined behaviour, unspecified in the Standard, and/or implementation-defined.

Dataflow analysis of code: Checks the complexity of methods, pointer problems, memory handling, etc.

Took over two projects to refactor, maintain and add new features.

2013 - 2015: Software Engineer at European Bioinformatics Institute

RESTful service: Allows users to query for information about complexes in the database.

Cluster algorithm: Developed a new algorithm to cluster biological information from proteins.

2013 - Present: Open Source

YAUS: A URL Shortener writen in Go and deployed in Heroku.

Prefix Tree Comparison: Compare performance for different Trie, Ternary Search Tree and Radix Tree.

ARM C Compiler (ACC): I am creating a self-hosting compiler for C in the ARM architecture.

Interactive CV: Application built in Rust and with Docker to show my resume in an interactive way.

Programming Languages
  • 90% 90%
  • 85% 85%
  • 85% 85%
  • 80% 80%
  • 75% 75%
  • 50% 50%
Operating Systems
  • 95% 95%
  • 85% 85%
  • 70% 70%
  • 35% 35%
Technical Skills
Courses
Agile
  • - Agile for developers
Algorithms
  • - Algorithms, Part II
  • - Algorithms, Part I
Cryptography
  • - Cryptography: The Big Picture
  • - SSCP: Cryptography
  • - Cryptography and PKI afor CompTIA Security+
Go
  • - Building Distributed Applications with Go
  • - Scaling Go Applications Horizontally
  • - Concurrent Programming with Go
  • - Creating Well-tested Applications in Go
  • - The Go CLI Playbook
  • - Go Fundamentals
  • - Go: Getting Started
Kubernetes
  • - Kubernetes Installation and Configuration Fundamentals
  • - Docker and Kubernetes: The Big Picture
  • - Getting Started with Kubernetes
Linux Kernel
  • - LFD331: Developing Linux Device Drivers
  • - LFD320: Linux Kernel Internals and Debugging
Python
  • - Advanced Python
  • - Python - Beyond the Basics
  • - Python Fundamentals
Education
2010 - 2013: Bachelor of Engineering in Computer Science; Universitat Jaume I (Spain)
  • Advanced Data Structures
  • Advanced Operating Systems
  • Compilers and Interpreters
  • Distributed Systems
2006 - 2010: Associate Degree in Computer Science; Universitat Jaume I (Spain)
  • Concurrent Programming
  • Real Time Operating Systems
  • Embedded Systems
Languages
  • Spanish: Native
  • English: Fluent