Carlos Reig Matut

Freelance web Developer

Author: carlos (page 1 of 2)

Cómo hacer una buena oferta de trabajo

Como desarrolladores tenemos muchísima suerte de que, aun en crisis, las ofertas de trabajo sigan llegando. Aunque últimamente veo más cantidad de ofertas de lo normal por dos motivos.

El primero es que desde hace un año aproximadamente que organizo con Stephen el grupo local de Valencia de PHP. Desde entonces suelo recibir correos donde empresas que buscan desarrolladores de PHP pidiendo ayuda para difundir sus ofertas laborales. La verdad es que es algo que me gusta hacer. Normalmente suelo remitir las ofertas a la lista de correo de PHP Valencia, pero creo que las comunidades podemos hacer un papel muy útil poniendo en contacto a los talentos locales con empresas.

El segundo motivo por el cual ahora veo más ofertas de lo normal es que las empresas han encontrado en el canal de Slack de Valencia Devs un buen sitio donde ponerse en contacto con muchos desarrolladores de Valencia. Por lo que es normal que cada semana se publiquen una o dos ofertas en el canal de #jobs.

Todo esto sería genial sino fuera porque la calidad de las ofertas suele ser bastante baja. Me explico, no estoy valorando que las condiciones laborales de las ofertas sean mejores o peores. Lo que quiero decir es que la información que tienen es vaga, muy vaga, poco concreta o inexistente.

En general, después de varias discusiones con compañeros del sector, creo que una buena oferta de trabajo debe tener la siguiente información:

  1. El nombre de la empresa que realiza la oferta de trabajo: Links, perfiles en redes sociales, etc. Puede parecer mentira, pero llegan algunas ofertas en las que ni siquiera aparece. Este punto podría tener una excepción: que por cualquier motivo no quieras que el nombre de la empresa aparezca (igual no quieres que se sepa abiertamente que estás buscando gente). En este caso, simplemente con indicar que la empresa prefiere seguir en el anonimato, sería suficiente. Lo importante, como he dicho antes, es que las normas del juego estén claras.
  2. La responsabilidad que conlleva el cargo: Un factor común en casi todas las ofertas de trabajo es el listado, normalmente bastante largo, de tecnologías que el candidato debe conocer: PHP, MySQL, Symfony, Laravel, Thermomix, GamusinosJS etc. Como podrás imaginar, es importante que estén en la oferta de trabajo, pero no basta solo con informar a los candidatos de las tecnologías que se usan en el día a día. También hay que informar de las reponsabilidades asociadas al puesto: ¿Se trabaja en uno o con varios clientes y proyectos? ¿Se trabaja con más desarrollores o el candidato será el único?
  3. Metodología del trabajo: ¿Se trabaja con metodologías ágiles? ¿TDD, Pair programming? ¿Se utiliza git flow o alguna otra metodología de trabajo? ¿Cómo se hacen los deploys?
  4. El perfil laboral que se busca: ¿La oferta de trabajo está pensada para un freelance o para un asalariado? ¿Qué dedicación (en horas) requiere?
  5. El horario del trabajo: ¿Es jornada completa? ¿Hay horario flexible? ¿Hora de entrada? ¿Y de salida?
  6. Presencia física: ¿Es un trabajo en remoto o presencial?
  7. Remuneración del trabajo: Lo dejo el último punto porque es uno de los más importantes. Más de la mitad de ofertas fallan aquí. Y meto en el saco aquellas donde se especifica que el salario va según la valía/experiencia etc. No hace falta que ponga hasta el mínimo detalle del sueldo, pero sí que debería de estar por lo menos el rango en el que se mueve tu oferta. Tres cuartas partes de lo mismo si lo que quieres es remunerar con share ¿Cuánto ofreces?

Espero haberte ayudado a que tus ofertas de trabajo tengan más respuestas. Son 7 puntos bastante obvios y muy sencillos de cumplir, así que ¡no hay excusa para no hacerlas mejor!

Si quieres saber más sobre este tema puedes ver el vídeo de la charla que se hizo en la comunidad de Ruby de Valencia sobre Hiring ¡Que la disfrutes!

¡Un saludo!

Carlos

¡Nueva oficina!

