Conseguir un proyecto remoto freelance como desarrollador de software puede ser un poco distinto a conseguir un trabajo fijo con entrevistas on-site. Conocer a tu cliente solamente por calls puede ser un desafío para mostrar tus habilidades y demostrar que serías un buen fit para el proyecto. Sumado a esto, algunos clientes necesitan un desarrollador por un corto periodo de tiempo lo que hace que no haya tiempo de hacer extensas entrevistas con ejercicios de código para hacer en casa y entregar.
Este posteo es una recopilación de experiencias que tuve donde distintos factores determinantes hicieron que consiga el trabajo o clientes a lo largo de los años.
Todas las experiencias que comparto a continuación están acompañadas de MUCHISIMA SUERTE. Estar en el momento y lugar correcto pesó mucho más a la hora de conseguir un proyecto que cualquiera de los puntos de esta lista.
Conocer las nuevas tecnologias
Comencé mi carrera como programador iOS en Marzo de 2014 con Objective-C en una software factory que se especializaba en desarrollar apps para terceros. Un par de meses después Apple dio un golpe a la mesa anunciando [Swift en la WWDC 2014](announcing Swift in WWDC 2014. En aquel entonces no estaba muy seguro de lo que esto significaba, sabia que era una gran oportunidad ya que repentinamente todos los desarrolladores pasamos a tener el mismo nivel de experiencia en este nuevo lenguaje. Seguimos programando las aplicaciones de los clientes en Objective-C pero comencé a jugar con Swift por mi cuenta. Aunque tenia poca experiencia con la plataforma y no estaba seguro de lo que estaba haciendo seguí programando en Swift y aprendiendo todo lo que podia en ese periodo.
Adelantando algunos meses a principio de 2015 comencé a buscar distintas oportunidades de trabajo. Tener un buen Inglés abre numerosas oportunidades pero mi experiencia no era suficiente. Allí es cuando este punto de “conocer las nuevas tecnologías” entró en juego. Un compañero estaba aplicando para entrar a Toptal y me animó a hacerlo. No tenia nada que perder así que apliqué. Para mi sorpresa mis meses de experiencia con Swift pesaron más que mi falta de años programando en iOS. Los clientes pedían desarrolladores familiarizados con el nuevo lenguaje de programación solamente porque era lo ultimo que había presentado Apple. Durante los primeros meses en la plataforma conseguía proyectos simplemente por haber estado jugando con Swift desde el comienzo, no muchos desarrolladores habían invertido en hacer apps en Swift entonces mi perfil resaltaba. Esos pocos meses de experiencia se fueron acumulando con los nuevos proyectos y apps subidas al App Store. Cuando Swift cumplió un año yo ya tenia proyectos hechos en Swift desde cero y había contribuido a apps en el App Store que también usaban Swift. Esto siguió mejorando mi capacidad de conseguir proyectos.
Codigo abierto o funcionalidades/codigo que puedas mostrar
Quiero comenzar esta sección mencionando que no es necesario contribuir código a proyectos open source para ser un desarrollador de software. Personalmente comencé a hacerlo porque después de un par de años de trabajo me di cuenta que no tenia ni una linea de código creada por mí que pueda mostrar. Esto no es un requerimiento muchas empresas tienen su propio proceso de entrevistas donde te piden que resuelvas un problema y usan eso para evaluar tu código.
En 2017 compartí una librería en GitHub para hacer animaciones en iOS llamada ViewAnimator, sin saberlo me abrió las puertas a uno de los proyectos más entretenidos que tuve en mi carrera. Un par de semanas después de compartir la librería Meng To creador de Design+Code twiteo que estaba buscando diseñadores y desarrolladores para que se sumen al equipo. Inmediatamente le escribí un mail mostrando mi trabajo previo y la librería nueva. Meng la reconoció ya que había sido compartida en algunos newsletters de iOS y estaba en la lista trending de GitHub Explore.
En ese mismo día tuvimos una call y al proximo día ya estaba escribiendo codigo para la app iOS de Design+Code que salió al publico unos meses después. No estoy seguro que hubiera pasado si no hubiera tenido código para mostrar cuando le escribí a Meng. Pero en este escenario en particular poder mostrar mi propio código fue una gran ventaja.
Escribir articulos
Seguramente muchos bloggers pueden escribir una mejor sección sobre su experiencia consiguiendo proyectos mediante su sitio/blog. De todas formas creo que este punto puede ser util para desarrolladores como yo que tienen un sitio/blog donde rara vez escriben.
Blogging, de la misma forma que compartir código, te deja mostrar tus soluciones a un problema. En muchos casos puede ser hasta mejor que simplemente compartir código ya que nos da la libertad para mostrar todo nuestro proceso de pensamiento y también demostrar porque otras alternativas no funcionan.
Después de compartir mi primer post en twitter recibí un mensaje de una persona que trabajaba en un equipo de la NBA. Estaban haciendo un producto interno basado en búsquedas para sus scouts. El posteo explora un solución usando componentes nativos para lograr una UI muy similar a la del App Store. Esto era exactamente lo que querían en su herramienta y me contactaron para implementar una idea similar en toda su app ya que la búsqueda era una funcionalidad esencial del proyecto.
Una o dos semanas después de este chat ya estaba haciendo trabajo de consulting para armar una arquitectura que soporte todas sus funcionalidades relacionadas con búsquedas.
Como mencioné anteriormente todos estos puntos vienen acompañados de mucha suerte de estar en el lugar adecuado en el momento adecuado y tener la oportunidad de mostrar lo que puedo hacer a clientes que están buscando contratar a alguien.
Related Posts
My experience getting remote freelance projects as an iOS Developer
This post is also available in Spanish Getting a remote freelance project as a software developer can be slightly different than getting a regular job through on-site interviews. Meeting another... Keep reading