Post Mortem Menumy. O por qué no despegó nuestra Startup.

He comentado en este blog que soy, junto con otros 3 socios, fundador de una Startup llamada Menumy, o mas bien lo era, ya que hace un par de meses y después de un año de operar, decidimos terminar definitivamente el producto e iniciar a pensar en nuevas ideas.

En resumen, Menumy era una aplicación móvil para hacer más eficiente el servicio que recibes al ir a un restaurante: Llegabas al lugar, te sentabas y al instante podías empezar a pedir desde tu celular sin tener que esperar a que el personal llegara a atenderte, ideal para lugares concurridos y juveniles, para nosotros Menumy tenía estas ventajas:

  • Mayor rapidez y estandarización de la atención.
  • Meseros con menos estrés, ya que solo se encargaban de llevar la comida y tomar pedidos a quienes no usaran la app.
  • Menos errores al tomar los pedidos.
  • Más control de lo que se vendía = menos pérdidas.

La idea es loca pero decidimos ir por ella porque le vimos potencial a futuro, y de hecho hubo personas que en realidad les gustó y restauranteros que se dieron la oportunidad de probarlo, era muy emocionante ver cómo a ciertas horas la mitad del restaurante funcionaba «A control remoto» 📱→🍔=😁. Incluso llamó la atención de los inversionistas de YCombinator, los mismos que financiaron empresas como Pinterest, Airbnb y Dropbox, y nos invitaron a hacer una entrevista con ellos en San Francisco con todos los gastos pagados.

Aprovechamos para visitar la isla de Alcatraz 😅.

Pero después de un tiempo funcionando nos dimos cuenta que la idea no despegaba, la startup en realidad era un zombie, no estaba muerta pero tampoco lo suficientemente viva, no crecíamos lo suficiente en usuarios y los restaurantes entraban pero su proceso era muy largo, después de algunos meses de estar así decidimos que lo mejor era tomar otro camino y terminar con esta idea.

Por cierto hasta tuvimos un comercial 😁 aquí lo puedes ver:

Es difícil dar una sola razón concreta por la que pasó esto, pero tenemos algunas ideas del por qué y las queremos compartir para que otros aprendan de ellas, y para que nosotros mismos en el futuro también evitemos caer en los mismos errores, así que aquí van:

  1. El negocio era demasiado caro de mantener y no podíamos cobrar mucho: Nuestra operación y ventas era muy alto, en cada mesa teníamos que poner un letrero con el número de mesa, estos se perdían o dañaban y había que cambiarlos constantemente, los restauranteros tienen un buen margen de utilidad pero no lo suficientemente alto como para que el cobro cubriera todo esto. La moraleja aquí es planear los gastos que tendrás, siempre terminan siendo más altos de lo que crees.

  2. El proceso de onboarding para restaurantes era muy largo: Los restauranteros son personas muy pero muy tradicionales, reacios a innovar (al menos con los que tuvimos contacto), pertenecen más a un sector de clientes pragmatista «Lo quiero pero hasta que vea que el otro lo tiene también», esto hacía que el proceso de ventas, que en un inicio pensamos que sería de una semana, se alargara hasta por meses. La moraleja aquí es que visualices bien tu proceso de ventas y lo incluyas en tus gastos, también que evalúes el tipo de clientes que tendrás y si se adecúan a tu producto, o mejor, adecuar tu producto para ellos.

  3. Desconocimiento de marketing: Esto lo explico un poco en este otro post, pensamos que una vez que hiciéramos la app todo mundo vendría a usarla, pero nos dimos cuenta que el marketing es tan, o yo diría que incluso más importante, que el mismo producto, hicimos esfuerzos en este tema pero la verdad es que éramos novatos y cometimos el error de subcontratar esta tarea, la verdad no se los recomiendo. La moraleja de este error es, no subestimes las ventas y mercadotecnia, pues terminan siendo más relevantes que el mismo producto.

  4. No teníamos el apoyo del personal del restaurante: El personal de los restaurantes donde estábamos temía que la aplicación los sustituyera en algún punto, aunque este nunca fue nuestro objetivo, siendo honestos si era algo que podía llegar a suceder, así que hasta cierto punto los entendíamos. Por más que hicimos para convencerlos de que no era lo que queríamos, notamos ciertos «sabotajes» por su parte, por ejemplo por medio de mistery shoppers (Amigos nuestros disfrazados de clientes), nos dimos cuenta que si querían pedir con la app, no habían puesto los letreros en las mesas o les decían que la app no estaba funcionando, que les hicieran los pedidos a ellos, esto también nos afectaba porque esa persona ya no volvía a usar la app. Aquí la moraleja es, siempre tendrás personas que no les guste tu producto, pero trata de que tu producto no afecte a las personas.

  5. El problema no era tan doloroso como pensamos: El problema que resolvíamos era más un lujo que un problema en sí, teníamos un nicho muy pequeño de personas que en realidad les encantaba la app, pero la mayor parte de las personas no tienen problema con esperar un poco y hablarle al mesero si necesitan algo, la moraleja aquí es buscar un problema que sea urgente, relevante y costoso si lo haces de otra manera.

