20 anos de carreira em programação em uma grande cidade pequena

Fazemos o que devemos porque podemos - GLaDOS

Izhevsk, hoje


O primeiro de fevereiro marca exatamente duas décadas desde que comecei a trabalhar formalmente como engenheiro de software:

Foto da primeira página do livro de trabalho com a data de 1º de fevereiro de 1999

Eu continuo até hoje. E, por alguma razão, parece-me que muitos estarão interessados ​​em se familiarizar com a história de como você pode fazer uma carreira de programação horizontal completamente bem-sucedida sem sair de sua cidade natal e fazendo quase todo esse tempo tarefas bastante interessantes, se não loucas.

É claro que cada pessoa tem uma medida de "sucesso", mas o fato é que, nos últimos 15 anos, tenho trabalhado em cargos de alto escalão em projetos, principalmente ligados a grandes clientes corporativos ou estrangeiros, e quase todos os novos empregos me encontram por conta própria. E ainda não está cansado.

Quero avisá-lo que minha história é uma longa caminhada típica no formato de entrevista em primeira pessoa, às vezes chata e quase sem fotos, porque sou basicamente um back-end. Pode ser difícil para um leitor sem formação técnica, pois está cheio de jargões de programadores (tentei explicar alguns dos termos, mas não todos). E também memes antigos decentes, detalhes nostálgicos e estudos culturais locais.

Mas você ama autobiografias com piadas autistas , não é?

Izhevsk, meados dos anos oitenta


Tudo começou há muito tempo. Um dia, minha mãe, que trabalhou como programadora em um instituto de pesquisa soviético comum, envolvida na engenharia reversa de amostras da tecnologia ocidental de computadores, me levou para o trabalho - para mostrar o que, como e me deixar tocar. Recentemente, eles chegaram a contrabandeados "pessoais" - PC / AT, que executam todos os tipos de escavadeiras e tetris.

Antes da aparição dos "funcionários", o instituto de pesquisa trabalhava para a União Soviética (clone IBM S / 360, ocupa uma sala) e SM (clones VAX, PDP-11 etc., geralmente um gabinete do tamanho de um piano), então em casa tínhamos algumas bobinas fitas perfuradas e impressões com listas de montagem. Minha mãe também fazia viagens de negócios periodicamente com pacotes de “panquecas” - unidades magnéticas removíveis pesando 15 quilos cada, com medo de trólebus - então eu estava mentalmente preparado para o passeio. Espera-se ver algo semelhante ao cenário dos filmes de ficção científica da época.

E eu vi. Mas os armários, nos quais algo está girando, piscando com lâmpadas e zumbindo com ventiladores, não eram tão impressionantes quanto o Digger, mesmo em uma tela monocromática. Além de software para layout de PCB, desenhando-os em uma plotadora (assistindo um marcador de tinta voar sobre uma folha A1 - parecia algum tipo de mágica), e inúmeras telas de listagens familiares de programas para máquinas CNC nas quais eu estava trabalhando mãe

Escusado será dizer que a decisão de se tornar um programador tomou forma na cabeça de um aluno da segunda série instantaneamente e ficou firmemente entrincheirada lá? Eu tinha sete anos e não me lembro se já sonhei em ser astronauta, bombeiro ou o que as crianças geralmente querem estar lá antes - mas assim que decidi que iria me tornar um programador (além disso, bom, porque qual é o objetivo ficar ruim?), nada mais me interessava.

E para se tornar um bom programador, você precisa estudar muito. Eu terminei as três primeiras aulas de uma escola abrangente com excelentes notas e fui capaz de entrar em um liceu com um viés matemático. Em geral, naquela época na cidade havia várias escolas com boa qualidade de ensino - 29, 30, 41 (liceus), 56 (ginásio). Cada uma é uma marca local e um berçário dinástico de elite técnica, humanitária ou gerencial, dependendo do perfil. Especialmente os "trinta" - quase todos os gerentes de fábrica locais (e Izhevsk era tradicionalmente uma cidade-fábrica) se formaram nela e, em regra, na classe. Como, no entanto, é minha mãe (e ela também se tornou líder, mas mais sobre isso mais tarde).

E se falamos de escola, o fato de que no corredor do segundo andar havia mesas de xadrez com um conjunto completo de figuras, que estavam em constante demanda por intervalos, e as cortinas de renda nas janelas eram de uma brancura deslumbrante, vale a pena pensar nos exames de transferência a partir da sétima série - em que os estudantes locais participaram de maneira comum com crianças de outras escolas. Naquela época, “trinta” ainda detinha a marca (ela a soltou após o meu lançamento e, infelizmente, completamente).

A cultura era alta e a competição era muito acirrada. Dos 30 excelentes alunos que vieram para a quinta série comigo, dez permaneceram na direção matemática até a final, os demais dispersos de outras maneiras ou até desistiram. De fato, havia duas turmas, mas apenas os alunos da primeira, que ocupavam a metade superior da classificação acadêmica, podiam participar da equipe da Olimpíada, que tradicionalmente acontecia na república e na Rússia (e às vezes em competições internacionais).

Eu saí em algum lugar do sexto lugar, subindo periodicamente mais alto; portanto, durante a preparação para as Olimpíadas, frequentemente me encontrava com os outros caras avançados nas mesas dos fundos, onde, em vez de um trabalho independente, resolvíamos problemas +, tarefas ° e até tarefas **. Na verdade, não tenho o pensamento das olimpíadas - eu entendo bem a essência dos problemas, mas penso muito devagar e sempre faço várias abordagens de teste, por isso nunca me movi acima do palco da cidade. Bem, pelo menos eu participei, e o resultado pode ser considerado treinamento cerebral para não-padrão (mas reproduzível, em contraste com as soluções de olimpíadas típicas, que geralmente são estritamente ad hoc).

De qualquer forma, mesmo o último trio pelos padrões de um berçário de elite teria sido um excelente aluno em uma escola regular e, na universidade, me ligou ... no entanto, em ordem.

Depois de muitos anos, avaliando minhas capacidades, às vezes começo a me arrepender de não ter escolhido nenhuma universidade capital em vez da universidade técnica local - meus colegas se formaram com sucesso no Instituto de Física e Tecnologia de Moscou e na Universidade Estadual de Moscou (e alguns eventualmente trabalham no Google), mas isso é arrependimento passa rapidamente quando me lembro de como estudei nos semestres gerais antes do "equador". Eu não estudei nada: a bagagem da escola, incluindo cursos adicionais ministrados pelos mesmos professores da universidade, era suficiente para receber "máquinas" em quase todas as disciplinas. No entanto, eu nem participei das aulas introdutórias - tornei-me estudante em abril, após concluir cursos preparatórios e obter a pontuação mais alta nos exames simulados. Como você sabe, não foi difícil.

De todo o programa universitário, no final, pelo menos de alguma forma eu só precisava de um curso de banco de dados - no final dos anos 90, ele estava desatualizado por quinze anos, se não mais, e a principal espinha dorsal do ensino era feita por ex-programadores de fábricas. O que eles poderiam ensinar, exceto a primitiva "cascata" e a programação processual, é uma questão retórica. Das vantagens de tal "educação" - eu posso ler assembler, e eu entendo como o sistema operacional funciona com ferro. Mas a programação industrial, em seu sentido moderno, era decididamente impossível de aprender em uma universidade.

