Skills
Programming languages
Expertise level: 4.5 / 5
I have developed software with Python for PC (both for Linux and Windows) as modules and as applications with a graphical interface using the PyQt interface library for different purposes. I have also developed software that employs Python libraries for data scraping. The most frequent libraries I have used are Matplotlib, Qt, numpy, libxml, pyspice, tensorflow
Expertise level: 4 / 5
I have developed scripts using Bash and Shell to automate the deployment of services in GNU/Linux servers and to automate the data insertion in databases.
Expertise level: 4 / 5
I have developed software with Javascript, mainly for web applications, both in backend and frontend. I have also used it to interface with the Google API and interact with Google Sheets and Google Docs as standalone applications and as Appscripts. The frameworks I have used are React JS (frontend), Express JS (backend), and React Native (mobile).
Expertise level: 3.5 / 5
I have developed software with C, mainly for embedded systems (microcontrollers) and in a project for an ADC driver. In the case of C++, I have also used it with microcontrollers, especially with Arduino.
Expertise level: 3.5 / 5
I have developed software with C# to interact with services and applications in a Windows environment. In the main project where I applied it, I used the .NET Framework to automate tasks in MS Word documents. The application I have developed has two modes, both the console and a graphical interface via WinForms.
Expertise level: 3 / 5
I have used this software and its programming language essentially for mathematical calculations and for research tasks that were required using the provided toolbox. I have also developed a simple interface to design analog filters.
Expertise level: 2.5 / 5
I used this programming language to develop a software executed on the server side. It provides data to another modified software, also written in Go, to simulate the communication to a LoraWAN network server via the ChirpStack platform.
Projects:
Repositories:
Documentation languages
Expertise level: 4.5 / 5
This is the first documentation language I learned, and I use it preferably for scientific documents (my thesis and scientific articles). I also used to write reports and my personal CV. I also have the experience of writing templates with this language.
Expertise level: 4 / 5
It is the most common documentation language I use to write the documentation for my projects. I have used it combined with frameworks that autogenerate the documentation, such as DocFX or Jekyll, which is used on this web page.
Projects:
Repositories:
Expertise level: 3.5 / 5
I used it to document projects written in Python, as it is seamlessly integrated into it via the Sphynx generator. I have also employed it for documentation projects using Pandoc.
Expertise level: 3.5 / 5
I used it to document a service deployment project as an alternative to Markdown together with the generator software Antora.
Projects:
Cloud computing technologies
Expertise level: 4 / 5
I use docker and docker-compose to deploy the services on the server side, isolating the environment for each application. I combine it with bash scripts to automate the creation and deployment of the services.
Expertise level: 3.5 / 5
I have used this software to automate the deployment of infrastructure in cloud providers. I have employed it with Linode, Google Cloud, and AWS LightSail.
Expertise level: 3 / 5
I know how to set up a project and deploy computer resources in Google Cloud, as well as to enable APIs for Google Services Accounts.
Expertise level: 3 / 5
I know how to deploy resources both as EC2 as well as in the LightSail service.
Expertise level: 4 / 5
This is the cloud provider I employ for my personal projects, and I have a server there to test my deployments.
CI / CD tecnologies
Expertise level: 4.5 / 5
I have experience using this version control system. I use it almost for all my repositories. I also have experience with collaborative work using this software.
Expertise level: 3 / 5
Recently, it became my preferred version control service (I used to employ GitLab for my personal projects). I also learned the development workflow through issues, pull requests, and projects. I also use its GitHub Actions feature to automate the deployment of the projects I work on.
Expertise level: 3 / 5
I used to employ this software for my personal projects, and I have also used its features of continuous integration and deployment. Now, various of my projects are mirrored from this service to GitHub.
Expertise level: 2.5 / 5
I used this software in a project to implement a continuous deployment feature in a self-hosted application. I integrated it together with docker, docker-compose, and terraform.
Repositories:
Database management
Expertise level: 3 / 5
I know the main clauses to perform the basic operations to MariaDB / MySQL. I also have experience in maintaining this type of database.
Expertise level: 4 / 5
I have used this database for some projects, and I have combined it with shell scripts to deploy, add, update, and backup data from this type of database.
Simulation software
Expertise level: 4 / 5
I use this software to simulate electronic circuits and systems. I prefer this software as it is free and flexible to simulate different devices based on SPICE models.
Projects:
Expertise level: 3.5 / 5
I have used this software also to simulate circuits and specifically to simulate the SPICE model for ISFET device.
Projects:
Expertise level: 4 / 5
I use this software to simulate electronic circuits via their description with SPICE instructions. It also allows using it also as scripts with better integration with other software programs that simulate circuits programmatically.
Projects:
Simulation languages
Expertise level: 4 / 5
I have used SPICE simulation language to model and simulate ISFET devices to characterize them and extract their electric parameters.
Expertise level: 2.5 / 5
I have used VHDL-AMS to simulate electronic circuits. I used it especially to simulate an analog circuit and conditioning circuit for an ISFET.
PCB design software
Expertise level: 4.5 / 5
This is my preferred software to design PCBs, as it is open source and versatile to design any basic board. I have used it for most of the projects that required a circuit board.
Projects:
Expertise level: 3.5 / 5
I know how to use this software, and I have used it for the printed board required for my engineering thesis. However, I don't employ it too much due to its price.
Hardware description language
Expertise level: 4 / 5
I have developed projects where I applied my knowledge in VHDL to design the digital architecture for peripherals and a simple CPU.
Expertise level: 3 / 5
I explored this language in a project that aimed to simulate a microprocessor. I have the basic knowledge to model simple circuits.
Modeling and design software
Expertise level: 4 / 5
This is my preferred software for designing 3D components, and I have used it in all the projects that required a 3D printed object, commonly for PCB enclosures.
Expertise level: 4.5 / 5
This is my preferred software for designing 2D vector graphics, and I have employed it for all the designs I use both in my articles and my reports.
Expertise level: 2.5 / 5
I have basic knowledge of this software. I use it preferably to manipulate bitmap pictures, to fix its color balance, and to delete unused regions in the image.
Operating systems
Expertise level: 4 / 5
This is my preferred operating system that I use for programming and my daily activities. I also have knowledge in the configuration for the interface with window managers (i3wm, bspwm) and setting up the development environment via Neovim and Tmux.
Digital hardware design software (FPGA)
Expertise level: 4 / 5
I used this software to develop the digital designs and to program FPGAs from Xilinx. I have also used IPCores from Xilinx to implement designs together with custom digital circuits.
Expertise level: 3.5 / 5
I used this software at university to develop all the digital design projects at that stage, including a minimal CPU required in a course, which was implemented in an FPGA from Altera.