Parece que fue ayer cuando empecé a trabajar como desarrollador Freelance con los chicos de iControlWP, pero a lo tonto ya han pasado un par de años.

En este tiempo he aprendido un huevo y medio. Ojalá toda mi vida profesional sea igual de interesante que la de estos últimos años. He conocido gente nueva y he trabajado con gente de todos los perfiles técnicos en GeeksHubs, un coworking de Valencia. Ha sido un tiempo muy bueno allí, pero todo tiene su fin y el mes pasado decidí dejar el coworking para empezar un proyecto nuevo.

Como habrás adivinado ya por el título de la entrada, este nuevo proyecto es el de montar una oficina. He tenido la suerte de juntarme con gente de primer nivel como David Hernández, Miquel Vento, Adrià Lopez o Vimokadipa y nos hemos metido todos de lleno en montar una oficina donde poder trabajar todos juntos.
Día de la firma del contrato

Por ahora, tenemos la oficina patas arriba. Apenas son un par de mesas, una calefacción y un router para internet. Por no tener, no tenemos ni nombre (estamos en proceso de encontrar el apropiado y las sugerencias son bienvenidas :D). Pero eso es lo de menos, ¡ya tenemos mil proyectos e ideas que implementar! La primera (que ya está funcionando) es una pantalla de leds que vamos a usar como reloj para seguir todos los mismos pomodoros, queremos montar un huerto urbano, comprar un proyector y un sofá para traernos la XBOX, hacer barbacoas en la terraza, organizar talleres, ¡y más que se nos irán ocurriendo!

IMG_20160128_101633827

En definitiva, queremos un espacio donde el ocio y el trabajo sean parte de lo mismo. Todos nos dedicamos a la informática por pasión y no puede ser que en nuestro espacio de trabajo no se respire esa pasión.

Para despedirme solo me queda invitarte si pasas por Valencia a que vengas a vernos, a trabajar con nosotros y a dejar tu granito de arena en este proyecto 🙂

Semana 1 de cursodesarrolloweb.es 1/2

Si no sabes de qué van estos posts: estoy organizando un curso para enseñar a hacer páginas web a gente que no tenga demasiada experiencia en informática. En esta serie de post intento resumir cómo va evolucionando el proyecto desde su concepción.

En el último post os contaba cómo nació la el proyecto y dejé la historia en el día 6 de agosto, cuando compré el dominio. Como nos encontrábamos en agosto, ese mes no hicimos mucho del proyecto, la verdad. Por eso, la semana de este post empieza el día 1 de septiembre del 2015.

A lo largo de esa semana básicamente lo único que hice fue la página web. Y como podéis ver, no es demasiado complicada. Sin embargo, aunque se trate de algo sencillo a primera vista, hay muchas tareas asociadas que no se hacen solas 😉

Elección del CMS

Lo primero que hay que hacer es decidir con qué CMS se va a utilizar. Para una página web que solo va a mostrar información, sin mucha lógica de negocio, siempre recomiendo utilizar WordPress (aunque igual ahora cambio de opinión gracias Drupal 8). Y, como hay que ser consecuentes, me puse manos a la obra con WordPress.

El tema del diseño lo solucioné bastante rápido. Ya sabía que WordPress tiene muchos buenos themes gratuitos, pero aun así me quedé alucinado con la variedad y calidad. Os recomiendo que le echéis un vistazo. Total, que después de buscar (tampoco me rompí los cuernos), me decidí por Zerif Lite. Un theme que hace exactamente lo que busco: mostrar el contenido de forma bonita y responsive y sin configurar casi nada.

Información básica del curso

¡Bien! Ya tenemos el CMS instalado y con bonito theme preparado. Ahora hay que darle un poquito de vida.

Pero el problema es que no sabíamos muy bien qué íbamos a ofrecer. Así que, Adrià y yo nos reunimos y tomamos una serie de decisiones:

  1. El curso iba a durar 50 horas: divididas en los 3 módulos
  2. El precio por cada alumno sería de 300€ y tendríamos 20 alumnos como máximo. Lo que nos da unos ingresos (que no beneficio), en el mejor de los casos, de 6000€.
  3. Cada sesión duraría 4 horas seguidas, lo que hace que el curso se componga de 13 sesiones
  4. Presentaríamos dos posibles horarios para el curso dejando que los alumnos decidan:
    1. Horario intensivo: de 16:00 a 20:00 de lunes a viernes. El curso duraría dos semanas y media.
    2. Horario de fin de semana: sábados de 10:00 a 14:00. El curso duraría 3 meses.

