Hola Habr!
El desarrollo en un integrador suele ser bastante diferente de trabajar en una startup o en un estudio de desarrollo de software. De las ventajas: muchas más tareas globales, cientos de especialistas están trabajando en la solución de algunas de ellas al mismo tiempo, por lo que no se aburrirá. Y también: la capacidad de impulsar rápidamente sus propias habilidades y crecer dentro del equipo.
De los inconvenientes: este trabajo no siempre es visible para el usuario final, bueno, y debido a algunos NDA del tamaño de una tostadora, no todo se puede decir.
Cuando quería hablar sobre un proyecto divertido, pero de nuevo el NDAMi nombre es Ivan, soy gerente técnico (Java) en CROC. Y hoy intentaré abrir un poco el velo del secreto y hablar sobre cómo trabajamos generalmente para los desarrolladores, que son unas 350 personas, así como sobre las vacantes actuales (Java, PHP y front-end). Detalles - debajo del corte.
Yo mismo ingresé al CROC por accidente, llegué en 2012 a la segunda lección del curso de Java, que se realizó aquí. Inmediatamente me gustó el curso en sí (utilidad y presentación del material), y la empresa, en principio. En ese momento todavía estaba en un instituto de investigación (trabajé allí como técnico, recibí un diploma, me convertí en ingeniero y trabajé durante 4 años en total), y tenía una oferta de otra compañía en mis manos. Lo que me puso ante tal elección:
- Ir a cierta compañía en C ++ de manera regular, porque conocía C ++ bastante bien;
- Ir a CROC en Java, pero a una posición junior y aprender todo desde cero.
Después de un breve tormento y el curso, que se mencionó anteriormente, fue todo incluido, eligió CROC.
El primer proyecto en el que trabajé fue la automatización del flujo de trabajo para un gran proyecto estatal (y, sí, un conocimiento cercano de la NDA). Fue un poco sorprendente: usted proviene de uno de los institutos de investigación con un conocimiento orgulloso de la aritmética de direcciones y la notación húngara, y luego inmediatamente tiene java, CamelCase, BPM, ECM y otros nombres que son agradables para su oído, que después del oxidado * mundo C parecen ser algo mágico.
Trabajamos en el proyecto durante bastante tiempo, porque el número de iteraciones, francamente, no fue débil.
Al principio les hice muchas preguntas a mis colegas: ¿cómo se acepta generalmente trabajar para absorber no solo el conocimiento en sí mismo, sino también los principios de trabajar con la pila en CROC? Los colegas fueron a la reunión y me ayudaron con consejos, dándome horas enteras. Absorbo rápidamente el conocimiento, por lo que un año después pasé de un nivel junior a uno regular, y un año después llegó un nuevo nivel: un desarrollador líder. La empresa permitió ser arquitecto, líder de equipo y preventa técnica. Ahora - gerente técnico.
En principio, nuestras pistas de desarrollo tienen un aspecto similar a este: puede convertirse en gerente de proyecto, experto técnico o gerente técnico. La función de un gerente técnico es coordinar a todas las personas y recursos en un proyecto específico. Una especie de gurú. Esto implica una alta responsabilidad y competencia: en cuyo caso, dicho especialista debería poder reemplazar a cualquier miembro del equipo.
Elegí la tercera opción, ahora administro un equipo de desarrollo de 7 personas. Después de pasar varios años aquí y comparar las trayectorias profesionales de otros muchachos, puedo decir que esto no es una excepción a la regla: así es como crecer en un par de años, sino que la situación es normal para CROC. Alguien elige el movimiento horizontal entre equipos: cambiar el back-end y el front-end y viceversa, no hay problema.
Hay personas que están listas durante unos 10 años para trabajar en un proyecto grande (y hay muchos proyectos escalables aquí) y desarrollarse dentro de él. Hay quienes prefieren crecer en diferentes proyectos, ampliando constantemente su experiencia. Ambos enfoques son bienvenidos.
¿Qué cosas interesantes hacemos en CROC?
Recientemente hubo un gran proyecto
"Justicia electrónica" , que incluyó el trabajo con el Tribunal de la ciudad de Moscú y 35 tribunales de distrito de Moscú. El alcance de las tareas es mi respeto. Alrededor de 400 personas trabajaron en el proyecto al mismo tiempo.
Hace un par de años, comenzamos a trabajar en la automatización del flujo de trabajo de SIBUR.
Si alguien quiere probar suerte en proyectos de blockchain en áreas reales de la economía
, también tenemos esos . Por ejemplo, ahora trabajo en proyectos desde contratación digital hasta el uso de blockchain en la esfera social. Todo bajo la NDA, por supuesto, así que desafortunadamente no puedo dar ejemplos.
Por cierto, todavía había algo interesante con un proyecto interestatal. CROC ha desarrollado y utilizado con éxito su propio marco para el "desarrollo rápido" basado en la descripción del modelo de dominio. Por cierto, está registrado en el catálogo de software ruso y se puede utilizar para el desarrollo, incluido y para agencias gubernamentales. En el marco del proyecto, se creó una nueva versión sobre su base, que permite formar aplicaciones en diferentes estados sobre la base de un modelo de información único. En este caso, la versión básica de las aplicaciones fue creada por la generación de código, y el resto de la personalización quedó con los desarrolladores.
Otro caso es un proyecto relacionado con la firma electrónica. En varios estados, los GOST en los EP tienen los mismos números, pero al mismo tiempo, las implementaciones son tan diferentes que de hecho se vuelven incompatibles. Si en Rusia el proveedor de soluciones de criptografía es CryptoPro, entonces en Bielorrusia el proveedor es diferente.
Era necesario asegurarse de que un documento formado en una comisión pudiera firmarse con una firma electrónica aceptada en su país, pero en todos los demás países, al verificar este documento, su validez se determinó de acuerdo con las decisiones locales.
Mi lugar de trabajo y colegas
En lugar del gran espacio abierto habitual para 100 personas, tenemos habitaciones para 5-10 personas. Por lo tanto, mi lugar de trabajo se ve así:

Uno de los principales asistentes.Te presentaré a mis colegas. Aquí, por ejemplo, Zhenya, gerente técnico (Java, front-end).


Hablando de frontend. Para proyectos grandes, utilizamos CROC WebClient. Este es un marco que se utiliza para crear interfaces efectivas y ergonómicas para aplicaciones de clientes que funcionan sobre la base del cliente "ligero" en los navegadores modernos. Las funciones del sistema le permiten soportar el trabajo en estaciones de trabajo y dispositivos móviles, trabajar en varias resoluciones de navegador y con una interfaz táctil.
Palabra a la esposa:La presencia del marco simplifica enormemente el trabajo del desarrollador. Los desarrollados generalmente se dividen en direcciones: Java, Dotnet, frontal. Pero no todas las empresas de TI tienen esa división. Honestamente, tampoco lo tuvimos de inmediato. Por ejemplo, hay estereotipos, dicen, si sabes, conoces la web.
Sin embargo, no a todos los desarrolladores les gusta navegar por la web. Para los gerentes, esto es un problema. El cliente web lo resuelve parcialmente: cierra un montón de tareas rutinarias y simplifica un poco la vida.
En la mayoría de los productos tenemos nuestro propio diseño y nuestros componentes, y se necesita gente para apoyarlos y refinarlos. Los japoneses realmente no quieren desarrollarse en esto, así que aquí necesitamos personas para una interfaz limpia. Sin embargo, cualquier persona interesada en ser full stack es bienvenida.
Por ejemplo, ahora estamos actualizando el diseño de la interfaz de usuario para un sistema judicial, que se desarrolló hace mucho tiempo en la versión anterior de nuestro marco y tiene una larga historia. A lo largo de los años de uso, ha logrado quedar desactualizado y parece más un sistema de contabilidad de almacén que una especie de sistema amigable para una persona moderna.
Trabajamos en sprints de dos semanas, los desarrolladores están ubicados físicamente en 8 regiones diferentes de la Federación Rusa. Al comienzo de cada sprint, los chicos establecen objetivos comunes, describen tareas y las distribuyen entre los desarrolladores, un día separado para la evaluación y la planificación. Luego, la composición del sprint se ajusta si es necesario. Todos los días durante 15 minutos, pequeñas reuniones en webeh, al final del sprint: retrospectivas. Todas las dificultades organizativas emergentes se discuten y tratan en el próximo sprint, no estamos guardando nada. ¿Por qué en webex? En Habré había de alguna manera una publicación en la que contamos con un conjunto completo de oficinas de desarrollo en todo el país. Por ejemplo, en este proyecto he involucrado hasta 7 oficinas, desde Krasnodar hasta Irkutsk. Por cierto, la compañía tiene la oportunidad una vez al año de mudarse durante un par de semanas a otra oficina y trabajar desde allí.
Una vez al mes: una demostración general donde todo el equipo puede ver lo que han logrado y dónde seguir adelante.
Hay suficiente trabajo en la parte frontal: puede participar específicamente en este proyecto, pero puede transferirlo a cualquier otro en cualquier momento. Tenemos el mismo marco, por lo que no hay dificultades con las transiciones entre proyectos.
Esto, por cierto, es una de las diferencias entre el trabajo de primera línea en CROC y en otras compañías: por lo general, intentan usar algo listo como marcos, mientras nosotros estamos cortando el nuestro. Esto también tiene sus dificultades, especialmente en la etapa inicial, pero aún hay más ventajas para el prospecto.
Y aquí está
Andrey , un experto en desarrollo de software. Un experto, como se mencionó anteriormente, es el nombre de la posición, hace un par de años se convirtió en el primero en el departamento que decidió desarrollar una carrera no en la gestión del desarrollo, sino en la creación de experiencia en tecnología. Cuando llegué a CROC por primera vez, tuve la suerte de trabajar en el equipo de Andrei, que se dedica principalmente a proyectos de R'n'D y en el que rara vez aparecen vacantes para desarrolladores principiantes. Es aún más valioso que una de sus dos tarjetas de mentor me haya sido entregada a Andrei, y las recomendaciones recibidas durante el proceso me permitieron desarrollarme dinámicamente como desarrollador en el futuro.

Por cierto, si nos fijamos bien, en la mesa de Andrei hay una gorra del logotipo del podcast
"Debriefing Podcast
" , un podcast conocido para usuarios reales de TI. Los más atentos notarán que no se trata de una gorra simple, sino de una rara, y el logotipo es vintage. Andrei ha estado involucrado en el análisis desde 2013, cuando fue grabado por primera vez en JavaOne en San Francisco.

Además, Andrei es un participante habitual y miembro del comité del programa de las tres principales conferencias de Java en el país:
Joker en San Petersburgo,
JPoint en Moscú y
JBreak en Novosibirsk, por lo que tiene varios patos en sus asistentes a la vez. Este año, hizo una
presentación en JPoint.

Y, por supuesto, probablemente esté familiarizado con muchos javists como el líder de la comunidad java de Moscú: desarrolladores. Decenas de miembros de la comunidad se reúnen aproximadamente una vez al mes para reunirse con expertos líderes del mundo de Java para escuchar presentaciones y socializar en un entorno informal. Si aún no ha estado en el JUG de Moscú, venga a una de las próximas reuniones. A continuación hay un enlace a un grupo con anuncios de reuniones.
Foto de una de las reuniones en la oficina de CROCAdelante Aquí está el lugar del técnico
Alexei , que trabaja con desarrolladores de PHP.

Su equipo estaba desarrollando un portal de tribunales de jurisdicción general en Moscú, que incluía una cuenta personal de los ciudadanos. El equipo se ha formado durante mucho tiempo y ahora es un equipo de proyecto establecido con un sólido conocimiento y experiencia de especialistas.
Al desarrollar el portal de Internet, era necesario tener en cuenta el hecho de que los usuarios, en principio, no se enfrentan al sistema judicial en los momentos más positivos de sus vidas, por lo tanto, intentamos implementar una cuenta personal para los ciudadanos lo más cómoda y conveniente posible.
Con bastante rapidez, nos dimos cuenta de que trabajar en este proyecto necesitaba aplicar metodologías de desarrollo flexibles. La plataforma externa es, de hecho, la cara del sistema judicial, por lo que fue especialmente importante mostrar versiones intermedias del portal a las partes interesadas. Como resultado, el proceso se desarrolló de tal manera que fue posible liberar parte del equipo de vacaciones y no preocuparse de que alguien no hiciera algo.
Inicialmente, el portal se creó teniendo en cuenta el hecho de que será utilizado por ciudadanos de la Federación de Rusia. Pero con el tiempo, los no residentes también comenzaron a trabajar en el portal. Y si usted, por ejemplo, es ciudadano de Bielorrusia, cuando trabaja con la plataforma electrónica ya hay dificultades: no hay pasaporte ruso ni SNILS. Por lo tanto, como parte del apoyo al proyecto, el portal se finalizó teniendo en cuenta los intereses de los ciudadanos extranjeros.
Sobre el agotamiento

Me parece que nuestro modelo de trabajo de organización está diseñado para que sea muy difícil quemar. Cuando eres un desarrollador líder, puedes llevarte un proyecto, dos, tres. Además de los proyectos en sí, generalmente hay algunas actividades paralelas que generalmente son pequeñas, pero ayudan a cambiar y relajarse.
Tomamos y comenzamos nuestra
escuela Java como parte de tales actividades. Alguien hace videos con lecciones que pueden ser vistas por cualquiera de KROKovets en la Universidad Corporativa (solo regístrese para una conferencia interesante y mire directamente desde el lugar de trabajo). Por ejemplo, recientemente grabé una conferencia sobre las mejores prácticas en la gestión de código Java.
Resulta que grabar una videoconferencia no es la tarea más rápida y trivial, como pretendía originalmente.
También tenemos una escuela de formadores (estamos aumentando las habilidades de los empleados para presentar sus conocimientos de forma independiente), tenemos una facultad técnica (intercambio de experiencias entre departamentos).
Además, además de los proyectos corporativos de blockchain ya mencionados, también estoy creando una herramienta para una rápida integración en Java. Esto es esencialmente un desarrollo de producto.
Y aquí la experiencia de un acelerador corporativo interno nos ayuda mucho, las habilidades relacionadas con cómo abordar el desarrollo de productos, el desarrollo del cliente, etc., todo esto se obtuvo precisamente en el acelerador y ahora se aplica con éxito en muchos proyectos.
Estamos hablando de un programa intensivo de tres meses, una especie de sacudida del producto que llevas al acelerador y el cerebro del equipo que trabaja en él. A lo largo de la reorganización, se asignan dos rastreadores al equipo: uno de CROC y otro de un equipo externo de expertos profesionales en productos. El acelerador le permite educar a los equipos de productos dentro de la empresa, que en el futuro pueden trabajar en sus productos o en los productos de la empresa. Por ejemplo, mi equipo y yo trabajamos en un proyecto de tintorería para gimnasios. Spoiler: el tema no despegó, pero todos ganaron experiencia.
Ágil
Por lo general, cuando intentas escribir lo genial que trabajas donde trabajas, definitivamente debes mencionar ágil. Mencione aquí también.

"Palabra por palabra": no trabajamos en ágil.
Sí, vamos a elaborar un plan para un par de semanas, qué haremos y cómo, cuándo habrá entregas y, en general, eso es todo. No seguimos el dogma a este respecto, solo tomamos las herramientas que están en demanda. Trabajamos en iteraciones cortas, discutimos ámbitos, realizamos reuniones de sincronización, propiedad general del código, etc. Esto es natural.
La planificación del póker no ha echado raíces en absoluto. Solo hay personas con experiencia que pueden entender cuánto tiempo llevará este o aquel proyecto. Bueno, la evaluación es responsabilidad del contratista. Quien se compromete a hacer la tarea, establece los plazos. Y es responsable de ellos.
Que mas Nuestra pila es la más fresca. Si alguien nota que alguna solución usada está desactualizada, puede venir y ofrecer una alternativa. Esto también es normal. Creo que tuvimos suerte aquí en términos de burocracia y toma de decisiones: todos los directores de departamento, gerentes de recursos y gerentes de línea están abiertos a las innovaciones. Si desea aplicar una nueva tecnología, sugiérala.
Trabajos
Prometí al principio de la publicación hablar sobre algunas de nuestras vacantes, aquí están. Debo decir de inmediato que todas las vacantes no se limitan solo a Moscú: también se busca a esas personas en las regiones.
Ingeniero de Desarrollo Java
Sobre el hecho de que tenemos integración en Java, escribí. Una vacante en esta área implica trabajar con soluciones de integración, así como el desarrollo de software personalizado.
Si está interesado en participar en proyectos para el desarrollo de software comercial, sistemas de flujo de trabajo, soluciones de integración o desarrollar un marco (y tiene la más alta experiencia técnica + en desarrollo de software de 1 año), los detalles están
aquí .
Desarrollador PHP
Las tareas principales son el desarrollo y diseño de servicios web, así como módulos y subsistemas de aplicaciones web. Las tareas y requisitos detallados se encuentran en
la página de vacantes.
Desarrollador frontend
Haga interfaces teniendo en cuenta que decenas de miles de usuarios las usarán en sistemas corporativos y públicos. Puede venir tanto con un graduado como con un estudiante, lo más importante: experiencia práctica de 2 años y conocimiento de estas
tecnologías .
Si tiene preguntas sobre cualquiera de estas vacantes o condiciones de trabajo en general, escriba en los comentarios, me complacerá responderlas.
Referencias
Último post sobre nuestras oficinas de desarrollo del país .
Un podcast con Andrei sobre la vida de los desarrolladores en CROC grabado en Irkutsk, visitando
@golodnyj .
Grupo jug.msk.ru VKontakte .
Anuncios de reuniones en su totalidad
aquí .
Mi correo para preguntas es ipopkov@croc.ru.