Puede haber otras razones, pero creemos que estas son las principales, seguimos pensando que es una buena idea y que en el futuro así es como funcionarán las cosas, pero todavía no es el momento. Con lo que nos quedamos cómodos es que no quedó en nosotros, hicimos lo que pudimos y no fue por falta de empeño o porque el equipo no hiciera un buen fit.

Si alguna vez te tocó usar Menumy te damos las gracias por el apoyo y esperamos que hayas disfrutado usar la app tanto como nosotros desarrollarla. Y como esto del emprendimiento es un estilo de vida más que un chispazo, estuvimos pensando en nuevas ideas y ya elegimos la que será la siguiente, pero esa es otra historia que les estaré comentando en un futuro cercano.

Por qué, siendo desarrollador de software, decidí aprender Marketing Digital

Antes de iniciar a leer, quiero informarte que este Post es una tarea de un curso de Marketing Digital que estoy tomando, y una breve historia de por qué decidí tomarlo, ahora sí, si te interesa puedes seguir leyendo ✌️😁.

Hace algún tiempo ya inicié con este blog y también empecé a crear cursos en español porque noté dos cosas:

  1. La mayoría del contenido de calidad en temas de diseño, programación y emprendimiento está en inglés. Incluso si hablas inglés, si no eres un hablante nativo te toma más tiempo aprender algo nuevo.
  2. El contenido (en cualquier lenguaje) no está lo suficientemente resumido, tengo la idea de que no necesitas tomar un curso de 30 horas para aprender Java cuando realmente no vas a usar todo lo visto en ese tiempo tan largo, solo necesitas suficiente información para empezar a crear cosas buenas, y puedes aprenderlo en no más de 4 o 6 horas

Después de un par de años de crear contenido, noté otra cosa, aunque a mis estudiantes les gusta mi contenido y mis cursos y lo reflejan en sus comentarios y reseñas, no estaba obteniendo la tracción suficiente para llegar a más personas pero no sabía por qué, fue hasta que fundé mi propia startup, que me di cuenta: Necesitaba marketing (Entre otras causas la falta de marketing causó que mi startup no despegara, pero esa es otra historia.). Hasta el momento todo mi contenido en Hackaprende era esparcido 100% orgánicamente.

Pasé algunos meses aprendiendo sobre marketing y ventas, encontré algunas páginas web muy buenas, pero nada con la estructura que necesitaba, hasta que encontré el Digital Marketing Nanodegree de Udacity.

Marketing no es algo a lo que me quiera dedicar, pero pensé «Qué $%@jos, es algo que necesitaré toda mi vida para lo que sea que haga»

Entonces empecé con los cursos (Obtuve un mes gratis gracias a una promoción por la cuarentena, el cual puede convertirse en 2 si termino los proyectos a tiempo) y ahora estoy aprendiendo muchas cosas que no hubiera notado aunque parecen lógicas, voy por la mitad del curso y ya estoy aplicando el conocimiento, hasta ahora, mejoré la UI del blog, creé cuentas para las redes sociales relevantes para mis estudiantes, entre otras cosas que iré compartiendo. Y ya estoy viendo resultados, ¡Ayer fue el día qué más personas visitaron el blog en lo que va del año!

Pretendo terminar el curso, los mantendré al tanto de cómo va.

6 Consejos para trabajar de forma remota.

