
A SKB Kontur é uma das maiores e mais antigas empresas de TI da Rússia. No final de outubro, ela faz 30 anos, o número de todos os funcionários ultrapassou 8 mil.
De acordo com estimativas coletadas no serviço de avaliação de empregadores do My Circle, em julho de 2018, a Kontur
compartilhou o primeiro lugar com a Yandex entre as empresas pesadas.
"Kontur" foi fundado em Ecaterimburgo, quando a cidade ainda era chamada Sverdlovsk. Mas então a TI e agora a TI são duas áreas diferentes. Tudo se desenvolve na velocidade da luz; o patrimônio e a escala nem sempre ajudam na competição.
Portanto, tentamos descobrir qual “Kontur” é realmente um dinossauro antigo ou uma empresa de tecnologia avançada e conversamos com Alexander Golubev, responsável pelos desenvolvedores da empresa.
Alexander GolubevO que o SKB Kontur faz?
- Andrei Mikhailov, que estava na origem da Kontur, disse que tudo começou com a venda de programas para contabilização de salários e mão-de-obra. No início dos anos 90, o tempo era difícil, e no "Circuito" eles faziam coisas diferentes. Até vendendo equipamentos e impressoras.
Os programas foram então criados para desktop, eles foram escritos em C ++, Delphi, geralmente para as necessidades de apenas um cliente específico. Então, é claro, todos reescreveram e foram transferidos para a web. Gradualmente, tudo supérfluo partiu, mas o principal permanece até agora - contabilizando salários e software para contabilidade.
Verdade, agora esta é apenas uma das direções. Fabricamos produtos para todas as necessidades de negócios. Certificados, fluxo de trabalho, assinatura eletrônica, relatórios. Existem tantos produtos que contar quantos deles realmente é uma tarefa difícil. As estimativas divergem entre 30 e 60. Só por causa de perguntas, o que considerar como um produto.
Escritório "Contorno" em Ecaterimburgo"Mas existe algum produto de locomotiva?"Durante muito tempo, foi o Kontur.Ekstern. No início dos anos 2000, tornou-se possível enviar relatórios fiscais via Internet. E embora ninguém tenha realmente a Internet, ainda apostamos na web. E eles estavam certos: o produto disparou e a empresa começou a crescer rapidamente.
Há sete anos, quando cheguei, a empresa era três vezes menor. Agora, cerca de mil pessoas estão envolvidas no desenvolvimento. E então havia um homem de trezentos.
- Foi difícil lidar com o crescimento?Por que foi isso? O crescimento continua agora. Pessoas, produtos e clientes estão se tornando cada vez mais. Estamos crescendo um quarto de ano para ano. Escalamos processos, recusamos ociosos, inventamos novos. Aparentemente, estamos de alguma forma lidando.
Gostamos que desenvolvamos nossos próprios produtos. As pessoas nas equipes - programadores, analistas, testadores - tratam os produtos como uma ideia deles, oferecem idéias, melhorias. Não estamos interessados em fazer pedidos para os externos que não estão relacionados ao nosso trabalho principal - não se trata da Kontur.
Sobre tecnologia e idiomas
- Você provavelmente ainda possui altos requisitos de qualidade e limpeza do código, como é o caso de grandes empresas. Os desenvolvedores não têm um culto à ferramenta por causa disso?- Quando um aluno de ontem ou atual com olhos brilhantes entra na empresa, ele tem mais compromisso com um idioma específico. Ele tentou, algo começou a dar certo para ele, e ele é muito espiritualizado por isso. E é claro que ele quer trabalhar e se desenvolver em uma direção. Isso é muito bom.
A equipe de programação de zumbis no hackathon "Contour"Mas com a experiência vem o entendimento de que a linguagem é uma ferramenta, e as ferramentas podem ser alteradas. Você começa a desenvolver em termos de construção de uma arquitetura, usando algoritmos, repositórios, filas, protocolos, APIs - tudo onde a linguagem não é importante, mas coisas de nível superior são importantes.
Portanto, há significativamente menos pecadores que são fanaticamente devotados a um idioma.
- Eu repassei os requisitos das suas vagas , e parece que você realmente usa tudo o que existe.- Bem, sim, não usamos apenas coisas de nível muito baixo. Na montadora, eles não escrevem para o Contour.
A maior parte do código do servidor está escrita em C #. Há alguns Java, Go e Node.js na infraestrutura e em alguns produtos. Aplicativos móveis - em Kotlin, Swift e C # (Xamarin). Tudo ao redor da ciência de dados é escrito em Python e R, sem eles não há lugar. Dependendo das tarefas, usamos armazenamentos de dados relacionais, de documentos, de colunas ou de valores-chave apropriados: MS SQL Server, MariaDB, PostgreSQL, MongoDB, Cassandra, ClickHouse, Redis, Kafka, HDFS. Existem também nossos próprios desenvolvimentos: por exemplo, o Kanso é um data warehouse tolerante a falhas distribuído com semântica de log binário (semelhante ao Google GFS), o Zebra é um banco de dados na memória de documentos, o Echelon é uma fila de trabalhos tolerantes a falhas distribuída. Nós os usamos na produção há muitos anos e talvez um dia eles apareçam em
código aberto .
Escrevemos o código do cliente em TypeScript ou JavaScript com o Flow. A estrutura principal é React, para a qual escrevemos uma
biblioteca de componentes para
Guias de front-end, mas em outro lugar usamos Angular. Mas dizer com certeza quem ganhou - TypeScript ou JavaScript - ainda não é possível. A luta ainda está em andamento.
O que você acha?- Como sou do back-end, costumo escrever TypeScript (embora, é claro, tenha escrito muito em JS, mesmo quando não havia React). Para alguém acostumado a digitar estática, o TypeScript é mais familiar. De qualquer forma, quase todo o código para o front-end ou para o Node.js é escrito com tipos.
Master class no verão Confur 2018 - a conferência interna dos desenvolvedores ContourMas, em geral, minha atitude em relação às línguas não é religiosa. Quais ferramentas são mais convenientes para tarefas específicas, essas devem ser usadas. Eu geralmente escrevi um mestrado em Erlang. Em 2011, quando cheguei à Kontur, um produto foi escrito em Erlang. Mas quando seu principal mentor ideológico saiu, houve problemas em encontrar um especialista em substituição. Portanto, reescreva para C # comprovado.
"E como você determina onde o idioma será usado?"Os gerentes de desenvolvimento e os líderes de equipe têm um alto grau de liberdade; eles são livres para escolher ferramentas e tecnologias. Mas como o produto não começa no vácuo, eles discutem a escolha com “vizinhos”, colegas mais experientes e verificam se encontram especialistas. Existe liberdade, mas não posso dizer que todos os dias experimentamos novos idiomas. Precisamos de ferramentas comprovadas para o desenvolvimento industrial, para que mais tarde possamos desenvolver e manter nossos próprios produtos.
Temos uma prática de revisão de design. Se você deseja iniciar um novo projeto ou fazer uma alteração séria no atual, faça uma apresentação e reúna uma reunião de uma comunidade especial onde engenheiros legais dão feedback.
Obviamente, se você decidir que ninguém decide por você - não haverá ultimatos e proibições, eles não receberão seu salário. Mas, apesar de tudo, a equipe decide escolher uma tecnologia controversa, que deve estar preparada para riscos. O projeto pode não ser compatível com parte da infraestrutura ou algumas funcionalidades não podem ser integradas a ele - então todos sentirão muita dor.