Redes sociales

Cualquier proyecto que se lanza hoy en día en internet necesita presencia en las redes sociales. Es increíble lo bien que funcionan para darte a conocer a tu público objetivo. Además, combinando la visibilidad que te dan de forma orgánica con la pagada, se consiguen muy buenos resultados.

CursoDesarrolloWeb no podía ser menos y esa semana (creo que incluso antes de instalar WordPress) ya teníamos nuestras cuentas de Google +,Twitter y Facebook.

Además, nos hicimos una cuenta en Buffer que nos hizo la vida mucho, mucho más fácil. Por si no conoces Buffer, se trata de un software que te permite gestionar todas tus redes sociales desde el mismo punto. Además de proporcionarte un montón de analíticas sobre tu contenido: número de likes, número de clicks en un enlace, etc. Y todo esto GRATIS. Un software muy recomendado.

Voy a ir terminando porque este post ya me está quedando bastante largo. En el próximo post explicaré el resto de tareas que tuvimos que hacer esta segunda semana antes de lanzar la web.

¡Un saludo y felices fiestas a todo el mundo!

Semana 0 de cursodesarrolloweb.es

¡Hola!

Ya comenté en el último post el nuevo proyecto en el que estoy inmerso: Curso de Desarrollo Web en Valencia y mi intención de ir comentando qué hemos ido haciendo para que el proyecto sea un éxito (¡o eso esperamos!).  Pues bien, en este primer post voy a explicar qué acciones se llevaron a cabo la semana cero en la que empezamos con el curso: la semana de la concepción.

La concepción de cursodesarrolloweb.es

La verdad es que no estoy seguro de exactamente cuándo se me pasó por la cabeza la idea de montar el curso. Fue un día de verano de este año, pero no sabría decir cual. cursodesarrolloweb.es se concibió en la cocina de GeeksHubs, el coworking donde trabajo actualmente, mientras comía con Ricardo Sanprieto (gran SEO en Valencia) y Adrián Llopis (CEO de Netik). Dos chicos que trabajan codo a codo conmigo.

Estábamos charlando sobre lo importante que es que los CEOs de las startups tengan cierta formación tecnológica. Aunque sea algo básico. Y al final, divagando y divagando, se me ocurrió montar un curso con las siguientes características:

  • El alumno tendría  que poder apuntarse sin tener mucha experiencia previa en informática (aunque debe de ser hábil en el manejo de ordenadores).
  • En el curso se mostraría la mínima cantidad de código necesario.
  • Enseñaríamos todas las facetas relacionadas con el desarrollo de un proyecto web. Estas son la construcción, el análisis y la promoción.
  • El curso tendría que ser presencial. Se trata de que la gente aprenda lo máximo posible en un tiempo muy acotado.
  • Enseñaríamos soluciones estándares del mercado. Es decir, software que tenga una gran comunidad donde apoyarse para que los alumnos no estén solos después de terminar el curso.

Con estos puntos claros en mi cabeza, me puse manos a la obra.

Primeros pasos… y problemas

Ya tenía la estructura del curso clara. Lo primero que hice fue intentar separar los contenidos que quería que se dieran en el curso por temáticas (bloques de contenido):

  • El primer bloque sería el de los CMS. En este bloque explicaríamos todo lo relacionado con los CMS más populares y fáciles de usar.
  • El segundo bloque consistiría en saber cómo saber qué mejorar tu sitio una vez está construido.
  • En el tercer bloque enseñaríamos a darle bombo al proyecto

Sin embargo, tenía los típicos problemas de cualquier mindundi que quiere empezar un proyecto nuevo:

  • No tenía tiempo para ponerlo en marcha yo solo
  • No tenía dinero para ponerlo en marcha yo solo

