Programming languages

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 which employs Python libraries for data scraping. The most frequent libraries I have used are: Matplotlib, Qt, numpy, libxml, pyspice, tensorflow
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.
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).
I have developed software with C, mainly for embedded systems (microcontrollers) and in a project for an ADC driver. In case of C++, I have also used it with microcontrollers, specially with Arduino.
I have developed software with C# to interact with services and applications in a Windows environment. In the main project where I have applied it, I have 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.
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.
I used this programming language to develop a software that is executed in 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.

Documentation languages

This is the first documentation language I learned, and I use preferably for scientific documents (my thesis and scientific articles), although I also used to write reports and my personal CV. I also have the experience to write templates with this language.
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 in this web page.
I used it to document projects written in python, as it is seamlessly integrated to it via the Sphynx generator. I have also employed it for documentations projects using pandoc.
I used it to document a service deployment project as an alternative to Markdown together with the generator software Antora.

Cloud computing technologies

I use docker and docker-compose to deploy the services in the server side, isolating the environment for each application. I combine it with bash scripts to automate the creation and deployment of the services.
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.
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.
I know how to deploy resources both as EC2 as well as in the LightSail service.
This is the cloud provider I employ for my personal projects, and I have a server there to test my deployments.

CI / CD tecnologies

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.
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.
I used to employ this software for my personal projects and I have used also its features of continuous integration and deployment. Now, various of my projects are mirrored from this service to GitHub.
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.

Database management

I know the main clauses to perform the basic operations to MariaDB / MySQL. I have also the experience to maintain this type of database.
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

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.
I have used this software also to simulate circuits and specifically to simulate the SPICE model for ISFET device.
I use this software to simulate electronic circuits via their description with SPICE instructions. It allows using it also as scripts with better integration with other software programs which simulates circuits programmatically.

Simulation languages

I have used SPICE simulation language to model and simulate ISFET devices and to characterize them and extract their electric parameters.
I have used VHDL-AMS to simulate electronic circuits. I used specially to simulate an analog circuit and conditioning circuit for an ISFET.

PCB design software

This is my preferred software to design PCBs, as it is open source and versatile to design any basic board. I have used for most of the projects that had required a circuit board.
I know how to use this software and I have used for the printed board required for my engineering thesis. However, I don't employ it too much due to its price.

Hardware description language

I have developed projects where I applied my knowledge in VHDL to design the digital architecture for peripherals and a simple CPU.
I explored this language in a project which aimed to simulate a microprocessor. I have basic knowledge to model simple circuits.

Modeling and design software

This is my preferred software to design 3D components and I have used in all the projects that required a 3D printed object, commonly for PCB enclosures.
This is my preferred software to design 2D vector graphics and I have employed for all my designs I use both in my articles and my reports.
I have basic knowledge in this software I use preferably to manipulate bitmap pictures, to fix its color balance and delete unused regions in the image.

Operating systems

This is my preferred operating system that I use for programming and for my daily activities. I have also 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 sofware (FPGA)

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.
I used this software at university to develop all the digital design projects in that stage, including a minimal CPU required in a course, which was implemented in an FPGA from Altera.