Geralmente tudo é discutido. Há um mês, havia uma idéia de escrever um dos novos serviços em F #. Nesses casos, tento conduzir um diálogo, pergunto: “E por que exatamente F #? Onde você procurará pessoas? No final, eles convenceram a pessoa a ficar em c #. Ou seja, convencer - sim, pedir - não.
- Você já tentou escrever em F #?Não, mas não estou sozinho em discussões desse tipo. Temos uma dica de engenharia: sete engenheiros legais. São pessoas selecionadas com base em histórias de sucesso dentro da empresa. Eles ganharam credibilidade em muitos projetos. As crianças também estão envolvidas em projetos de desenvolvimento do Departamento de Desenvolvimento (esta é a unidade que une a maioria dos desenvolvedores do Contour).
- Você tentou coletar várias pilhas neste conselho?Variedade é um bom ponto, mas não o principal para nós. Como os engenheiros são legais, eles têm horizontes suficientes. Eles escrevem código em C #, mas não será um problema para eles resolverem os problemas de Java.
Não há diversificação no conselho, mas não se deve pensar que todas as discussões vão apenas nele. Além de consultoria de engenharia, temos comunidades profissionais. Por exemplo, os front-ends têm seu próprio líder, sua própria comunidade com altas habilidades. A decisão de desenvolver o frontend é tomada por uma equipe híbrida, incluindo um representante do conselho de engenharia.
Toolkit
A maioria das equipes usa o YouTrack como rastreador de tarefas. Algumas equipes usam Trello e Jira. Nós escrevemos o código no Visual Studio, Visual Studio Code, Rider, WebStorm e assim por diante. Utilizamos muito os produtos JetBrains para tarefas diferentes.
Usamos o TeamCity como um sistema de IC, implantamos serviços através do Octopus em uma nuvem privada sob o controle de nosso próprio sistema de Houston ou Kubernetes. Coletamos métricas por meio de grafite. Para alertas por métricas, usamos o Moira. Os logs são coletados, armazenados e visualizados no ELK.
A comunicação diária vai para o Slack e o Telegram. Há Staff - sua própria rede social interna. Publica notícias sobre produtos, vagas de emprego, vida social e eventos esportivos. Lá você pode reservar salas de reunião e escrever artigos. Isso está se tornando um canal de comunicação popular. Mais e mais coisas estão sendo discutidas online.
Nos últimos anos, desenvolvemos soluções de infraestrutura diretamente no GitHub. O produto de código aberto mais famoso é o sistema de notificação de emergência da
Moira , além de nós é usado no Avito e no Yandex.Money. O maior é o
leste . Este é um conjunto de ferramentas para o desenvolvimento de microsserviços na plataforma .NET, que os ajuda a se comunicar e coleta automaticamente seus logs, métricas e rastreamentos distribuídos.
Sobre a estrutura da empresa