Somente a auto-educação em batalha poderia me salvar e, no segundo ano, encontrei um emprego. Bem ali, no departamento, um administrador de sistema. O trabalho é mais ou menos assim, mas garantiu acesso ilimitado aos servidores da faculdade e à Internet, além de permitir que você fique no laboratório pelo menos por dias a fio - e gaste tempo não apenas conversando no IRC com garotas de uma universidade próxima, mas também codificando algo para todos os tipos de coisas aleatórias. clientes. O salário mínimo em 1999 era de 83 rublos e 49 copias (por que pagar mais a um aluno?). E uma garrafa do Chuvashia Bouquet na loja do reitor, em frente ao prédio educacional, custava 4,60. Às vezes, com outros estudantes de administração semelhantes, deixávamos algumas caixas cerveja barata para educação física, para não perder tempo em círculos sem sentido no estádio.

Em vez de physra, o tempo foi desperdiçado em nossas próprias habilidades em Perl e tcl (é muito interessante programar o chatzot Irz para entreter meninas de uma universidade vizinha), bem como desenvolver um sistema interno para realizar torneios de acordo com as regras da ACM .

Izhevsk “mehan” também encontrou sua própria equipe olímpica, que naquela época também ocupava muito longe os últimos lugares em competições internacionais, mas me pareceu muito mais interessante fornecer infraestrutura para torneios do que colocar seus cérebros neles. Além disso, as classificações deveriam ser assim e assim. Além das linguagens de script e de nível absolutamente baixo, eu não evitei os utilitários para contabilidade em um monte de 1C e Visual Basic, ou para deanery no FoxPro e Delphi, e por diversão escrevi applets em Java para o meu "hamster" no servidor da faculdade.

A prática não é supérflua, como dinheiro. Além disso, sendo preguiçoso nos primeiros cursos, pontuei nos estudos e fiquei sem uma bolsa de estudos e, no final, fui para a academia por causa da falha na sessão. No entanto, a gripe que caiu dos pés e a depressão que entrou em colapso após o amor infeliz também tiveram um papel nisso.

Seja como for, não consegui concluir o quarto ano pela primeira vez e tive que gastar seis meses de tempo livre para um bom uso, enquanto tentava não recitar o exército.

Verão de 2001, Izhevsk


Onde ir para um aluno não instruído com a capacidade de administrar o nyx e a bagagem dispersa de habilidades práticas de programação para algo simples? Eles não levaram a lugar nenhum sem um diploma, exceto um administrador de sistemas, mas eu aceitava qualquer trabalho, apenas para esperar o tempo até me recuperar.

Felizmente, a mesa apareceu com o nome falante "Virtual Izhevsk". Um estúdio web microscópico, mas como deveria ser qualquer estúdio web que se preze - com um catálogo de recursos regionais, um servidor web e muitos projetos de diferentes níveis de marginalidade. Como você gosta, por exemplo, do concurso de beleza online "Miss BikiNu-2002"? E se eu disser que ele tinha uma seção fechada para patrocinadores, com fotos mais interessantes de "modelos"?

O mesmo adicionador, em suma. Por outro lado, o diretor do escritório teve uma ideia de consertar todo o desenvolvimento do estúdio, desde o freio Perl até a versão 4 do PHP recém-lançada, porque em algum lugar ele havia lido que tinha o futuro (e era muito mais rápido). Em geral, o diretor não se enganou. Fiquei lá por apenas seis meses, mas pelo menos aprendi a escrever de maneira tolerável em PHP - e, devido às especificidades dos projetos, tive que cuidar da segurança. Eles tentaram quebrá-los com o objetivo de enganar os votos - os prêmios de patrocínio nas competições eram muito bons, como viagens a uma companhia de amigos na Turquia, e meninas daquela universidade muito vizinha reuniram equipes inteiras de simpatizantes prontos para trazê-los ao topo.

Também foi interessante a iniciativa do mesmo diretor de reunir uma comunidade local de desenvolvedores da web - um fórum no qual todos os desenvolvedores e fornecedores de Izhevsk participariam - e, imagine, ele ainda está vivo de alguma maneira, mesmo na quinta reencarnação . Que outra cidade tem seu próprio festival de rock para 1.500 pessoas de TI? E em Izhevsk há o RockIzhaiti. Tudo começou lá, em um quadro de mensagens auto-escrito, onde os desenvolvedores e gerentes de uma dúzia de escritórios locais compartilharam culturalmente seus projetos e experiências a portas fechadas, e então começaram a criar srachs épicos que rapidamente ficaram offline. Os últimos ecos dessas lendárias batalhas verbais e vinganças comerciais do início dos anos 2000 ainda estão em chamas na comunidade local.

Eu me recuperei na universidade e não havia mais motivo para ficar por dias e noites no porão, me escondendo de um camarada major.

Mas o próprio destino imediatamente lançou um trabalho em um estúdio na web alguns andares (e a classificação dos projetos) mais alto. Naquela época, minha mãe havia completado sua carreira de programadora, mas ela não abandonou a TI (não é tão fácil pegar e largar a TI), mas conseguiu um emprego como diretora adjunta de uma das divisões de infraestrutura dessa universidade muito vizinha, de onde eram as meninas que já foram mencionadas algumas vezes nessa história. Os meninos, no entanto, também estudaram lá, e mesmo nas especialidades da “ciência da computação no campo de algo”, mas a universidade não é técnica.

A unidade foi chamada de "Centro de multimídia e tecnologias da Internet" e formalmente engajada no suporte a sites de universidades, sistemas de ensino a distância etc., mas na verdade era uma estrutura híbrida como parte do ambiente de negócios da universidade, ou seja, estava ganhando dinheiro e não apenas para manter a imagem.

O departamento de multimídia produziu discos de apresentação para fábricas locais (por exemplo, Izhmash e SEGZ ), e o departamento de tecnologia da Internet era o próprio estúdio na web que recebia prêmios regularmente em exposições do setor. Honestamente, a parede do escritório do diretor, cheia de diplomas do chão ao teto, inspirada. Basicamente, os clientes que chegaram ao assunto concordaram com o desenvolvimento do próximo site representativo.

Aconteceu apenas um pequeno problema - a equipe de programadores e designers, que ganharam todos esses prêmios, levaram e deixaram o prédio como um todo, levando metade dos projetos atuais com eles. Era difícil acomodar uma multidão em constante crescimento em uma equipe universitária que não era de borracha e, em geral, eles queriam algo mais.

Eu precisava urgentemente de uma substituição "bom, pelo menos alguém", mas estava com muito sucesso. Mamãe me arrastou pela nuca, me jogou para trás do console do servidor do escritório e ordenou que eu colocasse tudo on-line em minhas próprias mãos. Da mesma forma, o departamento de multimídia ficou nas mãos do filho da namorada de minha mãe e começamos a pensar!