Así que, teniendo estos problemas en la cabeza, se me ocurrió que podría incluir algunos socios al proyecto. De esta forma, cada socio podría encargarse de cada uno de los 3 bloques. Además, optar por esta vía no solamente me solucionaba el problema de la falta de tiempo y de dinero. Sino que además le daba un valor mucho más grande al curso ya que el profesor de cada bloque sería un experto especializado en el campo que se está enseñando.

Así pues, una vez tomada la decisión de no recorrer este camino yo solo, contacté con algunos colegas de profesión para ver si estaban interesados. La verdad es que no sé cuántos emails envié, unos 10 por lo menos (tenía que contactar con gente de mi entera confianza ya que asociarte con gente desconocida es una locura).

El resultado de mi búsqueda no fue demasiado exitoso si miramos los números. Casi todo el mundo me contestó que no estaba interesado o que necesitaba más información. Tened en cuenta que hasta ahora lo único que sabía del curso eran los contenidos (de forma genérica) y una serie de requisitos que quería cumplir. Sin embargo, cuando ya pensaba que me tocaría ir solo por la vida, ¡Adrià se animó a subirse al equipo!

Y así, el día 6 de agosto del 2015, llegamos a la primerísima acción que tomamos para empezar el proyecto: la compra del dominio www.cursodesarrolloweb.es .

¡Ya estábamos en marcha!

Nuevo proyecto: cursodesarrolloweb.es

¡Hola a todos!

Hace tiempo que no escribo ¿eh? La verdad es que mucho más del que me gustaría. Y dicho sea de paso, no tengo excusa.

Bueno, vamos a lo que nos concierne hoy. Os quería contar un par de cosas. La primera es que he lanzado un nuevo proyecto junto con el gran Adrià Lopez . Se trata de un curso de desarrollo web en Valencia orientado a gente con poca experiencia como desarrollador. El objetivo principal del curso es enseñar a hacer una página web sin que el alumno tenga que ver nada de código.

Cartel del curso de desarrollo web en Valencia

Es un objetivo bastante ambicioso. Lo sé. Si os soy sincero, no sé si seremos capaces de cumplirlo estrictamente. Aunque si el alumno tiene que aprender algo de CSS ¡tampoco le vendrá mal!

Pues bien, ahora que ya conocéis el proyecto.  Os comento el segundo punto.

Voy a ir resumiendo semana a semana los movimientos que hemos ido haciendo hasta que llegue el día de inicio del curso. La idea es poder hacer una mejor retrospectiva cuando todo el proyecto termine y además ayudar a quien esté intentando hacer algo parecido.

Ya está el anuncio hecho. Ahora solo falta que consiga ser disciplinado y cumplir realmente con los objetivos.

¡Deseadme suerte!

Drupal 7 Demos – Views

Como comenté en el post donde hablabla sobre los módulos más útiles de Drupal 7, voy a publicar una serie de vídeos donde demuestro la esencia de cada uno de los módulos. Básicamente en cada vídeo realizaré un pequeño ejemplo de cómo se usan los módulos de forma básica. La idea es que ningún vídeo dure más de 5 minutos.

Hoy toca el primero de todos: el módulo Views. En el siguiente vídeo vamos a utilizar Views para crear un blog en un Drupal 7 recién instalado.

¡Espero que te sirva!

Si tienes interés en aprender más puedes echarle un vistazo a los siguientes recursos:

22 módulos indispensables de Drupal 7

Este fin de semana ha sido la Drupal Camp 2015 en Jerez de la Frontera. Como siempre, el evento ha ido súperbien: buenas charlas, buena gente y mucho buen rollo entre todos los asistentes. Es un evento que recomiendo a todo el mundo.

Este año he sido ponente con una charla llamada “¿Qué módulos me instalo?” donde presenté los que, a mi parecer, son los módulos que no pueden faltar en ninguna instalación de Drupal 7. La charla salió bien en el aspecto de que la gente salió contenta y participó, sin embargo, tuve algunos problemas con Internet y pasaron algunos imprevistos. Entre ellos el temido efecto demo.

Por eso he decidido que voy a escribir una serie de posts donde presentaré los módulos que preparé para la charla y haré una pequeña demo de unos minutos de duración para que podamos ver el uso básico de ese módulo. Básicamente, lo que no pude hacer en la charla.

En este primer post voy a hacer un pequeño resumen de los módulos que he considerado indispensables y que iré presentando proximamente.

