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
2016 - Present: 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

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.

Programming Languages
  • 90% 90%
  • 80% 80%
  • 80% 80%
  • 75% 75%
  • 60% 60%
  • 50% 50%
Courses
  • April 2016 - LFD331: Developing Linux Device Drivers
  • March 2016 - LFD320: Linux Kernel Internals and Debugging
  • August 2015 - Agile for developers
  • November 2014 - Algorithms, Part II
  • September 2014 - Algorithms, Part I
Education
2010 - 2013: Bachelor of Engineering in Computer Science; Universitat Jaume I (Spain)

Advanced Data Structures, Compilers and Interpreters, Advanced Operating Systems, and Distributed Systems

2006 - 2010: Associate Degree in Computer Science; Universitat Jaume I (Spain)

Operating Systems, Real Time Operating Systems and Embedded Systems

Technical Skills
Agile

Scrum, Kanban, Code Review, Pair Programming and TDD

Build Systems

Make, CMake, Maven, Gradle, Waf, and Scons

Continuous Integration

Jenkins and Travis

Debugger

GDB, LLDB and Mozilla rr

Libraries

Boost, Protocol Buffers and LLVM

Methodologies

Design Patterns and Object Oriented Programming/Design

Static/Dynamic Analysis

Clang-sanitizer, PRQA Framework, Coverity, Perf and Valgrind

Tools

Cling, Clang-tidy, Clang-modernize, Clang-format, Ctags and Cscope

Unit Test

Google Test, Google Mock, Unity and FFF

Version Control System

Git, Subversion and Mercurial

languages
  • Spanish: Native
  • English: Fluent