De fato, é difícil imaginar uma situação mais estressante: tomar o lugar de profissionais reconhecidos, capturar desenvolvimentos estranhos e completamente desconhecidos pairando no ar em movimento e fingir que você é capaz de fazer tudo isso. Sim, e pelo menos não pior. Não me lembro dos próximos meses - de manhã tive que visitar casais (graças a Deus, não todos, alguns dos itens que foram recarregados) na minha universidade, depois me arrastar por toda a cidade até a vizinha e ficar ali até tarde da noite. E o fim de semana também está no trabalho. Eu também queria sair, mas como ser um estudante e passar sem embriaguez ...

Demorou cerca de seis meses para ler todos os RFCs sobre tecnologias, todos os manuais das linguagens e plataformas usadas, para analisar todos os montantes de código herdados da equipe antiga (especialmente sites de universidades escritos em uma terrível mistura de versões anteriores de Java e PHP com extensões auto-escritas) e manter paralelos desenvolvimento de base de software próprio - somente em PHP. Não apenas porque a nova vassoura deve se vingar de uma nova maneira, mas pelo menos por razões de higiene: ao longo dos dez anos de trabalho da equipe antiga em projetos que foram realizados sem nenhum controle de versão, muito lixo se acumulou e, de uma nova aparência, foi muito perceptível.

Também vale a pena considerar que o mercado da época ainda não possuía nenhum CMS desenvolvido e, de fato, a situação atual no desenvolvimento da web era difícil de chamar de “mercado”. Cada escritório escreveu algo original, com seu próprio zoológico. Portanto, me envolvi com todos os exemplos disponíveis de " nus " de código aberto e, no verão seguinte, pouco antes do quinto ano, montei um CMS simples a partir das peças sobressalentes do meu fórum e dos "motores" competitivos, o que tornou possível resolver tarefas momentâneas. Além disso, fiquei preso ao tópico do UX e, tendo estudado todos os HIGs disponíveis na época, por algum motivo fui inspirado pelo Microsoft Wizards 97, cuja ideologia tentei implementar o máximo possível na interface, implementando assistentes passo a passo para todas as ocasiões.

Versão mais recente do CMS, assistente de criação de página do site

Curiosamente, mas a brincadeira foi um sucesso. Não só consegui concluir com êxito os projetos que haviam travado, já no meu próprio mecanismo, como também acelerou o desenvolvimento várias vezes. Além disso, devido à necessidade de documentar cuidadosamente os projetos que tínhamos, eu naturalmente tinha a tarefa técnica mais detalhada para um local representativo típico de uma fábrica típica - bem como um manual de treinamento para os autores de sites municipais, pois um dos projetos era exatamente assim, e a Lei Federal com o modelo ainda não estava lá.

Muitos desenvolvedores iniciantes subestimam o poder da documentação, especialmente o poder dos manuais metodológicos, mas como eu o entendo, naquele exato momento, depois de passar por todos os casos de usuários e sentir a dor e as necessidades do cliente, mudei de desenvolvedor iniciante para analista de sistemas iniciante. E se antes o trabalho de um programador me pareceu uma solução para quebra-cabeças interessantes, agora ele se tornou o que realmente é - a automação da rotina das pessoas.


Além disso!
Um programador não é um criador. — , , , , , , , .
Mas não vamos nos distrair com a filosofia. No centro multimídia, desculpe, "Centro de Tecnologias Multimídia e Internet da Universidade Estadual de Udmurt". Trabalhei por quase cinco anos. Eu fiz meu diploma para a Universidade Técnica Estadual de Izhevsk usando o exemplo de introdução de uma versão experimental do meu CMS para o site municipal da cidade de Glazov (no futuro, ele também receberá o prêmio Runet Prize em sua categoria; o projeto ainda está vivo na quarta versão). Foi o primeiro diploma na história do departamento a abordar algo próximo à Internet, portanto, no folheto, o tópico é listado como “O sistema de gerenciamento de continentes [sic!] Site”. Bem, em 2003 ninguém sabia a palavra "conteúdo", então eu não comecei a corrigir esse artefato da época.

Enchemos rapidamente a mesa de pessoal desaparecido com os mesmos alunos (bem, talvez não seja tão objetivo e teimoso quanto eu) - e nos transformamos em uma espécie de forja de pessoal. Muitos dos caras que iniciaram sua carreira em meu departamento como trainees ou graduados, agora têm seus próprios escritórios e projetos e são especialistas respeitados na cidade. Colocando o desenvolvimento no fluxo, melhorei gradualmente o processo em si e meu CMS (em particular, criei meu próprio compilador de linguagem de marcação para modelos, o que me permitiu alterar o design do site em tempo real, não apenas estilos, mas também HTML e scripts).

O modelo de negócios escolhido no escritório não implicava a alienação do produto - oferecemos uma assinatura para suporte ao autor, mas, se necessário, os clientes gerenciavam seus sites de forma independente, pagando-nos apenas por atualizações de hospedagem e CMS - guias detalhados do usuário e assistentes passo a passo permitiam que eles trabalhassem autonomamente, sem comprometer a qualidade geral, e muitos deles ficaram conosco por até uma década. Por muitos anos depois que saí, os projetos que comecei continuaram a viver e a se desenvolver. O último que eu coletei foi literalmente substituído no outono passado, depois de trabalhar por 13 anos na mesma base de código. Sem uma única lacuna de serviço.

Eu tive que participar das negociações mais de uma vez (foi especialmente difícil conversar com os municípios - e, meu Deus, fiquei muito surpreso quando encontrei citações diretas do meu manual de treinamento na Lei Federal que apareceram ao longo do tempo; provavelmente ele chegou às mãos dos legisladores através de um de nossos municípios. clientes), resolvem conflitos de interesse entre os membros da equipe, treinam usuários e até assumem o design algumas vezes. Ele próprio não percebeu como se tornou um senhor.

A comunidade local também não foi a lugar nenhum com suas disputas, e muitas vezes teve que lutar por projetos com escritórios, cuja lista era várias vezes mais do que o pessoal da unidade universitária, e depois também passou pelos tribunais de linchamento com base nos resultados dos reconquistados, realizados em fóruns locais muito mais difícil que o tema.


Uma vez esqueci de redefinir o cache do servidor CSS depois de restaurar o site a partir do backup, e um dos meus colegas instantaneamente fez uma captura de tela com o layout completo que restava para o link para Lebedev. Para lulz. Conclusão: um meme famoso.

Mas a abordagem tecnocrática foi vantajosa e, no contexto de outros escritórios de Izhevsk, nossos projetos pareciam pelo menos não piores e certamente existiam várias vezes mais do que a grande maioria dos colegas. E alguns, como o Izhmoto.ru, sobreviveram à morte do cliente original. Ou até o segundo.

Por diversão, certa vez conduzi um experimento completamente desumano. Havia um programa de treinamento para professores de informática rural - quando eles eram levados para diferentes universidades de Izhevsk de todas as 25 regiões da república e ensinavam a eles um curso sobre os conceitos básicos de construção de sites. Naturalmente, eu ensinei o exemplo do meu mecanismo e não pude deixar de aproveitar uma oportunidade tão grande para realizar testes A / B de várias versões da interface em centenas de infelizes. Foi divertido, eu aprendi algumas coisas completamente inesperadas sobre padrões e percepções de comportamento do usuário (os funcionários da Microsoft estavam certos quando refizeram a interface do usuário do Office para sensível ao contexto - é mais eficaz; também é absolutamente impossível remover o botão "Salvar" com um disquete das interfaces).

