Trabajé en Guidewire, una compañía que construye software para uso interno en compañías de seguros de propiedad y accidentes. Es una pequeña empresa de software empresarial de la que casi nadie ha oído hablar, pero constantemente se la califica cerca de la parte superior de la industria de la tecnología por la satisfacción de los empleados: ocupaba el segundo lugar entre las 25 mejores empresas tecnológicas para trabajar en 2013 y, de hecho, era el primero en la misma lista unos años antes, justo después de mi pasantía.
Mi experiencia se caracteriza principalmente por la palabra primero . Fue mi primer trabajo real. Era la primera vez que veía una compañía real. Era la primera vez que viajaba. Era la primera vez que trabajaba en un proyecto para otra persona . Era la primera vez que tenía acceso a demasiados bocadillos gratuitos. Era la primera vez que trabajaba en un parque de oficinas. Era la primera vez para todo …
De hecho, me gustó bastante la arquitectura de su edificio, pero la ubicación en San Mateo era realmente aburrida y suburbana
- ¿Qué pasantías están disponibles para estudiantes de ciencias de la computación e ingeniería de segundo año en India?
- ¿Las pasantías y los POR están sobrevalorados debido a los estados de Facebook en comparación con trabajar en proyectos y cursos?
- ¿Cómo es la experiencia de pasantía en Pavan Duggal Associates?
- Preparándome para la entrevista de pasantía de Ingeniero de Software, ¿qué temas debo estudiar? ¿Qué debo esperar?
- ¿Puedes compartir algunos detalles sobre las prácticas de verano?
En realidad, originalmente obtuve la pasantía en gran medida por accidente. No pensé que alguien contrataría a un estudiante de primer año, así que no busqué seriamente nada. Lo único que hice fue ir a una feria de carreras y entregar mi currículum (que tenía poco más que mis proyectos externos) y recoger el botín. Creo que tuve mucha suerte!
Mi experiencia
Al entrar, ya era bastante bueno con Java y JavaScript. En realidad, esto fue antes de que hubiera empezado con la programación funcional, aunque ya estaba interesado en ella. Lo mismo para los lenguajes de programación: conocía muchos lenguajes de programación, pero solo un poco sobre ellos.
Mi proyecto inmediatamente involucró el uso de Gosu, un lenguaje Guidewire desarrollado internamente. Afortunadamente, en realidad fue muy fácil de aprender en gran medida porque era muy similar a Java. Solo mejor. ¡Tenía algunas características muy agradables como lambdas y métodos de extensión que lo hacían mucho más agradable que Java propiamente dicho!
En general, diría que el proyecto fue más fácil que muchos de mis proyectos escolares. No porque fuera fácil en un sentido absoluto, sino porque realmente se alineó con lo que había estado haciendo por mi cuenta durante años. Ya tenía un buen manejo de la programación Java, la organización de sistemas medianos y la programación web front-end, por lo que solo estaba poniendo todo esto en acción.
Mi proyecto
El proyecto real estaba escribiendo una herramienta para monitorear los servidores de prueba de arnés. ¡Guidewire tiene una cultura increíble de pruebas unitarias, hasta el punto de que realmente encuentran limitaciones de hardware cuando las ejecutan! Estaba en el equipo a cargo de administrar toda la infraestructura de prueba.
El proyecto incluyó varias partes: un demonio escrito en Gosu para recopilar todos los datos, una interfaz web que diseñé con jQuery UI y un backend web en el que trabajó otro interno, también en Gosu. Fue un proyecto muy autónomo que el otro pasante y yo construimos desde cero para poder utilizarlo al final del verano. Incluso pude verlo ejecutándose en un servidor real, ¡lo cual fue genial!
La interfaz de usuario se parecía a esto, excepto el azul para que coincida con los colores de la compañía. El uso de jQuery UI permite que se vea bien diseñado ya que realmente no soy diseñador.
Se sintió particularmente bien tener un gran proyecto que era mío . Incluso si, en el fondo, no había un núcleo difícil o una visión algorítmica o algo súper complicado, todavía se sentía como un logro real. Tenía una “superficie” alta: cinco o seis pantallas diferentes, un montón de widgets interactivos en cada una, gráficos que se actualizan automáticamente, un pequeño menú de migas de pan que diseñé … Incluso tuve un efecto deslizante como la vista de directorio anterior de GitHub.
De hecho, jugar con las animaciones de jQuery fue uno de los mejores momentos de mi verano, por insignificante que parezca: P.
Impresiones especificas
Ciertamente, había algo muy satisfactorio en construir un producto concreto desde cero y entregarlo en un estado funcional al final. Incluso si fuera solo una herramienta interna. De alguna manera, especialmente porque era una herramienta interna: ¡monitorear servidores es mucho más interesante que trabajar con software de seguros!
Una cosa puramente fortuita que realmente mejoró mi experiencia fue sentarse justo frente a los dos administradores de sistemas. Pude ver cómo funcionaban con la granja de servidores, cómo administraron todo y también obtuvieron mucha ayuda con mi sistema. Linux no fue oficialmente compatible, pero creo que en realidad fueron de gran ayuda ya que lo estaba ejecutando: P.
La compañía también tenía un contingente de personas de lenguaje de programación. Por eso tenían su propio lenguaje JVM interno. Y la decisión de tener un lenguaje personalizado fue realmente buena , incluso si personas como Jeff Atwood te dicen que nunca debes construir un lenguaje interno. Ya me estaba inclinando mucho hacia el estudio de lenguajes de programación antes de la pasantía, pero creo que esto ayudó a solidificar mi interés.
En general
Toda la experiencia me pareció muy relajante . ¡Estaba casi completamente libre de estrés! Mucho mejor que la escuela. Al mismo tiempo, no fue aburrido en absoluto: realmente disfruté trabajando en mi proyecto, que fue muy divertido.
Fue relajante por tres razones:
- Estaba haciendo algo que entendía bien: Java, programación web, diseño de interfaz de usuario … ¡era como un proyecto personal en el que hubiera trabajado en la escuela secundaria!
- ¡No tuve que manejar mi propio tiempo! Podría trabajar durante las horas de trabajo y no preocuparme por eso. No hay espacio para postergar. No es necesario hacer nada en mi propio tiempo. (Odio la tarea.) Fue maravilloso.
- La cultura era realmente cómoda. Era un lugar excepcionalmente agradable para trabajar.
Dicho esto, también se sentía de alguna manera desprovisto de ambición . Era solo un trabajo. Nada mas. ¡Muy diferente de trabajar en una startup o en investigación! Trabajar en un trabajo como ese se sentía demasiado como para rendirse . No estoy seguro de que me hubiera gustado a tiempo completo.
¡Así que mi única experiencia negativa fue que Guidewire era demasiado agradable y demasiado cómoda! Dice cosas buenas sobre la compañía, creo.
Cultura
La compañía se destaca en mi mente por tener una gran cultura, incluso para los estándares de Silicon Valley. ¡Es casi tan bueno como una pequeña startup puede ser! Todo lo que me gusta del valle, Guidewire lo hace bien:
- jerarquía plana : me senté frente al gerente de mi equipo y pude hablar con el CEO, CTO, otros gerentes, arquitectos, desarrolladores senior … cualquiera. ¡Y todos fueron muy amables! Aprendí mucho de estos encuentros aleatorios.
Quizás había una o, como máximo, dos capas reales de administración entre los trabajadores normales y la parte superior de la empresa. ¡Realmente me gustó esto!
- aprendizaje : la mayoría de las personas en la empresa siempre estaban aprendiendo cosas nuevas. Algunos desarrolladores incluso comenzaron un pequeño club Haskell, ¡lástima que fue justo antes de que me fuera!
- relajado : había muy poca presión. Todos trabajaban horas razonables. Ciertamente no hubo “marchas de la muerte”. Claro, los plazos o los incendios ocasionalmente se avecinaban y los desarrolladores a tiempo completo de repente estarían muy ocupados por un tiempo, pero esto no era la norma.
- buena administración : la persona que maneja mi equipo fue extremadamente servicial y, por mucho que me avergüence de usar la palabra, me dio poder. También contó algunas historias interesantes sobre ser un director de ingeniería en Oracle, que aparentemente era más estresante y menos satisfactorio.
Según algunas encuestas de Glassdoor, el CEO tenía (¿todavía tiene, tal vez?) Una tasa de aprobación del 100%. Y ya sabes, eso no es un accidente: a todos realmente les gustaba él y sus políticas.
Alguien describió la compañía como:
“La compañía se ha construido sobre conceptos avanzados de software, y en muchos aspectos, especialmente en Desarrollo, la atmósfera es como un departamento de informática de posgrado”.
(De las 25 mejores empresas tecnológicas para trabajar en 2011.)
Bueno, tal vez eso fue un poco exagerado, pero realmente captura la
sentir la compañía bastante bien. Con toda honestidad, casi nada era tan avanzado como lo que sucede en un departamento de posgrado de CS (o, al menos, BerLaley ParLab que, para ser sincero, era algo atípico incluso en la academia).
Pero tenían algunos proyectos muy interesantes, como el lenguaje de programación Gosu junto con todas sus herramientas. Todo su software central también fue muy bien diseñado y modular, lo que les permitió reutilizar gran parte del código de la plataforma para múltiples productos diferentes.
Al principio, les dieron a todos una copia de Maverik , que habla sobre cómo se manejaba una compañía exclusivamente democrática (SemCo). Guidewire realmente trata de estar a la altura de esta filosofía, y creo que tiene bastante éxito. Creo que es un gran ejemplo de cómo se puede organizar una empresa de software. Esta fue en realidad una de mis conclusiones más importantes de todo el proceso: ahora tengo una buena idea de cómo dirigiría una empresa y qué buscar en la organización y estructura de una empresa.
En general, realmente disfruté mi primera pasantía, la pasé muy bien y aprendí mucho. ¡Sin duda lo recomendaría nuevamente a otras personas!