Los 22 módulos indispensables para Drupal 7

  1. Views: Proporciona la habilidad de hacer “listas”
  2. Context: Permite realizar acciones para determinados contextos
  3. Webform: Permite crear formularios de forma muy sencilla
  4. Bean: Permite tratar a los bloques como tipos de contenido
  5. i18n: Permite tener webs multi-idiomas
  6. Date: Proporciona el field Date
  7. JQuery Update: Permite gestionar la versión de la librería jQuery
  8. Admin Menu: Menu para acceder a cualquier parte de la administración
  9. Module Filter: Permite manejar los módulos de forma (mucho) más amigable
  10. Admin Views: Sustituye las listas de la parte de administración por views
  11. Fast Permission Administration: Permite manejar los permisos de forma (mucho) más amigable
  12. Coffee: Permite acceder a cualquier path de administración con un buscador
  13. WYSIWYG: Permite al usuario introducir información de forma amigable
  14. IMCE WYSIWYG: Permite subir las imágenes al servidor desde WYSIWYG
  15. Media: Permite gestionar la librería multimedia
  16. Pathauto: Genera automáticamente URLs amigables
  17. Metatag: Permite gestionar los metatags de cada página
  18. XMLSitemap: Genera el archivo sitemap.xml
  19. Global Redirect: Redirecciona con 301 los “contenidos duplicados”
  20. Redirect: Permite manejar las redirecciones 301 manualmente
  21. EU Cookie Compliance: Añade el mensaje informando sobre la política de cookies
  22. Google Analytics: Permite gestionar los códigos de Google Analytics

Demos

Como he comentado antes, próximamente voy a publicar un pequeño vídeo a modo de demostración para cada cada módulo de los que he expuesto arriba exceptuando i18n ya que es muy completos y ya hay muchísimo buenos videotutoriales por Internet.

Diferencia entre “composer install” y “composer update”

El otro día mi colega Stephen me explicó la diferencia. Si no sabes lo que es Composer, se trata de un gestor de dependencias para PHP. Básicamente y en pocas palabras, composer es la hostia. No obstante, entiendo que si estás leyendo este post ya sabes de sobra para qué sirve composer.

Vamos al grano. Composer tiene dos comandos para descargar las dependencias de tu proyecto:

  • composer update
  • composer install

La diferencia entre los dos es que composer update resuelve todas las dependencias de versiones cada vez que lo ejecutas, guarda los resultados en el archivo composer.lock y finalmente descarga las librerías.

Por otra parte, composer install lee el archivo composer.lockdescarga directamente las librerías. Por eso, composer install tarda mucho menos tiempo en ejecutarse que composer update.

Por lo tanto, la mejor forma de trabajar es ejecutando composer update solo cuando el archivo composer.json sea modificado (o cuando quieras comprobar si hay nuevas versiones). Cuando el archivo composer.lock se genere, añadirlo al sistema de control de versiones y utilizar composer install en el resto de equipos que vayan a trabajar en el proyecto. Esto ahorra muuuucho tiempo (más si usas vagrant).

En este post puedes encontrar una explicación más profunda, pero en inglés.

¡Un saludo!

Introducción a PHPUnit

¡Hola a todos!

2014 ha sido un año de nuevas experiencias: me he independizado, he cambiado radicalmente mi forma de trabajar, he viajado mucho más que otros años (incluso a otro continete ¡estuve en Corea!) y muchas otras experiencias destacables.

Una de las experiencias de las que más orgulloso me siento ha sido la de dar mis primera charla técnica en una conferencia. En 2014 me armé de valor y fui ponente en el Drupal Day 2015 de Bilbao y también en una reunión del grupo de PHP Valencia (en esta ocasión junto al crack Carles Climent, que acaba de ser papá ¡enhorabuena!).

A las dos comunidades les hablé del framework de debugging PHP Unit, y el título de la charla era “Introducción a PHPUnit”. La primera está muy orientada a cómo Drupal 8 usa PHPUnit y la segunda es más genérica. Podéis ver los vídeos a continuación.

 

