Lenguajes de programación

He desarrollado software con Python para PC (tanto para Linux como para Windows) como módulos y como aplicaciones con una interfaz gráfica utilizando la Biblioteca de Interfaz PYQT para diferentes propósitos. También he desarrollado software que emplea a las bibliotecas de Python para extracción de datos. Las bibliotecas más frecuentes que he usado son: matplotlib, Qt, numpy, libxml, pyspice, tensorflow
He desarrollado scripts usando bash y shell para automatizar la implementación de servicios en servidores de GNU/Linux y para automatizar la inserción de datos en las bases de datos.
He desarrollado software con JavaScript principalmente para aplicaciones web, tanto en Backend como en Frontend. También lo he usado para interactuar con la API de Google e interactuar con Google Sheets y Google Docs, como aplicaciones independientes y como Appscripts. Los marcos que he usado son React Js (frontend), Express Js (backend) y React Native (móviles).
He desarrollado software con C, principalmente para sistemas embebidos (microcontroladores) y en un proyecto para un controlador ADC. En el caso de C ++, también lo he usado con microcontroladores, especialmente con Arduino.
He desarrollado software con C # para interactuar con los servicios y las aplicaciones en un entorno de Windows. En el proyecto principal, donde lo he aplicado, he utilizado el marco .NET para automatizar las tareas en los documentos de MS Word. La aplicación que he desarrollado tiene dos modos, tanto la consola como una interfaz gráfica a través de WinForms.
He utilizado este software y su lenguaje de programación, esencialmente para cálculos matemáticos y para tareas de investigación que se requirió utilizando la caja de herramientas proporcionada. También he desarrollado una interfaz simple para diseñar filtros analógicos.
Utilicé este lenguaje de programación para desarrollar un software que se ejecute en el lado del servidor. Proporciona datos a otro software modificado, también escrito en Go, para simular la comunicación a un servidor de red LoraWAN a través de la plataforma ChirpStack.

Lenguajes para documentación

Este es el primer lenguaje de documentación que aprendí, y uso preferencial para documentos científicos (mi tesis y artículos científicos), aunque también solía escribir informes y mi CV personal. También tengo la experiencia para escribir plantillas con este idioma.
Es el lenguaje de documentación más común que utilizo para escribir la documentación de mis proyectos. Lo he usado combinado con marcos que autogenera la documentación, como DOCFX o JEKYLL, que se utiliza en esta página web.
Lo usé para documentar proyectos escritos en Python, ya que se integra a la perfección a través del generador Sphynx. También lo he empleado para proyectos de documentación utilizando PANDOC.
Lo usé para documentar un proyecto de implementación de servicios como una alternativa a Markdown junto con el software generador Antora.

Tecnologías de computación en la nube

Utilizo Docker y Docker Compose para implementar los servicios en el lado del servidor, aislando el entorno para cada aplicación. Lo combino con scripts de bash para automatizar la creación y despliegue de los servicios.
He utilizado este software para automatizar el despliegue de infraestructura en los proveedores de la nube. Lo he empleado con Linode, Google Cloud y AWS LightSail
Sé cómo configurar un proyecto e implementar recursos de la computadora en Google Cloud, así como para habilitar API para las cuentas de Google Services.
Sé cómo implementar recursos tanto como EC2, así como en el servicio de LightSail.
Este es el proveedor de la nube que empleo para mis proyectos personales y tengo un servidor allí para probar mis implementaciones.

Tecnologías de CI / CD

Tengo experiencia utilizando este sistema de control de versiones. Lo uso casi por todos mis repositorios. También tengo experiencia con trabajo de colaboración utilizando este software.
Recientemente, se convirtió en mi servicio de control de versiones preferido (solía emplear GitLab para mis proyectos personales). También aprendí el flujo de trabajo de desarrollo, a través de issues, pull request y proyectos. También uso su función GitHub Actions para automatizar la implementación de los proyectos en los que trabajo.
Solía ​​emplear este software para mis proyectos personales y he utilizado también sus características de integración y despliegue continuo. Ahora, varios de mis proyectos se reflejan de este servicio a GitHub.
Utilicé este software en un proyecto para implementar una función de implementación continua en una aplicación auto gestionada. Lo integré junto con Docker, Docker-Compone y Terraform.
Repositorios:

Gestión de bases de datos

Conozco las principales cláusulas para realizar las operaciones básicas a Mariadb / MySQL. También tengo la experiencia de mantener este tipo de base de datos.
He utilizado esta base de datos para algunos proyectos y lo he combinado con scripts de shell para implementar, agregar, actualizar y respaldar datos de este tipo de base de datos.

Software de simulación

Utilizo este software para simular circuitos y sistemas electrónicos. Prefiero este software, ya que es gratuito y flexible para simular diferentes dispositivos basados ​​en modelos SPICE
También he usado este software para simular los circuitos y, especialmente, para simular el modelo SPICE del dispositivo ISFET.
Utilizo este software para simular circuitos electrónicos a través de su descripción con instrucciones de SPICE. Permite usarlo también como scripts con mejor integración con otros softwares que simulan los circuitos programáticamente.

Lenguages de simulación

He usado lenguaje de simulación SPICE para modelar y simular dispositivos ISFET y para caracterizarlos y extraer sus parámetros eléctricos.
He usado VHDL-AM para simular circuitos electrónicos. Usé especialmente para simular un circuito analógico y un circuito de acondicionamiento para un ISFET.

Software de diseño de PCB

Este es mi software preferido para diseñar PCBs, ya que es de código abierto y versátil para diseñar una placa básica. He utilizado para la mayoría de los proyectos que habían requerido una placa de circuito.
Sé cómo usar este software y he utilizado para la placa impresa requerida para mi tesis de ingeniería. Sin embargo, no lo empleo mucho debido a su precio.

Lenguages de descripción de hardware

He desarrollado proyectos en los que aplicé mi conocimiento en VHDL para diseñar la arquitectura digital para periféricos y una CPU simple.
Exploré este idioma en un proyecto que tuvo como objetivo simular un microprocesador. Tengo un conocimiento básico para modelar circuitos simples.

Software de diseño y modelamiento

Este es mi software preferido para diseñar componentes 3D y he utilizado en todos los proyectos que requirieron un objeto impreso 3D, comúnmente para los recintos de PCBs.
Este es mi software preferido para diseñar gráficos vectoriales 2D y he empleado para todos mis diseños que uso tanto en mis artículos como en mis informes.
Tengo un conocimiento básico en este software que uso preferiblemente para manipular las imágenes de mapa de bits, para corregir su balance de color y eliminar las regiones no utilizadas en la imagen.

Sistemas operativos

Este es mi sistema operativo preferido que utilizo para la programación y para mis actividades diarias. También tengo conocimiento en la configuración de la interfaz con los administradores de ventanas (I3WM, BSPWM) y configurando el entorno de desarrollo a través de Neovim y Tmux.

Software para diseño de hardware digital (FPGA)

Utilicé este software para desarrollar los diseños digitales y para programar FPGAS de Xilinx. También he utilizado IPCores de Xilinx para implementar diseños junto con circuitos digitales personalizados.
Utilicé este software en la universidad para desarrollar todos los proyectos de diseño digital en esa etapa, incluida una CPU mínima requerida en un curso, que se implementó en un FPGA de Altera.