Mas no final, eu ainda estava entediada.

Bem, quantos sites você pode rebitar? Bem, multisites (isto é, quando uma dúzia e meia de sites interconectados em domínios diferentes, mas em uma cópia do mecanismo e com autorização de passagem). Bem, portais de documentos (catálogos de documentos pendurados com metadados sobre sua árvore de Natal, com pesquisa em tempo real para todos os parâmetros). Bem, intranets, blogs de vídeo, sites de mídia (apenas plugins especializados para o CMS original, que de acordo com minhas especificações foram escritos por estudantes de pós-graduação).

Era óbvio que estava na hora de entrar, por exemplo, como a equipe anterior, e deixar o prédio. Infelizmente, não tenho qualidades suficientes para ser diretor de negócios. Tecnicamente, eu posso, mas por quê? Na web, a luz não converge e o progresso não pára. O que era exclusivo em 2002, em 2006 já era popular e, em geral, a Bitrix trouxe a construção de sites para o ofício.

Mas se deve mudar para uma área adjacente. Porque sim

Somente em qual?

Fui conversar com vários escritórios diferentes. Nem todos os lugares em que eu, o terrível troll com Izhaiti , fui recebido de braços abertos (poucas pessoas adoram trolls em geral), mas a escolha foi bastante rica. Foi possível acessar o ambiente de trabalho .NET e pedaços de ferro para programar (embora isso esteja na fábrica, por isso é mais provável que não, do que sim). Mas gostei especialmente da idéia de desenvolver sistemas grandes para uma empresa sangrenta - apenas nesse mundo o Java estava dirigindo, e eu conhecia o Java no nível desses applets de um "hamster" universal e um legado semelhante a macarrão enterrado em um trabalho anterior. Também versão 1.1.

Portanto, aceitei a oferta do provedor local de telecomunicações Izhsvyazinvest (era "multi-serviço", ou seja, fornecia Internet, telefonia e televisão; após a crise de 2008, morri em agonia e fui comprada pela Beeline, mas na época floresceu).

Aqui você precisa de um pequeno comentário sobre a história da Internet local. É bem diferente do típico russo graças à empresa Mark (não importa como foi chamada por seus mais de vinte anos de história) - desde meados da década de 90, Izhevsk está muito à frente da velocidade e da cobertura, e a um preço mais baixo, não apenas em todas as regiões vizinhas , mas também para Moscou. Além disso, a era dos modems DSL deu lugar à era do cobre e, em seguida, à óptica doméstica muito rapidamente, e a Internet rápida em Izhevsk se espalhou, e esse provedor era uma excelente forja de pessoal técnico e gerencial para a indústria local. Até o fidosnaya tusa local estava principalmente na Markov Ethernet.

Os nativos de Mark fundaram mais de um escritório concorrente, incluindo Izhsvyazinvest. Eles trouxeram o faturamento - um sistema monstruoso que funcionava dentro de um cluster da Oracle, além disso, um sistema clássico, em cima do ferro Sanovo corporativo e sob um solário. Quase toda a lógica de negócios desse monstro ctônico foi conectada a um armazenamento milagroso, e até cartas de pagamento aos clientes foram enviadas de um trabalho assíncrono. Apenas uma pequena parte do painel de administração foi escrita em Java (versão 1.4), apesar de ter sido quase inteiramente gerada através do System.out.println (), e parecia ... parecia um inferno. Era impossível olhar para a interface da web do usuário sem lágrimas (e não apenas porque eram todos os 7,5pt).

Especialmente comparado ao que o painel de administração do meu CMS havia se transformado naquele momento. E era um aplicativo HTA , indistinguível externamente do aplicativo nativo, e mesmo sem a necessidade de um mouse, apesar de ter sido escrito em JS / DHTML puro. O chefe do departamento ficou tão impressionado que ele imediatamente me levou como especialista em UX. A intenção era simples: criar um belo monstro de cobrança, uma interface bonita, rápida, conveniente e nativa, e vendê-lo para outros fornecedores. Em termos do conjunto de possibilidades, de fato, sendo desenvolvido a partir de meados dos anos 90, ele rasgou todos os análogos disponíveis como um ás, mas os concorrentes tinham uma interface sã, mas a TELSI não a possuía.

Para colocar batom em um porco ... No entanto, você não pode simplesmente fixar uma interface à lógica se ela não tiver pontos finais para algo remotamente semelhante ao AJAX.

A camada de terminais teve que ser escrita integrando-se ao código existente. Mas em 2006, o Java 1.4 já era uma relíquia, então a primeira coisa que fiz foi copiar o germe existente do administrador para a versão atual com o mesmo penteado e colocar o código em ordem (sim, eu tive que cavar a substância herdada novamente). Ao longo do caminho, estudei a pilha tecnológica J2EE, mas, devido às especificidades, me limitei a servlets e todas as ligações que o acompanham por enquanto, além de JDBC (você precisa puxar o armazenamento), Velocity (como o mais semelhante ao mecanismo de modelos PHP) e, na verdade, Java principal.

Gradualmente, chegou-se a um entendimento de que toda a lógica relacionada à exibição lateral do usuário e, principalmente, à interação interativa com ele, deveria ser retirada do armazenamento e implementada na camada de serviços em Java, porque os requisitos para os recursos que mudam ao longo do tempo a construção de chamadas brutas dos arquivos armazenados via JDBC é difícil de manter (tudo precisa ser alterado em dois locais e, com a versão do código, os bancos de dados ainda são ruins, para não falar do oitavo Oracle) e frágeis.

"Tudo bem", disse o chefe do departamento.

Levei um ano para colocar tudo isso à luz do dia. Ano! A quantidade de código era monstruosa. Lembro-me de um megabyte de código-fonte de cada vez, e aqui o código só puxou o armazenamento por cinco. Metade dos não utilizados, a outra metade se chama recursivamente e, em geral, se entrelaçam em uma bola de macarrão que era decididamente impossível desvendá-lo sem a ajuda do chefe.

Eu tinha que trabalhar seis dias por semana, onze horas por dia - o resto dos programadores estavam apoiados no monstro existente e não podiam me ajudar. O resultado foi um microstroke (aos 26 anos, minha bunda!) E seis meses em comprimidos. Aprendi uma lição - desde então não tenho estendido demais. O trabalho não vai fugir, mas a saúde pode.

Depois de algum tempo, descobriu-se que era mais conveniente armazenar parte dos dados de cobrança na forma de diretórios - isto é, não tabelas relacionais bastante comuns, mas documentos que consistem em conjuntos de valores-chave com metadados frequentemente desconhecidos para cada registro. A Oracle nativamente não suporta isso e, em geral, com o NoSQL naqueles anos, ainda estava podre.

Editor de diretório TELSI, PBXTELSI, construtor de exibição de diretórioTELSI, editor de entrada de diretório
Imagens clicáveis

