Olá Habr!
O desenvolvimento em um integrador geralmente é bem diferente de trabalhar em uma startup ou estúdio de desenvolvimento de software. Das vantagens - muito mais tarefas globais, centenas de especialistas estão trabalhando na solução de alguns deles ao mesmo tempo, para que você não fique entediado. E também - a capacidade de aumentar rapidamente suas próprias habilidades e crescer dentro da equipe.
Das desvantagens - esse trabalho nem sempre é visível para o usuário final, bem, e devido a alguns NDAs do tamanho de uma torradeira, nem tudo pode ser dito.
Quando eu queria falar sobre um projeto divertido, mas novamente a NDAMeu nome é Ivan, sou gerente técnico (Java) da CROC. Hoje, tentarei abrir um pouco o véu do segredo e falar sobre como geralmente trabalhamos para desenvolvedores, que são cerca de 350 pessoas, bem como sobre as vagas atuais (Java, PHP e front-end). Detalhes - sob o corte.
Eu mesmo entrei no CROC por acidente, vim em 2012 para a segunda lição do curso de Java, que foi realizada aqui. Gostei imediatamente do curso em si (utilidade e apresentação do material) e da empresa, em princípio. Naquele momento, eu ainda estava em um instituto de pesquisa (trabalhei lá como técnico, recebi um diploma, tornei-me engenheiro e trabalhei por 4 anos no total) e tinha uma oferta de outra empresa em minhas mãos. O que me colocou diante dessa escolha:
- ir regularmente a uma certa empresa em C ++, porque eu conhecia C ++ muito bem;
- vá para o CROC em Java, mas para uma posição júnior e aprenda tudo do zero.
Após um breve tormento e o percurso, mencionado acima, foi tudo incluído - escolheu o CROC.
O primeiro projeto em que trabalhei foi a automação do fluxo de trabalho de um grande projeto estadual (e - sim, um conhecimento próximo do NDA). Foi um pouco surpreendente - você vem de um dos institutos de pesquisa com um orgulhoso conhecimento de notação aritmética e húngara de endereços, e aqui você imediatamente terá java, CamelCase, BPM, ECM e outros nomes agradáveis ao seu ouvido, que após o enferrujado * mundo C parecem ser mágicos.
Trabalhamos no projeto por um bom tempo, porque o número de iterações não era, francamente, fraco.
No começo, fiz muitas perguntas a meus colegas - como é geralmente aceito trabalhar para absorver não apenas o conhecimento em si, mas também os princípios de trabalhar com a pilha no CROC. Os colegas foram à reunião e ajudaram com conselhos, dando-me horas inteiras. Eu absorvo rapidamente o conhecimento, então, um ano depois, atualizei de júnior para regular e, um ano depois, um novo nível subiu - para um desenvolvedor líder. A empresa permitiu ser arquiteta, líder de equipe e pré-venda técnica. Agora - gerente técnico.
Em princípio, nossas trilhas de desenvolvimento se parecem com algo assim - você pode se tornar um gerente de projeto, especialista técnico ou gerente técnico. O papel de um gerente técnico é coordenar todas as pessoas e recursos em um projeto específico. Uma espécie de guru. Isso implica uma alta responsabilidade e competência: nesse caso, esse especialista deve poder substituir qualquer membro da equipe.
Escolhi a terceira opção, agora gerencio uma equipe de desenvolvimento de 7 pessoas. Depois de passar vários anos aqui e comparar a carreira de outros caras, posso dizer que isso não é uma exceção à regra - é assim que cresce em alguns anos, mas a situação é normal para o CROC. Alguém escolhe o movimento horizontal entre as equipes - mude o back-end e o front-end e vice-versa - sem problemas.
Existem pessoas que estão prontas há cerca de 10 anos para trabalhar em um projeto grande (e existem muitos projetos escaláveis aqui) e desenvolver dentro dele. Há quem prefira crescer em diferentes projetos, expandindo constantemente seus conhecimentos. Ambas as abordagens são bem-vindas.
Que coisas interessantes fazemos na CROC
Recentemente, houve um grande projeto
"Justiça Eletrônica" - que incluía trabalho com o Tribunal da Cidade de Moscou e 35 tribunais distritais de Moscou. O escopo das tarefas é meu respeito. Cerca de 400 pessoas trabalharam no projeto ao mesmo tempo.
Há alguns anos, começamos a trabalhar na automação do fluxo de trabalho da SIBUR.
Se alguém quiser experimentar projetos de blockchain em áreas reais da economia
, também temos . Por exemplo, agora trabalho em projetos de contratação digital ao uso de blockchain na esfera social. Tudo sob a NDA, é claro, então infelizmente não posso dar exemplos.
A propósito, ainda havia uma coisa interessante em um projeto interestadual. A CROC desenvolveu e usou com sucesso sua própria estrutura para "desenvolvimento rápido", com base na descrição do modelo de domínio. Aliás, ele está registrado no catálogo de software russo e pode ser usado para desenvolvimento, incluindo e para agências governamentais. Na estrutura do projeto, foi criada uma nova versão, que possibilita formar aplicativos em diferentes estados com base em um único modelo de informação. Nesse caso, a versão básica dos aplicativos foi criada pela geração de código e o restante da personalização permaneceu com os desenvolvedores.
Outro caso é um projeto relacionado à assinatura eletrônica. Em vários estados, os GOSTs nos EPs têm os mesmos números, mas, ao mesmo tempo, as implementações são tão diferentes que, de fato, se tornam incompatíveis. Se na Rússia o fornecedor de soluções de criptografia é o CryptoPro, na Bielorrússia o fornecedor é diferente.
Era necessário garantir que um documento formado em uma comissão pudesse ser assinado com uma assinatura eletrônica aceita em seu país, mas em todos os outros países, ao verificar este documento, sua validade foi determinada de acordo com as decisões locais.
Meu local de trabalho e colegas
Em vez do amplo espaço aberto habitual para 100 pessoas, temos quartos para 5 a 10 pessoas. Portanto, meu local de trabalho fica assim:

Um dos principais assistentesVou apresentá-lo aos meus colegas. Aqui, por exemplo, Zhenya, gerente técnico (Java, front-end).


Falando em frontend. Para projetos grandes, usamos o CROC WebClient. Essa é uma estrutura usada para criar interfaces eficazes e ergonômicas para aplicativos clientes que funcionam com base no cliente "thin" em navegadores modernos. As funções do sistema permitem que você suporte o trabalho em estações de trabalho e dispositivos móveis, trabalhe em várias resoluções do navegador e com uma interface de toque.
Palavra para Esposa:A presença da estrutura simplifica bastante o trabalho do desenvolvedor. Desenvolvidos geralmente são divididos em direções: Java, Dotnet, frente. Mas nem todas as empresas de TI possuem essa divisão. Honestamente, também não tínhamos. Por exemplo, existem estereótipos, eles dizem, se você conhece, você conhece a web.
No entanto, nem todos os desenvolvedores gostam de navegar na web. Para os gerentes, isso é um problema. O cliente da Web resolve parcialmente - fecha várias tarefas de rotina e simplifica um pouco a vida.
Na maioria dos produtos, temos nosso próprio design e nossos componentes, e são necessárias pessoas para apoiá-las e aperfeiçoá-las. Javists realmente não querem desenvolver isso, então aqui precisamos de pessoas para um front-end limpo. No entanto, qualquer pessoa interessada em ser full-stack é bem-vinda.
Por exemplo, agora estamos atualizando o design da interface do usuário para um sistema judicial, desenvolvido há muito tempo na versão anterior de nossa estrutura e com um longo histórico. Ao longo dos anos de uso, ele conseguiu se tornar ultrapassado e parece mais um sistema de contabilidade de armazém do que algum tipo de sistema amigável para uma pessoa moderna.
Trabalhamos em sprints de duas semanas, os desenvolvedores estão fisicamente localizados em 8 regiões diferentes da Federação Russa. No início de cada corrida, os caras estabelecem objetivos comuns, descrevem tarefas e as distribuem entre os desenvolvedores, um dia separado para avaliação e planejamento. Em seguida, a composição do sprint é ajustada, se necessário. Todos os dias, durante 15 minutos, pequenas reuniões na webeh, no final do sprint - retrospectivas. Todas as dificuldades organizacionais emergentes são discutidas e tratadas no próximo sprint, não estamos salvando nada. Por que na webex - em Habré, de alguma forma, houve um post de que temos todo um conjunto de escritórios de desenvolvimento em todo o país. Por exemplo, neste projeto, envolvi até 7 escritórios - de Krasnodar a Irkutsk. A propósito, a empresa tem a oportunidade, uma vez por ano, de mudar por algumas semanas para outro escritório e trabalhar a partir daí.
Uma vez por mês - uma demonstração geral em que toda a equipe pode ver o que alcançou e para onde seguir em frente.
Há trabalho suficiente no front-end - você pode vir especificamente para este projeto, mas pode transferir para qualquer outro a qualquer momento. Temos a mesma estrutura, portanto, não há dificuldades com as transições entre projetos.
A propósito, essa é uma das diferenças entre o trabalho de linha de frente no CROC e em outras empresas - eles geralmente tentam usar algo pronto como estruturas, enquanto estamos vendo o nosso. Isso também tem suas dificuldades, principalmente no estágio inicial, mas ainda há mais vantagens para o cliente em potencial.
E aqui está
Andrey , especialista em desenvolvimento de software. Um especialista, como mencionado acima, é o nome da posição; há alguns anos, ele se tornou o primeiro no departamento que decidiu desenvolver uma carreira não em gerenciamento de desenvolvimento, mas em desenvolver conhecimentos em tecnologia. Quando cheguei ao CROC, tive a sorte de trabalhar na equipe de Andrei, que está envolvida principalmente em projetos de R'n'D e nas quais raramente aparecem vagas para desenvolvedores iniciantes. É ainda mais valioso que um de seus dois emblemas de mentor tenha sido enviado a Andrei por mim, e as recomendações recebidas durante o processo permitiram que eu me desenvolvesse dinamicamente como desenvolvedor no futuro.

