Skip to content

Instantly share code, notes, and snippets.

@mrexojo
Forked from gimenete/readme.md
Created November 20, 2018 07:45
Show Gist options
  • Save mrexojo/acba72653fdc5f0f98cbabbf9ce87e56 to your computer and use it in GitHub Desktop.
Save mrexojo/acba72653fdc5f0f98cbabbf9ce87e56 to your computer and use it in GitHub Desktop.
Notas para orientación profesional como programador

Tras este tweet que publiqué

He sido freelance, emprendedor y trabajo desde hace años para empresas USA de diversos tamaños en remoto como programador fullstack. Ahora en GitHub. Si puedo ayudar a alguien en orientar su carrera, mis DMs están abiertos. Ask me anything.

he recibido muchos mensajes y escribo aquí algunos de los consejos que he dado en resumen. Nota: algunas cosas son concretas de trabajar en España. Si vas a trabajar desde Sudamérica sólo una nota: tienes la ventaja de la zona horaria para trabajar con EEUU.

Inglés

Tener un buen nivel de inglés es fundamental para poder trabajar con clientes extranjeros. El conocimiento del idioma tiene que mantenerse en el tiempo. Es como mantenerse en forma física; si lo dejas, lo pierdes. Personalmente aunque trabajo 100% en inglés desde hace bastantes años, intento crearme un entorno diario con el idioma para no perderlo:

  • Escuchar podcasts en inglés. Fundamental para mi casi a diario. Otra opción es escuchar audiolibros con plataformas como audible por ejemplo. Pero los podcasts me resulan más amenos.
  • Escribir artículos. Esto ayuda muchísimo dado que tienes que componer una estructura larga y coherente.
  • Leer en inglés
  • Acude a meetups en tu ciudad que sean en inglés
  • Ver contenido en VO en inglés. A ser posible sin subtitular, y sino, subtitulado en inglés.

Algunos trucos para tener una buena comunicación, en cualquier idioma, pero particularmente para que no haya malentendidos y para tener fluidez:

  • Prepárate lo que vas a decir antes de una reunión. Así tendrás tiempo para elegir las palabras adecuadas y comunicarte de forma más fluida. Además a nuestro cerebro le cuesta un tiempo cambiar de un lenguaje a otro si no eres nativo, así mejor que estés preparado para la reunión.
  • Si te hacen una pregunta y no estás 100% seguro de lo que te han dicho, repítela con tus propias palabras. Ej: "so, the question is [tus propias palabras], right?"
  • Concluye la reunión con los "next steps" que has entendido. Ej: "ok, so I'll do xxx right away, and afterwards I'll check if xxx. Once I'm done I'll ask xxx to review it.". Sobre todo si crees que te estás dejando algo, pregunta "Let me know if I'm missing something".
  • Si de verdad no te estás enterando muy bien de algo, pídelo por escrito. Ej: "Ok, can you write that down [in an email, in an issue,...] so I don't miss any of the details?"

Freelancer

Aquí hablo de trabajos puntuales, no trabajo relativamente indefinido como autónomo (contractor).

Darse a conocer

Muchas personas me han preguntado sobre cómo darse a conocer. Yo particularmente me he movido desde siempre en grupos de interés local sobre diferentes tecnologías, foros, listas de correo,... así que siempre he estado visible y por ello no he tenido que buscar mucho para que me llegaran solicitudes de presupuesto. Así que una cosa que recomendaría es precisamente eso: hacerse visible. Algunas ideas:

  • Date de alta en páginas dedicadas a trabajo freelance
  • Mantén un perfil de LinkedIn atractivo
  • Página personal / portfolio
  • Acude a eventos y preséntate. Yo acudía a eventos sobre todo de emprendimiento
  • Cuando acudas a un evento twitea con el hashtag del evento e inserta una cuña presentándote. Ej: "A punto de empezar #evento. Mucha gente interesante por aquí. Por cierto soy programador freelancer para iOS por si alguien tiene alguna necesidad en la que podamos colaborar"

Marketplaces

Otra forma de conseguir trabajos es ir directamente a un marketplace:

Contrato

Yo solía cobrar 30-40-50% al inicio del proyecto, otro tanto al finalizar el proyecto, y el resto tras un mes de garantía en el que se podían hacer arreglos (no nueva funcionalidad). La nueva funcionalidad se paga a parte en un nuevo contrato o bien por horas si son cosas puntuales pero no estaban contempladas. Esto tiene que ir reflejado en un contrato en el que también se tiene que definir la funcionalidad a grandes rasgos.

Alguna vez he trabajado por sprints de dos semanas, pero es difícil explicarle al cliente por qué esa forma de trabajar es mejor y por qué no le puedes estimar cuántos sprints son necesarios para hacer una aplicación relativamente compleja.

Como autónomo tendrás que pagar la cuota de autónomos. El mínimo a día de hoy es de ~300€. Ten en cuenta que si pagas el mínimo estás cotizando muy poco a la seguridad social, con lo que cobrarás menos por bajas y sobre todo menos de pensión. Si estás empezando está bien pagar el mínimo pero conviene que lo subas con el tiempo.

Recomiendo que una gestoría te asesore y te lleve los papeles. Recomiendo cuéntica.

Trabajo remoto

Dónde buscar

Hay diversos portales dedicados a ofertas de trabajo en remoto o bien que permiten especificar que el trabajo es remoto. Ejemplos:

Si no conoces de nada alguna de las empresas que publican ofertas (normal si no es grande), puedes echar un vistazo a Glassdoor. En esa web trabajadores dejan opiniones de la empresa, candidatos dejan opiniones del proceso de contratación, etc.

Contrato

Si trabajas para una empresa extranjera, sobre todo si es fuera de la UE, te pueden contratar de dos formas fundamentalmente:

  • Contractor / corp2corp / autónomo. Normalmente firmarás un contrato de obra y servicio (no laboral), harás facturas y tal. Pero en la práctica trabajas a tiempo completo para una empresa a la que tienes que pedir vacaciones, llevar un horario más o menos aproximado, etc. En España si te "contratan" así eres un fálso autónomo (figura ilegal) o si facturas a más de un cliente entonces serías un TRADE (trabajador autónomo dependiente). Pero como te contrata una empresa extranjera, es una práctica frecuente porque sino contratarte podría significar tener que tener visado / permiso de trabajo en el país donde reside la empresa. En este caso pagas impuestos como cualquier autónomo. Ten en cuenta que por tanto te pagarás tú la seguridad social. De nuevo recomiendo una gestoría como por ejemplo cuéntica.
  • Contratado en nómina. Si es una empresa dentro de la UE, aunque no sea española, podrá contratarte en nómina (régimen general de la seguridad social), o si es una empresa grande puede que tenga ya filiales dentro de la UE para poder contratarte así. Como curiosidad GitHub te puede contratar si resides en España, pero no en todos los estados de EEUU (ej: no en Vermont).

Salario

Si trabajas para el extranjero lo normal es que el salario sea más elevado que en España. Algunas empresas te pagan como si estuvieras en el país, pero son las menos. Normalmente el salario es bastante más alto, pero no se suele llegar a lo que cobrarías si trabajaras en unas oficinas en la sede. Por ejemplo Buffer tiene una calculadora de salarios que aplica un multiplicador según donde vivas.

Zona horaria

Si trabajas en remoto para una empresa basada en EEUU o Canadá, tendrás el problema de la zona horaria. Será más fácil si trabajas para la costa este (NYC, Boston normalmente) que para la costa oeste (San Francisco / Silicon Valley normalmente). En mi experiencia se intenta trabajar lo más asíncronamente posible para que cada uno pueda tener el horario que más le convenga. Pero en la práctica se suele estirar siempre la jornada para tener las máximas horas de overlap posibles. En la anterior empresa en la que estuve había una obligación de tener 4-5 horas de overlap con lo que normalmente yo terminaba de trabajar sobre las 8 de la tarde casi siempre, sino más tarde. Ahora que estoy en GitHub tengo más flexibilidad y puedo terminar antes.

Trabajando solo?