En estos días tan extraños en el mundo muchas empresas están optando por trabajar desde casa, en mi caso he trabajado así desde hace más de 5 años y me gustaría darte algunos consejos que me han funcionado en caso de que esto sea nuevo para ti.

  1. Establece un horario como si fueras a la oficina, de otra manera puede ser abrumador tener que estar siempre pendiente del correo, las tareas, etc. separa la vida personal de la profesional.

  2. Establece un punto de trabajo en tu casa: Y de ser posible que no sea en tu recámara donde está la tentación de la cama y la televisión, esto hará que tu cerebro se programe para que cuando estés en ese punto sea para trabajar. Este es mi espacio:

    undefined
  3. Vístete como si fueras a la oficina: Aunque es muy tentador trabajar en pijama o shorts, lo mejor es cambiarte como si fueras a trabajar a la oficina, esto también ayudará a que tu cerebro se ponga en modo productivo, claro hay días en que hay que trabajar cómodos también, yo uso los viernes por lo general.

  4. Comunícate constantemente: Es importante estar en constante comunicación con tus colegas y jefe para evitarles bloqueos a los demás, aunque no se espera que estén hablando todo el tiempo, la comunicación puede ser asíncrona, solo no te pierdas por un día entero de silencio, para esto pueden usar herramientas como Slack o Basecamp.

  5. Utiliza herramientas para tener disciplina: La procrastinación es uno de los mayores problemas de trabajar remotamente, pero tampoco podemos estar pegados todo el día a la computadora o lo que sea que usemos para trabajar, así que para tener un equilibrio te recomiendo el Método Pomodoro, un método que te permite intercalar períodos de trabajo y descanso.

  6. Deja claro a tu familia que estás trabajando: Pasará mucho que te pidan hacer esto o aquello, deja claro que estás en horario de trabajo para que no haya problemas.

Consejo de programación: Don’t Repeat Yourself (DRY)

Muchas veces toca crear código que se va a utilizar en varias partes, por ejemplo, supongamos que tenemos un programa que debe contar el número de veces que un caracter se repite dentro de un 3 strings que insertes consecutivamente y sumar los totales, una solución con un ejemplo en Java podría ser esta:

public static void main(String[] args) {
    System.out.println("Inserta una letra para buscar, si insertas más de una se tomará la primera");
    Scanner scanner = new Scanner(System.in);
    char charToSearch = scanner.next().charAt(0);

    System.out.println("Inserta el primer String");
    String myString = scanner.next();

    int firstTotal = 0;
    for (int i = 0 ; i < myString.length() ; i++) {
        char currentChar = myString.charAt(i);
        if (currentChar == charToSearch) {
            firstTotal++;
        }
    }

    System.out.println("Inserta el segundo String");
    myString = scanner.next();

    int secondTotal = 0;
    for (int i = 0 ; i < myString.length() ; i++) {
        char currentChar = myString.charAt(i);
        if (currentChar == charToSearch) {
            secondTotal++;
        }
    }

    System.out.println("Inserta el tercer String");
    myString = scanner.next();

    int thirdTotal = 0;
    for (int i = 0 ; i < myString.length() ; i++) {
        char currentChar = myString.charAt(i);
        if (currentChar == charToSearch) {
            thirdTotal++;
        }
    }

    int total = firstTotal + secondTotal + thirdTotal;
    System.out.println(total);
}

Como ves es mucho código repetido, imagina que hay un error dentro del for, lo tendrías que corregir 3 veces, además de que si en algún punto necesitas que en vez de evaluar 3 strings sean 4 tendrás que agregar todavía más código.

Hay un convenio en programación llamado DRY, «Don’t Repeat Yourself » o «No te repitas», básicamente se refiere a que si ves código repetido, metas ese código en un método en vez de ponerlo aquí y allá.

Una vez aplicado el consejoDRY, el ejemplo de arriba quedaría como:

public class Main {

    public static void main(String[] args) {
        System.out.println("Inserta una letra para buscar, si insertas más de una se tomará la primera");
        Scanner scanner = new Scanner(System.in);
        char charToSearch = scanner.next().charAt(0);

        System.out.println("Inserta el primer String");
        int firstTotal = getTotalCharsInString(scanner, charToSearch);

        System.out.println("Inserta el segundo String");
        int secondTotal = getTotalCharsInString(scanner, charToSearch);

        System.out.println("Inserta el tercer String");
        int thirdTotal = getTotalCharsInString(scanner, charToSearch);

        int total = firstTotal + secondTotal + thirdTotal;
        System.out.println(total);
    }