Porra, mas algo me lembra disso ... Oh, bem, portais de documentos. O que acontece é que todos os sistemas de informação são da mesma pessoa, se você olhar de perfil? Bem, tudo bem.
Ok, eu disse. E, em alguns meses, ele implementou um repositório orientado a documentos sobre as tabelas Oracle, usando gatilhos, armazenamentos que criam visualizações e algum tipo de mãe. Não deu muito certo, mas parecia funcionar com um chute meio. Estava na hora de colocar o minx-bolt em operação experimental.

E então a crise de 2008 chegou a Izhevsk


Embora, ele veio a todos.

Nem todos tinham dinheiro, mas também o escritório, especialmente para manter um programador trabalhando em uma versão futura do sistema. O escritório correu para recrutar novos clientes, apenas para sobreviver, e eles decidiram me deixar para a manutenção de rotina do monstro antigo, porque a carga aumentou, e o novo projeto foi colocado no frio. Eles também cortam o salário, porque não há dinheiro com a palavra "em geral".

"Tchau", eu disse. "Agora eu sou um homem velho", eu disse, "e eu sei kung fu", eu disse, "e sou grato a você por me mostrar isso, mas quero praticar meu kung fu e não sofrer bobagens".

Infelizmente, era mais difícil de fazer do que dizer. Em uma crise violenta com uma empresa sangrenta, as coisas são praticamente as mesmas da TELSI (isto é, "adiada" para "mais tarde"), mas na nova realidade econômica, as empresas ocidentais, como um dos meios de redução de custos, chamaram a atenção para os terceirizados russos, e eles foram inundados. Eu tive que adiar a empresa por vários anos e fazer o que trouxe o dinheiro.

Rapidamente encontrei trabalho no próximo estúdio (mais precisamente, eles me encontraram - no entanto, fama na comunidade local, até um pequeno troll, algo às vezes útil). Bem, como estúdios ... Eles tinham desenvolvimento na web, mas em maior medida esse "centro de informação e publicação" se posicionou como terceirizador. Bem, também como uma gráfica. Este é outro negócio híbrido.

A principal direção da terceirização foi o desenvolvimento de sistemas de informação geográfica - isto é, sistemas que fazem algo com dados cartográficos.

Por exemplo, o projeto atual foi - algo terrível para os motociclistas dinamarqueses, no Zend , com um certo análogo de portlets (não pergunte o que é, eu sei apenas sobre applets e costeletas) e geralmente algum tipo de TK extremamente estranho. E apenas me sentei para ler atentamente, enquanto os motoqueiros se escondiam em uma direção desconhecida junto com o diretor técnico do escritório, que assim, como se viu, me atraiu a me substituir.

Bem, "para uma substituição". Precisávamos de um desenvolvedor líder para um novo projeto - também um GIS, apenas sobre televisão por satélite. SatBeams.com - ainda vivo, você pode ver, apenas por favor não desmonte.

Um projeto interessante. Sim, novamente tive que voltar ao PHP, mas havia mais truques no design da base. Na órbita geoestacionária, várias centenas de satélites estão suspensos, cada um acima de sua longitude, em cada uma delas várias (até centenas) antenas - transponders transmitindo em várias bandas. Eles transmitem pacotes, em cada um dos quais vários (até centenas) canais de TV, cada um com um conjunto de características (novamente, até centenas, porque os idiomas).

A essência do problema: é necessário não apenas desenhar uma cobertura no mapa para cada transponder, mas também gerar para eles em tempo real diferentes alterações em todas as características de todos os canais recebidos na placa em algum lugar e cuspi-la em RSS. Para essas informações, os amantes profissionais da TV via satélite pagam dinheiro, além disso, considerável.

Parece que parece simples, mas ei ... Multiplique cem por alguns, multiplique por cem, multiplique por ... oops. O produto cartesiano de todos os parâmetros possíveis excede um trilhão e precisamos construir uma diferença em tempo real. A propósito, é um problema das olimpíadas.

Foi aqui que o curso de banco de dados da universidade foi útil para mim, bem como toda a experiência anterior em trabalhar com eles e toda a experiência em design de sistemas que eu acabei de ter. Como resultado, tudo isso resultou em várias dezenas de tabelas, normalizadas para 5NF , tabelas desnormalizadas com histórico e um monte de solicitações para várias páginas cada. Com junções complicadas que levam em consideração o comportamento do otimizador do DBMS selecionado. MySQL, quero dizer. O cliente não concordou com outro.

Juntos, o segundo programador conseguiu em cerca de um ano. Funciona, se você ainda não o soltou com o efeito habitual, até agora. Eu amo esse projeto. E não apenas para o back-end, mas também para o satbar.js - o último widget de interface que escrevi (desde então, não toquei mais nas interfaces do usuário).

satbar - interruptor de satélite - no topo do mapa

Um obstáculo inesperado foi atrair pegadas de transponders nos mapas do Google - o Google geralmente queria colocar seu mojo grosso em integrações de terceiros e sistematicamente distribuiu cartões de recursos para todos os recursos de cada novo lançamento de cartão de API 2. Como resultado, adquiriu um conjunto incrível de muletas e exigiu suporte constante de lado do segundo programador após colocar o projeto em operação - e ele migrou para a terceira versão da API, periodicamente ficando deprimido. Mas o cliente se vangloriava de uma foto da área de trabalho do PMa Google Card com a etiqueta do nosso site com a assinatura “polígonos legais” - ele secretamente fez isso quando visitava a sede local.

Mas projetos legais tendem a terminar. E bem, se for bem sucedido.
A crise continuou furiosa. Eu tive que assumir projetos não tão legais, se apenas o escritório pagasse dinheiro.

Novamente, passei o polegar e coletei vários locais, quase sem recuperar a consciência. Sem nada para fazer, atualizei o CMS com os desenvolvimentos de interface trazidos de volta do trabalho anterior - incluindo algum tipo de interface do usuário da faixa de opções do novo Office (no processo, fiz isso antes da própria Microsoft, mas, é claro, mais simples, embora o mágico ALT também funcionasse lá). Vou mostrar uma coisa, vale uma história separada). Ele até assumiu o desenvolvimento de um banco de dados de desktop em .NET + SQLite para um cliente estadual em troca de uma solução Legacy no Firebird (ou até FoxPro? Ah, não me lembro, mas em algo completamente antigo), mas esse projeto trouxe um novo PM que alegava para o papel de assistente técnico, e não conseguimos concordar com o tempo. Portanto, não fui capaz de cavar a pilha da área de trabalho .NET.

E então um ex-aluno que já fez um diploma no meu departamento (os mesmos "portais de documentos") me escreveu de repente. Nos últimos cinco anos, ele se tornou o chefe de seu próprio escritório, que, felizmente, estava envolvido na sangrenta empresa - SAP, e um pouco mais de desenvolvimento no Java EE.

Boa sorte. Ele só precisava de um especialista para ajudar com um novo projeto.

A essência (e, em geral, o significado) deste projeto é difícil de explicar. Ainda tenho pouca ideia dos motivos do capitalista de risco do Tartaristão, que desejava criar uma espécie de SaaS / PaaS / equivalente em caixa do MS SharePoint + Exchange + Lync + Dynamics, mas apenas com a parte do servidor no J2EE e com o cliente Java Swing "grosso". No começo, ele o chamou de NewOutlook e depois o OfficeSuite. Além disso, ele também era trabalhador de papoulas, e é por isso que ele teve que comprar papoula no escritório - componentes de giro para um cliente espesso se comportaram no MacOS às vezes imprevisivelmente. Um projeto muito, muito estranho. Mas terrivelmente interessante.

