Nous faisons ce que nous devons parce que nous le pouvons - GLaDOS
Izhevsk, aujourd'hui
Le premier février marque exactement deux décennies depuis que j'ai commencé à travailler officiellement en tant qu'ingénieur logiciel:
Je continue à ce jour. Et pour une raison quelconque, il me semble que beaucoup seront intéressés à se familiariser avec l'histoire de la façon dont vous pouvez faire une carrière de programmation horizontale complètement réussie sans quitter votre ville natale, et faire presque tout ce temps des tâches assez intéressantes, sinon folles.
Bien sûr, chaque personne a une mesure de «réussite», mais mon fait est que depuis 15 ans, je travaille à des postes de direction sur des projets, principalement liés à de grandes entreprises ou à des clients étrangers, et presque chaque nouvel emploi me trouve seul. Et toujours pas fatigué.
Je tiens à vous avertir que mon histoire est un long parcours typique sous la forme d'un entretien à la première personne, parfois ennuyeux et presque sans images, car je suis essentiellement un back-end. Cela peut être difficile pour un lecteur sans formation technique, car il est plein de jargon de programmeur (j'ai essayé d'expliquer certains termes, mais pas tous). Et aussi des mèmes anciens décents, des détails nostalgiques et des études culturelles locales.
Mais vous aimez les autobiographies avec
des blagues
autistes , n'est-ce pas?
Izhevsk, milieu des années 80
Tout a commencé il y a longtemps. Un jour, ma mère, qui travaillait comme programmeuse dans un institut de recherche soviétique ordinaire, engagée dans l'ingénierie inverse d'échantillons de technologie informatique occidentale, m'a emmenée au travail - pour montrer quoi, comment et me laisser jouer. Récemment, ils sont arrivés à la contrebande «personnelle» - PC / AT, qui gère toutes sortes de pelleteuses et de tetris.
Avant l'apparition des «membres du personnel», l'institut de recherche travaillait pour l'Union soviétique (clone IBM S / 360, occupe une pièce) et SM (clones VAX, PDP-11, etc., généralement une armoire de la taille d'un piano), donc à la maison, nous avions utilisé des bobines rubans perforés et impressions avec listes de montage. Ma mère faisait aussi périodiquement des voyages d'affaires avec des paquets de «crêpes» - lecteurs magnétiques amovibles pesant 15 livres chacun, craignant les voyages en trolleybus - alors j'étais mentalement préparée pour la tournée. On s'attend à voir quelque chose de similaire au décor des films de science-fiction d'alors.
Et j'ai vu. Mais les armoires, dans lesquelles quelque chose tourne, clignotent avec des ampoules et bourdonnent de ventilateurs, n'étaient pas aussi impressionnantes que la Digger, même sur un écran monochrome. Comme le logiciel de mise en page PCB qui les a dessinés sur le traceur (en regardant un marqueur d'encre voler sur une feuille A1 - cela semblait être une sorte de magie), et des toiles sans fin de listes d'assembleurs déjà familières pour des machines-outils CNC sur lesquelles je travaillais à l'époque. mère
Inutile de dire que la décision de devenir programmeur a pris forme instantanément dans la tête d'un élève de deuxième année et s'y est fermement implantée? J'avais sept ans, et je ne me souviens pas si j'avais rêvé une fois d'être astronaute, pompier ou ce que les enfants veulent habituellement être là, avant - mais dès que j'ai décidé que je deviendrais programmeur (d'ailleurs, bon, car à quoi ça sert devenir mauvais?), rien d'autre ne m'intéressait.
Et pour devenir un bon programmeur, vous devez étudier dur. J'ai terminé les trois premières classes d'une école polyvalente avec d'excellentes notes et j'ai pu entrer dans un lycée avec un parti pris mathématique. En général, à cette époque dans la ville il y avait plusieurs écoles avec une bonne qualité d'enseignement - 29, 30, 41 (lycées), 56 (gymnase). Chacun est une marque locale et une pépinière dynastique de technique, humanitaire ou managériale, selon le profil, l'élite. Surtout les «trente» - presque tous les directeurs d'usine locaux (et Izhevsk était traditionnellement une ville-usine) en sont sortis diplômés, et, en règle générale, la matclass. Mais ma mère aussi (et elle est finalement devenue une dirigeante, mais je reviendrai là-dessus plus tard).
Et si nous parlons de l'école, le fait même que dans le couloir du deuxième étage il y avait des tables d'échecs avec un ensemble complet de figures, qui étaient en constante demande de pauses, et les rideaux de dentelle sur les fenêtres étaient d'une blancheur éclatante, alors vaut-il la peine de s'interroger sur les examens de transfert à partir de la septième année - à laquelle les élèves locaux ont participé sur une base commune avec des enfants d'autres écoles. A cette époque, «trente» tenait toujours la marque (elle l'a abandonnée après ma sortie, et, malheureusement, complètement).
La culture était haute et la compétition était très féroce. Sur les 30 excellents élèves qui sont venus en cinquième avec moi, dix sont restés dans la direction mathématique en finale, les autres dispersés par d'autres moyens, voire abandonnés. En fait, il y avait deux classes, mais seuls les élèves de la première, qui occupaient la moitié supérieure de la note académique, pouvaient participer à l'équipe Olympiade, qui se déroulait traditionnellement en république et en Russie (et parfois dans des compétitions internationales).
Je traînais quelque part à la sixième place, grimpant périodiquement plus haut, donc, pendant la préparation des Jeux olympiques, je me suis souvent retrouvé avec le reste des gars avancés aux bureaux arrière, où au lieu d'un travail indépendant, nous avons résolu des problèmes +, des tâches ° et même des tâches **. En vérité, je ne pense pas aux olympiades - je creuse bien l’essence des problèmes, mais je pense trop lentement et je fais toujours plusieurs approches d’essai, donc je n’ai jamais dépassé le stade de la ville. Eh bien, au moins j'ai participé, et le résultat peut être considéré comme un entraînement cérébral non standard (mais reproductible, contrairement aux décisions des olympiades typiques, qui sont généralement strictement ad hoc).
Quoi qu'il en soit, même le dernier trio selon les normes d'une crèche d'élite aurait été un excellent élève dans une école ordinaire, et à l'université, cela m'a sonné ... cependant, dans l'ordre.
Après de nombreuses années, en évaluant mes capacités, je commence parfois à regretter de n'avoir choisi aucune université capitale au lieu de l'université technique locale - mes camarades de classe ont réussi à obtenir leur diplôme de l'Institut de physique et de technologie de Moscou et de l'Université d'État de Moscou (et certains finissent par travailler chez Google), mais c'est un regret passe vite quand je me rappelle comment j'ai étudié en semestres généraux avant "l'équateur". Je n’ai pas étudié du tout - les bagages scolaires, y compris des cours supplémentaires dispensés par les mêmes professeurs d’université, suffisaient pour recevoir des «machines» dans presque toutes les matières. Cependant, je n'ai même pas pris les cours d'introduction - je suis devenu étudiant en avril, après avoir suivi des cours préparatoires et obtenu le meilleur score aux examens blancs. Ce n'était pas, comme vous le savez, difficile.
À la fin de l'ensemble du programme universitaire, au moins d'une manière ou d'une autre, je n'avais besoin que d'un cours de base de données - à la fin des années 90, il était obsolète depuis quinze ans, sinon plus, et le principal pilier de l'enseignement a été fabriqué par d'anciens programmeurs d'usine. Ce qu'ils pourraient enseigner, à l'exception de la «cascade» primitive et de la programmation procédurale, est une question rhétorique. Des avantages d'une telle "éducation" - je peux lire l'assembleur, et je comprends comment l'OS fonctionne avec le fer. Mais la programmation industrielle dans son sens moderne, il était décidément impossible d'apprendre dans une université.
Seule l'auto-éducation au combat pouvait me sauver, et la deuxième année, j'ai trouvé un emploi. Là, au ministère, un administrateur système. Le travail est moyen, mais il garantissait un accès illimité aux serveurs des professeurs et à Internet, et vous permettait également de rester dans le laboratoire au moins pendant des jours - et de passer du temps non seulement à bavarder sur IRC avec des filles d'une université voisine, mais aussi à coder quelque chose pour toutes sortes d'aléas les clients. Le salaire minimum en 1999 était de 83 roubles 49 kopecks (pourquoi payer un étudiant plus?), Et une bouteille du Bouquet de Tchouvachie dans le magasin du doyen en face du bâtiment éducatif coûtait 4,60, donc parfois avec d'autres étudiants administratifs similaires, nous avons déposé quelques boîtes bière bon marché pour l'éducation physique, afin de ne pas perdre de temps sur des cercles dénués de sens dans le stade.
Au lieu de physra, nous avons perdu du temps sur nos propres métiers sur Perl et tcl (programmer un chatbot
Irz pour divertir les filles d'une université voisine est très intéressant), ainsi que développer un système interne pour organiser des tournois selon les règles de l'
ACM .
Izhevsk «mehan» a également trouvé sa propre équipe d'olympiades, qui occupait à cette époque également loin des dernières places dans les compétitions internationales, mais il m'a semblé beaucoup plus intéressant de fournir une infrastructure pour les tournois que de se creuser la cervelle. De plus, le classement était censé être tel ou tel. Outre les langages de script et de bas niveau absolus, je n'ai pas hésité à utiliser des utilitaires pour la comptabilité sur un tas de 1C et Visual Basic, ou pour le doyenné sur FoxPro et Delphi, et pour le plaisir, j'ai écrit des applets en Java pour mon «hamster» sur le serveur de la faculté.
La pratique n'est pas superflue, comme l'argent. De plus, étant paresseux pour les premiers cours, j'ai marqué pour les études et je suis resté sans bourse, et finalement je suis allé à l'académie à cause de l'échec de la session. Cependant, la grippe qui est tombée et la dépression qui s'est effondrée après un amour malheureux ont également joué un rôle.
Quoi qu'il en soit, je n'ai pas réussi à terminer la quatrième année la première fois, et j'ai dû passer six mois de temps libre à bon escient, tout en essayant de ne pas faire de bruit dans l'armée.
Été 2001, Izhevsk
Où s'adresser à un étudiant non formé ayant la capacité d'administrer nyx et le bagage épars de compétences de programmation pratiques pour quelque chose de simple? Ils n’ont emmené nulle part sans diplôme, sauf un administrateur système, mais j’assumerais n’importe quel travail, juste pour attendre le temps de récupérer.
Heureusement, le bureau est arrivé avec le nom parlant de «Virtual Izhevsk». Un studio Web microscopique, mais comme il était alors censé être n'importe quel studio Web qui se respecte - avec un catalogue de ressources régionales, un serveur Web et beaucoup de projets de différents niveaux de marginalité. Comment aimez-vous, par exemple, le concours de beauté en ligne "Miss BikiNu-2002"? Et si je dis qu'il avait une section fermée pour les sponsors, avec des photos plus intéressantes de «modèles»?
Le même additionneur, bref. D'un autre côté, le directeur du bureau a eu une idée pour fixer tout le développement du studio du frein Perl à la version 4 de PHP fraîchement publiée, car quelque part il avait lu qu'il avait de l'avenir (et il était ringard plus vite). En général, le réalisateur ne s'est pas trompé. Je n'y ai passé que six mois, mais au moins j'ai appris à écrire assez bien en PHP - et, en raison des spécificités des projets, j'ai dû prendre soin de la sécurité. Ils ont essayé de les casser dans le but de tromper les votes - les prix de parrainage dans les concours étaient assez bons, tels que des voyages dans une entreprise d'amis en Turquie, et les filles de cette université très voisine ont rassemblé des équipes entières de sympathisants qui étaient prêtes à les amener au sommet.
L'initiative du même directeur a également été intéressante pour rassembler une communauté locale de développeurs Web - un forum dans lequel tous les développeurs et fournisseurs d'Izhevsk se retrouveraient - et, imaginez, il est toujours vivant à certains égards, même dans la cinquième réincarnation . Quelle autre ville a son propre festival de rock pour 1 500 informaticiens? Et à Izhevsk, il y a RockIzhaiti. Tout a commencé là-bas, sur un babillard électronique, où les développeurs et les gestionnaires d'une douzaine de bureaux locaux ont d'abord partagé culturellement leurs projets et leurs expériences à huis clos, puis ont commencé à créer des srachs épiques qui se sont rapidement déconnectés. Les derniers échos de ces batailles verbales légendaires et des vendettas commerciales du début des années 2000 couvent encore dans la communauté locale.
Je me suis rétabli à l'université et il n'y avait plus de raison de traîner des jours et des nuits au sous-sol, se cachant d'un camarade major.
Mais le destin lui-même a immédiatement rejeté le travail dans un studio Web à quelques étages (et le rang des projets) plus haut. Ma mère avait alors terminé sa carrière en programmation, mais elle n'a pas quitté l'informatique (ce n'est pas si facile de prendre et de quitter l'informatique), mais a obtenu un emploi en tant que directrice adjointe de l'une des divisions d'infrastructure de cette université très voisine, d'où provenaient les filles qui ont déjà été mentionnées à quelques reprises dans cette histoire. Les garçons, cependant, y ont également étudié, et même dans les spécialités de «l'informatique dans le domaine de quelque chose», mais l'université n'est pas technique.
L'unité s'appelait le «Centre pour les technologies multimédias et Internet» et était officiellement engagée dans le soutien de sites universitaires, de systèmes d'enseignement à distance, etc., mais en fait, il s'agissait d'une structure hybride faisant partie de l'environnement commercial de l'université, c'est-à-dire qu'elle faisait de l'argent, et non seulement pour maintenir l'image.
Le département multimédia a produit des disques de présentation pour les usines locales (par exemple,
Izhmash et
SEGZ ), et le département des technologies Internet était le studio web très qui a régulièrement pris des prix lors d'expositions de l'industrie. Honnêtement, le mur du bureau du directeur, accroché aux diplômes du sol au plafond, a inspiré. Fondamentalement, les clients qui sont venus sur le sujet se sont mis d'accord sur le développement du prochain site représentatif.
Il s'est juste produit un petit problème: l'équipe de programmeurs et de concepteurs, qui a remporté tous ces prix, a pris et quitté le bâtiment dans son ensemble, emportant la moitié des projets en cours avec eux. Il était difficile d'accueillir une foule en constante augmentation dans une université autre que du caoutchouc, et en général, ils voulaient quelque chose de plus.
J'avais un besoin urgent d'un remplaçant «enfin, au moins quelqu'un», mais j'ai été très bien libéré. Mère m'a juste traînée par la peau du cou, m'a jetée derrière la console du serveur de bureau et m'a ordonné de tout prendre en ligne entre mes propres mains. Le département multimédia s'est également retrouvé entre les mains du fils de la petite amie de ma mère, et nous avons commencé à réfléchir!
En fait, il est difficile d'imaginer une situation plus stressante: prendre la place de professionnels reconnus, attraper à la volée des développements étrangers et totalement inconnus, et prétendre que vous êtes capable de retirer tout cela. Oui, et du moins pas pire. Je ne me souviens pas des mois suivants - le matin, je devais rendre visite à des couples (Dieu merci, pas tous, certains des articles que j'avais rechargés) dans mon université, puis me traîner dans toute la ville jusqu'à la ville voisine, et y rester jusque tard dans la nuit. Et le week-end est également au travail. Je voulais aussi passer du temps, mais comment être étudiant et me passer de l'ivresse ...
Il a fallu environ six mois pour lire tous les RFC sur la technologie, tous les manuels pour les langages et les plates-formes utilisés, pour analyser tous les tas de code hérités de l'ancienne équipe (en particulier les sites universitaires écrits dans un terrible mélange de premières versions de Java et PHP avec des extensions auto-écrites), et pour garder parallèle parallèle développement de sa propre base logicielle - en PHP uniquement. Non seulement parce que le nouveau balai devrait prendre sa revanche d'une manière nouvelle, mais au moins pour des raisons d'hygiène: au cours des dix années de travail de l'ancienne équipe dans des projets qui ont été menés sans aucun contrôle de version, beaucoup de déchets se sont accumulés et, d'un nouveau regard, ils étaient très visibles.
Il convient également de considérer que le marché à cette époque n'avait pas encore de
CMS développé, et en effet, l'état actuel des choses dans le développement Web était difficile à appeler le «marché». Chaque bureau a écrit quelque chose d'original, avec son propre zoo. Par conséquent, je me suis entouré de tous les exemples disponibles de «
nus » open source, et au cours de l'été prochain, juste avant la cinquième année, j'ai assemblé un simple CMS à partir des pièces de rechange de mon forum et des «moteurs» compétitifs, ce qui a permis de résoudre des tâches momentanées. De plus, je suis resté coincé sur le sujet de l'expérience utilisateur et après avoir étudié tous les HIG disponibles à ce moment-là, pour une raison quelconque, j'ai été imprégné de Microsoft Wizards 97, dont j'ai essayé d'implémenter l'idéologie autant que possible dans l'interface, en mettant en œuvre des assistants pas à pas pour toutes les occasions.

Curieusement, mais la farce a été un succès. Non seulement j'ai réussi à terminer avec succès les projets qui s'étaient écrasés, déjà sur mon propre moteur, mais j'ai également accéléré le développement à plusieurs reprises. De plus, en raison de la nécessité de documenter soigneusement les projets que nous avions, j'avais naturellement la mission technique la plus détaillée pour un site représentatif typique pour une usine typique - ainsi qu'un manuel de formation pour les auteurs de sites municipaux, car l'un des projets était exactement tel, et la
loi fédérale avec le modèle n'était pas encore là.
De nombreux développeurs novices sous-estiment le pouvoir de la documentation, en particulier le pouvoir des manuels méthodologiques, mais si je comprends bien, à ce moment-là, après avoir parcouru tous les cas d'utilisation et ressentant la douleur et les besoins du client, je suis passé d'un développeur novice à un analyste système novice. Et si auparavant le travail du programmeur me semblait être la solution à des puzzles intéressants, maintenant il est devenu ce qu'il est vraiment - l'automatisation des actions de routine des gens.
De plus!
Un programmeur n'est pas un créateur. — , , , , , , , .
. -, , « - » . CMS ( ; — ). - , «
[sic!] ». 2003 «», .
( , , ) — . , , , . , , , CMS ( , , , , HTML, ).
-, , , — , , CMS, — , , . , , . , 13 . .
( — , , , ; ), , , . , .
, , , , , , .
Une fois, j'ai oublié de réinitialiser le cache du serveur CSS après avoir restauré le site à partir de la sauvegarde, et un de mes collègues a instantanément lancé une capture d'écran avec la mise en page complète qui était restée pour le lien vers Lebedev. Pour lulz. Conclusion: un mème célèbre.Mais l'approche technocratique était avantageuse, et dans le contexte d'autres bureaux d'Izhevsk, nos projets ne semblaient au moins pas pires et existaient certainement plusieurs fois plus longtemps que la grande majorité des collègues. Et certains, comme Izhmoto.ru, ont même survécu à la mort du client d'origine. Ou même la seconde.
Pour le plaisir, j'ai mené une fois une expérience complètement inhumaine. Il y avait un tel programme de formation pour les professeurs d'informatique rurale - lorsqu'ils ont été conduits dans différentes universités d'Izhevsk des 25 régions de la république et leur ont enseigné un cours sur les bases de la construction de sites. Naturellement, j'ai enseigné sur l'exemple de mon moteur, et je n'ai pas pu m'empêcher de profiter d'une si grande opportunité pour effectuer des tests A / B de plusieurs versions de l'interface sur des centaines de malheureuses. C'était amusant, j'ai appris quelques choses complètement inattendues sur les modèles de comportement et les perceptions des utilisateurs (les employés de Microsoft avaient raison quand ils ont refait l'interface utilisateur Office en fonction du contexte - c'est le plus efficace; il est également absolument impossible de supprimer le bouton "Enregistrer" avec une disquette des interfaces).
Mais à la fin, je m'ennuyais toujours.
Eh bien, combien de sites Web pouvez-vous riveter? Eh bien, multisites (c'est quand une douzaine et demi de sites interconnectés sur différents domaines, mais sur une seule copie du moteur, et avec une autorisation directe). Eh bien, des portails de documents (des catalogues de documents accrochés avec des métadonnées sur votre arbre de Noël, avec une recherche en temps réel de tous les paramètres). Eh bien, des intranets, des blogs vidéo, des sites de médias (juste des plugins spécialisés pour le CMS d'origine, qui selon mes spécifications ont été écrits par des étudiants diplômés).
Il était évident qu'il était temps d'entrer, par exemple, en tant qu'équipe précédente, et de quitter le bâtiment. Malheureusement, je n'ai pas les qualités suffisantes pour être directeur commercial. Techniquement, je peux, mais pourquoi? Sur le web, la lumière n'a pas convergé et les progrès ne s'arrêtent pas. Ce qui était exclusif en 2002, en 2006 déjà le courant dominant, et en général, Bitrix a apporté la construction de sites Web à l'artisanat.
Mais s'il faut passer à une zone adjacente. Pourquoi oui
Seulement dans lequel?
Je suis allé parler à plusieurs bureaux différents. Pas partout moi, le terrible troll avec
Izhaiti ,
j'ai été accueilli à
bras ouverts (peu de gens aiment les trolls en général), mais le choix était assez riche. Il était possible d'aller sur le bureau .NET, et des morceaux de fer à programmer (bien que ce soit en usine, il est donc plus probable que non, que oui). Mais j'ai particulièrement aimé l'idée de développer de grands systèmes pour une entreprise sanglante - seulement dans ce monde que Java conduisait, et je ne connaissais Java au niveau de ces applets qu'à partir d'un «hamster» universel et d'un héritage semblable à des nouilles enterré lors d'un travail précédent. Aussi version 1.1.
Par conséquent, j'ai accepté l'offre du fournisseur de télécommunications local
Izhsvyazinvest (c'était «multiservice», c'est-à-dire qu'il fournissait Internet, la téléphonie et la télévision; après la crise de 2008, je suis mort à l'agonie et j'ai été acheté par Beeline, mais à l'époque, il a prospéré).
Ici, vous avez besoin d'une petite remarque sur l'histoire de l'Internet local. Il est assez différent de la société russe typique grâce à la société Mark (peu importe comment elle s'appelait pour ses plus de vingt ans d'histoire) - depuis le milieu des années 90, Izhevsk a été très en avance sur la vitesse et la couverture, et à un prix inférieur, pas seulement dans toutes les régions voisines , mais aussi à Moscou. De plus, l'ère des modems DSL a cédé la place à l'ère du cuivre, puis de l'optique domestique très rapidement, et l'Internet rapide à Izhevsk s'est généralisé, et ce fournisseur était une excellente forge de personnel technique et de gestion pour l'industrie locale. Même le fidosnaya tusa local était principalement sur Ethernet Markov.
Les natifs de Mark ont fondé plusieurs bureaux concurrents, dont Izhsvyazinvest. Ils ont apporté avec eux la facturation - un système monstrueux qui fonctionnait à l'intérieur d'un cluster d'Oracle, en plus, un classique, au-dessus du fer de Sanovo et sous un solarium. Presque toute la logique commerciale de ce monstre chthonique a été connectée à des miraculeusement stockés, même des lettres de paiement aux clients ont été envoyées à partir d'un travail asynchrone. Seul un petit morceau du panneau d'administration a été écrit en Java (version 1.4), malgré le fait qu'il était presque entièrement généré via System.out.println (), et il ressemblait ... il ressemblait à l'enfer. Il était impossible de regarder l'interface Web de l'utilisateur sans larmes (et pas seulement parce que tout était de 7,5 points).
Surtout par rapport à ce que le panneau d'administration de mon CMS était devenu à l'époque. Et c'était une application
HTA , impossible à distinguer en externe de celle native, et même sans nécessiter de souris, même si elle était écrite en JS / DHTML pur. Le chef de département était tellement impressionné qu'il m'a immédiatement pris comme spécialiste UX. L'intention était simple - tirer sur un beau monstre de facturation une interface belle, rapide, pratique et native, et la vendre à d'autres fournisseurs. En ce qui concerne l'ensemble des possibilités, en fait, développé à partir du milieu des années 90, il a déchiré tous les analogues disponibles en tant qu'as, mais les concurrents avaient une interface utilisateur saine, mais TELSI ne l'avait pas.
Pour mettre du
rouge à lèvres sur un cochon ... Cependant, vous ne pouvez pas simplement attacher une interface à la logique si elle n'a pas de points de terminaison pour quelque chose de similaire à AJAX.
La couche de points de terminaison devait être écrite en s'intégrant dans le code existant. Mais en 2006, Java 1.4 était déjà une relique, donc la première chose que j'ai faite a été de copier l'embryon admin existant dans la version actuelle avec le même peignage de cheveux et de mettre le code dans l'ordre (oui, j'ai dû creuser à nouveau dans la substance héritée). En cours de route, j'ai étudié la pile technologique J2EE, mais en raison des spécificités, je me suis limité aux servlets et à toutes les liaisons associées pour l'instant, ainsi que JDBC (j'ai besoin de tirer le stockage), Velocity (le plus similaire au moteur de modèle PHP) et, en fait, le noyau Java.
Peu à peu, il est apparu que toute la logique liée à l'affichage latéral de l'utilisateur, et en particulier à l'interaction interactive avec lui, devait être retirée du stockage et implémentée dans la couche de services en Java, car les exigences pour les fonctionnalités changeant au fil du temps rendent la conception à partir d'appels bruts des fichiers stockés via JDBC est difficile à maintenir (tout doit être changé à deux endroits, mais avec le code versionné des bases de données tout est encore mauvais, pour ne rien dire du huitième Oracle) et fragile.
"D'accord", a déclaré le chef du département.
Il m'a fallu un an pour mettre tout cela à la lumière du jour. Année! La quantité de code était tout simplement monstrueuse. Je me souviens d'un mégaoctet de code source à la fois, et ici, le code n'a fait que cinq fois le stockage. La moitié des inutilisés, l'autre moitié s'appellent récursivement, et en général sont tissés dans une telle boule de nouilles qu'il était décidément impossible de le démêler sans l'aide du patron.
Je devais travailler six jours par semaine, onze heures par jour - les autres programmeurs étaient assis sur le support du monstre existant et ne pouvaient pas m'aider. Le résultat a été un micro-coup (à l'âge de 26 ans, mon cul!) Et six mois sur des comprimés. J'ai appris une leçon - depuis lors, je n'ai pas dépassé mes limites. Le travail ne s'enfuira pas, mais la santé le peut.
Après un certain temps, il s'est avéré qu'il était plus pratique de stocker une partie des données de facturation sous forme de répertoires - c'est-à-dire, pas de tables relationnelles tout à fait ordinaires, mais plutôt des documents constitués d'ensembles de valeurs-clés avec des métadonnées souvent inconnues pour chaque enregistrement. Oracle ne le supporte pas nativement, et en général, avec NoSQL dans ces années, il était encore pourri.