O maior escritório "Kontur" está localizado em Ecaterimburgo. Com o crescimento da empresa, são necessários mais e mais funcionários, para que a empresa esteja em constante expansão. Os escritórios de desenvolvimento já estão em Novosibirsk, Perm, Izhevsk, Kazan, Innópolis, Rostov do Don e São Petersburgo. Além disso, a iniciativa de abrir novos escritórios geralmente vem dos próprios funcionários. Vários engenheiros legais planejavam se mudar para São Petersburgo - então abrimos um escritório nesta cidade.
A grande maioria dos funcionários trabalha em escritórios, mas como as equipes podem ser distribuídas entre as cidades, este ano a Kontur decidiu abrir a contratação de trabalhadores remotos. Ainda estamos aprendendo a trabalhar nesse formato, e há cada vez mais funcionários desse tipo.
O “Kontur” é dividido em três grandes áreas - desenvolvimento de produtos, vendas e atendimento ao cliente, serviços internos. As relações são construídas o mais horizontalmente possível em uma empresa de quase 10 mil pessoas: estamos trabalhando ativamente para manter o velho e o surgimento de novos relacionamentos entre os funcionários.
As equipes de produto empregam funcionários de diferentes especializações: programadores, testadores, analistas, designers de interface, profissionais de marketing, especialistas, gerentes ... Novas empresas iniciantes são serradas por uma equipe, produtos crescidos são frequentemente divididos em vários serviços e desenvolvidos por vários subcomandos.
As equipes são independentes e autônomas: os líderes tentam não interferir com instruções, burocracia e protocolos desnecessários.
As equipes têm líderes com funções diferentes. Os timlids são responsáveis pela qualidade do desenvolvimento. O gerente de desenvolvimento, na maioria das vezes um ex-engenheiro, cria o processo de criação do produto. O gerente de projeto está envolvido não apenas no desenvolvimento, mas também em vendas, promoção, marketing, comunicação com parceiros. Ainda existem gerentes de linha de produto. Eles tomam decisões sobre o lançamento de novos produtos ou a expansão de produtos antigos.
Sobre a contratação
- É difícil chegar até você?Difícil, mas possível. Por exemplo, existe um grande sistema de estágio para estudantes, que agora é realizado o ano todo. Neste verão, por exemplo, 140 estudantes internados, a maioria permaneceu na empresa.
"Eu ouvi sobre as guildas de seus entrevistadores." Diga-me o que é isso?São engenheiros de várias especialidades envolvidas na contratação de programadores. Por exemplo, para desenvolvedores de back-end, eles conduzem entrevistas técnicas em três ou quatro estágios: testam a capacidade de escrever código que funcione; capacidade de usar algoritmos e estruturas de dados; capacidade de criar arquitetura. O meio e os pecadores também estão testando seus horizontes em tecnologia.
A guilda agora inclui cerca de 90 desenvolvedores. Para chegar lá, você precisa selecionar os estágios que deseja executar (código, algoritmos, arquitetura) e realizar várias entrevistas como "escravo" (geralmente as entrevistas são conduzidas por um par de engenheiros "líderes" e "escravos"). Depois de passar nessa seleção, uma pessoa cai na piscina da guilda de entrevistadores.
Consideramos normal se cada participante realizar uma entrevista uma vez por semana. Para que as pessoas possam fazer seu trabalho e contribuir com a contratação de programadores.
A guilda avalia o nível técnico do candidato e passa o relatório para mim ou meus representantes. Realizamos a entrevista final, verificamos as habilidades sociais mais prováveis, a importância de uma pessoa para o valor do trabalho, o quanto ela pode refletir sobre seus erros.
Seção de pôsteres de verão Hackathon- Esse sistema tornou o processo mais rápido?Certamente se tornou mais rápido e compreensível. Anteriormente, havia uma lista de prioridades da equipe na forma de uma classificação. Eichar desceu e, por sua vez, ofereceu as equipes ao candidato. Como resultado, uma equipe poderia falar com ele e rejeitar, outra falar e rejeitar, a terceira. Era impossível entender quantas entrevistas uma pessoa terá. A avaliação de habilidades técnicas também foi embaçada - a equipe prestou atenção em várias coisas.
Agora, uma pessoa passa por quatro etapas e uma entrevista final por quarenta minutos. Dez minutos depois, já fazemos uma oferta ou recusamos.
Dura três, no máximo quatro dias. Anteriormente, a expectativa era de duas a três semanas.
- Você disca o mesmo para todas as direções?Não, todos esses estágios estão relacionados principalmente a endossadores - sharperists e javists. Para propostas de front-end, esses estágios são recolhidos em uma grande entrevista.
Em geral, é importante para nós não apenas habilidades técnicas em humanos. Claro, há uma certa fronteira, um mínimo técnico. Mais importante, porém, se uma pessoa será capaz de se adaptar e se desenvolver. De certa forma, nossos desenvolvedores têm um culto ao desenvolvimento.
Pessoas sem olhos ardentes e vontade de se desenvolver não se adaptam a nós. Mesmo se aceitarmos essa pessoa, provavelmente não trabalharemos juntos.
- O recém-chegado está chegando. O que vem a seguir?Eles acabam no Butcamp e passam por uma adaptação lá. O bootkamp consiste em duas partes. O primeiro - treinamento - dura duas semanas: três dias para conhecer o "Kontur" como um todo, com produtos, momentos de negócios - onde fica o café, onde fica a sala de conferências, imersão em cultura, tradições, feriados; mais uma semana e meia para se familiarizar com tecnologias e ferramentas. Por exemplo, os desenvolvedores repetem código limpo, manipulação de exceções, uso de elementos funcionais de programação, testes e TDD, SOLID, DI. Eles estudam como a infraestrutura e os serviços comuns são organizados para falar o mesmo idioma com outros desenvolvedores.
Suporte de escritórioAlém do treinamento, os iniciantes se comunicam com os líderes de equipe e gerentes de desenvolvimento. Timlids e gerentes podem começar a se comunicar, porque são informações abertas - que vieram com o próximo conjunto. E a inscrição no Butcamp acontece a cada três semanas.
Como resultado, durante essas duas semanas, o candidato determina em quais equipes ele irá para o estágio.
Os estágios já são a segunda etapa. Durante o período de estágio, uma pessoa pode visitar vários estágios. Em média, há três, cerca de três semanas em uma equipe. Ou ele pode escolher um time de uma vez e permanecer nele.
- Em relação às capitais, Ecaterimburgo é uma cidade pequena. Não existe tal coisa que os Jones venham bombear antes de se mudar, e os Siniors partem para países ensolarados?- Sim, as pessoas não apenas vêm, mas vão embora. A Kontur investe muito em educação, mas nunca liga as pessoas, não as força a assinar contratos com nenhuma obrigação. É claro que ficamos tristes quando as pessoas saem, mas quase sempre mantemos contato ainda mais.
Existem engenheiros legais que deixaram o Contour e agora trabalham no Facebook, Amazon e Google.
Obviamente, para mantê-los, não há brindes suficientes na cozinha e mais salários. Precisa de tarefas inovadoras. Temos sistemas grandes e pesados, tarefas complexas de produtos e projetos importantes de código aberto.
Monitoramos o mercado e pagamos salários correspondentes a ele, para que não haja situações em que uma pessoa receba uma oferta concorrente e começamos a girar como cobras em uma panela.
Sobre roubos internos de funcionários
Área de trabalho no "Contorno"Quando novos projetos são lançados, começamos a procurar pessoas dentro. A contratação interna geralmente ocorre nos bastidores. Um gerente vem até mim e pede que ele encontre alguém na equipe que não esteja sentado em seu lugar. E acontece que eles vêm à Kontur para se estabelecer imediatamente, como uma equipe inteira, e dizem: "Queremos trabalhar para você". Depois, vou na direção das instruções e digo: "Descubra os atrasos, obtenha produtos com atraso - uma equipe inteira apareceu".
Mas, em geral, o tópico com transições entre equipes é um pouco doloroso para o Contour. Isso é uma conseqüência do fato de serem amplamente independentes e os funcionários também serem recrutados de forma independente. Obviamente, às vezes acontece que um funcionário se move abruptamente, sem acordo prévio. Líderes diferentes têm atitudes diferentes em relação a isso.
Alguém está calmo - afinal, uma pessoa continua a beneficiar a empresa. Alguém está com mais inveja, diz: "A equipe tem momentos difíceis, mas ainda tenho pessoas sendo levadas embora". Alguém diz: “Não sou avesso a dar, mas antes falava comigo. Não há necessidade de ir diretamente ao funcionário e persuadir. ”
A discussão sobre mobilidade horizontal vem ocorrendo há muitos anos, os pontos de vista são diferentes. Todos podem ser entendidos. Eu próprio acredito que é melhor oferecer a alguém algo dentro da empresa do que deixar sair.
Existem muitas oportunidades dentro da empresa. Por exemplo, um analista de produto, um psicólogo da educação, viu uma oportunidade de trabalhar na especialidade da Kontur: agora temos um psicólogo em tempo integral que diz aos outros como mudar seu trabalho.
Mas a pergunta, é claro, é delicada.
Como lidar com o burnout
Transformação de Energia - Hackathon 2018- Você costuma enfrentar desgaste dos funcionários?Não vou dizer isso com frequência, mas me deparei. Tentamos ajudar a nos encontrar. Damos oportunidades para alternar entre projetos, mudar o papel, responsabilidades. Você pode encontrar ou ligar pelo Skype com o mesmo psicólogo em período integral: ele aconselhará como ser.
, . , , . — .
— ?, . , . .
, . , , , .
, . — , . , — , , , . , , , .
, , , , . , , . , — , - .
.

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