    private static int getTotalCharsInString(Scanner scanner, char charToSearch) {
        String myString = scanner.next();
        int total = 0;
        for (int i = 0; i < myString.length(); i++) {
            char currentChar = myString.charAt(i);
            if (currentChar == charToSearch) {
                total++;
            }
        }
        return total;
    }
}

Como puedes ver ahora el código se redujo y todo se hace en el método getTotalCharsInString, al cual le pasamos el scanner y el caracter a buscar, si tenemos que editar el código solo editaríamos getTotalCharsInString una vez en vez de las 3.

Esto ya es un extra, pero si quieres que tu código funcione para una cantidad n de strings, puedes usar un while, así:

public class Main {

    public static void main(String[] args) {
        System.out.println("Inserta una letra para buscar, si insertas más de una se tomará la primera");
        Scanner scanner = new Scanner(System.in);
        char charToSearch = scanner.next().charAt(0);

        System.out.println("¿En cuantos Strings vas a buscar?");
        int n = scanner.nextInt();
        int i = 0;
        int total = 0;
        while (i < n) {
            // Esto es para que aparezca Inserta el string 1, porque i comienza en 0
            int stringIndexToDisplay = i + 1;
            System.out.println("Inserta el String " + stringIndexToDisplay);
            total += getTotalCharsInString(scanner, charToSearch);
            i++;
        }

        System.out.println(total);
    }

    private static int getTotalCharsInString(Scanner scanner, char charToSearch) {
        String myString = scanner.next();
        int total = 0;
        for (int i = 0; i < myString.length(); i++) {
            char currentChar = myString.charAt(i);
            if (currentChar == charToSearch) {
                total++;
            }
        }
        return total;
    }
}

No dejes el desarrollo de tu app/web en manos de alguien más.

Nunca me cansaré de dar este consejo. En el tiempo que llevo desarrollando aplicaciones móviles me he dado cuenta de un patrón, NINGUNA de las apps realmente exitosas que conozco fue creada contratando a una empresa de desarrollo de software o a un freelancer para que se las hiciera, en todos los casos de apps que iniciaron desde cero (Facebook, Instagram, Spotify, Airbnb) los mismos socios de la empresa fueron los que crearon, o al menos estuvieron directamente involucrados en el desarrollo de su app, página web, etc.

No estoy diciendo que jamás vayas a tener que contratar a alguien para delegar la parte de la programación, en algún momento tendrás que hacerlo para dedicarte a tomar más decisiones de negocios.

Este consejo aplica para todo tipo de empresas, incluso un restaurante por ejemplo, tiene muchas más posibilidades de ser exitoso si el dueño es quien al principio hace el trabajo núcleo de su negocio, una vez que esté todo controlado, entonces puede contratar un gerente que le maneje todo e incluso crear más sucursales sin problemas.

Podrá parecer contra-intuitivo, después de todo, si tienes el dinero para invertir ¿Por qué no comprar tu app a una empresa o pagarle a alguien para que la haga y listo?, de hecho esta es una pregunta recurrente que me hacen cuando les digo que yo desarrollo mis apps personalmente, esto es lo que les respondo:

  1. Las apps son un cuento de no acabar, no es algo que se entregue y ya quede listo para siempre, hay que hacer actualizaciones continuamente, incluso en periodos tan cortos como una semana, si contratas una empresa externa que te haga esta parte, te darán un producto que cuando necesite actualizaciones no podrás hacerlas tendrás que volverles a llamar, lo cual es caro y lento, incluso para cambiar el color de un botón.

  2. Pagar por desarrollar una app no es nada barato (Arriba de los $10,000 USD fácilmente para una app de mediana complejidad), mientras que si tu la haces prácticamente te sale gratis, está el tiempo que te lleva aprender, pero aprender siempre será una excelente inversión.

  3. Pagar por el desarrollo de una app tampoco es rápido, y no hablo tanto del desarrollo inicial, sino de los cambios e iteraciones semanales eternas que necesitan, cuando tú eres quien desarrolla, tienes el control de los tiempos y puedes hacer cosas muy rápidamente, en esto de la tecnología quien se mueve más rápido gana una ventaja enorme.

  4. Si tú mismo(a) desarrollas tu app, conocerás cada rincón, recuerda que es el núcleo de tu negocio, es tu producto, así que conocerlo bien es conocer tu negocio a fondo, saber qué es posible de hacer y que no, saber cuánto tiempo te llevaría agregar una nueva característica o arreglar un error, todo eso te da ventaja sobre quien no conoce su propio producto.

