Saltar al contenido principal

Preguntas a un ingeniero de distribución (Linux)

Por allá del 2020, fui invitado por un profesor (que resulta ser un amigo mio) del Tecnológico de Monterrey a tener una sesión de preguntas y respuestas con sus alumnos de curso sobre lo que trabajaba en aquel entonces.

Debido a la pandemia, la sesión se llevó a cabo de manera virtual y hoy me encontré con las preguntas que me realizaron. Como realmente disfruté ese momento en el que podría encender la pasión por el software libre con nuevos contribuidores potenciales, ahora comparto el contenido de las preguntas (y mi respuestas a las mismas):

(Por supuesto que, todo el contenido a continuación se basa solamente en mis experiencias y opiniones, las cuales pueden diferir de las de otras personas)

  1. ¿Qué es lo que más te emociona de trabajar como un ingeniero de distribución (Linux)?

    Amo la filosofía de compartir conocimiento y saber que todo el conocimiento o tecnologías derivadas de mi trabajo está disponible para todos, además de que puedo recibir retroalimentación sobre mi trabajo de cualquier persona.

  2. ¿Cómo usas la filosofía del software libre de manera cotidiana?

    Comunicación: Como el software libre es abierto para todos y en su mayoría los desarrolladores de software libre son voluntarios, se espera que no uses su limitado tiempo de contribución al realizar preguntas sencillas o cosas que podrías responder al leer la documentación o al buscar en un motor de búsqueda, en resumen; te enseña a comunicar mejor tus ideas y preguntas a los demás, lo cual no solo te ayuda dentro del software libre, sino que también se extiende más allá (trabajo y casa).

    Compartir: Aprendes a ser transparente con la información para una mejor toma de decisiones. Ésto porque estás acostumbrado a tener al información y las fuentes (código) a la mano.

    Aprender: No solo al leer código, sino también aprender las mejores prácticas y obtener resultados más profesionales en cualquier cosa que hagas. Durante éste proceso uno aprende a dejar ir y adoptar el mejor resultado. Como un mentor me dijo una vez:

    Estás casado con tu pareja, no con tu código

  3. ¿Cuál es el proyecto en el que trabajaste que te emocionó más y por qué?

    A lo largo de mi carrera como ingeniero de distribución en el proyecto de Clear Linux*, he trabajado con tecnologías de nube, desarrollo de herramientas y recientemente en el desarrollo del escritorio para la distribución y me he divertido mucho en todo eso en general. Ésto es porque continuo trabajando en un ambiente de software libre y los equipos con los que trabajo son geniales, así que las experiencias de aprendizaje y la filosofía de software libre continua a lo largo de mi viaje y es lo que encuentro más emocionante.

  4. ¿Cómo y por qué iniciaste tu camino en la comunidad de software libre?

    Desde que era un estudiante en la universidad, aprendí sobre el FLOSS (Free Libre Open Source Software), su filosofía y su apertura. Me enseñó más sobre temas “avanzados” mientras lo usaba y me permitió estar pasos más adelante en mis estudios (aprender cómo funciona un SO antes de tomar el curso). Eso encendió mi pasión por el software libre e incluso me impulsó a buscar organizar festivales de instalación localmente y evangelizar sobre el FLOSS en la escuela. Eso eventualmente me llevó a comunidades más allá de las locales y el aprender de ellas me condujo al trabajo que desempeño actualmente.

  5. ¿Cómo podemos contribuir a proyectos open source / cómo puede iniciar desde 0?

    La manera más simple de iniciar es usándolo. Hay soluciones de software libre para prácticamente cualquier caso de uso (música, edición de imagen, escritura, edición de audio, programación, etc). Entre más lo utilices, mayor oportunidad tendrás de interactuar con una comunidad de software libre para preguntar o exponer un caso de uso particular.

    FLOSS no es solo sobre ayudar con código, simplemente al hablar de ello con otras personas ¡haces una gran diferencia! Pero también hay otros roles que se pueden tener al contribuir: usuario, probando nuevas funcionalidades o solución de problemas (bugs), documentación, escribiendo sobre ello (blogs, etc), participando en sus eventos, diseñando o enseñando. En cualquier momento en el que hablas o usas software libre, estás contribuyendo con la comunidad y con los proyectos.

  6. ¿Por qué decidiste trabajar en software libre?

    Debido a experiencias participando en eventos desde la universidad, siempre tuve la convicción de continuar compartiendo conocimiento y mantenerme abierto sobre el trabajo que hago a nivel profesional, así como continuar aprendiendo de profesionales que tienen el deseo de compartir su experiencia a través del software libre, así que decidí continuar por el mismo camino y he disfrutado cada día del mismo.

  7. ¿Qué debería aprender o estudiar para poder trabajar en un proyecto como Clear Linux? / ¿Cómo puedo convertirme en un ingeniero de distribución (Linux)?

    Debido a que este proyecto es en su mayoría sobre distribuciones Linux, esperaría que cualquiera que busque trabajar en ésto sepa sobre empaquetamiento de software (ya sea específico a un proyecto o en general; deb, rpm, PKGBUILD, etc), entendimiento de sistemas operativos (SO) en general (el proceso de inicio, la separación entre espacio del kernel/usuario, administración del proceso de inicio como systemd) así como algo de experiencia con scripts. La mayoría de distribuciones Linux tienen muchos roles, desde arquitectos, programadores, empaquetadores, ingenieros de calidad, escritores técnicos, ¡y más!

  8. ¿Cuál es tu principal objetivo cuando expones sobre software libre? ¿Qué es lo que quieres que todos recuerden?

    Creo que depende de la clase o charla que esté impartiendo, pero sobre todo se trata de hacer del conocimiento de los asistentes que el software libre es más que solo código abierto. Desde el licenciamiento, la comunidad y los diferentes roles que hay para involucrarse, además de los beneficios del software libre a sus vidas personales y a la comunidad a su alrededor.

    Por ejemplo, presenté un par de veces temáticas como “¿Por qué los estudiantes deberían licenciar sus proyectos?”, aún si sólo se trata de material para evaluación de un curso, la idea principal en ese caso es enseñarles sobre la importancia de licencias (libres) en el software, sus derechos y obligaciones al escribir código.

  9. En tu opinión, ¿Cuál es la mejor cosa sobre el software libre?

    El hecho de que debido a su naturaleza de apertura, cualquiera puede integrarse con ideas o criticas que le permitan al proyecto mejorar de todas las formas, desde la calidad del mismo, hasta cómo se manejas sus comunidades. También permite “bifurcar” (fork, en inglés) proyectos cuando hay diferencias en la comunidad sobre cómo se está manejando el proyecto (ejemplos de esto son MySQL, OpenOffice, etc).

  10. ¿Cuál es tu contribución favorita que haz realizado a un proyecto de software libre?

    No todas las contribuciones son sobre empujar código directamente a los proyectos, hay contribuciones muy valiosas en forma de solicitud de nuevas funcionalidades, reporte de errores (bugs) o incluso reportes de pruebas. La contribución que diría ha tenido más peso en mi trayectoria dentro del software libre (hasta el día de ésta presentación), fue sobre lanzar un plan a la comunidad de OpenStack para soportar lanzar máquinas virtuales en formato UEFI. Ésto tuvimos que hacerlo porque inicialmente nuestra distribución sólo podía arrancar en modo UEFI y de otra manera, no había forma de usarla como una Máquina Virtual de OpenStack.

  11. ¿Cómo podemos hacer una carrera profesional en software libre? / ¿Cómo podemos trabajar en software libre (más allá de un pasatiempo o una actividad secundaria)?

    No mires al software libre como una carrera profesional, sino como un estilo de vida y una filosofía de vida. Desde ese punto, simplemente todo toma su lugar.(por ejemplo: tuve varias oportunidades de trabajar en espacios con nulos espacios de software libre, pero mis convicciones y mi manera de pensar me “forzaron” a continuar buscando el camino correcto)

  12. ¿Cuál es el concepto erróneo más común que las personas tienen respecto a proyectos de software libre?

    Si no programas, no puedes apoyar al software libre

    Creo que ese sería el concepto erróneo más común. Como mencioné anteriormente, el software libre involucra muchos roles que necesitan no sólo programadores, sino también profesionales de otras índoles se integren.

    Uso tu software, y por tanto me debes esto y aquello

    Adicionalmente, desde mi experiencia, diría que las personas suelen olvidar que el software libre está hecho en su mayoría por voluntarios que sacrifican tiempo con sus familias o de sus propias cosas para que puedas disfrutar del software que, de otra manera, no sería lo que es. Las personas a veces son groseras y exigen a los participantes de proyectos de software libre sobre tal o cual problema que los molesta. Mientras una parte del desarrollo de software libre es pagado por algunas compañías, no todo el desarrollo proviene de empleados. Tener lo anterior en mente ayuda a tener un mejor acercamiento hacia las comunidades cuando se requiere ayuda.

  13. ¿Es difícil coordinar una comunidad entera cuando hay que resolver problemas en un proyecto de software libre?

    Es interesante el alcanzar un punto medio cuando se busca resolver un problema o desarrollar una funcionalidad que afecta a varios interesados, en el sentido de que la manera en que planeas manejarlo podría no funcionar para otros y hay discusiones de estira y afloja sobre implementaciones, pero al final del día lo que importa es que el problema o funcionalidad se resuelvan, a pesar de que sea tu idea o la de alguien más, recuerda que:

Estás casado con tu pareja, no con tu código