No total, pelo menos três equipes estavam envolvidas - além de nós, os caras estavam em Kazan e em algum lugar em Minsk, ou o quê? ou em Kiev ?, e nossa equipe foi considerada a principal: precisávamos desenvolver uma arquitetura comum da parte do servidor e do cliente, um mecanismo para sincronizar dados entre elas e também, por exemplo, implementar um módulo para gerenciar finanças pessoais. O restante deveria ter se envolvido em comunicações unificadas e tudo o mais que o investidor tivesse imaginado (sem TK específica).

A implementação do sincronizador parecia ser a tarefa mais difícil - nenhuma equipe existente sabia como abordá-lo. O cliente, como lembramos, é "grosso", ou seja, pode e deve funcionar sem a parte do servidor e, ao mesmo tempo, deve ser capaz de se conectar ao servidor de acordo com uma programação ou solicitação do usuário para atualizar "objetos" (qualquer que seja) aqui e ali .

No começo, eu não sabia como, mas meus olhos estavam com medo e minhas mãos estavam. As palavras inteligentes "arquitetura de cliente e servidor" são na verdade apenas alguns esboços de design que são bem projetados como um documento estruturado. É claro que “qualquer tipo de objeto” é um requisito mais ou menos, mas, felizmente, eu pude projetar sistemas de plug-in de host que podem descrever seus tipos de objetos desde a época do centro de multimídia, os ORMs espertos após o monstro Izhsvyazinvestovsky não me assustam, mas os desaparecidos Eu posso aprender tecnologias J com EE rapidamente.

"Arquiteto" ... Eu não gosto quando essa palavra é aplicada à posição de um programador. Uma tradução distorcida do inglês do System Designer, seria mais correto ter sido um "engenheiro de design". Mas, na minha opinião, o processo de criação de um protótipo de um produto futuro a partir do zero, que até o cliente não imagina bem, descreve o termo "engenheiro de pesquisa" muito melhor.

Sete meses depois - no momento da entrega intermediária - das três equipes, algo digno de exibição estava pronto apenas para a nossa. Nossa equipe criou um módulo de gerenciamento de orçamento pessoal totalmente funcional, o sincronizador sincronizou tudo da melhor maneira possível e o núcleo do servidor e as partes clientes do aplicativo estavam prontos para conectar os demais plugins.De resto, o cavalo não rolou, e o capitalista de risco, ao que parece, percebeu que havia ameaçado uma tarefa sem sentido e desapareceu do horizonte.

O projeto foi imediatamente fechado. Tendo viajado como especialista convidado, eu não era particularmente necessário, como outros javistas, porque o chefe do escritório decidiu se concentrar no SAP.

Droga. Esse é o negócio de risco. Eu odeio um pouco.

Tal observação: não há empregos ideais. Onde quer que você vá, haverá algo de bom e algo de ruim, delicioso e nojento, razoável e anormal. Não é uma questão de dialética, nem é que a vida seja pintada objetivamente em cores diferentes. A maior parte do problema está na sua própria atitude em relação a vários aspectos do ser - desde que uma centelha divina esteja aquecendo em você, você está fadado a experimentar emoções diferentes sobre coisas diferentes. O que, caramba, acontece.


Nem sempre para melhor.

Já foi 2011. Ainda em Izhevsk


Durante esse período, a paisagem mudou radicalmente na cidade. As fileiras dos estúdios da web foram bastante reduzidas, as fábricas e outros fornecedores com desenvolvimento interno diminuíram de alguma forma, mas o número de lojas de supermercado aumentou visivelmente e até grandes terceirizados entraram na cidade. Especialmente, EPAM.

É aqui que está a verdadeira empresa sangrenta.

EPAMs (assim como Luxoft e outros monstros similares, popularmente conhecidos como "galés") são fábricas. Fábricas gigantes para a produção de software personalizado, e o processo de produção é absolutamente transportador. Todos são governados por “processos” - um conjunto de regras formais e informais escritas e não escritas para todas as ocasiões, desde os momentos mais insignificantes da rotina diária - para forçar uma causa maior e um RH completo. Não importa em que nível de sistema você está integrado, você apenas precisa obedecê-las, quer queira ou não. Você precisa ser uma engrenagem no mecanismo e desempenhar um papel.

Mas as engrenagens são necessárias em diferentes tamanhos, direções de linha e para chaves diferentes. Alguns até precisam ser polegadas, não métricas, tudo depende muito de um projeto específico.

A piada aqui é que as próprias regras de parafusar são de qualidade muito, muito alta. Eles até querem seguir - nunca vi tanta reflexão e profundidade de estudo em nenhum outro lugar. E a eficácia é comprovada pelo fato de que, com a execução razoavelmente precisa das regras, as características de personalidade das pessoas que trabalham no sistema tornam-se, em certa medida, sem importância. Mas apenas até certo ponto.

Afinal, as pessoas são sempre, em certo sentido, o inferno. Devido às boas regras formais, o seguinte pode funcionar e funcionar com êxito nas EPAMs:

• pessoas com as quais eu não apenas não entraria em inteligência juntos, mas nunca se comunicariam no mundo;
• pessoas sem imaginação, pessoas sem um senso de beleza;
• pessoas sem a centelha de Deus, mas com bunda de ferro fundido;
• pessoas sem senso de proporção e tato;
• pessoas psicologicamente incompatíveis entre si;
• pessoas excêntricas.

Felizmente, não há a maioria deles, existem outros mais normais, mas a imagem geral é de "excelentes alunos" (de outros). Fortemente!Estragar!

Além disso, em escritórios tradicionais, onde uma pessoa não é um "recurso", mas um "especialista", e não há um conceito de "pool de desenvolvimento", mas um conceito de "departamento", as pessoas não são contratadas em um rebanho comum, mas para que possam trabalhar umas com as outras amigos juntos - ou seja, pessoas com a mesma opinião. Nas EPAMs, a equipe do projeto é selecionada de acordo com as características formais apenas do rebanho geral de recursos.

Como cheguei lá?

Eles telefonaram, prometendo trabalhar no projeto empresarial mais sangrento da história do escritório, e prometeram dar imediatamente as damas mais velhas. Não se deixe enganar. Eles levaram o senhor com a perspectiva de liderança.

E o primeiro projeto em que me tornei realmente monstruoso. O cliente é um banco com um logotipo verde redondo, uma equipe para cinquenta pessoas (isso é apenas no EPAM, em outros subcontratados ainda existe a mesma multidão), o próprio sistema de missão crítica. Deve ser escrito em Java EE, mas há uma reviravolta na trama: o fornecedor é a IBM. Plataforma - WebSphere AS e MQ, banco de dados - DB2. Até a própria JVM neste pacote é exótica - a J9, que na época era bem diferente da referência da Sanovo e era terrivelmente problemática (mas fiquei sabendo disso mais tarde, quando me deparei com vários bugs).

Eles me disseram: agora você é um desenvolvedor-chave (e membro do comitê de arquitetura), então aqui está uma equipe para você (não pense que os recém-chegados são bons rapazes) e TK para este módulo (um bloco de 300 páginas).

Eu disse: sim (havia cerca de 15 "arquitetos", os caras eram ... diferentes, e o tijolo correspondeu durante a peça três vezes além do reconhecimento).

E lá vamos nós ... Por dois anos tive que participar do desenvolvimento de vários subsistemas. Gateways para o mundo exterior. Armazenamento interno de arquivos. Sincronização do status do processamento de pagamentos para os três grandes operadores. O sistema para implantação de módulos - havia cerca de 25 deles no total - no farm de computação (como resultado, ele não sobreviveu, mas o applications.xml permaneceu como parte do produto).

Depois que ele acidentalmente entrou na área de responsabilidade de outra equipe e descobriu que há 19 maneiras exclusivas de procurar um recurso no JNDI. Eu tive que colocar todo mundo em meus ouvidos, pegar o módulo de configuração para mim e levar a um denominador comum. Muito sangue foi derramado. Esta é uma empresa!

Depois disso, houve um certo fakap com o lançamento do lançamento, e foi decidido reverter o tronco para uma versão anterior. Sistema de Controle de Versão - SVN . Bem, é necessário. Eu fiz isso uma vez e ... então eu tive que ser o "guardião do repositório" (droga!) Até o final e supervisionar todas as fusões subsequentes, especialmente antes dos lançamentos.

No final, esses são os erros que vieram do J9 e do driver do DB2 no momento mais inconveniente ... A IBM os corrigiu, mas apenas seis meses depois e, em geral, até os notificou da missão.

E também - muitos conflitos na equipe por causa desse fator de incompatibilidade pessoal, incluindo eu e a PMa ...

Em resumo, eu queria uma empresa sangrenta e a recebi, mas não esperava que houvesse uma lata tão cruel, e não onde eu esperava.

No final, ele pediu outro projeto. Eu tive que mexer completamente com a PM por isso, porque eles não queriam me deixar ir. O desenvolvedor principal não é nenhum Vasya desnecessário do banco. Mas eu saí - e estava "no banco".

Por um tempo ficou aliviado. Mas ainda era desconfortável, já que o clima no escritório com seus jogos e intrigas disfarçados - por mais distante que seja, é esmagador.

Quase já havia decidido sair completamente - em qualquer lugar, apenas longe deste hospício -, mas outro projeto me jogou de repente. Também uma empresa, mas muito mais simples e tradicional, quase nem sangrenta. Não sei por que concordei em liderá-lo como líder técnico. Era necessário derrubar, mas decidi tentar administrar uma última vez.

A única equipe de desenvolvimento disponível na época era formada por "excelentes alunos" do banco, sempre sentados lá. Todos aqueles que não foram aceitos para outros projetos por causa da toxicidade, mas foram submetidos a avaliação por motivos formais e, portanto, não puderam ser demitidos. Mais tarde, percebi que era uma recompensa para mim o conflito com o primeiro-ministro do primeiro projeto, mas era tarde demais.

Além disso, começou como se não fosse ruim, mas ... rapidamente começou a cair em um pântano de dívidas técnicas, e quase terminou em um desastre completo devido à sabotagem por "excelentes alunos" que não queriam desenvolver nada, mas só queriam ser pagos por 8 horas sentadas no escritório, durante a semana, e em vez de concluir tarefas, o analista era preenchido com toneladas de perguntas esclarecedoras para cada tarefa no rastreador, e o código era escrito somente quando eu estava fisicamente pairando sobre minha alma.

A posição deles era a seguinte: você é o mais legal daqui, então faz tudo. E somos pessoas pequenas, aqui aquecemos um lugar quente e somos normais.

Como eu já disse, era impossível expulsar esses números do projeto por sinais formais - eles passaram em todas as avaliações com bons resultados. Como resultado, tive que deixar minha postagem, caso contrário, forneceriaa entrega seria impossível, mesmo se eu escrevesse o código para mim e para esses caras 24 horas por dia, além de tarefas puramente administrativas. Eu apenas pegava outro ataque isquêmico (não, um era o suficiente) e morria no local de trabalho.

O novo techlid tinha o direito de alterar a composição da equipe - o que ele fez imediatamente (os desenvolvedores normais gratuitos foram encontrados magicamente no escritório) e, no final, conseguiu levar o projeto à vitória. Mas, para garantir a possibilidade disso, tivemos que usar artilharia pesada na pessoa dos diretores da filial, e, no entanto, foi significativo descartar o "excelente aluno" mais malicioso. Era inimaginavelmente difícil e nojento.

Aprendi uma lição: realmente não tenho nada para fazer na fábrica. Lição número dois: nunca mais se intrometa no gerenciamento.

Após um mergulho tão desordenado no atoleiro corporativo, e mesmo com um intervalo de mergulho um pouco menos de um ano, fugi do EPAM - com saltos ardentes, em lugar nenhum, completamente desmoralizado, mentalmente esgotado e espremido mentalmente como limão.

Burnout, digamos? O que é burnout? Eu só não queria nada. Mais precisamente, eu queria que este mundo fosse queimado no inferno com um porco, e pereci sob os cascos dos cavaleiros do apocalipse entre os primeiros pecadores. Passei cinco meses entre um coma e um regime de vegetais em casa. Ele estudou por direitos e ocasionalmente saiu para algumas reuniões de TI (a participação ainda na comunidade local, mesmo na categoria de uma lenda meio esquecida, às vezes é extremamente útil).

Izhevsk, verão de 2014


Um deles, hummm ... um bêbado - que é um pecado a esconder, ou seja, o de uma verdadeira embriaguez - ocorreu em um escritório que literalmente acabara de emergir do nada. Uma startup americana com um nome engraçado tinypass (quantas piadas os hussardos fizeram piadas com o p no logotipo) decidiu abrir um centro de desenvolvimento em Izhevsk. O fundador e co-proprietário era local - e havia acabado de retornar à sua terra natal. Imediatamente jogou um grito - caras, vá para uma startup americana, eu fiz!

Os colegas mais adequados da EPAM (que estavam cansados ​​de todo o lixo não menos que o meu) estavam imediatamente lá. E também os caras mais experientes de outros escritórios (incluindo vários candidatos a ciências). Um dos meus ex-colegas (com quem nos tornamos amigos na época do capitalista de risco), em reuniões, realizadas no novo escritório com acesso ao telhado, de onde uma excelente vista da cidade se abriu, me convidou para participar. Bem, eu disse que em duas semanas provavelmente vou trabalhar.

Chegou. Eu olhei para o projeto. Eu fiquei triste

O projeto acabou sendo cru, insignificante e nojento. O líder técnico, um amigo próximo do fundador, que é de Nova York, é a pessoa mais teimosa do mundo que não pode ser persuadida, dissuadida ou concordada. Mas você pode enganar. E a segunda vantagem, que pode derrubar uma linha de código, veja, isso é tudo (como resultado, eles se livraram dela, mas não imediatamente).