¿Cuándo es una buena idea pagar para que te hagan tu app/web?

  • Cuando es una empresa grande que cuenta con muchos recursos, por ejemplo los Bank of America o Netflix no hicieron ellos mismos sus apps, ya eran empresas consolidadas cuando empezaron con esto.

  • Si tu app o página web no es el núcleo de tu empresa, por ejemplo si tienes una mueblería y necesitas una página web para mostrar tu catálogo, puedes pagar a otra empresa para que te la construya.

En resumen: No dejes el núcleo de tu negocio en manos de alguien más. ¡A ensuciarse las manos se ha dicho!

¿Conoces alguna app o página web que haya sido exitosa pagando por desarrollarla desde el inicio? Coméntalo aquí.

7 Preguntas que debe responder tu página web para aumentar conversiones.

Tu página web es muy importante para dar a conocer tu producto, servicio o lo que sea que hagas, muchas veces será el primer contacto con tus posibles clientes. Es importante que sea profesional, pero más que un buen diseño, debes enfocarte en ser totalmente claro con quien visite tu página para eliminar confusiones.

Es indispensable que tu página web responda a las siguientes 7 preguntas:

1.- ¿Cuál es el llamado a la acción? Pon muy claro que quieres que haga el cliente: Que se subscriba a un newsletter, que cree una cuenta, que te pida una cotización, que te llame, por ejemplo si es un botón para suscribirse, es lo primero que debe ver el cliente al entrar y debe ser muy claro qué hace ese botón.

2.- ¿Qué haces? Debe estar muy claro que haces como negocio, olvida toda la jerga técnica y querer parecer intelectual, explica de manera clara, concisa, con palabras comunes lo que haces.

3.- ¿Es para mí? Deja claro por qué tu producto es para el cliente que te visita, no podemos resolver todo para todos, pero si resolveremos algo muy bien para algunos.

4.- ¿Se ve confiable? Como menciono arriba, el diseño no es lo primero, pero si cuida que tu página no se vea como una página de espionaje Ruso.

5.- ¿Quién más lo está usando? En el mundo hay muchos más seguidores que innovadores, muchos se sentirán más a gusto si ven que otros ya están usando tu producto. Puedes poner una sección de «Nuestros clientes actuales» para ayudarles con eso.

6.- ¿Cuánto cuesta? Cuántas veces has entrado a una página web porque te interesa un producto y te sales por la flojera de que no dice el precio y tienes que enviar un correo para preguntar, pasa más seguido de lo que crees, mostrar el precio sin miedo le dará más confianza a los clientes y tus conversiones aumentarán en vez de disminuir.

7.- ¿Dónde puedo encontrar ayuda? Que la ayuda esté visible es una gran ventaja, como cliente sientes la confianza de que no te van a dejar solo en caso de falla o dudas sobre el producto, si es un número telefónico es mejor que tener que enviar correo y aplicaciones de chat en vivo como Intercom también son muy buenas.

Estos sencillos consejos te ayudarán a tener una página web más clara y aumentar tus conversiones.

20 características de una Startup exitosa

1.- Tener un producto tan genial que la gente le cuente a sus amigos: Como cuando usaste Google por primera vez, fue tan buena la experiencia que le contaste a tus amigos “Oye conocí esta página web que bla bla bla… ” Sam Altman, ex director de YCombinator dice que si hay un secreto para el éxito de una empresa, es este.

2.- Fácil de entender: Steve Jobs decía, “La simplicidad es la mayor sofisticación”, tu producto debe ser simple de usar y simple de explicar.

3.- Tener un crecimiento exponencial de mercado: Debes empezar por un nicho pequeño pero que tenga mucho potencial de crecer, y tener posibilidad de escalabilidad, por ejemplo en una página web un solo servidor puede funcionar para 1 o para 1000 personas sin costar más.

4.- Distinguir entre una tendencia real y una tendencia falsa: Las gafas de realidad virtual son una tendencia falsa, todo mundo habla de ellas pero nadie está haciendo negocio con ellas, al menos por ahora. Mientras que los libros digitales son una tendencia real, cada vez más gente los usa.

5.- Al menos uno de los socios y de preferencia todos deben ser evangelizadores del producto: Estar muy seguros de su producto y ser excelentes al transmitir ese ánimo y seguridad a clientes e inversionistas.

6.- Tener una visión ambiciosa: Pensar en grande, tu producto no se limita a tu ciudad, ni siquiera a tu país.

7.- Empresa difícil vs empresa fácil: Una empresa fácil tiene más probabilidad de ser exitosa, pero si una empresa difícil es exitosa sus beneficios son 100x mayores a una empresa fácil, además de que llama más la atención, vale la pena arriesgarse para ser innovador.

8.- Tener una visión confiada del futuro: Según Alan Kay “La mejor manera de predecir el futuro es inventándolo” Tener la certeza de que te va a ir bien y de que vas por buen camino, no dudar de tus habilidades y aptitudes, tener una actitud tenaz, en todo momento sufrirás el síndrome del impostor, ignóralo.

9.- Confiado y flexible: Debes tener seguridad, esto involucra saber tomar decisiones y ser flexible cuando se requiera un cambio, tener la confianza como en el punto anterior de que tus decisiones van encaminadas al éxito, pero también saber cuándo pivotear y no ser obstinado(a) si tu producto no va por el camino que crees que debería.

10.- Es grande si funciona: Ir por todo, si no funciona ni modo pero si funciona debe ser algo enorme, algo sin precedentes, algo como Uber, Facebook, Tesla, Google, Apple, etc. Es muy muy difícil pero la gratificación también es muy muy buena.

11.- Buen equipo: Una Startup con un solo-emprendedor va casi destinada al fracaso, son tantas las cosas que hay que hacer y principalmente tantos cambios emocionales que necesitas a alguien en quien apoyarte y a quien apoyar, de hecho hay inversionistas cuyo mantra es no invertir en solo-emprendedores. Tener a alguien que no se rinda es lo primero, también alguien que esté dando ideas continuamente.

12.- Tener un espíritu de “Lo vamos a resolver” incluso nunca has tenido ese problema, incluso si no tienes los conocimientos necesarios en ese momento, incluso si se siente que el problema va a matar a la compañía.

13.- Olvidar eso de “No es mi problema”, “No es mi departamento”, y siempre estar dispuesto a ensuciarte las manos.

14.- ¡Actuar, actuar, actuar!: Principalmente al inicio de la empresa, actuar rápido aún cuando no tengas certeza, recuerda que “No hay decisiones malas, lo malo es no decidir”.

15.- La bendición de la inexperiencia: Es mejor no saber lo difícil que es, al inicio no tienes nada que perder, la reputación no la tienes, ni dinero (en muchos casos).

16.- Momentum: En los primeros años lamentablemente no habrá descanso, no debes quitar el pie del acelerador, de esto depende mucho. Una vez alguien me dijo “Los aviones para despegar deben poner toda la velocidad, no hay tintas medias”, lo mismo sucede con una empresa.

17.- Ventaja competitiva: Muy obvio, pero muchos lo pasamos por alto debes tener algo que te diferencie del resto y ese algo por favor, que no sea el precio, en negocios tradicionales como un restaurante es un poco más difícil pero es posible.

18.- Tener un modelo de negocios claro: No inventes el hilo negro, ya hay modelos muy buenos: Comisión, renta, una sola venta, etc.

19.- Tener una estrategia de distribución clara: ¿Como vas a crecer? ¿Como vas a obtener más usuarios/clientes?

20.- Frugalidad, enfoque, obsesión y amor por lo que haces.

¿Cuándo es el mejor momento del año para lanzar tu producto? App, página web, etc.

El mejor momento para lanzar tu producto es HOY.

¿No tienes el producto terminado aún? Termínalo y lánzalo ya. Mientras no lo hagas seguirás adivinando para saber si el producto es bueno o malo, lanzarlo te dará los datos necesarios para validar esa hipótesis, al inicio solo tienes dos objetivos: Construir el producto y validarlo, ¿Cómo? sacándolo al mercado y vendiéndolo cuanto antes posible, todo lo demás es ruido, así que manos a la obra y a lanzar se ha dicho.

«Si no te avergüenzas de tu producto es que ya lanzaste tarde», Jeff Weiner, CEO de LinkedIn

