Charlas interesantes 8 Marzo

Este post es una recopilación charlas sobre como mejorar como desarrolladores. En estas charlas nos cuentan consejos, experiencias,.. y al menos a mi me han ayudado a replantearme una serie de creencias para seguir aprendiendo y mejorando no solo como desarrollador sino también como persona.

Lead Dev: no tengo ni idea de qué es eso

¿Qué es un Tech Lead? ¿Qué es un Lead Dev?¿Engineering Manager? Todos son roles que una persona puede desempeñar dentro una compañía. Hasta hay vamos bien, el problema viene cuando tenemos que definir las responsabilidades de este rol…

En cada compañía se hace de una manera. Podemos encontrar compañías en la que el career path es público y por tanto conocer cuales son las responsabilidades y/o habilidades que se suponen para dicho rol. Por ejemplo tenemos Patreon Engineering Levels donde definen las habilidades y responsabilidades de cada nivel. También tenemos Medium Engineering Growth Rubric (más visual aquí) donde ponen incluso ponen ejemplos de cada lo que debería hacer una persona dentro de un nivel. Otro ejemplo más de Monzo. En mi caso, el Lead Dev se define como el CTO de un producto encargado de definir la visión técnica para alcanzar los objetivos de negocio establecidos por el Product Owner.  La cuestión es ¿qué pasa cuando te dicen: ‘¿te gustaría ser Lead Dev de este equipo?’ o lo más habitual… a partir de X eres el Lead Dev del equipo.

Sigue leyendo “Lead Dev: no tengo ni idea de qué es eso”

Desplegar en Heroku una App en Go

¡Volvemos a la carga! Esta vez con un post un poco más técnico que los últimos. Hace tiempo que llevo dandole vuelta a como mejorar la manera en la que desplegamos el software, sobre todo desde que vi la charla de “Deliveritis Aguda de Carlos Buenosvinos.

Así que me he puesto manos a la obra analizando como desplegamos nosotros y como automatizar al máximo posible el deploy. Después de ver distintas opciones la que más sencilla me ha parecido para proyectos personales es Heroku.

Crear cuenta en Heroku

Lo primero es crear una cuenta en Heroku. Tiene una capa gratuita que es suficiente para hacer pruebas.

01 cuenta heroku

Una vez que tengamos la cuenta lista, tenemos que instalar en nuestro ordenador Heroku CLI, en mi caso he optado por la instalación de brew

brew tap heroku/brew && brew install heroku
Una vez que lo tenemos heroku CLI instalado tenemos que hacer login con el CLI a la cuenta que hemos creado
02login.png

Creando una aplicación en Go para desplegar

Si ya me conoces o as leído otros posts, a mi me gusta ir paso a paso. Por eso, vamos a construir una app muy simple. La idea del post es desplegar en Heroku, así que haremos todo lo posible por acercarnos a ese objetivo. Dicho esto, crearemos una aplicación muy simple en Go, que solo nos muestro por pantalla un mensaje.

Lo primero es crear en Go module (la manera de crear aplicaciones en cualquier ruta del sistema de ficheros, independiente de donde tengamos definido GOPATH). Más información aquí o en este otro enlace. Para ello en una directorio donde queramos construir el proyecto escribimos:

$ go mod init github.com/{your_username}/{repo_name}

En mi caso sería algo así:

$ go mod init github.com/jeslopcru/go-heroku

03

Esto nos creará un fichero go.mod que es donde está toda la información de los módulos.

Ahora solo tenemos que crear nuestro fichero main.go. En mi caso he decidido usar el framework gin para que sea aún más sencillo. Por ello solo tengo que escribir esto en el main:

package main

import (
   "github.com/gin-gonic/gin"
   "os"
)

func main() {
   port := os.Getenv("PORT")
   app := gin.New()
   app.GET("/", func(context *gin.Context) {
      context.String(200, "Go App working!")
   })
   _ = app.Run(":" + port)
}

Lo más importante a tener en cuenta con Heroku, es que el puerto es aleatorio, por tanto a la hora de lanzar nuestra aplicación tenemos que leer la variable PORT y ejecutar el servidor en dicho puerto.

Desplegando en Heroku

Con solo un directorio con 2 ficheros (go.mod y main.go) ya tenemos una aplicación lista para desplegar. Ahora vamos a Heroku y creamos nuestra app (básicamente es darle un nombre), en mi caso go-heroku-server