Durante muchos años como freelancer yo he trabajado en bares donde poco a poco me juntaba con otros freelancers. Luego algunos alquilamos una oficina para trabajar juntos, y durante un tiempo hemos estado en un centro de negocios / coworking. Para mi es la forma de separar mi casa del trabajo, y relacionarme con gente de mi mismo sector.

Consultoría vs producto

Habrá fundamentalmente dos tipos de empresas en las que trabajar: consultoras o empresas de producto. Pros y contras de cada una:

  • Consultoras: yo trabajé más de 4 años en una consultora basada en NYC; me gustó poder cambiar de proyectos, equipos y tecnologías cada varios meses. Para entrar bastó con mi CV y una entrevista. Así que igual estoy sesgado, pero considero más fácil entrar en una de estas empresas. Como contra es que los objetivos de la empresa se centran mucho en cumplir las deadlines sobre cualquier otra cosa y que algunos clientes dejan mucho que desear. Otro conta es que los "benefits" suelen ser bastante limitados (vacaciones, permiso maternindad/paternindad, bonus a parte del salario, etc.)
  • Producto: en estas empresas en mi opinión te involucras más en los proyectos porque son a más largo plazo o porque tienes más cercanía con el usuario final o porque puedes "mimarlos" más ya que las deadlines no suelen ser tan duras. Los benefits suelen ser mejores (vacaciones, etc.) e incluso puede que te den acciones de la empresa. Comparado con la consultora en la que trabajé (entré con un CV y una sola entrevista) en GitHub hice como 10 entrevistas y 3 ejercicios técnicos durante 7 semanas.

Qué tecnologías aprender

Hay gente que me ha preguntado qué aprender, o bien porque empezaban en la programación, o porque querían un cambio. Lo primero que recomiendo es: aprende lo que te guste. Pero también entiendo que la gente busque cosas bastante demandadas. Para eso recomiendo echar un vistazo a los datos de la encuesta stackoverflow 2018.

También es una buena idea especializarse en nichos potentes: machine learning, ciberseguridad,...

Y también he recomendado JavaScript en bastantes casos porque es un lenguaje que te permite moverte fácilmente entre backend (Node.js), frontend y mobile (ej: React Native).

Finalmente, recomiendo mirar ofertas de trabajo, sobre todo de empresas en las que te gustaría trabajar, y ver qué piden.

Búsqueda de trabajo

Aunque no estés en búsqueda activa de empleo, pero te ronda un cambio, o pronto sabes que buscarás trabajo, recomiendo ir a los portales de trabajo YA, y analizar las ofertas para ir preparándote. Así vas viendo qué piden, qué ofrecen, etc.

Luego prepara tu CV para cada oferta en concreto. Borra cosas que no interesen para una oferta en concreto, elabora más partes que sí interesen.

Preguntas que tienes que saber responder:

  • Por qué quieres trabajar para esa empresa?
  • Por qué ahora?
  • Por qué deberían elegirte?
  • Qué es de lo que más orgulloso estás de tu carrera profesional?

Si no tienes mucha experiencia, tienes que demostrar de lo que eres capaz con muy poca información. Recomiendo solucionar eso con:

  • Proyectos personales. No hace falta que sean 100% funcionales. Pueden ser experimentos creativos. O puedes no ser en absoluto creativo y crear clones. Ej: clón de alguna página o app popular: medium, airbnb, whatsapp,... No hace falta que esté listo "para producción". Basta con que puedas enseñar algo o parte de algo que demuestre tus capacidades. A día de hoy puedes usar servicios cloud que te ofrecen de todo y puedes conectarlos haciendo algo interesante sin tener que tener infraestructura.
  • Contribuciones open source. Esto puede ser complicado, pero también es una posibilidad.
  • Escribir artículos.

Finalmente, no te amedrentes si no cumples todos los requisitos de una oferta. Se suelen poner demasiadas cosas. Las ofertas suelen ser una whishlist que pocos candidatos pueden cumplir 100%. La mayoría de las cosas son "nice to have" que si eres una persona capaz, podrás aprender una vez estés dentro de la empresa sin mayor problema.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment