
SKB Kontur es una de las empresas de TI más grandes y antiguas de Rusia. A finales de octubre, cuando cumple 30 años, el número de todos los empleados ha superado los 8 mil.
Según las estimaciones recopiladas en el servicio de evaluación de empleadores My Circle, en julio de 2018, Kontur
compartió el primer lugar con Yandex entre las compañías de peso pesado.
"Kontur" fue fundada en Ekaterimburgo, cuando la ciudad todavía se llamaba Sverdlovsk. Pero luego TI y ahora TI son dos áreas diferentes. Todo se desarrolla a la velocidad de la luz; el patrimonio y la escala no siempre ayudan en la competencia.
Por lo tanto, tratamos de descubrir qué "Kontur" es en realidad un antiguo dinosaurio o una compañía de tecnología avanzada, y hablamos con Alexander Golubev, quien es responsable de los desarrolladores de la compañía.
Alexander Golubev¿Qué hace SKB Kontur?
- Andrei Mikhailov, quien estuvo en los orígenes de Kontur, dijo que todo comenzó con la venta de programas para contabilizar los salarios y la mano de obra. A principios de los 90, el tiempo era difícil, y en el "Circuito" hicieron cosas diferentes. Incluso vendiendo equipos e impresoras.
Luego, los programas se hicieron de escritorio, se escribieron en C ++, Delphi, a menudo para las necesidades de un solo cliente específico. Luego, por supuesto, todos reescribieron y transfirieron a la web. Poco a poco, todo lo superfluo se ha ido, pero lo principal sigue siendo hasta ahora: la contabilidad de los salarios y el software para la contabilidad.
Es cierto, ahora esta es solo una de las direcciones. Hacemos productos para todas las necesidades comerciales. Certificados, flujo de trabajo, firma electrónica, informes. Hay tantos productos que contar cuántos de ellos es realmente una tarea difícil. Las estimaciones difieren en el rango de 30 a 60. Solo por preguntas, qué considerar como un solo producto.
Oficina "Contorno" en Ekaterimburgo"¿Pero hay algún producto de locomotora?"Durante mucho tiempo fue Kontur.Ekstern. A principios de la década de 2000, se hizo posible presentar informes fiscales a través de Internet. Y aunque nadie tenía realmente Internet, todavía apostamos en la web. Y tenían razón: el producto se disparó y la compañía comenzó a crecer rápidamente.
Hace siete años, cuando llegué, la compañía era tres veces más pequeña. Ahora cerca de mil personas se dedican al desarrollo. Y luego había un hombre de trescientos.
- ¿Fue difícil hacer frente al crecimiento?¿Por qué fue? El crecimiento continúa ahora. Las personas, los productos y los clientes son cada vez más. Estamos creciendo un cuarto de año en año. Escalamos procesos, nos negamos de inactivo, inventamos nuevos. Aparentemente, de alguna manera estamos haciendo frente.
Nos gusta que desarrollemos nuestros propios productos. Las personas en equipos (programadores, analistas, evaluadores) tratan todos los productos como una idea original, ofrecen ideas, mejoras. No estamos interesados en hacer pedidos para los externos que no están relacionados con nuestro trabajo principal, no se trata de Kontur.
Sobre tecnología e idiomas
- Probablemente aún tenga altos requisitos para la calidad y limpieza del código, como es el caso en las grandes empresas. Los desarrolladores no tienen una herramienta de culto debido a esto?- Cuando un estudiante de ayer o actual con ojos brillantes ingresa a la empresa, tiene más compromiso con un idioma en particular. Lo intentó, algo comenzó a funcionar para él y él está muy espiritualizado. Y, por supuesto, quiere trabajar y desarrollarse en una dirección. Esto es realmente bueno
El equipo de programación de zombies en el hackathon "Contour"Pero con la experiencia viene la comprensión de que el lenguaje es una herramienta, y las herramientas pueden cambiarse. Comienza a desarrollarse en términos de construir una arquitectura, utilizando algoritmos, repositorios, colas, protocolos, API, todo donde el lenguaje no es importante, pero las cosas de nivel superior son importantes.
Por lo tanto, hay significativamente menos siniors que se dedican fanáticamente a un idioma.
- Repasé los requisitos de tus vacantes , y parece que realmente usas todo lo que existe.- Bueno, sí, no usamos solo cosas de muy bajo nivel. En ensamblador, no escriben a Contour.
La mayor parte del código del servidor está escrito en C #. Hay algunos Java, Go y Node.js en la infraestructura y algunos productos. Aplicaciones móviles: en Kotlin, Swift y C # (Xamarin). Todo lo relacionado con la ciencia de datos está escrito en Python y R, sin ellos no hay ningún lugar. Dependiendo de las tareas, utilizamos los almacenes de datos relacionales, de documentos, columnas o valores clave apropiados: MS SQL Server, MariaDB, PostgreSQL, MongoDB, Cassandra, ClickHouse, Redis, Kafka, HDFS. También existen nuestros propios desarrollos: por ejemplo, Kanso es un almacén de datos distribuido tolerante a fallas con semántica de registro binario (similar a Google GFS), Zebra es una base de datos de documentos en memoria, Echelon es una cola de trabajo distribuida tolerante a fallas. Los hemos estado usando en producción durante muchos años, y tal vez algún día aparecerán en
código abierto .
Escribimos código de cliente en TypeScript o JavaScript con Flow. El marco principal es React, para el cual hemos escrito una
biblioteca de componentes para
Guías de usuario , pero en otro lugar usamos Angular. Pero decir con certeza quién ganó (TypeScript o JavaScript) aún no es posible. La lucha aún está en marcha.
- ¿Qué te parece?- Como soy del back-end, tiendo a TypeScript (aunque, por supuesto, escribí mucho en JS, incluso cuando no hubo React). Para alguien que está acostumbrado a la escritura estática, TypeScript es más familiar. En cualquier caso, casi todo el código para el front-end o para Node.js está escrito con tipos.
Master class en Summer Confur 2018: la conferencia interna de desarrolladores de ContourPero en general, mi actitud hacia los idiomas no es religiosa. ¿Qué herramientas son más convenientes para tareas específicas? Generalmente escribí una maestría en Erlang. En 2011, cuando llegué a Kontur, incluso un producto fue escrito en Erlang. Pero cuando su principal cerebro ideológico se fue, hubo problemas para encontrar un especialista de reemplazo. Por lo tanto, reescribió a C # probado.
"¿Y cómo se determina dónde se utilizará el idioma?"Los gerentes de desarrollo y los líderes de equipo tienen un grado bastante grande de libertad; son libres de elegir herramientas y tecnologías. Pero como el producto no comienza en el vacío, discuten la elección con "vecinos", colegas más experimentados, y ven si pueden encontrar especialistas. Hay libertad, pero no puedo decir que todos los días experimentemos con nuevos idiomas. Necesitamos herramientas comprobadas para el desarrollo industrial, para que luego podamos desarrollar y mantener nuestros propios productos.
Tenemos una práctica de revisión de diseño. Si desea lanzar un nuevo proyecto o hacer una enmienda seria al actual, haga una presentación y reúna una reunión de una comunidad especial donde los ingenieros geniales le darán su opinión.
Por supuesto, si decide que nadie decide por usted, no habrá ultimátums y prohibiciones, no le quitarán su salario. Pero, a pesar de todo, el equipo decide elegir una tecnología controvertida, debe estar preparado para los riesgos. Es posible que el proyecto no sea compatible con parte de la infraestructura o que algunas funcionalidades no se puedan integrar en él, entonces todos sentirán mucho dolor.

Por lo general, todo se discute. Hace un mes, surgió la idea de escribir uno de los nuevos servicios en F #. En tales casos, trato de mantener un diálogo y pregunto: “¿Y por qué exactamente F #? ¿Dónde buscarás gente? Al final, convencieron a la persona de permanecer en C #. Es decir, convencer, sí, ordenar, no.
- ¿Has intentado escribir en F # tú mismo?No, pero no estoy solo en discusiones de este tipo. Tenemos un consejo de ingeniería: siete ingenieros geniales. Estas son personas seleccionadas en base a historias de éxito dentro de la empresa. Han ganado credibilidad en muchos proyectos. Los niños también participan en proyectos de desarrollo del Departamento de Desarrollo (esta es la unidad que une a la mayoría de los desarrolladores de Contour).
- ¿Intentaste reunir una variedad de pilas en este consejo?La variedad es un buen punto, pero no el principal para nosotros. Como los ingenieros son geniales, tienen suficientes horizontes. Escriben código en C #, pero no será un problema para ellos resolver problemas de Java.
No hay diversificación en el consejo, pero uno no debería pensar que todas las discusiones van solo en él. Además del asesoramiento de ingeniería, tenemos comunidades profesionales. Por ejemplo, las interfaces tienen su propio líder, su propia comunidad con altas habilidades. La decisión de desarrollar la interfaz la toma un equipo híbrido, incluido un representante del consejo de ingeniería.
Kit de herramientas
La mayoría de los equipos usan YouTrack como rastreador de tareas. Algunos equipos usan Trello y Jira. Escribimos el código en Visual Studio, Visual Studio Code, Rider, WebStorm, etc. Utilizamos mucho los productos JetBrains para diferentes tareas.
Usamos TeamCity como un sistema de CI, implementamos servicios a través de Octopus en una nube privada bajo el control de nuestro propio sistema de Houston o Kubernetes. Recopilamos métricas a través del grafito. Para alertas por métricas utilizamos Moira. Los registros se recopilan, almacenan y ven en ELK.
La comunicación diaria se dirige a Slack y Telegram. Hay Staff, su propia red social interna. Publica noticias sobre productos, ofertas de trabajo, vida social y eventos deportivos. Allí puede reservar salas de reuniones y escribir artículos. Esto se está convirtiendo en un canal de comunicación popular. Cada vez se discuten más cosas en línea.
En los últimos años, hemos estado desarrollando soluciones de infraestructura directamente en GitHub. El producto de código abierto más famoso es el sistema de notificación de emergencias de
Moira , además de nosotros se usa en Avito y Yandex.Money. El más grande es el
este . Este es un conjunto de herramientas para desarrollar microservicios en la plataforma .NET, que les ayuda a comunicarse entre sí y recopila automáticamente sus registros, métricas y trazas distribuidas.
Sobre la estructura de la compañía

La oficina más grande "Kontur" se encuentra en Ekaterimburgo. Con el crecimiento de la empresa, se necesitan más y más empleados, por lo que la empresa se expande constantemente. Las oficinas de desarrollo ya están en Novosibirsk, Perm, Izhevsk, Kazan, Innopolis, Rostov-on-Don y San Petersburgo. Además, la iniciativa de abrir nuevas oficinas a menudo proviene de los propios empleados. Varios ingenieros geniales planearon mudarse a San Petersburgo, luego abrimos una oficina en esta ciudad.
La gran mayoría de los empleados trabajan en oficinas, pero como los equipos se pueden distribuir entre las ciudades, este año Kontur decidió abrir para contratar trabajadores remotos. Todavía estamos aprendiendo cómo trabajar en este formato, y cada vez hay más empleados de este tipo.
"Kontur" se divide en tres grandes áreas: desarrollo de productos, ventas y servicio al cliente, servicios internos. Las relaciones se construyen lo más horizontalmente posible en una empresa de casi 10 mil personas: estamos trabajando activamente para mantener viejas y la aparición de nuevas relaciones entre los empleados.
Los equipos de productos emplean a empleados de diferentes especializaciones: programadores, probadores, analistas, diseñadores de interfaces, especialistas en marketing, expertos, gerentes ... Las nuevas startups son aserradas por un equipo, los productos desarrollados a menudo se dividen en varios servicios y se desarrollan mediante varios subcomandos.
Los equipos son independientes y autónomos: los líderes tratan de no interferir con ellos con instrucciones, burocracia y protocolos innecesarios.
Los equipos tienen líderes con diferentes roles. Los tímidos son responsables de la calidad del desarrollo. El gerente de desarrollo, a menudo un ex ingeniero, construye el proceso de creación del producto. El gerente del proyecto se dedica no solo al desarrollo, sino también a las ventas, la promoción, el marketing y la comunicación con los socios. Todavía hay gerentes de línea de productos. Toman decisiones sobre el lanzamiento de nuevos productos o la expansión de los antiguos.
Sobre la contratación
- ¿Es difícil llegar a ti?- Difícil, pero posible. Hay, por ejemplo, un gran sistema de pasantías para estudiantes, que ahora se lleva a cabo durante todo el año. Este verano, por ejemplo, 140 estudiantes internos, la mayoría permanecieron en la empresa.
"Me enteré de tus gremios de entrevistadores". Dime que esEstos son ingenieros de diversas especialidades que participan en la contratación de programadores. Por ejemplo, para los desarrolladores de back-end, realizan entrevistas técnicas en tres o cuatro etapas: prueban la capacidad de escribir código que funcione; capacidad de usar algoritmos y estructuras de datos; capacidad de crear arquitectura. El medio y los siniors también están probando sus horizontes en tecnología.
El gremio ahora incluye alrededor de 90 desarrolladores. Para llegar allí, debe seleccionar las etapas que desea llevar a cabo (código, algoritmos, arquitectura) y realizar varias entrevistas como “esclavo” (generalmente las entrevistas son realizadas por un par de ingenieros “principales” y “esclavos”). Después de pasar esta selección, una persona cae en el grupo del gremio de entrevistadores.
Consideramos que es normal si cada participante realiza una entrevista una vez por semana. Para que las personas puedan hacer su trabajo y contribuir a la contratación de programadores.
El gremio evalúa el nivel técnico del candidato y me pasa el informe a mí o a mis diputados. Llevamos a cabo la entrevista final, verificamos las habilidades blandas más probables, cuán importante es una persona para el valor del trabajo, cuánto puede reflexionar sobre sus errores.
Sección de carteles de Hackathon de verano- ¿Ese sistema aceleró el proceso?Ciertamente se ha vuelto más rápido y más comprensible. Anteriormente, había una lista de prioridades del equipo en forma de calificación. Eichar lo bajó y, a su vez, ofreció los equipos al candidato. Como resultado, un equipo podría hablar con él y rechazar, otro hablar y rechazar, el tercero. Era imposible entender cuántas entrevistas tendrá una persona. La evaluación de las habilidades técnicas también fue borrosa: el equipo prestó atención a varias cosas.
Ahora una persona pasa por cuatro etapas y una entrevista final durante cuarenta minutos. Diez minutos después, ya hacemos una oferta o rechazamos.
Tiene una duración de tres, máximo cuatro días. Anteriormente, la expectativa era de dos a tres semanas.
- ¿Marcas lo mismo para todas las direcciones?No, todas estas etapas están relacionadas principalmente con back-endors: sharperists y javists. Para las licitaciones iniciales, estas etapas se agrupan en una gran entrevista.
En general, es importante para nosotros no solo las habilidades técnicas en humanos. Por supuesto, hay una cierta frontera, un mínimo técnico. Pero lo más importante, si una persona será capaz de adaptarse y desarrollarse. En cierto sentido, nuestros desarrolladores tienen un culto al desarrollo.
Las personas sin ojos ardientes y un deseo de desarrollarse no nos convienen. Incluso si aceptamos a esa persona, lo más probable es que no trabajemos juntos.
- El recién llegado se acerca. Que sigueTerminan en Butcamp y se adaptan allí. El bootkamp consta de dos partes. La primera, la capacitación, dura dos semanas: tres días para conocer el "Kontur" en su conjunto, con productos, momentos de negocios: dónde está el café, dónde está la sala de conferencias, inmersión en la cultura, tradiciones, vacaciones; otra semana y media para familiarizarse con las tecnologías y herramientas. Por ejemplo, los desarrolladores repiten código limpio, manejo de excepciones, el uso de elementos de programación funcionales, pruebas y TDD, SOLID, DI. Estudian cómo se organizan la infraestructura y los servicios comunes para hablar el mismo idioma con otros desarrolladores.
Oficina standupAdemás de la capacitación, los principiantes se comunican con los líderes de equipo y los gerentes de desarrollo. Los timbales y los gerentes pueden comenzar a comunicarse por sí mismos, porque esta es información abierta: quién vino con el siguiente conjunto. Y la inscripción a Butcamp ocurre cada tres semanas.
Como resultado, durante estas dos semanas, el candidato determina a qué equipos irá para la pasantía.
Las pasantías ya son la segunda etapa. Durante el período de prueba, una persona puede visitar varias pasantías. En promedio, hay tres, aproximadamente tres semanas en un equipo. O puede elegir un equipo a la vez y permanecer en él.
- En cuanto a las capitales, Ekaterimburgo es una ciudad pequeña. ¿No hay tal cosa que los Jones vengan a bombear antes de mudarse y los Sinior se vayan a países soleados?- Sí, la gente no solo viene, sino que se va. Kontur invierte mucho en educación, pero nunca obliga a las personas, no las obliga a firmar contratos con ninguna obligación. Por supuesto, estamos tristes cuando la gente se va, pero casi siempre nos mantenemos en contacto.
Hay ingenieros geniales que abandonaron Contour y ahora trabajan en Facebook, Amazon y Google.
Por supuesto, para mantenerlos, no hay suficientes golosinas en la cocina y más salarios. Necesita tareas innovadoras. Tenemos sistemas grandes y muy cargados, tareas complejas de productos e importantes proyectos de código abierto.
Monitoreamos el mercado y pagamos los salarios correspondientes para que no haya situaciones en que una persona venga con una oferta competitiva, y comencemos a girar como una serpiente en una sartén.
Sobre robos internos de empleados
Espacio de trabajo en el "Contorno"Cuando se lanzan nuevos proyectos, primero comenzamos a buscar personas dentro. La contratación interna a menudo ocurre detrás de escena. Un gerente se acerca a mí y le pide que encuentre a alguien en el equipo que no esté sentado en su lugar. Y sucede que vienen a Kontur para establecerse de inmediato como un equipo completo y dicen: "Queremos trabajar para usted". Luego me dirijo a la dirección de las instrucciones y digo: "Descubra los retrasos, obtenga productos retrasados, ha aparecido todo un equipo".
«». , . , , , . - .
- — . - , : « , ». - : « , . ».
, . . , - , .
. , , , «» : , , .
, , .
— 2018— ?, , . . , , . : , .
, . , , . — .
— ?, . , . .
, . , , , .
, . — , . , — , , , . , , , .
, , , , . , , . , — , - .
.

, , . , . , , . .
, , , .
— ? , -?, . - , .
, . , . , .
— , . — , . , . . , , , . , - , .
— «» , ?
, . . , . .
— « », — , -. , , ICFP Contest. , . , .
, , , . , «» . , .
— - ?? , . Bentley , , . , , , . «» , . - , , — , .
— ?, . — . , .
. , . data science , . , . .
— «» , ?, , , . . !
— , ?— , , - , . , .
, .