Preguntas comunes en entrevistas para programador. Parte 2: Preguntas técnicas.

En otro post vimos las preguntas NO técnicas que en mi experiencia me he encontrado al hacer entrevistas de trabajo para un puesto de programador o desarrollador, aquí mencionare las preguntas técnicas más comunes que me han hecho. Normalmente este tipo de preguntas vienen en una segunda fase del proceso de contratación, después de haberte hecho las preguntas no técnicas.

Vector de Personas creado por freepik – www.freepik.es

Las preguntas técnicas son demasiado amplias, pueden preguntarte cualquier cosa, así que trataré de englobarlas en tipos de preguntas y daré ejemplos de cada tipo para que te des una idea:

Tipo 1: Preguntas abiertas.

Algunas empresas, en especial las más tradicionales, usan en su mayoría preguntas de este tipo, son más que nada para evaluar tus conocimientos teóricos, medir tu forma de responder y saber tu dominio del tema, a continuación te pongo algunos ejemplos de preguntas que me he encontrado y las empresas que me las han hecho, las siguientes preguntas son reales y son para un desarrollador de aplicaciones móviles:

  • ¿Cuál es el ciclo de vida de una Activity en Android?
  • ¿Qué significa ANR? (Android Not Responding 😉)
  • ¿Qué es un fragment y para qué sirve?
  • ¿Qué es «Inserta un concepto» y para qué sirve?

Estas preguntas son de DirecTv y Motorola, si observas parecen preguntas de escuela, así que el consejo es estudiar bien los conceptos de lo que vayas a presentar, incluso me han llegado a preguntar ¿A partir de qué versión de Android puedes usar X característica? o ¿Cómo se llama el motor de compilación de Android?.

Hay veces que las preguntas no son relacionadas exactamente con el puesto sino con programación en general.

  • ¿Qué es un semáforo en Java? (Relacionada con Android aunque no directamente)
  • ¿Cómo usas grep en linux? (No relacionada con desarrollo móvil)

Estas preguntas son de Comcast y Universal Studios.

Tipo 2: Preguntas de código.

Aquí hay mucha variedad, te comparto las que me han tocado para que veas ejemplos.

Uber: Primero te hacen una entrevista pequeña, básicamente eran varias preguntas sobre encontrar el error en el código. Aquí te dan un segmento de código y debes encontrar el renglón donde ocurre un error y escribir el número de renglón. Después te hacen un ejercicio como el siguiente, el cual debes resolver compartiendo tu pantalla con el entrevistador en una videollamada, es un ejercicio sencillo:

  • «Crea un adapter para mostrar una lista, no importa qué contenga la lista, pueden ser Strings o cualquier objeto, con el adapter debes poder agregar, borrar o tomar elementos de la lista.»

Startups pequeñas: En las startups algo más pequeñas que he estado, normalmente te piden que muestres algo de tu código anterior y te ponen ejercicios como muy similares al de arriba, un ejemplo que recuerdo es «Crea una lista del supermercado donde puedas agregar elementos, guardarlos en una base de datos y que al girar la pantalla no se borren» Otro ejemplo fue «Crea un login sencillo que te lleve de una pantalla de Login a una pantalla principal» Al igual que con Uber son preguntas sencillas que un programador promedio debería saber.

Para este tipo de empresas lo único que necesitas es estar a la altura del puesto que quieres, no necesitas nada extraordinario, si has creado una o dos apps aunque sea por tu cuenta creo que estás listo para entrar.

Google: Esta ha sido la entrevista más difícil con la que me he enfrentado, principalmente porque mi background no es en programación así que hay temas que no conocía, la buena noticia es que Google te da un temario un mes antes de hacerte la entrevista, recuerdo que me dieron los siguientes ejercicios.

  • Encuentra el número mínimo en un arreglo usando árboles de decisiones.
  • Encuentra los números primos en un arreglo de enteros usando recursividad.
  • También hacen preguntas del tipo «¿Qué usarías para hacer una operación grande en background? a) AsyncTask, b) Service, c) Thread, d) Runnable» te hacen de 5 a 10 preguntas del estilo.