Nunca se me ha dado especialmente bien (ni mal) hablar en público, pero cuando te encuentras delante de tanta gente tan crack, se te ponen de corbata. En el vídeo aparezco bastante nervioso. Y lo estaba. Hay un montón de cosas que mejorar, pero poco a poco se irán puliendo. Y digo esto porque estoy seguro de que repetiré como ponente a lo largo de este año. Pese a los nervios que se pasan cuando estás hablando, la experiencia es más que satisfactoria y recomendable a todo el mundo. Además, haciendo la charla para las dos pedazo de comunidades que he nombrado antes, poco podía salir mal.

Por cierto, os animo a todos a que os paséis por el grupo de PHP Valencia. Si os acercáis os encontraréis con buena gente dispuesta a echar una mano y a compartir una buena conversación 🙂

Un saludo a todos y mucho ánimo con vuestros proyectos y propósitos para este nuevo año.

¡Ahora hay que cumplirlos!

Experiencias de la Drupal Ladder Valencia 2014

Drupal Ladder Valencia 2014

Este viernes 24 se celebró la Drupal Ladder en Valencia. El evento fue muy bien. Éramos alrededor de 15 personas y todo salió a pedir de boca. Una parte de los asistentes aprendieron a instalar Drupal y se vieron cara a cara con el código y la issue queue. También estaban los que ya tenían experiencia con Drupal y que subieron sus primeros parches. Todo esto en un muy buena ambiente de colaboración mutua y buen rollo.

En este post quiero recoger algunas lecciones aprendidas durante la organización del evento para que cualquiera que se vea en una situación similar no tropiece con las mismas piedras con las que tropezamos nosotros.

Una de las cosas más importantes, sino la que más, en la organización de un evento de este tipo es la promoción y difusión. En nuestro caso hemos utilizado todas las herramientas gratuitas que se nos han ocurrido:

  1. Twitter: Ha sido nuestro principal canal de comunicación y promoción. Escribimos un par de tuits a lo largo del mes anterior al evento y uno todos los días la semana anterior. Afortunadamente, la comunidad de Drupal en España es muy solidaria y hemos tenido una difusión considerable gracias a los retuits de mucha gente.
  2. VLCTechHub: Esta página web agrupa muchos de los eventos tecnológicos que se celebran en Valencia. Es gratuita y no hace falta registrarse ni hacer ninguna otra gestión más que la de rellenar un formulario dando información sobre el evento. Una vez el evento es aprobado por el equipo de VLCTechHub, se manda un email a una lista de correo formada por unas 60 personas en el momento de escribir este post.
  3. Drupal Groups: En esta web se recogen todos los eventos que se realizan sobre Drupal en todo el mundo. Aunque para promocionar el evento no tiene mucho valor, sí que lo tiene para tener un sitio oficial con información. Drupal Groups te permite crear posts con la descripción del evento, organizadores, fecha de inicio y fin, etc. Aquí nuestro post.
  4. Promoción en las universidades: Se enviaron emails a los profesores de asignaturas relacionadas con tecnologías webs de la Universidad de Valencia. Sin embargo, aunque los profesores accedieron amablemente a comentar al alumnado el evento, no vino nadie de la Universidad.

Estos han sido los canales de promoción que hemos utilizado. Aunque ahora que ha pasado el evento, nos hemos dado cuenta de que podíamos haber usado todavía más:

  • Notas de prensa a periódicos locales.
  • Betabeers (¡se nos pasó por completo!)
  • Promoción en institutos con módulos de FP de informática
  • Meetup:  Esta idea me la dio Alfonso Machado (@almacbe). Hubiera estado muy bien publicar el evento allí, pero tampoco se nos ocurrió a tiempo

Por otra parte, otro de los errores que cometimos fue el de no usar ningún sistema de registro. Esto supuso un pequeño problema ya que en ningún momento supimos, ni aproximadamente, el número de personas que vendrían. También nos impidió poder comunicarnos por email con los asistentes para comunicar un cambio o alguna aclaración. Seguramente, para solucionar este problema, la próxima vez usemos Eventbrite  para proporcionar un sistema de registro rápido (además de otras características que te proporciona Eventbrite).

En fin, nos vemos en el próximo evento que organicemos. Lo haremos mejor todavía, eso seguro.

Older posts

© 2017 Carlos Reig Matut

Theme by Anders NorenUp ↑