A propósito, se você olhar de perto, na mesa de Andrei há uma tampa do logotipo do podcast
"Debriefing Podcast
" - um podcast famoso para pessoas reais de TI. Os mais atentos perceberão que esse boné não é simples, mas raro, e o logotipo é vintage. Andrei está envolvido na análise desde 2013, quando foi gravado pela primeira vez no JavaOne em San Francisco.

Além disso, Andrei é participante regular e membro do comitê de programa das três principais conferências Java do país:
Joker em São Petersburgo,
JPoint em Moscou e
JBreak em Novosibirsk, para que ele tenha vários patos em seus assistentes ao mesmo tempo. Este ano, ele fez uma
apresentação na JPoint.

E, é claro, ele provavelmente é familiar a muitos javistas como líder da comunidade java de Moscou - desenvolvedores. Dezenas de membros da comunidade se reúnem cerca de uma vez por mês para se reunir com os principais especialistas do mundo Java para ouvir apresentações e socializar em um ambiente informal. Se você ainda não esteve no JUG de Moscou, participe de uma das próximas reuniões. Abaixo está um link para um grupo com anúncios de reunião.
Foto de uma das reuniões no escritório do CROCVá em frente. Aqui é o lugar do técnico
Alexei , que trabalha com desenvolvedores de PHP.

Sua equipe estava desenvolvendo um portal de tribunais de jurisdição geral em Moscou, que incluía uma conta pessoal de cidadãos. A equipe se forma há muito tempo e agora é uma equipe de projeto estabelecida com forte conhecimento e experiência de especialistas.
Ao desenvolver o portal da Internet, era necessário levar em consideração o fato de que os usuários, em princípio, não enfrentam o sistema judicial nos momentos mais positivos de suas vidas, por isso tentamos implementar uma conta pessoal para os cidadãos o mais confortável e conveniente possível.
Muito rapidamente, percebemos que o trabalho nesse projeto precisava aplicar metodologias de desenvolvimento flexíveis. A plataforma externa é, de fato, a face do sistema judicial, por isso foi especialmente importante mostrar versões intermediárias do portal às partes interessadas. Como resultado, o processo foi construído de tal maneira que era possível liberar parte da equipe nas férias e não se preocupar que alguém não fizesse algo.
Inicialmente, o portal foi criado levando em consideração o fato de ser utilizado por cidadãos da Federação Russa. Mas com o tempo, os não residentes também começaram a trabalhar no portal. E se você, por exemplo, é cidadão da Bielorrússia, então, ao trabalhar com a plataforma eletrônica, já existem dificuldades - não há passaporte russo e SNILS. Portanto, como parte do apoio ao projeto, o portal foi finalizado levando em consideração os interesses dos cidadãos estrangeiros.
Sobre burnout