Como ves hay mucha variedad de preguntas, pero creo que podemos englobarlas en estos dos tipos que mencioné, por cierto las empresas tecnológicas también toman mucho en cuenta el carisma que tienes, tal vez un 50%. En una startup la cultura es esencial así que mientras respondes los ejercicios te estarán haciendo preguntas y comentarios para ver si tu personalidad se adapta a lo que necesitan, incluso diría que la mayoría de los entrevistadores hacen lo posible para que te quedes y te llegan a ayudar durante la entrevista tómatelo con calma y solo sé tu mismo(a), verás que te va muy bien 👍.

9 Preguntas muy comunes en entrevistas de trabajo como programador. Parte 1: Preguntas no técnicas.

Debido a que trabajé como consultor por un tiempo para diferentes empresas, he hecho más entrevistas de trabajo de las que puedo contar, algunas han sido muy fáciles y otras han destruido mi autoestima por completo 😅, pero lo bueno es que de todas se va aprendiendo, además de que cada vez controlo más los nervios, aunque creo que nunca será al 100%.

Después de algunas entrevistas, me he dado cuenta de que tienen patrones similares en cuanto a las preguntas que te hacen. En este artículo me enfocaré en preguntas no técnicas y dejaré las preguntas técnicas para un artículo posterior.

Foto de Negocios creado por katemangostar – www.freepik.es
  1. ¿Puedes platicarme sobre tu experiencia?
    Esta casi siempre es la primera pregunta, va dirigida a tu historial profesional, donde has trabajado, aunque en este punto normalmente el entrevistador ya leyó tu currículum ultra genial, quiere oírlo de ti para ver tus expresiones. Aquí puedes aprovechar para decir lo que has logrado en esos puestos, por ejemplo «Trabajé en X startup y diseñé su app principal desde cero» o si eres recién egresado «Estudié en la Universidad de Konoha e hice la página web de la facultad donde estaba».
  2. ¿Por qué te gustaría trabajar con nosotros?
    Las empresas cada vez buscan más pasión que conocimiento, algo muy importante para ellos es que en realidad quieras trabajar ahí y no lo hagas solo porque es la única opción que tienes.
  3. Cuéntame de un reto que hayas logrado en tus trabajos anteriores y del que estés orgulloso.
    Esta es una pregunta difícil y bastante común, se muy honesta con lo que respondes y no demerites lo que has hecho antes, un ejemplo personal que pongo fue que en mi primer trabajo tenía que hacer un login de Facebook en una app en una semana, cuando jamás había hecho eso y era un novato total en programación en general.
  4. ¿Qué es lo más difícil en lo que has trabajado?
    Esto les dice en qué has trabajado y qué significa difícil para ti. Puede ser que sea algo técnico o algún problema de grupo que hayas tenido.
  5. ¿Qué haces cuando hay diferencias de opiniones en cómo implementar algo?
    Pregunta muy recurrente y súper importante, al entrevistador le interesa mucho saber cómo abordas las diferencias y como trabajas en equipo, lo que respondas le dirá mucho sobre ti.
  6. ¿Estarías dispuesto a mudarte a X ciudad?
    Es una pregunta muy común, muchas veces las empresas necesitan a alguien pero no necesariamente es en la ciudad dónde vives.
  7. ¿Qué parte del puesto te interesa más o a qué te gustaría dedicarte una vez que trabajemos juntos?
    Esta pregunta también es para medir la pasión que tienes y para ver qué tan dispuesta estás a ser versátil, por ejemplo trabajar de frontend, backend, diseño, etc.
  8. ¿Cuántas horas programas a la semana?
    Creo en lo personal que esta pregunta es para medir si en verdad te gusta la programación, tal vez si dices 40 horas puedan pensar que solo programas en tu trabajo y ya en tu casa dejas todo, pero también si dices 60 podrían no creerte. La verdad es una pregunta algo capciosa pero que se me ha presentado en repetidas ocasiones.
  9. ¿Podemos continuar la entrevista en inglés?
    El inglés es muy pero muy importante para programar, si no como leeremos las respuestas de Stack Overflow 😁. Mejora siempre tu inglés, no solo para la entrevista sino para todo.

Si estás aplicando para una una startup la entrevista puede ser ser bastante relajada, mientras que en una empresa tradicional el ambiente será algo más serio, aunque aún así menos de lo que piensas, puedes estar cómodo y hablar con naturalidad. Aunque estas no son todas las preguntas que te van a hacer, si son bastante comunes, espero que te sirvan para prepararte en tu próxima entrevista. ¡Mucha suerte!.