Esto es lo que hago

Soy desarrollador web. Aunque no me autodenomino fullstack, puedo trabajar tanto como backend como como frontend, principalmente utilizando HTML, CSS, JavaScript y PHP. También tengo algunos conocimientos relacionados con la administración de sistemas o el diseño de interfaces.

Llevo programando casi 10 años. Comencé a aprender a principios del año 2009 utilizando un proyecto de código abierto, y posteriormente colaborando en el mismo enviando pequeños cambios y correcciones.

A principios de 2011 me uní a un equipo que trabajaba en remoto creando un videojuego de estrategia para navegador, basado en el mismo proyecto.

A raíz de ese proyecto comencé a especializarme en front, aunque, por cuestiones de trabajo, actualmente estoy dedicado principalmente a trabajar en backend con PHP.

Backend

Conozco PHP y JavaScript (Node.js). Considero que tengo conocimientos bastante amplios en ambos lenguajes, siendo PHP el que mejor domino.

PHP

Utilizo Composer como gestor de dependencias de terceros. Me gusta utilizar librerías que me faciliten el trabajo. No veo la necesidad de reinventar la rueda cuando otras personas han hecho muy buenos componentes.

Conozco los frameworks CakePHP, Symfony y Laravel, siendo este último mi preferencia, debido a su sencillez y a la velocidad con la que se pueden crear aplicaciones manteniendo una buena calidad del código.

Node.js

He utilizado Node.js principalmente en cosas pequeñas, por lo general para realizar comunicaciones mediante sockets o hacer API sencillas.

Bases de datos

Principalmente he utilizado MySQL, y sus variantes Percona y MariaDB. Para ciertas cosas también me he apoyado en SQLite.

Soy de las personas que prefieren evitar consultas muy grandes con muchos joins dentro de una aplicación. En ocasiones suelen ser más lentas, más difíciles de mantener, y nadie las quiere tocar.

También me he estado pegando un rato con MongoDB optimizando su rendimiento.

Otros

También conozco Python. Si bien no tengo experiencia con el lenguaje, puedo entender código escrito en él.

Frontend

Puedo encargarme tanto de la maquetación como de la programación.

Conozco diversas técnicas de optimización de tiempos de carga y de rendimiento.

HTML

Procuro generar un HTML adecuado, que cumpla al menos con reglas básicas de accesibilidad. Conozco las principales etiquetas semánticas.

CSS

Conozco diferentes metodologías para organizar los estilos. He usado preprocesadores de CSS (principalmente Stylus) y conozco otras herramientas similares como PostCSS. Trato de estar al día, por lo que me apaño con algunas de las funcionalidades más recientes, como flex o grid.

Prefiero evitar frameworks de diseño tipo Bootstrap. Me gustaría poder trabajar en conjunto con el equipo de diseño al crear una interfaz.

JavaScript

Conozco las últimas novedades introducidas en el lenguaje.

Me gusta usar las características que ofrecen los navegadores sin incorporar frameworks o librerías. Aún así, conozco herramientas como Backbone, Vue, Angular y React, o librerías como Underscore o Moment.

También conozco herramientas para usar durante el desarrollo como Gulp y Webpack.

Más cosas

Procuro organizar el código para que se entienda lo mejor posible. Si no lo consigo o no veo la necesidad en un primer momento, procuro hacer refactorizaciones más adelante, si lo veo necesario.

Considero que las pruebas automatizadas deben formar parte del desarrollo, por la seguridad que aportan al desarrollar.

También procuro que mi código sea seguro por defecto. Conozco las vulnerabilidades más comunes, como inyección de SQL o XSS, entre otras. Algo en lo que suelo insistir bastente es en validar de forma adecuada los datos que los usuarios envían a la aplicación.

Otro aspecto que intento mantener a raya es el del rendimiento. No me gusta trabajar con aplicaciones que van lentas, y por lo general a los usuarios tampoco, así que aplico técnicas de optimización según lo veo conveniente.

En general, me gusta la sencillez.

twitter facebook linkedin github google-plus angle-down skype codepen