Skip to main content

Entrevista con un ingeniero: una mirada a la SAST moderna

Escrito por
Headshot of Snyk Team

Snyk Team

feature saar kuriel

18 de mayo de 2022

0 minutos de lectura

Conversamos con Saar Kuriel, ingeniero de software sénior en Tel Aviv, para conocer más sobre los interesantes proyectos en los que trabaja como parte del equipo de Snyk Code.__También hablamos sobre su trayectoria profesional, sus técnicas de gestión de proyectos, los desafíos técnicos que ha superado y sus metas futuras.

Hombre sentado en gradas debajo de un gran logotipo del perro de Snyk, rodeado de cojines con la marca Snyk

Jess Katz (JK): ¡Hola, Saar! Me entusiasma conocer tu experiencia en ingeniería y el nuevo proyecto en el que empezaste a trabajar hace poco. Antes de comenzar, ¿puedes contarnos un poco sobre ti y cómo llegaste a Snyk?

Saar Kuriel (SK):¡Claro! Antes de unirme a Snyk, trabajé en Wix durante 3 años. Empecé como ingeniero de frontend y, dos años después, me convertí en gerente de ingeniería de un equipo de 6 desarrolladores. Después de un año en ese puesto de gestión, decidí cambiar el área de producto y la trayectoria profesional que estaba siguiendo. Quería enfocarme en el aspecto técnico de la ingeniería y, a la vez, tener un impacto en la organización, de preferencia en un producto B2B innovador y disruptivo. Me apasiona la ciberseguridad y sabía que los productos de Snyk tenían fama de ser de calidad, así que decidí postularme. Actualmente trabajo en Snyk Code, nuestra revolucionaria herramienta SAST centrada en los desarrolladores.

JK: ¿Cómo ha sido para ti la transición de gerente de ingeniería a colaborador individual (IC) aquí en Snyk?

SK:Lo he pensado mucho a lo largo de mi carrera. Sé cómo liderar y ayudar a otras personas a crecer, y siempre he sentido que quería influir en la toma de decisiones. Pero también me gusta mi profesión y no quiero perder mis habilidades técnicas ni mi trabajo diario de programación. A lo largo de mi carrera, mis gerentes me dijeron que tengo buenas habilidades de liderazgo y que debería seguir el camino de la gestión, así que lo hice. Sin embargo, durante ese tiempo a menudo sentía que no estaba priorizando bien mi trabajo. Cuando seguía programando, sentía que no hacía lo suficiente por el equipo. Pero cuando no programaba, no me sentía a gusto conmigo mismo. Eso me ayudó a darme cuenta de que necesitaba encontrar otro camino, y elegí ser IC.

En mi puesto actual, mi objetivo es dominar los sistemas de mi grupo y ser responsable de ellos, impulsar las necesidades de ingeniería en la organización, mejorar y hacer crecer nuestro producto, y darme la oportunidad de asumir riesgos sabiendo cómo mitigar los efectos de un fracaso. También quiero asesorar a otros miembros del equipo para que se sientan cómodos expresando sus opiniones y sepan que tienen un impacto en el grupo. Para lograr estos objetivos, mi gerente de ingeniería y yo definimos algunos objetivos y resultados clave (OKR), como asesorar a una persona que acaba de unirse al equipo, ayudar a mejorar los SLI de los sistemas del equipo y reunirme con personas que comparten mis metas para aprender mutuamente. Mi gerente me puso en contacto con las personas indicadas, me ayudó a definir lo que quiero lograr y estableció hitos para mis metas más ambiciosas, que revisamos cada semana en nuestra reunión individual.

JK: ¿Cuál es uno de los proyectos más desafiantes en los que trabajas actualmente?

SK:Actualmente estoy refactorizando uno de los componentes centrales de Snyk Code, nuestra herramienta avanzada de pruebas de seguridad de aplicaciones estáticas (SAST). Como trabajo en un componente existente, tengo que pensar como la persona que escribió el código originalmente y trabajar para mitigar posibles problemas futuros. Siempre aprendes cuando lees el código de otras personas.

Este componente es fundamental porque gestiona la comunicación con todo tipo de sistemas de gestión de código fuente (SCM) y procesa los repositorios para analizarlos antes de que lleguen al motor de reglas de IA. Una de las principales ventajas de Snyk Code es la velocidad del análisis, y no quiero ser quien la cambie. Te imaginarás la responsabilidad que siento al trabajar en este proyecto, el desafío que enfrento y la confianza que han depositado en mí.