Mas no novo escritório legal, com uma saída para o telhado, uma equipe incrivelmente forte se reuniu (uma startup americana estava literalmente pronta para pagar algum dinheiro) - e eu nunca tive a oportunidade de trabalhar com os melhores programadores em nossa pequena seiscentos milésima cidade. O limite de entrada era monstruosamente alto (o middleware para serviços de assinatura de provedores de conteúdo com várias integrações é difícil), e os caras mais simples simplesmente não teriam conseguido. E como cheguei apenas aos nove, tive a chance de criar processos de desenvolvimento que estavam próximos da minha compreensão do ideal. Ou seja, quando tudo funciona por si só.

O projeto, gradualmente, por esforços comuns, levou a um estado são. O gargalo continuou sendo a educação dos tecnlides, mas eles estavam em NY. Não havia aqui. Aqui você pode beber cerveja no escritório toda quinta-feira, sem exceção! E se divertir na companhia dos melhores desenvolvedores da cidade. Hashtag # Izhevsk Google.

Foi muito legal, até a startup ter 15 e depois 20 pessoas. Apenas algum tipo de clube de interesses, mas em tal clube não poderia haver muitas pessoas com interesses diferentes. Mas após a adição da equipe, mudamos para um escritório ainda mais legal, com uma vista panorâmica da parte central da cidade - o que tornou o pôr do sol épico no Instagram mais colegas do sexo feminino.

Será difícil descrever exatamente o que fiz no Piano (depois de combinar com os concorrentes e mudar a marca, o escritório de Izhevsk permaneceu o principal escritório de desenvolvimento), porque em uma startup, literalmente, todos precisam fazê-lo. Incluindo inglês, finalmente aprenda.

No começo, escrevi muitas coisas em Java, depois criei vários recursos experimentais extremamente mal sucedidos seguidos (os teimosos nova-iorquinos não gostaram muito dos resultados negativos, mas os colegas locais acreditaram na minha experiência - no final, eu estava certo e não fui demitido). Entregou o processo de Integração Contínua - e tornou possível o aparecimento de uma equipe de engenheiros de QA. Em uma equipe saudável, deve haver testadores de meninas! Mas, falando sério, configurar os processos do DevOps é provavelmente o mais útil do que fiz lá em pouco mais de dois anos e meio.

Por outro lado, ele escreveu muito em Java, já como parte de uma equipe com uma terceira liderança em Nova York. Aqui ele era um cara excelente e um profissional legal - é uma pena que ele tenha fugido rapidamente (dos outros dois, porque quase o comiam lá) e, como resultado, um trabalho gigantesco para localizar o sistema (nunca tente localizar um sistema em que a localização não era originalmente suposta É melhor reescrevê-lo do zero), depois de passar um ano, não terminamos a vitória final - pela primeira vez. Então, lenta e tristemente, eles estavam terminando em segundo plano.

Você já tentou mesclar uma ramificação que, em um projeto, afeta milhões de linhas de código várias centenas de milhares? Sensação legal, nem toda montanha-russa dará essa sensação. De acordo com a mesclagem ... nada caiu e não se deteriorou. Nos foi dado um bolo localizado.

(  )     .    « »  3


Depois disso, novamente houve alguns DevOps muito loucos e tarefas de pesquisa mal formalizadas, mas legais. Era possível fazer xixi de muitos códigos em python e no Google BigQuery, e todo tipo de lixo no Node.js (é muito útil para um javista antigo mudar algumas vezes de cavalo e outras de esqui). Bem, a tarefa do bolo se tornou uma cereja no bolo, pela qual me recusei a levá-lo três vezes por causa de sua dúvida ética.

Por alguma razão, parece-me que não é bom detectar e, ainda mais, tente forçar o usuário a desativar o bloqueador de anúncios no navegador. De fato, o usuário final do middleware que a Piano oferece é o editor, e o usuário atrás da tela é apenas o consumidor do conteúdo. Mas eu, de fato, tento manter pessoas por pessoas e respeito sua escolha. Não é da sua conta se meu bloco de anúncios está ativado ou não. E ainda mais, é incorreto tentar descobrir, porque existem várias maneiras de bloquear muitos anúncios, e é tecnicamente difícil verificar todos eles, e muitas pessoas que estão sentadas em um canal ruim em algum lugar do metrô sofrem de falso positivo.

Bem, como você sabe. Obviamente, sou um conhecido "engenheiro de pesquisa" em círculos estreitos, mas neste caso não quero fazer a tarefa (é interessante, não discuto, mas deixo que outra pessoa estrague a vida das pessoas).

Honestamente, eu não achava que sairia do escritório por causa de diferenças éticas. Além disso, o escritório é legal em todos os outros aspectos. Hashtag # Izhevsk Google.

Izhevsk, quarenta anos já perto


Que legal, quando você não pode fazer nada por vários meses entre trabalhos. Mas então tudo se torna entediante e surge a eterna pergunta - o que mais fazer? Para responder, fiz uma lista de verificação.

[x] desenvolvimento Web era.
[x] GIS foi.
[x] Houve uma empresa sangrenta.
[x] A inicialização legal do hipster foi.
[x] Na fábrica, onde há ferro, obviamente não tenho nada para fazer.
[x] O desenvolvimento de produtos também não é adequado, porque faz muito tempo, e eu estou vendo meu CMS há 11 (onze !!! 11) anos, e estou muito cansado. O que resta?
[x] A menos que os jogos com outras tridimensionais, mas há dofiga matana, isso ainda estava cheio na escola.
[] Oh, espere, o Big Data é uma tendência.

Em Piano, esses candidatos à ciência estavam envolvidos em grandes encontros, e era difícil entrar no clube particular. Ok, veja, há mais alguma coisa nesta cidade?

Encontrado por acidente. A grande maioria das propostas era Moscou, é claro, mas, felizmente, não todas.

Eu vim falar com o local onde trabalho agora, e o PM afirmou desde o limiar que o projeto era infernal. Nada. Novamente, GIS, apenas cálculos são todos baseados no MapReduce (e eu quero isso no Spark ), mapas no ArcGIS, e tudo isso está girando em nuvens que ninguém pode imaginar. Na minha opinião, uma ótima opção!

Faz um ano e meio, e ainda acho a opção ótima. Em geral, tudo o que foi feito antes foi útil. Aqui eu tenho uma faísca em Java (não mudei para Scala porque não sou Ph.D.), e AWS com devops, e GIS da web, e um excelente escritório com uma cozinha bem equipada, onde toda quinta-feira (bem, embora com exceções) você pode organizar reunião de clube de culinária.

Afinal, sou um bom chef com essa e essa experiência. Eu amo e sei cozinhar. Pizza, macarrão, biscoitos e outras guloseimas com a letra P - como em qualquer outra letra. E há muitas garotas no escritório. E no departamento seguinte eles viram HUDWAY. Hashtag # feito por Wudmurtia.

No total, continuamos a trabalhar mais.

Porque fazemos o que devemos porque podemos , e eu ainda posso.

, ,
— . , , , . , - , . .

, , , 20 . , ( , ), , , — , .

, , ( )? , , / ( , mortgage 25 ). ( , ).

, , , - , . (, , -, , , ). , , . , — - ever.

, , 20 .

Source: https://habr.com/ru/post/pt437610/


All Articles