Listo. Metemos nuestro directorio en git

$ git init
$ git add -A .
$ git commit -m "initial commit"

Y añadimos el remoto

$ heroku git:remote -a go-heroku-server

Con solo hacer un push a Heroku tenemos nuestra aplicación desplegada:

05deploy

Ahora solo nos queda probarla https://go-heroku-server.herokuapp.com/ o en un terminal ejecutar

$ heroku open

Para ver los logs es tan sencillo como:

$ heroku logs --tail 1 ↵ 2020-02-08T07:34:30.078424+00:00 heroku[web.1]: Unidling 2020-02-08T07:34:30.392047+00:00 heroku[web.1]: State changed from down to starting 2020-02-08T07:34:31.220692+00:00 heroku[web.1]: Starting process with command `bin/go-heroku` 2020-02-08T07:34:33.596599+00:00 heroku[web.1]: State changed from starting to up 2020-02-08T07:34:33.550762+00:00 app[web.1]: [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production. 2020-02-08T07:34:33.550778+00:00 app[web.1]: - using env: export GIN_MODE=release 2020-02-08T07:34:33.550779+00:00 app[web.1]: - using code: gin.SetMode(gin.ReleaseMode) 2020-02-08T07:34:33.550779+00:00 app[web.1]: 2020-02-08T07:34:33.550785+00:00 app[web.1]: [GIN-debug] GET / --> main.main.func1 (1 handlers) 2020-02-08T07:34:33.550786+00:00 app[web.1]: [GIN-debug] Listening and serving HTTP on :57068 2020-02-08T07:34:34.575426+00:00 heroku[router]: at=info method=GET path="/" host=go-heroku-server.herokuapp.com request_id=4896cba0-abf6-4134-94b1-76916dbfb9be fwd="95.121.236.30" dyno=web.1 connect=1ms service=5ms status=200 bytes=151 protocol=https

Probando en local

Lo primero que tenemos que hacer para poder ejecutar en local es definir un Procfile. Este fichero especifica los comandos que se deben ejecutar para iniciar la aplicación. El Procfile debe estar en la raíz de nuestro proyecto.

En nuestro caso el Procfile indica que tenemos una aplicación web y que para ejecutarla es necesario ejecutar el comando bin/go-heroku, por lo que nos queda un fichero tal que así:

web: bin/go-heroku

Ahora para ejecutar la app en local solo tenemos que ejecutar

$ heroku local
10:07:29 AM web.1 | [GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
10:07:29 AM web.1 | - using env: export GIN_MODE=release
10:07:29 AM web.1 | - using code: gin.SetMode(gin.ReleaseMode)
10:07:29 AM web.1 | [GIN-debug] GET / --> main.main.func1 (1 handlers)
10:07:29 AM web.1 | [GIN-debug] Listening and serving HTTP on :5000

Y ya tenemos nuestra aplicación funcionando en localhost:5000

Otra manera de desplegar sería utilizando Docker y un Dockerfile pero eso lo dejaremos para otro post tipo “haciendo debugging con delve”.

Conclusiones

Tener una app funcionando y desplegada en un servidor usando Heroku es lo muy sencillo. Además Heroku nos ofrece muchas más posibilidades como desplegar contenedores o integraciones con Github para automatizar el despliegue.

Charlas interesantes Enero 2020

Estas son algunas de las charlas que más me han gustado últimamente:

Muchas de ellas las he escuchado en podcast usando Ivoox (https://www.ivoox.com/en/escuchar-autentia_nq_340369_1.html) y otras en youtube done estoy suscrito a varios canales.

Espero que las disfrutéis

Retrospectiva y objetivos 2020

Aunque con un poco de retraso creo que es hora de echar la vista atrás y analizar todo lo que ha pasado este año. Si tuviera que resumir todo 2019 con una frase sería: se me ha pasado volando el año y creo que no me ha dado tiempo a hacer todo lo que me hubiese gustado.

Esa era la sensación que tenía cuando fui a escribir el post, luego me puse a buscar y recopilar información de todo lo que me había pasado este año… En realidad, ha sido un año en el cual he ido priorizando a medida que iba avanzando el año, por lo que no he cumplido los objetivos que me propuse al principio, pero no me importa he hecho otras cosas que me han molado más.

Empecé el yendo en Febrero al evento GDGMarbella a hablar sobre TDD con gente encantadora incluso me entraron ganas de aprender Flutter,  Durante el año he ido a algunos Meetups como el de 6 sobreros para pensar de GesProSev, Tips de usabilidad para programadores y algún otro más de SVQJUG, como no a los PHPSevilla. En Junio me dio tiempo a dar un pequeño workshop sobre refactoring en las oficinas de Privalia. Y todo eso antes del verano. Después del verano pasé por la Codemotion Madrid un eventazo que celebran en unos cines para flipar. Di una charla en la PEUMFConf, un evento online organizado por las geniales gentes del podcast Programar es una Mierda. Para terminar el año y gracias a BcnEng gané una entrada para  la PHPBarcelona mi primer evento entero con charlas en inglés y me lo pasé de miedo. Además justo en navidades estuve en un taller Ansible que me está sirviendo mucho.

En cuanto a viajes pues estuve en Gran Canaria (un lugar más que precioso incluso en invierno), en verano visité Murcia (no había estado nunca y lo recomiendo muchísimo), estuve un día por Granada, pasé un finde espectacular en el Lago di Como (Italia) y me sorprendió gratamente Burdeos. 

Además de todo esto, me dio tiempo a mudarme, ahora al fin tengo un habitación/despacho para poder trabajar desde casa cómodamente. Es estupendo para mi espalda poder tener una silla cómoda (la Markus de Ikea) y una mesa amplia.

En lo laboral sigo trabajando en VeePee con un equipo de gente excelente, luchando contra el Legacy Code e intentando mejorar cada día un poco (aunque a veces unos días cuesta más que otros). Tengo pendiente un post sobre como estamos trabajando ahora, sobre todo porque estoy asumiendo nuevas responsabilidades y me gustaría algo de feedback sobre seguir mejorando.

En lo personal, al fin me he apuntado a clases de inglés (llevo poco tiempo, pero espero poder ir al menos un par de horas a la semana de manera regulas). Disfruto muchísimo con mi hija, cualquiera que me haya visto últimamente habrá visto como se me cae la baba hablando de ella. Lo que más disfruto es ir a clases de natación con ella.

Revisión 2019

  • Aprender inglés: me he apuntado a clases de inglés, así que es un paso… aunque creo que sin un objetivo fijo es complicado saber si lo consigo o no…
  • Seguir disfrutando de las tardes: como he dicho antes, ir a la piscina con mi peque es lo mas divertido de las tardes.
  • Mejorar dando charlas: he leído bastante sobre preparar las diapositivas, maneras de comunicación,… ahora a ver si encuentro un tema interesante para poder presentar una charla
  • Leer más: he perdido bastante el habito de leer y no lo he recuperado. Bueno, en realidad no leo libros sino post y demás.
  • Lanzar un pet-project: no he sido capaz de lanzar el proyecto, pero si he aprendido Go como para hacer pequeñas cositas.

Objetivos

En cuanto al blog, lo tengo abandonado, por eso de priorizar… he escrito sobre go, pero los post que más repercusión han tenido han sido los he escrito sobre temas menos técnicos. Creo que voy a intentar escribir al menos una vez al mes y dar un poco de cariño a los draft que tengo a medio hacer.

Voy a seguir comiendo sano: he perdido 10kg y lo mejor es que me mantengo en mi peso gracias a tomar decisiones saludables con respecto a mi alimentación. Lo mismo con el deporte, eso de trabajar en casa hace que no llegue a andar más de 5000 pasos diarios, así que tengo que seguir manteniendo el ritmo de salir a correr un par de veces por semana. Seguramente no vaya a correr un maratón, pero tengo que mantenerme activo.

El inglés es mi asignatura pendiente desde siempre, lleva en los objetivos año tras año. Ahora tengo alguna que otra reunión en inglés así que tengo que dejar de tener esa situación de impotencia de no poder decir los que pienso porque no sé las palabras adecuadas… no se si yendo a clase subiré al siguiente nivel pero tengo que crear al menos el hábito de ir a clase.

Con respecto a seguir aprendiendo, quiero seguir con Go pero voy a priorizar lo anterior primero. Además ahora que tengo a un equipo de gente excelente cerca, tengo que ponerme las pilas para cuidarlo y que crezcamos juntos, así intentaré leer un poco más sobre management, ¿Que más puedo leer? Quizás debería poner en orden los recursos de aprendizaje que me parecen interesantes.

Tengo que relativizar un poco mi día a día y dejar de tener esa sensación de no llegar a nada porque si llego a muchas cosas y a las que no llego pues no pasa nada, no se acaba el mundo. Por eso este año mis objetivos voy a intentar que sean más y los revisaré dentro de 6 meses, porque hay cambios que hacen que tenga que priorizar y adaptarme.

  • Escribir un post al mes: es un objetivo para mantener el blog y que me ayuda a poner en orden todo lo que voy aprendiendo.
  • Ir a correr/natación dos veces a la semana: el año ha empezado con estrés y cambios, pero tengo que priorizar mi salud por encima de todo lo que hay que hacer. Mi hija ya tiene que ir sola a clases de natación, así que ese tiempo será el que yo le dedique a hacer deporte.
  • Seguir con las clases de inglés: el inglés es mi asignatura pendiente, tengo que seguir mejorando ir a clases de inglés es algo que tengo que hacer.

Como conclusión, pensaba que había sido regulero, pero no. El post me ha recargado las pilas para seguir aprendiendo y disfrutando.

 

Trabajando en remoto

Remoto, teletrabajo, trabajar desde casa, trabajar desde cualquier sitio… es el concepto de moda entre todos los programadores que conozco. Llevo un tiempo trabajando desde casa y en este post voy a contar algunos consejos que me han funcionado (y otros que no) en más de un año fuera de la oficina.

Lo primero puntualizar un poco. Cuando hablamos de remoto, nos podemos estar refiriendo a un amplio abanico de posibilidades, es decir, según como yo lo veo hay distintos tipos de remoto:

  • Sólo un miembro del equipo es el que no va a la oficina: es el más complicado, porque todo el mundo debe ser consciente de que las conversaciones en la oficina tienen que moverse a un canal más digital.
  • Cuando hay algunas personas que están personas del equipo teletrabajando. Este es más o menos mi caso: somos un equipo pequeño donde hay varias personas que solo vamos a la oficina 1 o 2 veces por semana.
  • No existe oficina: es el caso de empresas tan conocidas como Buffer o similar, es una opción que cada vez se está poniendo más de moda.

Del mismo modo, hay otras muchas maneras de clasificar el teletrabajo: si el equipo está distribuido en distintos husos horarios, si el equipo trabaja con personas de otras oficinas y como es mi caso, la empresa tiene horario flexible y todo el equipo nos solapamos una parte de la jornada.

¿Por qué elegí trabajar en remoto?

En mi caso elegí trabajar en remoto sobre todo para poder conciliar. ¿Qué quiere decir esto? Pues empecemos dando un poco de contexto, en Andalucía las guarderías públicas/concertadas solo permiten tener a un peque 8 horas como máximo. Por lo entre el tiempo de ir/volver a la oficina, el tiempo de comer,… a mi pareja y mi se nos hacia un poco complicada la “logística” de poder cuidar a nuestra peque. Aunque ahora que lo pienso también hay otras muchos factores que han influido:

  • Conciliación, como ya expliqué antes.
  • Los desplazamientos al trabajo y los atascos. Ahora tardo 10 segundos en llegar al trabajo, por lo que no tengo que madrugar tanto.
  • Pocas interrupciones. Si necesito concentración solo tengo que comentarlo en Slack y ponerme el “don’t disturb”.
  • Equipo, ya teníamos una confianza y algunas personas del equipo trabajaban en remoto, por lo que fue fácil para nosotros que otra persona más empezase a trabajar desde casa.

Del mismo modo, creo que el factor clave para que el trabajo en remoto funcione es la confianza: la empresa ya tenía una confianza en mí, sabía como trabajaba y como rendía, dentro del equipo también teníamos confianza para trabajar juntos y yo también tenía confianza en que si seguíamos trabajando bien podríamos trabajar en “remoto” .

Ahora la pregunta es ¿Se puede conseguir esa confianza empezando desde remoto? Creo que son las personas las que hacen el equipo, no el hecho de estar en una oficina u otra. Aunque es cierto que estar en persona ayuda, por eso creo que estar juntos en el onboarding ayuda.

Básicos para trabajar en remoto

Cuando empecé en remoto me lo tomé como una experiencia “piloto”. No quería gastarme dinero porque no sabía si iba a funcionar (aunque era lo que más deseaba del mundo) y porque “total solo trabajaba en casa algunos días” —> ERROR. Aunque sean pocos días creo que es necesario tener un ambiente cómodo.

Cuando empecé a trabajar desde casa, vivía en una casa de 2 habitaciones, así que me despertaba temprano y empezaba a trabajar en el salón. Cuando mi peque se levantaba para ir a la guarde me movía a su cuarto, la mesa en la que trabajaba era pequeña (solo cabía el portátil, nada de monitor).

Equipamiento, no solo el portátil

Por ello creo que uno de los factores básicos para trabajar en remoto es tener un buen equipamiento. No me refiero solo a tener un portátil, sino también otras muchos elementos a tener en cuenta:

  • Portátil, es la principal herramienta para poder trabajar desde donde queramos, en mi caso es un MacBookPro de 13″.
  • Monitor: si en la oficina tenemos una o 2 pantallas, en casa sería bueno tener una configuración parecida. En mi caso solo tengo una grande + la pantalla del portátil.
  • Sillas y mesa: creo que es de las cosas más importantes. Al final estamos trabajando, vamos a pasar sentados bastantes horas… por lo que es bueno invertir en este equipamiento. En mi caso tengo una silla Markus de Ikea, la misma que en la oficina y la mesa es lo suficientemente amplia como para no sentirme agobiado.
  • Buenas conexión a Internet. Es indispensable, no solo para poder buscar en Stack Overflow,  sino también para que escuchemos bien a nuestros compañeros, para que ellos nos escuchen a nosotros, para que podamos compartir pantalla…
  • Espacio físico aka. despacho. Ya sea que tengamos una habitación propia para el despacho o un hueco en el salón, es importante que ese sea nuestro espacio de trabajo. Como he comentado antes, al princpio no lo hacía así, pero desde que tengo un pequeño espacio donde tenerlo todo he ganado muchísimo.
  • cascos/micrófono/cámara: tener una comunicación fluida forma parte de trabajar desde casa, por lo que invertir en unos buenos cascos: con los que estemos cómodos, que tengan un buen micro, que sean compatibles con tu ordenador es algo primordial. Eso de hacer una llamada por Slack o lo que sea y tener que esperar 2 minutos porque no no se escucha, no te veo,… hace que te entre pereza volver a llamar y a la larga no es bueno.
  • apps: todo lo anterior es importante, pero creo que es indispensable que la empresa invierta en herramientas qué faciliten la comunicación. En nuestro caso usamos Webex, pero hay muchas otras como Slack (de pago para poder compartir pantalla), Zoom,…

Comunicación y equipo

Ya hemos hablado de cosas físicas, pero si algo tengo que agradecer a mi equipo y a toda la gente con la que trabajo es que todos hayamos cambiado el chip. Gracias a que todos empezamos a tener mentalidad de “remoto”, creo que es el hecho de que esté funcionando.

Me explico, cuando un equipo está al completo en la oficina, con solo hacer un gesto o llamar a la persona que está al lado puede obtener ayuda, resolver una duda… de la misma manera, es sencillo cruzarte con otra persona por el pasillo y charlas sobre cualquier cosa para “despejarte” y ver de nuevo el trabajo que estabas haciendo con más claridad. Ahora, que en nuestro caso, no estamos todos en la oficina… tenemos que mover la comunicación hacia otro canales. Normalmente Slack o Webex, así que ese “pedir/dar ayuda tiene que ser con más ganas”.

Para nosotros empezar el día haciendo una daily es clave. Contamos que nos tiene bloqueados, o si vemos que alguien lleva 2 días con lo mismo intentamos que la persona que esté más libre eche una mano (hacemos un slicing de muy pequeño de historias, aunque quizás eso sea para otro post), contamos también que hicimos ayer y revisamos el panel por sí podemos “empujar” las historias más prioritarias ha producción.

Por otro lado, también tenemos muchas salas de reuniones, esto nos sirve para poder resolver hablar con cualquier miembro del equipo que esté trabajando desde casa sin interrumpir al resto. Si alguien necesita ayuda, es tan sencillo como llamarlo por Webex y compartir pantalla.

Otro de los puntos es saber si estás disponible, intentamos avisar si nos vamos a comer o desayunar por si alguien te escribe para algo que no se quede esperando la respuesta. Cuando avisar y cuándo no, pues lo mismo que en la oficina: Oye que me voy a desayunar, ¿os venís? Bajo a comprar al Mercadona, ¿necesitáis algo? eso por ejemplo sí. Por otro lado, si en la oficina no avisas cuando vas al baño, cuando estas en remoto tampoco 😉

Al final, no es solo trabajar desde casa, es “aprender” a ser productivo desde un entorno en el que estás solo fisicamente. Eso hay a personas a las que les cuesta más y otras un poco menos. Por lo que la comunicación es esencial.

Cuidado

No todo es de color de rosa cuando trabajamos desde casa, tenemos una serie de inconvenientes añadidos que tenemos que conocer. En mi caso, los que veo son:

  • Soledad. estamos en casa intentando resolver algo y no sale, no encontramos solución. En la oficina nos escucharían resoplar y seguro que alguien del equipo nos preguntaría si nos pasa algo. Esa situación trabajando en remoto no sucede. Tenemos que ser más abiertos, pedir ayuda y no solo eso, sino preguntar a las personas del equipo si necesitan ayuda. Por eso para mi es muy importante la daily, porque sirve para ver si llevamos atascados en algo mucho tiempo, si hay alguna persona libre que pueda echarnos una mano, etc.
  • Salud. cuando empecé a trabajar en casa el número de pasos que daba al cabo del día se redujo de 10.000 pasos a 3.000 pasos… no podía ser. Por ello intento levantarme más o menos cada hora, dar un paseo por mi casa y sobre todo hacer ejercicio al menos 2/3 veces por semana. Esto último es ineludible.
  • Desayuno/descanso: si en la oficina nos tomamos un descanso para desayunar, en remoto también. Eso de hacernos un café y tomárnoslo encima del ordenador hace que nuestro cerebro no descanse. Desayunar en un bar, o en otra zona de la casa, o lo que sea. En mi caso paro a desayunar, salgo del “despacho” voy a la cocina, riego las plantas y me asomo a la terraza a que me de el aire.
  • Estamos trabajando: es una de las cosas que más cuesta, no solo a mi sino a la gente que nos rodea. Si estamos trabajando no creo que sea buena idea parar para tender, poner una lavadora, recoger el lavaplatos, ponerte a cocinar… no digo que no podamos hacerlo, sino que seamos conscientes de que estamos trabajando.
  • One to One: en mi opinión es una de las tareas más difíciles, tener conversaciones privadas a través de una pantalla es difícil, es más, en mi caso aprovecho los días que voy a la oficina para hacer todas las reuniones posibles.
  • Salir de casa: está relacionado con las dos primeras, creo que es necesario salir de casa al menos una vez al día. Ducha, ropa de calle y a andar un poco. En mi caso es fácil porque tengo que recoger a la peque a la guarde, o ir al parque,.. pero cuando eso no sucede tengo que salir sí o sí.

Resumen

Trabajar en remoto es una opción como cualquier otra, no es mejor ni peor. Es cierto que no todas las personas les gusta esta forma de trabajar y también es cierto que no todas las empresas están preparadas para el trabajo el remoto. Lo que si es cierto, es que es una opción muy valiosa y que las empresas que puedan ofrecer remoto (aunque solo sean unos días a la semana) tienen más posibilidades de encontrar talento.

Para mi lo más importante, lo que me gustaría que nos llevásemos del post es que es bueno que empecemos a tener mentalidad de “remoto”: a no interrumpir, a mover conversaciones a otros medios más digitales (comentarios en un issue tracker aka. Jira, chat de Slack,…), a pensar en la persona que tenemos al lado antes de recibir una llamada de teléfono, en resumen a ser más “remotos”. Al final, si algún día tenemos que trabajar desde casa, tendremos mucho ganado si somos digitales.

Desarrollo de software en provincias: de Madrid al cielo

2 años desde que dejamos Madrid para volver a Sevilla. En este tiempo han pasado muchas cosas: nuevo trabajo, nuevos compañeros, un par de mudanzas, una hipoteca,… voy a contaros como fue ese “salto”.

Las razones por las que me cambié son claras: queríamos vivir más cerca de la familia (el AVE ya cansaba) y Madrid con un bebé lo veíamos logísticamente “complicado”. En cuanto al salto… son muchas dudas empezando por: yo me voy con lo que parece un buen trabajo (incluso en las entrevistas hice preguntas que no se me hubiesen ocurrido hacer en otro caso), pero ¿qué pasa con mi pareja?

Ese es la primera gran “pregunta”: ¿qué pasa con mi pareja?

Ella tenía un trabajo genial en Madrid, saltar a Sevilla parecía que la abocaba al paro. Buscar trabajo en Sevilla, sin conocer el mercado: ¿Qué empresa va a contratar a una mujer en edad de tener niños? Quizás os parezca surrealista pero mi pareja ha escuchado en más de una jod* entrevista las preguntas: ¿Tienes hijos? ¿Piensas tener más? Al final, (con un poco de suerte) consiguió tele-trabajar desde Sevilla y viajar a Madrid regularmente. Antes de saber que iba a continuar trabajando lo único que hacíamos era rellenar Excels con supuestos (suponiendo que no ingresamos nada, suponiendo que encuentras algo media jornada, suponiendo,…)

Otro de los miedos que teníamos es ¿Qué pasa si sale mal?

Si sale muy mal desde el principio, podríamos dar marcha atrás. Puesto que el primer mes teníamos el piso de Madrid y estábamos buscando algo en Sevilla.
Pero y ¿si sale mal, más tarde? Esa era otra de las preguntas. Cambiarse de ciudad es costoso(tiempo +  esfuerzo + dinero):
– Buscar piso (en un principio de alquiler) en una ciudad nueva, es cierto que ya habíamos vivido en Sevilla antes, pero vivir de estudiantes en zonas de estudiantes no es lo mismo que buscar piso para una familia,.
– Gestionar una mudanza. Teníamos un piso en Madrid, nada en Sevilla, muebles, ropa y casi 6 años de vida en otra ciudad.
Guardería: Mi hija tenía una guardería que habíamos seleccionado con mimo. En Sevilla teníamos que esperar a saber dónde iba a estar el piso, para luego dar vueltas buscando guarderías con plazas y que se adecuaran a nosotros (horario, crianza,…)

En resumen, todo esto no solo mermaría nuestros ahorros, además teníamos el añadido a la inestabilidad de no saber si mi pareja iba a tener trabajo hacía de la vuelta a Sevilla suponiendo que mi trabajo fuese todo perfecto. Un salto casi al vacío.  Al final no salió mal, de hecho salió bastante bien: en mi trabajo pasamos de ser una startup pequeñita a ser parte de un grupo multinacional, mi pareja no solo continuo “teletrabajando” sino que cambió de trabajo, con la pequeña encontramos guarderías que encajaban-

Una de las cosas buenas de Madrid es la cantidad de ofertas de empleo. Si al cambiar de una empresa a otra sale mal, es más fácil encontrar otra nueva empresa o volver a la anterior. Es cierto que el mundo IT está muy loco pero creo que en Madrid tienes más oportunidades. Del mismo modo, no significa que en Sevilla no haya movimiento, De hecho sí lo hay: Qashops fue adquirida por Vente Privee (esta es la adquisición que más me alegró), Bitnami fue adquirida por VMWare, Geographica fue adquirida por Carto, Optima, Sngular, AtSistemas, cada más empresas ofrecen remoto,… el ecosistema en Sevilla es genial, solo que en mi opinión es más lento y al ser una ciudad más pequeña “todo el mundo se conoce”.

En cuanto al movimiento, en Madrid asistía a Meetups y conferencias. habitualmente Pensaba que al volver a Sevilla esto iba a ser complicado.Nad pero ni más lejos. En Sevilla hay una comunidad sorprendente. Existen multitud de Meetups: PHPSevilla, SVQJUG, GesProSev, DataBeers, SevillaJS, TypescriptSevilla,… y planificando un poco es posible ir a Madrid/Barcelona para alguna conferencia de vez en cuando. En resumen, sorprendente la calidad y cantidad de movimiento que tenemos por el sur.

Otro punto de los más controvertidos son “los costes de la vida” . En mi caso el coste básico de la vida en Sevilla no es menor que en Madrid. Puntualizo. El alquiler no ha variado ni un ápice (pagaba lo mismo que en Madrid). En cuanto a la cesta de la compra pues lo mismo, Carrefour tiene casi los mismos precios en Sevilla que en Madrid, la gasolina cuesta lo mismo.

En la parte que sí se nota es el ocio: ir de tapas, ir al cine, un café,… aunque por otro lado se nota en la diversidad: en Madrid puedes ir a un libanés, thai, japones, surcoreano, etíope, comer baos, manolitos, lolopolos…
Para mi una de las factores más favorables es que aunque no pueda comer en un coreano, ahora mi pequeña puede comer en casa de sus abuelos más a menudo que antes.

Del mismo modo que en el ocio la diversidad también se ve reducida en otros aspectos como por ejemplo: encontrar una guardería abierta en Agosto en Sevilla, colegios no religiosos,…

Recapitulando, para mí ese salto casi al vacío del que hablábamos al principio ha sido una alegría.No voy a negar que hemos tenido algo de suerte.
En el plano laboral ahora formamos parte del grupo Vente Privee, mi pareja tiene trabajo estable, mi hija va a una guardería estupenda.
Si bien es cierto que antes de venir tuvimos muchísimas dudas, al final con esfuerzo todo ha salido a pedir de boca. Como anécdota cuando mi pareja y yo estábamos analizando y charlando sobre la vuelta “a casa” siempre terminábamos nuestras conversaciones con: ¿qué es lo peor que puede pasar? Volvernos a Madrid, pues si ya estamos aquí y tan mal no nos va ¿no? Es de las conversaciones que recuerdo con más cariño.

Después de estos 2 años recordamos ese tiempo y nos reímos porque finalmente lo hemos conseguido: disfrutar de nuestra familia que antes teníamos lejos, ir a la playa en menos de 2 horas, pasear por una ciudad tan preciosa como Sevilla, una piso estupendo, hemos reducido el tiempo de ir al trabajo, vivimos felices… en definitiva en provincias nuestra vida ha mejorado

¿Cómo saber si encajaré con la cultura de empresa? Pregunta en la entrevista

Se habla mucho de cultura empresarial, de tener una cultura de empresa sana, de talento y de como retenerlo,… pero cuando estamos en una entrevista de trabajo como candidato ¿cómo saber si vamos a encajar? ¿la cultura será acorde a mis valores? ¿Cómo averiguarlo?

La verdad es que no hay una formula secreta, en este post voy a intentar contar algunas preguntas que he hecho para averiguar como sería trabajar en ese sitio y si de verdad la oferta encaja en lo que busco.

Sigue leyendo “¿Cómo saber si encajaré con la cultura de empresa? Pregunta en la entrevista”

go y json

Vamos a seguir aprendiendo un poco más acerca de GO.
En la serie de posts hemos creado una aplicación para ver la puntuación de un jugador y para añadir un punto dado un jugador.
Es la hora de empezar con aprender JSON.
Para ello ampliaremos la API con un nuevo endpoint que nos devuelva la lista de jugadores y sus puntos en formato JSON.

5519473590_20a555fdf9_z.jpg

Añadir el endpoint:

  • GET /league que devuelve la lista de jugadores con sus puntos

Sigue leyendo “go y json”

Retrospectiva y objetivos 2019

Va llegando final de año y es hora de echar la vista atrás, analizar todo lo que ha pasado este año y ver como mejorar para el próximo año. Si tuviera que resumir 2018 en un titular sería: “A velocidad de crucero”.

Cuando vine a Sevilla pensaba que no iba a poder ir a muchos meetups, conferencias,… pero todo lo contrario. Me he encontrado que aquí la peña se mueve un montón y siempre están dispuestos a echar un cable. Así que repasando un poco he ido a: varios PHPSevilla, a varios SVQJUG (incluso uno en inglés de la sevillana Trisha Gee), Databeers, Management 3.0, Taller de organización del backlog con LEGO, Taller de cocina,…  y además me dió tiempo a escaparme a Madrid para la MadridSoftwareCrafter, la TarugoConf + Taller “Programar con escafandra” en la TarugoConf.

Incluso le eché valor y presenté una charla sobre “git y personas” en la Commitconf (la experiencia fue emocionante y aprendí muchísimo).

Sigue leyendo “Retrospectiva y objetivos 2019”