Nos reunimos con el arquitecto de nuestro equipo y otros ingenieros para esbozar las nuevas API y diseñar nuestra hoja de ruta. Durante la reunión, analizamos las ventajas y desventajas de cada enfoque, los riesgos que podían surgir y cómo mitigarlos. También analizamos por qué las cosas se hacen actualmente de esa manera, para no perder el contexto ni las funcionalidades existentes.

También evaluamos distintas tecnologías que podíamos usar y decidimos hacer pruebas. Elegimos Go como lenguaje de programación por su simplicidad y su capacidad inherente para ejecutar tareas en paralelo. Antes de esto, no tenía ninguna experiencia con Go, así que ha sido un desafío divertido.

JK: ¿Qué desafíos has enfrentado hasta ahora?

SK:Esta respuesta será técnica. Uno de los desafíos que enfrentamos es cómo almacenar en caché de la mejor manera el código fuente clonado desde el SCM para reducir las interacciones con este y acelerar el tiempo total de análisis. La solución también debe funcionar en un entorno local, que quizá no tenga acceso a Internet, y poder escalar a pedido, ya que la seguridad del código es una de las principales prioridades de nuestra infraestructura compartida en la nube.

Después de investigar un poco, decidimos hacer una clonación superficial con un SHA de confirmación específico (algoritmo de hash seguro), almacenarlo en MongoDB y usar GridFS para interactuar fácilmente con archivos de código fuente grandes, sin perder flexibilidad en cuanto al contenido que almacenamos. Antes de tomar esta decisión, evaluamos Redis, pero el límite de tamaño de los valores y la expulsión de elementos de la caché no se ajustaban a nuestras necesidades. También evaluamos EFS, pero habría sido difícil implementarlo y escalarlo en nuestra solución local.

Nuestro equipo y Snyk en general priorizan el equilibrio entre innovación, agilidad y calidad para producir software confiable y escalable. Por ejemplo, hace poco convertimos una funcionalidad de esta base de código en un servicio independiente. Ya funciona por su cuenta, completamente separada del resto de las API. Entonces, ¿por qué no desacoplarla y hacer que el código de este proyecto sea más ágil?

JK: ¿Qué es lo que más te entusiasma de este proyecto?

SK:¡Muchas cosas! Primero, mis gerentes me apoyan plenamente para experimentar, conversar y asegurarnos de hacer las cosas bien. No hay presión por cumplir con una fecha límite, así que puedo concentrarme y pensar con claridad. Además, estoy exactamente donde quiero estar en mi carrera y estoy abordando temas en áreas en las que nunca había trabajado. Estoy contribuyendo a una iniciativa que está revolucionando nuestro producto. ¡Y puedo vivir todo esto con la guía y la ayuda de mi increíble equipo!

Poder trabajar en un proyecto así tan pronto después de unirme a Snyk me ayudó mucho a entender que mis gerentes confían en mí y ven mi gran pasión por contribuir. Es muy importante que tú y tu gerente estén alineados desde el principio, especialmente si eres ingeniero. Hacerme cargo de este proyecto me permitió expresar mi opinión, experimentar y también aprender un nuevo lenguaje de programación, lo cual es genial.

No todos los días se presenta la oportunidad de aprender un nuevo lenguaje. A algunos ingenieros puede resultarles agotador; a otros, como a mí, nos encanta. Nuestro mundo está en constante evolución, y cada día surgen nuevas tecnologías y desafíos. Por eso, es importante mantener nuestras habilidades al día y tan amplias como sea posible, para saber cuál es la mejor herramienta para cada situación. Además, aprender mientras creas algo valioso —en lugar de limitarte a escribir una aplicación de ejemplo— es realmente emocionante.

JK: ¿Cómo describirías la cultura de ingeniería de Snyk en general?

SK:Lo mejor de Snyk, y en particular de la cultura de ingeniería, es el nivel de transparencia que tenemos. Podemos ver casi todo lo que ocurre en la empresa, así que es fácil involucrarse en distintos proyectos y entender qué sucede en diferentes departamentos. Snyk está pasando de ser una pequeña startup a una empresa de gran escala, y por eso la cultura de ingeniería aún se está construyendo. Esto la hace aún más atractiva, ya que puedes contribuir a ese esfuerzo y marcar una verdadera diferencia. Puedes dejar tu huella y aprender mucho de los demás.

¿Te interesa desarrollar tu carrera en Snyk? Consulta nuestras vacantes y descubre cómo es la vida en Snyk.