Parece-me que nosso modelo de organização do trabalho é projetado de modo que é muito difícil se esgotar. Quando você é um desenvolvedor líder, pode assumir um projeto, dois, três. Além dos próprios projetos, geralmente existem algumas atividades secundárias geralmente pequenas, mas que ajudam a alternar e descontrair.
Tomamos e começamos nossa
escola de Java como parte de tais atividades. Alguém faz vídeos com lições que podem ser assistidas por qualquer KROKovets na Universidade Corporativa (basta se inscrever em uma palestra interessante e assistir diretamente do local de trabalho). Por exemplo, recentemente gravei uma palestra sobre boas práticas em gerenciamento de código java.
Acontece que gravar uma palestra em vídeo não é a tarefa mais rápida e trivial, como pretendia originalmente.
Também temos uma escola de treinadores (estamos aumentando as habilidades dos funcionários para apresentar independentemente seus conhecimentos), temos uma faculdade técnica (troca de experiências entre departamentos).
Além disso, além dos projetos corporativos de blockchain já mencionados, também estou criando uma ferramenta para rápida integração em Java. Este é essencialmente um desenvolvimento de produto.
E aqui a experiência de um acelerador corporativo interno nos ajuda muito - as habilidades relacionadas a como abordar o desenvolvimento de produtos, o desenvolvimento do cliente e assim por diante - tudo isso foi obtido precisamente no acelerador e agora é aplicado com sucesso em muitos projetos.
Estamos falando de um programa intensivo de três meses, uma espécie de trepidação do produto que você leva para o acelerador e o cérebro da equipe que trabalha nele. Durante todo o processo, dois rastreadores são atribuídos à equipe - um da CROC e um de uma equipe externa de especialistas em produtos profissionais. O acelerador permite educar equipes de produtos dentro da empresa, que no futuro podem funcionar em seus produtos ou nos produtos da empresa. Por exemplo, minha equipe e eu trabalhamos em um projeto de lavanderia para academias. Spoiler - o tópico não decolou, mas todos ganharam experiência.
Ágil
Geralmente, quando você tenta escrever o quão legal você trabalha onde trabalha, você definitivamente deve mencionar ágil. Mencione aqui também.

"Palavra por palavra": não trabalhamos com agilidade.
Sim, vamos elaborar um plano por algumas semanas, o que faremos e como, quando haverá entregas - e, em geral, isso é tudo. Nós não seguimos o dogma a esse respeito, apenas pegamos as ferramentas que estão sendo procuradas. Trabalhamos em iterações curtas, discutimos escopos, realizamos comícios de sincronização, propriedade geral do código e assim por diante - isso é natural.
O planejamento do pôquer ainda não se enraizou. Existem pessoas experientes que podem entender quanto tempo esse ou aquele projeto levará. Bem, a avaliação é de responsabilidade do contratado. Quem se compromete a fazer a tarefa, ele estabelece os prazos. E é responsável por eles.
O que mais. Nossa pilha é a mais nova. Se alguém perceber que alguma solução usada está desatualizada, você pode vir e oferecer uma alternativa. Isso também é normal. Acho que tivemos sorte aqui em termos de burocracia e tomada de decisão - todos os diretores de departamento, gerentes de recursos e gerentes de linha estão abertos a inovações. Se você deseja aplicar uma nova tecnologia - sugira.
Empregos
Prometi, no início do post, falar sobre algumas de nossas vagas - aqui estão elas. Devo dizer imediatamente que todas as vagas não se limitam apenas a Moscou - essas pessoas também são procuradas nas regiões.
Engenheiro de Desenvolvimento Java
Sobre o fato de termos integração em Java, escrevi. Uma vaga nessa área envolve o trabalho com soluções de integração, bem como o desenvolvimento de software personalizado.
Se você estiver interessado em participar de projetos para o desenvolvimento de software comercial, sistemas de fluxo de trabalho, soluções de integração ou desenvolver uma estrutura (e você tiver a mais alta experiência técnica + em desenvolvimento de software a partir de 1 ano) - os detalhes estão
aqui .
Desenvolvedor PHP
As principais tarefas são o desenvolvimento e o design de serviços da Web, bem como módulos e subsistemas de aplicativos da Web. Tarefas e requisitos detalhados estão na
página de vagas.
Desenvolvedor Frontend
Faça interfaces levando em conta que dezenas de milhares de usuários as usarão em sistemas corporativos e públicos. Você pode vir com um graduado e um estudante, o mais importante - experiência prática de 2 anos e conhecimento dessas
tecnologias .
Se você tiver alguma dúvida sobre alguma dessas vagas ou condições de trabalho como um todo, escreva nos comentários, terei o maior prazer em respondê-las.
Referências:
Último post sobre nossos escritórios de desenvolvimento nos países .
Um podcast com Andrei sobre a vida dos desenvolvedores no CROC gravado em Irkutsk, visitando
@golodnyj .
Grupo jug.msk.ru VKontakte .
Anúncios de reuniões na íntegra
aqui .
Meu e-mail para perguntas é ipopkov@croc.ru.