→

→
Images cliquablesMerde, mais quelque chose me le rappelle ... Eh bien, les portails de documents. En fin de compte, tous les systèmes d'information concernent la même personne, si vous regardez de profil? Et bien.
D'accord, j'ai dit. Et en quelques mois, il a implémenté un référentiel orienté documents au-dessus des tables Oracle à l'aide de déclencheurs, de stockages qui créent des vues et d'une sorte de mère. Cela n'a pas fonctionné très rapidement, mais cela a semblé fonctionner à partir d'un demi-coup de pied. Il était temps de mettre le boulon à vis en opération d'essai.
Et puis la crise de 2008 est venue à Izhevsk
Cependant, il est venu à tout le monde.
Non seulement tout le monde avait de l'argent, mais aussi le bureau, surtout pour garder un programmeur travaillant sur une future version du système. Le bureau s'est empressé de recruter de nouveaux clients, juste pour survivre, et ils ont décidé de me quitter pour l'entretien de routine de l'ancien monstre, car la charge augmentait et le nouveau projet était mis au froid. Ils ont également coupé le salaire, car le mot «en général» n'a pas d'argent.
"Au revoir," dis-je. «Maintenant, je suis un vieil homme», ai-je dit, «et je connais le kung-fu», ai-je dit, «et je vous suis reconnaissant de me le montrer, mais je veux pratiquer mon kung-fu et ne pas souffrir de bêtises.»
Malheureusement, c'était plus difficile à faire qu'à dire. Dans une crise qui fait rage avec une entreprise sanglante, les choses sont à peu près les mêmes qu'avec TELSI (c'est-à-dire «reportées» à «plus tard»), mais dans la nouvelle réalité économique, les entreprises occidentales, en tant que moyen de réduire les coûts, ont attiré l'attention sur les sous-traitants russes, et ils ont été inondés. J'ai dû reporter l'entreprise de plusieurs années et faire ce qui rapportait de l'argent.
Très vite j'ai trouvé du travail dans le studio suivant (plus précisément, ils m'ont trouvé - néanmoins, gloire dans la communauté locale, même un petit troll, chose parfois utile). Et bien, en tant que studios ... Ils avaient du développement web, mais dans une plus large mesure ce "centre d'information et d'édition" se positionnait comme un donneur d'ordre. Et bien aussi comme imprimerie. Il s'agit d'une autre entreprise hybride.
La direction principale de l'externalisation a été le développement de systèmes d'information géographique - c'est-à-dire des systèmes qui font quelque chose avec les données cartographiques.
Par exemple, le projet actuel était - quelque chose de terrible pour les motards danois, sur
Zend , avec un certain analogue de portlets (ne demandez pas ce que c'est, je ne connais que les applets et les côtelettes) et généralement une sorte de savoirs traditionnels extrêmement étranges. Et seulement je me suis assis pour le lire attentivement, alors que les motards se sont cachés dans une direction inconnue avec le directeur technique du bureau qui, en fin de compte, m'a incité à me remplacer.
Eh bien, "pour un remplacement". Nous avions besoin d'un développeur principal pour un nouveau projet - également un SIG, uniquement sur la télévision par satellite. SatBeams.com - toujours vivant, vous pouvez le voir, veuillez ne pas le faire tomber.
Un projet intéressant. Oui, encore une fois, j'ai dû revenir à PHP, mais là, la plupart des astuces étaient dans la conception de la base. Dans l'orbite géostationnaire, plusieurs centaines de satellites sont suspendus, chacun au-dessus de sa longitude, à chacune d'entre elles plusieurs (jusqu'à des centaines) antennes - transpondeurs diffusant dans plusieurs bandes. Ils diffusent des bouquets, dans chacun desquels plusieurs (jusqu'à des centaines) chaînes de télévision, chacune ayant un ensemble de caractéristiques (encore une fois, jusqu'à des centaines, parce que les langues).
L'essence du problème: il est nécessaire non seulement de dessiner une couverture sur la carte pour chaque transpondeur, mais aussi de générer pour eux des changements de diff en temps réel dans toutes les caractéristiques de tous les canaux reçus sur la plaque à un certain endroit, et de le recracher en RSS. Pour de telles informations, les amateurs professionnels de télévision par satellite paient d'ailleurs une somme considérable.
Il semblerait que cela semble simple, mais bon ... Multipliez cent par quelques, multipliez par cent, multipliez par ... oups. Le produit cartésien de tous les paramètres possibles dépasse un billion, et nous devons construire un
diff en temps réel. C'est un problème d'olympiade, soit dit en passant.
C'est là que le cours de base de données universitaire m'a été utile, ainsi que toute l'expérience précédente de travail avec eux, et toute l'expérience en conception de système que je viens d'avoir. En conséquence, tout cela a abouti à plusieurs dizaines de tables, normalisées à
5NF , à des tables dénormalisées avec historique et à un tas de demandes pour plusieurs pages chacune. Avec des jointures délicates qui prennent en compte le comportement de l'optimiseur du SGBD sélectionné. MySQL, je veux dire. Le client n'était pas d'accord avec un autre.
Ensemble, le deuxième programmeur a réussi en environ un an. Cela fonctionne, si vous ne l'avez pas encore abandonné avec l'habraeffect pour l'instant. J'adore ce projet. Et pas seulement pour le backend, mais aussi pour satbar.js - le dernier widget d'interface que j'ai écrit (depuis, je n'ai plus touché aux interfaces utilisateur).

Un obstacle inattendu était de dessiner des empreintes de transpondeurs sur Google Maps - Google voulait généralement mettre son épais mojo sur des intégrations tierces, et sciait systématiquement des cartes de fonctionnalités pour chaque fonctionnalité de chaque nouvelle version de carte API 2. En conséquence, il a acquis un ensemble incroyable de béquilles et a nécessité un soutien constant de la part de côté du deuxième programmeur après avoir mis le projet en service - et il a migré vers la troisième version de l'API, devenant périodiquement déprimé. Mais le client se vantait d'une photo du bureau de la PMa Google Card avec l'étiquette de notre site avec la signature "nice polygones" - il l'a secrètement faite lors de sa visite au siège local.
Mais les projets sympas ont tendance à se terminer. Et bien, en cas de succès.
La crise a continué de faire rage. Je devais entreprendre des projets pas si cool, si seulement le bureau payait de l'argent.
Je suis encore allé sur le pouce et j'ai collecté plusieurs sites, presque sans reprendre conscience. Avec rien à faire, j'ai mis à jour le CMS avec les développements d'interface ramenés du travail précédent - y compris une sorte d'interface utilisateur du ruban du nouveau bureau (dans le processus, l'a fait plus tôt que Microsoft lui-même, mais, bien sûr, plus simple, bien que le single magique ALT y ait aussi fonctionné.) Je vais vous montrer quelque chose, ça mérite une histoire séparée). Il a même entrepris le développement d'une base de données de bureau sur .NET + SQLite pour un client d'État en échange d'une solution héritée sur Firebird (ou même FoxPro? Et, je ne me souviens pas, mais sur quelque chose de complètement ancien), mais ce projet a amené avec lui un nouveau PM qui prétendait pour le rôle d'assistant technique, et nous n'avons pas pu nous mettre d'accord sur le timing. Je n'ai donc pas pu creuser dans la pile de bureau .NET.
Et puis un ancien étudiant qui a fait un diplôme dans mon département (ces mêmes «portails de documents») m'a soudainement écrit. Au cours des cinq dernières années, il est devenu le chef de son propre bureau, qui, heureusement, était engagé dans l'entreprise sanglante - SAP, et un peu plus de développement sur Java EE.
Alors bonne chance. Il avait juste besoin d'un expert pour l'aider dans un nouveau projet.
L'essence (et, en général, le sens) de ce projet est difficile à expliquer. J'ai encore une petite idée des motivations du capital-risqueur du Tatarstan qui souhaitait faire une sorte d'équivalent SaaS / PaaS / boxed de MS SharePoint + Exchange + Lync + Dynamics, mais uniquement avec la partie serveur sur J2EE, et avec le client Java Swing "épais". Au début, il l'a appelé NewOutlook, puis il a complètement appelé OfficeSuite. De plus, il était également un travailleur du pavot, c'est pourquoi il a dû acheter du pavot au bureau - des composants swing pour un client épais se comportaient sous MacOS parfois de manière imprévisible. Un projet très, très étrange. Mais terriblement intéressant.
Au total, au moins trois équipes y étaient engagées - à part nous, les gars étaient à Kazan et quelque part à Minsk, ou quoi? ou à Kiev?, et notre équipe était considérée comme la principale: nous devions développer une architecture commune de la partie serveur et du client, un mécanisme de synchronisation des données entre eux, et aussi, par exemple, mettre en place un module de gestion des finances personnelles. Le reste aurait dû être engagé dans les
communications unifiées et tout ce que l'investisseur avait imaginé (sans savoirs traditionnels spécifiques).
La mise en œuvre du synchroniseur semblait être la tâche la plus difficile - aucune des équipes existantes ne savait comment l'aborder. Le client, comme nous nous en souvenons, est «épais», c'est-à-dire qu'il peut et doit fonctionner sans la partie serveur du tout, et en même temps, il doit pouvoir se connecter au serveur selon un calendrier ou une demande de l'utilisateur afin de mettre à jour des «objets» (peu importe) ici et là .
Au début, je ne savais pas comment, mais mes yeux avaient peur et mes mains faisaient. Les mots intelligents «architecture client et serveur» ne sont en fait que quelques croquis de conception bien conçus comme un document structuré. Bien sûr, «tout type d'objets» est une exigence, mais, heureusement, j'ai été en mesure de concevoir des systèmes de plug-in hôte qui peuvent décrire leurs types d'objets depuis l'époque du centre multimédia, les ORM astucieux après Izhsvyazinvestovsky monstre ne me font pas peur, mais les disparus Je peux apprendre les technologies J de EE assez rapidement.
"Architecte" ... Je n'aime pas quand ce mot est appliqué à la position d'un programmeur. Une traduction tordue de l'anglais par System Designer, il serait plus correct d'avoir été un "ingénieur de conception". Mais, à mon avis, le processus de création d'un prototype d'un futur produit à partir de zéro, que même le client n'imagine pas bien, décrit bien mieux le terme «ingénieur de recherche».
Sept mois plus tard - au moment de la livraison intermédiaire - des trois équipes, quelque chose digne de montrer n'était prêt que pour la nôtre. Notre équipe a écrit un module de gestion du budget personnel entièrement fonctionnel, le synchroniseur a tout synchronisé de la meilleure façon possible, et le cœur des parties serveur et client de l'application était prêt à connecter les plugins restants.
Pour le reste, le cheval n'a pas roulé, et le capital-risqueur, semble-t-il, s'est rendu compte qu'il avait menacé d'une tâche dénuée de sens et a disparu de l'horizon.Le projet a été immédiatement clôturé. Ayant fait des tournées en tant qu'expert invité, je n'avais pas particulièrement besoin, comme les autres javistes, car le chef du bureau a décidé de se concentrer sur SAP.Merde. Telle est l'entreprise de capital-risque. Je déteste un peu.Une telle remarque: il n'y a pas d'emplois idéaux. Partout où vous allez, il y aura quelque chose de bien, et quelque chose de mauvais, délicieux et dégoûtant, raisonnable et anormal. Ce n'est pas une question de dialectique, pas plus que la vie n'est objectivement peinte de différentes couleurs. La majeure partie du problème réside dans votre propre attitude envers divers aspects de l'être - tant qu'une étincelle divine se réchauffe en vous, vous êtes condamné à vivre des émotions différentes à propos de différentes choses. Ce qui, bon sang, arrive.
Pas toujours pour le mieux.C'était déjà en 2011. Toujours à Izhevsk
Pendant ce temps, le paysage a radicalement changé dans la ville. Les rangs des studios Web ont été considérablement amincis, les usines et autres fournisseurs ayant un développement interne ont en quelque sorte diminué, mais le nombre de bureaux d'épicerie a augmenté de manière notable, et même de grandes sous-traitantes sont entrées dans la ville. Surtout, EPAM.C'est là que se trouve l'entreprise vraiment sanglante.Les EPAM (ainsi que Luxoft et d'autres monstres similaires, communément appelés «galères») sont des usines. Des usines géantes pour la production de logiciels personnalisés, et la procédure de production y est absolument convoyeuse. Tout le monde est régi par des «processus» - un code écrit et non écrit de règles formelles et informelles pour toutes les occasions, des moments de routine quotidiens les plus insignifiants - à la force majeure et aux RH complètes. Peu importe le niveau de système dans lequel vous êtes intégré, il vous suffit de leur obéir, que vous le vouliez ou non. Vous devez être un rouage dans le mécanisme et jouer un rôle.Mais les rouages sont nécessaires dans différentes tailles, directions de filetage et pour différentes clés. Certains doivent même être en pouces, pas métriques, tout dépend beaucoup d'un projet particulier.La blague ici, c'est que les règles mêmes du vissage sont de très, très haute qualité. Ils veulent même suivre - je n'ai jamais vu une telle attention et une telle profondeur d'étude ailleurs. Et l'efficacité est prouvée par le fait qu'avec une exécution assez précise des règles, les caractéristiques de personnalité des personnes travaillant dans le système deviennent dans une certaine mesure sans importance. Mais seulement dans une certaine mesure.Après tout, les gens sont toujours, dans un sens, l'enfer. En raison des bonnes règles formelles, les éléments suivants peuvent fonctionner et fonctionner avec succès dans les EPAM:• des personnes avec lesquelles non seulement je n'entrerais pas dans l'intelligence, mais ne communiquerais même pas dans le monde;• des gens sans imagination, des gens sans sens de la beauté;• des gens sans étincelle de Dieu, mais avec un âne en fonte;• des gens sans sens des proportions et du tact;• les personnes psychologiquement incompatibles entre elles;• personnes excentriques.Heureusement, il n'y en a pas pour la plupart, il y en a de plus normaux, mais le tableau général est des «excellents élèves» (des autres). Vivement! Gâtez-vous!De plus, dans les bureaux traditionnels, où une personne n'est pas une «ressource» mais un «spécialiste», et il n'y a pas de concept de «bassin de développement», mais un concept de «département», les gens ne sont pas embauchés dans un troupeau commun, mais pour qu'ils puissent travailler ensemble ami ensemble - c'est-à-dire des personnes partageant les mêmes idées. Dans les EPAM, l'équipe du projet est sélectionnée selon des caractéristiques formelles uniquement à partir du troupeau de ressources générales.Comment en suis-je arrivé là?Ils ont appelé, ayant promis de travailler sur le projet d'entreprise le plus sanglant de l'histoire du bureau, et ont promis de donner immédiatement les dames âgées. Ne vous laissez pas berner. Ils ont pris le seigneur avec la perspective d'une avance., , , , . — , ( , ), mission critical. Java EE, : — IBM. — WebSphere AS MQ, — DB2. JVM — J9, , ( , ).
: ( ), ( , , ) ( 300 ).
J'ai dit: oui (il y avait environ 15 «architectes», les gars étaient ... différents, et la brique correspondait pendant la pièce trois fois au-delà de la reconnaissance).Et c'est parti ... Pendant deux ans, j'ai dû participer au développement de plusieurs sous-systèmes. Passerelles vers le monde extérieur. Stockage de fichiers interne. Synchronisation de l'état de traitement des paiements pour les opérateurs des Trois Grands. Le système de déploiement des modules - il y en avait environ 25 au total - dans la batterie de serveurs (en conséquence, il n'a pas survécu, mais applications.xml est resté dans le produit).Une fois qu'il est entré accidentellement dans le domaine de responsabilité d'une autre équipe et a découvert qu'il existe 19 façons uniques de rechercher une ressource dans JNDI . , , . . !
, . —
SVN . , . , … « » (!) , .
, , J9 DB2 … IBM , , .
— - , …
Bref, je voulais une entreprise sanglante, et je l'ai reçue, mais je ne m'attendais pas à ce qu'il y ait une boîte aussi cruelle, et pas là où je m'attendais.Finalement, il a demandé un autre projet. Je devais complètement jouer avec PM pour cela, car ils ne voulaient pas me laisser partir. Le développeur clé n'est pas un Vasya inutile du banc. Mais je suis parti - et c'était «sur le banc».Pendant un moment, cela a été soulagé. Mais c'était encore inconfortable, car le climat au bureau avec ses jeux et intrigues d'infiltration - peu importe sa distance, il écrase.Presque avait déjà décidé de partir complètement - n'importe où, seulement loin de cette folle - mais un autre projet m'a soudainement jeté. C'est aussi une entreprise, mais beaucoup plus simple et plus traditionnelle, presque même pas sanglante. Je ne sais pas pourquoi j'ai accepté de le diriger en tant que responsable technique. Il fallait faire tomber, mais j'ai décidé d'essayer la gestion une dernière fois.La seule équipe de développement disponible à ce moment-là s'est avérée être composée «d'excellents étudiants» du banc, toujours assis là. Tous ceux qui n'ont pas été retenus pour d'autres projets en raison de leur toxicité, mais en cours d'évaluation pour des motifs formels, et donc ne pouvant être licenciés. Plus tard, j'ai réalisé que c'était une telle récompense pour moi pour le conflit avec le PM du premier projet, mais c'était trop tard., … , - «», , 8 , , .
: , . , , .
,
— . ,
delivery , 24 , . ( , ) .
— ( ), . , «». .
: . : .
Après une telle plongée sans tracas dans le bourbier de l'entreprise, et même avec un intervalle de plongée un peu moins d'un an, je me suis enfui d'EPAM - avec des talons brûlants, nulle part, complètement démoralisé, brûlé mentalement et pressé mentalement comme du citron.Burnout, dis? Qu'est-ce que l'épuisement professionnel? Je ne voulais juste rien. Plus précisément, j'ai voulu que ce monde soit brûlé en enfer avec un cochon, et j'ai péri sous les sabots des cavaliers de l'apocalypse parmi les premiers pécheurs. Cinq mois, j'ai passé d'une manière ou d'une autre entre un coma et un régime de légumes maison. Il a étudié les droits et s'est parfois rendu à des rassemblements informatiques (la participation à la communauté locale, même au rang de légende à moitié oubliée, est parfois extrêmement utile).Izhevsk, été 2014
L'un d'eux, hmmm ... un ivrogne - qui est un péché à cacher, à savoir celui d'une véritable ivresse - a eu lieu dans un bureau qui venait littéralement de sortir de nulle part. Une start-up américaine avec un nom drôle de tinypass (combien de blagues les hussards ont fait des blagues avec le p sur le logo) a décidé d'ouvrir un centre de développement à Izhevsk. Le fondateur et copropriétaire était local - et venait de rentrer dans son pays natal. J'ai immédiatement lancé un cri - mecs, allez dans une startup américaine, je l'ai fait!Les collègues les plus adéquats de l'EPAM (fatigués de toutes les ordures pas moins que les miennes) étaient immédiatement là. Et aussi les gars les plus expérimentés d'autres bureaux (dont plusieurs candidats en sciences). Un de mes anciens collègues (avec qui nous sommes devenus amis à l'époque du capital-risqueur), juste lors des rassemblements, tenus dans le nouveau bureau avec accès au toit, d'où une excellente vue sur la ville s'est ouverte, m'a invité à rejoindre. Eh bien, j'ai dit que dans deux semaines, je viendrais probablement travailler.Est venu. J'ai regardé le projet. J'étais triste.Le projet s'est avéré être brut, insignifiant, dégoûtant écrit. Le leader technique, un ami proche du fondateur, originaire de New York, est la personne la plus têtue au monde qui ne peut être persuadée, dissuadée ou d'accord. Mais vous pouvez déjouer. Et la seconde piste, qui peut faire tomber une ligne de code, voyez, c'est tout (en conséquence, ils s'en sont débarrassés, mais pas immédiatement).Mais dans le nouveau bureau cool avec une sortie sur le toit, une équipe incroyablement forte s'est réunie (une startup américaine était littéralement prête à payer de l'argent) - et je n'ai jamais eu l'occasion de travailler avec les meilleurs programmeurs de notre petite six cent milleième ville. Le seuil d'entrée était monstrueusement élevé (le middleware pour les services d'abonnement des fournisseurs de contenu avec un tas d'intégrations est difficile), et les gars plus simples ne l'auraient tout simplement pas tiré. Et depuis que je suis arrivée en seulement neuf, j'ai eu la chance de construire des processus de développement proches de ma compréhension de l'idéal. Autrement dit, quand tout fonctionne par lui-même.Le projet, nous avons progressivement, par des efforts communs, conduit à un état d'esprit. Le goulot d'étranglement est resté l'éducation des technlides, mais ils étaient à New York. Il n'y en avait pas ici. Ici, vous pouvez boire de la bière au bureau tous les jeudis, sans exception! Et passer un bon moment en compagnie des meilleurs des meilleurs développeurs de la ville. Hashtag # Izhevsk Google.C'était très cool, jusqu'à ce que la startup ait d'abord 15, puis 20 personnes. Juste une sorte de club d'intérêts, mais dans un tel club, il ne pouvait pas y avoir trop de gens avec des intérêts différents. Mais après l'ajout de l'équipe, nous avons déménagé dans un bureau encore plus frais avec une vue panoramique sur la partie centrale de la ville - ce qui a fait des couchers de soleil épiques sur Instagram plus de collègues féminines., Piano ( ), . , , .
Java, ( -, — , ). Continuous Integration — QA . -! , DevOps, , , .
Java, - . — , ( , ), ( , ! ) , , — . .
- , ? , . … . .
Après cela, encore une fois, il y a eu des DevOps très fous et des tâches de recherche mal formalisées mais cool. Il était possible de faire pipi beaucoup de code sur python et sous Google BigQuery, et toutes sortes de déchets là-bas sur Node.js (il est très utile pour l'ancien javiste de changer parfois un cheval, et parfois un ski). Eh bien, la tâche sur le gâteau est devenue une cerise sur le gâteau, pour laquelle j'ai refusé de le prendre trois fois en raison de sa doutes éthiques.- , , . , middleware, Piano, , , — . , -, , . , . , , , false positive , - .
, . , , «-», ( , , - ).
Honnêtement, je ne pensais pas que je quitterais le bureau à cause des différences éthiques. De plus, le bureau est cool à tous autres égards. Hashtag # Izhevsk Google.Izhevsk, quarante ans déjà proche
Comme c'est cool, quand vous ne pouvez rien faire pendant plusieurs mois entre les travaux. Mais alors tout de même devient ennuyeux, et la question éternelle se pose - que faire d'autre? Pour y répondre, j'ai fait une liste de contrôle.[x] Le développement Web l'était.[x] Le SIG l'était.[x] Il y avait une entreprise sanglante.[x] La startup cool hipster l'était.[x] Dans l'usine, où il y a du fer, je n'ai évidemment rien à faire.[x] Le développement de produits ne convient pas non plus, car c'est long, et je scie mon CMS depuis 11 (onze !!! 11) ans, et je suis très fatigué. Que reste-t-il?[x] À moins que les jeux avec d'autres en trois dimensions, mais là dofiga matana, c'était encore plein à l'école.[] Oh, attendez, le Big Data a tendance.Piano , . , , .
. , , , , .
, , , — . . , ,
MapReduce ( ,
Spark ), ArcGIS, , . -, !
, , . , . Java ( Scala , ), AWS , -, , ( , ) .
, , -, - . . , , , , — . . HUDWAY. #.
, .
we do what we must because we can , .
, ,— . , , , . , - , . .
, , , 20 . , ( , ), , , — , .
, , ( )? , , / ( , mortgage 25 ). ( , ).
, , , - , . (, , -, , , ). , , . , — - ever.
, , 20 .