
SKB Kontur ist eines der größten und ältesten IT-Unternehmen in Russland. Ende Oktober, sie wird 30, hat die Zahl aller Mitarbeiter 8 Tausend überschritten.
Nach Schätzungen des Arbeitgeberbewertungsdienstes My Circle
teilte Kontur im Juli 2018 mit Yandex
den ersten Platz unter den Schwergewichtsunternehmen.
„Kontur“ wurde in Jekaterinburg gegründet, als die Stadt noch Swerdlowsk hieß. Aber dann IT und jetzt IT sind zwei verschiedene Bereiche. Alles entwickelt sich mit Lichtgeschwindigkeit, Erbe und Größe helfen nicht immer im Wettbewerb.
Deshalb haben wir versucht herauszufinden, welcher „Kontur“ tatsächlich ein alter Dinosaurier oder ein fortschrittliches Technologieunternehmen ist, und mit Alexander Golubev gesprochen, der für die Entwickler des Unternehmens verantwortlich ist.
Alexander GolubevWas macht SKB Kontur?
- Andrei Mikhailov, der an den Ursprüngen von Kontur stand, sagte, dass alles mit dem Verkauf von Programmen zur Bilanzierung von Gehältern und Arbeitskräften begann. In den frühen 90ern war die Zeit schwierig und im "Circuit" machten sie verschiedene Dinge. Sogar Verkauf von Geräten und Druckern.
Programme wurden dann Desktop gemacht, sie wurden in C ++, Delphi, geschrieben, oft für die Bedürfnisse nur eines bestimmten Kunden. Dann haben natürlich alle umgeschrieben und ins Web übertragen. Allmählich ist alles Überflüssige verschwunden, aber die Hauptsache bleibt bis jetzt - die Bilanzierung von Gehältern und Software für die Buchhaltung.
Dies ist zwar nur eine der Richtungen. Wir stellen Produkte für alle Geschäftsanforderungen her. Zertifikate, Workflow, elektronische Signatur, Berichterstellung. Es gibt so viele Produkte, dass es schwierig ist zu zählen, wie viele davon tatsächlich sind. Die Schätzungen variieren zwischen 30 und 60. Nur aufgrund von Fragen, was als ein Produkt zu betrachten ist.
Büro "Contour" in Jekaterinburg"Aber gibt es ein Lokomotivprodukt?"Lange Zeit war es Kontur.Ekstern. In den frühen 2000er Jahren wurde es möglich, Steuerberichte über das Internet einzureichen. Und obwohl niemand wirklich das Internet hatte, wetten wir immer noch im Internet. Und sie hatten Recht: Das Produkt schoss und das Unternehmen begann schnell zu wachsen.
Als ich vor sieben Jahren ankam, war das Unternehmen dreimal kleiner. Mittlerweile beschäftigen sich rund tausend Menschen mit Entwicklung. Und dann war da ein Mann von dreihundert.
- War es schwierig, mit Wachstum fertig zu werden?Warum war es? Das Wachstum geht jetzt weiter. Menschen, Produkte und Kunden werden immer mehr. Wir wachsen von Jahr zu Jahr um ein Viertel. Wir skalieren Prozesse, wir lehnen den Leerlauf ab, wir erfinden neue. Anscheinend kommen wir irgendwie zurecht.
Wir mögen es, dass wir unsere eigenen Produkte entwickeln. Menschen in Teams - Programmierer, Analysten, Tester - behandeln Produkte als ihre Idee, bieten Ideen und Verbesserungen an. Wir sind nicht daran interessiert, Aufträge für externe Aufträge zu erteilen, die nicht mit unserer Hauptarbeit zusammenhängen - hier geht es nicht um Kontur.
Über Technologie und Sprachen
- Sie haben wahrscheinlich immer noch hohe Anforderungen an die Qualität und Sauberkeit des Codes, wie dies in großen Unternehmen der Fall ist. Entwickler haben deshalb keinen Werkzeugkult?- Wenn ein gestriger oder aktueller Student mit leuchtenden Augen das Unternehmen betritt, hat er mehr Engagement für eine bestimmte Sprache. Er versuchte es, etwas begann für ihn zu funktionieren, und er ist sehr vergeistigt davon. Und natürlich möchte er in eine Richtung arbeiten und sich entwickeln. Das ist wirklich gut.
Das Team der Programmierzombies beim Hackathon "Contour"Aber mit der Erfahrung kommt das Verständnis, dass Sprache ein Werkzeug ist und Werkzeuge geändert werden können. Sie beginnen mit der Entwicklung der Gebäudearchitektur mithilfe von Algorithmen, Repositorys, Warteschlangen, Protokollen und APIs - alles dort, wo die Sprache nicht wichtig ist, aber übergeordnete Dinge wichtig sind.
Daher gibt es deutlich weniger Siniors, die sich fanatisch einer Sprache widmen.
- Ich habe die Anforderungen Ihrer offenen Stellen überprüft , und es scheint, dass Sie wirklich alles nutzen, was existiert.- Nun ja, wir verwenden nicht nur sehr niedrige Dinge. In Assembler schreiben sie nicht in Contour.
Der größte Teil des Servercodes ist in C # geschrieben. Es gibt einige Java-, Go- und Node.js in der Infrastruktur und einige Produkte. Mobile Anwendungen - auf Kotlin, Swift und C # (Xamarin). Alles rund um Data Science ist in Python und R geschrieben, ohne sie gibt es keinen Ort. Abhängig von den Aufgaben verwenden wir geeignete relationale, Dokument-, Spalten- oder Schlüsselwert-Datenspeicher: MS SQL Server, MariaDB, PostgreSQL, MongoDB, Cassandra, ClickHouse, Redis, Kafka, HDFS. Es gibt auch unsere eigenen Entwicklungen: Beispielsweise ist Kanso ein verteiltes fehlertolerantes Data Warehouse mit binärer Protokollsemantik (ähnlich wie Google GFS), Zebra ist eine Dokument-In-Memory-Datenbank, Echelon ist eine verteilte fehlertolerante Jobwarteschlange. Wir verwenden sie seit vielen Jahren in der Produktion, und vielleicht werden sie eines Tages in
Open Source erscheinen .
Wir schreiben Client-Code in TypeScript oder JavaScript mit Flow. Das Hauptframework ist React, für das wir eine
Bibliothek mit Komponenten für Front-End-
Guides geschrieben haben , aber woanders verwenden wir Angular. Aber sicher zu sagen, wer gewonnen hat - TypeScript oder JavaScript - ist noch nicht möglich. Der Kampf geht weiter.
- Was denkst du?- Da ich aus dem Back-End komme, tendiere ich zu TypeScript (obwohl ich natürlich viel über JS geschrieben habe, auch wenn es keine Reaktion gab). Für jemanden, der an statisches Tippen gewöhnt ist, ist TypeScript besser bekannt. In jedem Fall wird fast der gesamte Code für das Front-End oder für Node.js mit Typen geschrieben.
Meisterkurs im Sommer Confur 2018 - die interne Konferenz der Contour-EntwicklerAber im Allgemeinen ist meine Einstellung zu Sprachen nicht religiös. Welche Tools für bestimmte Aufgaben bequemer sind, sollten verwendet werden. Ich habe in der Regel einen Master-Abschluss über Erlang geschrieben. Als ich 2011 zu Kontur kam, wurde sogar ein Produkt auf Erlang geschrieben. Aber als sein ideologischer Vordenker ging, gab es Probleme, einen Ersatzspezialisten zu finden. Schreiben Sie daher auf bewährtes C # um.
"Und wie bestimmen Sie, wo welche Sprache verwendet wird?"Entwicklungsmanager und Teamleiter haben einen ziemlich großen Freiheitsgrad und können Werkzeuge und Technologien frei wählen. Da das Produkt jedoch nicht im luftleeren Raum startet, besprechen sie die Auswahl mit „Nachbarn“, erfahreneren Kollegen, und prüfen, ob sie Spezialisten finden können. Es gibt Freiheit, aber ich kann nicht sagen, dass wir jeden Tag mit neuen Sprachen experimentieren. Wir brauchen bewährte Werkzeuge für die industrielle Entwicklung, damit wir später unsere eigenen Produkte entwickeln und warten können.
Wir haben eine Entwurfsprüfungspraxis. Wenn Sie ein neues Projekt starten oder das aktuelle ernsthaft ändern möchten, halten Sie eine Präsentation und treffen sich mit einer speziellen Community, in der coole Ingenieure Ihnen Feedback geben.
Wenn Sie entscheiden, dass sich niemand für Sie entscheidet - es gibt keine Ultimaten und Verbote -, wird Ihr Gehalt natürlich nicht weggenommen. Trotz allem entscheidet sich das Team für eine umstrittene Technologie, die auf Risiken vorbereitet sein muss. Das Projekt ist möglicherweise nicht mit einem Teil der Infrastruktur kompatibel oder einige Funktionen können nicht in die Infrastruktur integriert werden. Dann wird jeder große Schmerzen haben.

Normalerweise wird alles besprochen. Vor einem Monat gab es die Idee, einen der neuen Dienste in F # zu schreiben. In solchen Fällen versuche ich einen Dialog zu führen und frage: „Und warum genau F #? Wo wirst du nach Menschen suchen? " Am Ende überzeugten sie die Person, in C # zu bleiben. Das heißt, zu überzeugen - ja, zu bestellen - nein.
- Haben Sie versucht, selbst in F # zu schreiben?Nein, aber mit solchen Diskussionen bin ich nicht allein. Wir haben einen Engineering-Tipp: sieben coole Ingenieure. Dies sind Personen, die aufgrund von Erfolgsgeschichten innerhalb des Unternehmens ausgewählt wurden. Sie haben in vielen Projekten an Glaubwürdigkeit gewonnen. Die Kinder sind auch an Entwicklungsprojekten der Entwicklungsabteilung beteiligt (dies ist die Einheit, die die meisten Contour-Entwickler vereint).
- Sie haben versucht, in diesem Rat verschiedene Stapel zu sammeln?Abwechslung ist ein guter Punkt, aber nicht der wichtigste für uns. Da die Ingenieure cool sind, haben sie genug Horizonte. Sie schreiben Code in C #, aber es wird für sie kein Problem sein, Java-Probleme zu lösen.
Es gibt keine Diversifizierung im Rat, aber man sollte nicht denken, dass alle Diskussionen nur darin stattfinden. Neben der technischen Beratung haben wir professionelle Communities. Zum Beispiel haben Frontends ihren eigenen Anführer, ihre eigene Community mit hohen Fähigkeiten. Die Entscheidung zur Entwicklung des Frontends trifft ein Hybrid-Team, zu dem auch ein Vertreter des Engineering Council gehört.
Toolkit
Die meisten Teams verwenden YouTrack als Task-Tracker. Einige Teams verwenden Trello und Jira. Wir schreiben den Code in Visual Studio, Visual Studio-Code, Rider, WebStorm usw. Wir verwenden JetBrains-Produkte häufig für verschiedene Aufgaben.
Wir verwenden TeamCity als CI-System und stellen Dienste über Octopus in einer privaten Cloud unter der Kontrolle unseres eigenen Houston-Systems oder von Kubernetes bereit. Wir sammeln Metriken über Graphite. Für Warnungen nach Metriken verwenden wir Moira. Protokolle werden in ELK gesammelt, gespeichert und angezeigt.
Die tägliche Kommunikation geht an Slack und Telegram. Es gibt Mitarbeiter - ein eigenes internes soziales Netzwerk. Es veröffentlicht Nachrichten über Produkte, Stellenangebote, soziales Leben und Sportveranstaltungen. Dort können Sie Tagungsräume buchen und Artikel schreiben. Dies wird zu einem beliebten Kommunikationskanal. Immer mehr Dinge werden online diskutiert.
In den letzten Jahren haben wir Infrastrukturlösungen direkt auf GitHub entwickelt. Das bekannteste Open-Source-Produkt ist das Notfallbenachrichtigungssystem von
Moira. Außerdem wird es in Avito und Yandex.Money verwendet. Der größte ist der
Osten . Hierbei handelt es sich um eine Reihe von Tools zum Entwickeln von Microservices auf der .NET-Plattform, mit denen sie miteinander kommunizieren und ihre Protokolle, Metriken und verteilten Traces automatisch erfassen können.
Über die Unternehmensstruktur

Das größte Büro "Kontur" befindet sich in Jekaterinburg. Mit dem Wachstum des Unternehmens werden immer mehr Mitarbeiter benötigt, sodass das Unternehmen ständig expandiert. Entwicklungsbüros befinden sich bereits in Nowosibirsk, Perm, Ischewsk, Kasan, Innopolis, Rostow am Don und St. Petersburg. Darüber hinaus kommt die Initiative zur Eröffnung neuer Büros häufig von den Mitarbeitern selbst. Mehrere coole Ingenieure wollten nach St. Petersburg ziehen - dann haben wir ein Büro in dieser Stadt eröffnet.
Die überwiegende Mehrheit der Mitarbeiter arbeitet in Büros. Da die Teams jedoch auf die Städte verteilt werden können, hat Kontur in diesem Jahr beschlossen, Remote-Mitarbeiter einzustellen. Wir lernen immer noch, wie man in diesem Format arbeitet, und es gibt immer mehr solche Mitarbeiter.
„Kontur“ ist in drei große Bereiche unterteilt: Produktentwicklung, Vertrieb und Kundenservice sowie interne Services. In einem Unternehmen mit fast 10.000 Mitarbeitern werden die Beziehungen so horizontal wie möglich aufgebaut: Wir arbeiten aktiv daran, alte und neue Beziehungen zwischen Mitarbeitern aufrechtzuerhalten.
Die Produktteams beschäftigen Mitarbeiter unterschiedlicher Spezialisierungen: Programmierer, Tester, Analysten, Schnittstellendesigner, Vermarkter, Experten, Manager ... Neue Startups werden von einem Team gesägt, gewachsene Produkte werden häufig in mehrere Services unterteilt und von mehreren Unterbefehlen entwickelt.
Die Teams sind unabhängig und autonom: Führungskräfte versuchen, sie nicht mit unnötigen Anweisungen, Bürokratie und Protokollen zu stören.
Teams haben Führungskräfte mit unterschiedlichen Rollen. Timlids sind für die Qualität der Entwicklung verantwortlich. Der Entwicklungsmanager, meistens ein ehemaliger Ingenieur, erstellt den Produkterstellungsprozess. Der Projektmanager beschäftigt sich nicht nur mit Entwicklung, sondern auch mit Vertrieb, Promotion, Marketing und Kommunikation mit Partnern. Es gibt immer noch Produktlinienmanager. Sie treffen Entscheidungen über die Einführung neuer oder die Erweiterung alter Produkte.
Über die Einstellung
- Ist es schwer, an dich heranzukommen?- Schwierig, aber möglich. Es gibt zum Beispiel ein großes Praktikumssystem für Studenten, das jetzt das ganze Jahr über angeboten wird. In diesem Sommer blieben beispielsweise 140 Praktikanten, die meisten blieben im Unternehmen.
"Ich habe von deinen Interviewer-Gilden gehört." Sag mir was es ist?Dies sind Ingenieure verschiedener Fachrichtungen, die an der Einstellung von Programmierern beteiligt sind. Für Backend-Entwickler führen sie beispielsweise technische Interviews in drei oder vier Schritten durch: Sie testen die Fähigkeit, funktionierenden Code zu schreiben. Fähigkeit zur Verwendung von Algorithmen und Datenstrukturen; Fähigkeit, Architektur zu schaffen. Die Mitte und die Siniors testen auch ihren Horizont in der Technologie.
Die Gilde umfasst jetzt ungefähr 90 Entwickler. Um dorthin zu gelangen, müssen Sie die Phasen auswählen, die Sie ausführen möchten (Code, Algorithmen, Architektur), und mehrere Interviews als „Slave“ durchführen (normalerweise werden die Interviews von zwei „führenden“ und „Slave“ -Ingenieuren durchgeführt). Nachdem eine Person diese Auswahl bestanden hat, fällt sie in den Pool der Interviewer-Gilde.
Wir halten es für normal, wenn jeder Teilnehmer einmal pro Woche ein Interview führt. So können Menschen ihre Arbeit erledigen und zur Einstellung von Programmierern beitragen.
Die Gilde bewertet das technische Niveau des Kandidaten und leitet den Bericht an mich oder meine Stellvertreter weiter. Wir führen das Abschlussinterview durch, prüfen, ob Soft Skills wahrscheinlicher sind, wie wichtig eine Person für den Wert der Arbeit ist und wie viel sie über ihre Fehler nachdenken kann.
Summer Hackathon Poster Section- Hat ein solches System den Prozess beschleunigt?Es ist sicherlich schneller und verständlicher geworden. Zuvor gab es eine Liste der Teamprioritäten in Form einer Bewertung. Eichar ging es hinunter und bot dem Kandidaten die Teams an. Infolgedessen konnte ein Team mit ihm sprechen und ablehnen, ein anderes sprechen und ablehnen, das dritte. Es war unmöglich zu verstehen, wie viele Interviews eine Person haben wird. Die Bewertung der technischen Fähigkeiten war ebenfalls verschwommen - das Team achtete auf verschiedene Dinge.
Jetzt durchläuft eine Person vierzig Minuten und ein abschließendes Interview für vierzig Minuten. Zehn Minuten später machen wir bereits ein Angebot oder lehnen es ab.
Es dauert drei, maximal vier Tage. Zuvor betrug die Erwartung zwei bis drei Wochen.
- Wählen Sie für alle Richtungen gleich?Nein, all diese Phasen beziehen sich hauptsächlich auf Back-Endors - Sharperisten und Javisten. Bei Front-End-Ausschreibungen werden diese Phasen zu einem großen Interview zusammengefasst.
Im Allgemeinen ist es für uns nicht nur technische Fähigkeiten beim Menschen wichtig. Natürlich gibt es eine bestimmte Grenze, ein technisches Minimum. Aber was noch wichtiger ist, ob eine Person sich anpassen und entwickeln kann. In gewisser Weise haben unsere Entwickler einen Entwicklungskult.
Menschen ohne brennende Augen und ohne den Wunsch, sich zu entwickeln, passen nicht zu uns. Selbst wenn wir eine solche Person akzeptieren, werden wir höchstwahrscheinlich nicht zusammenarbeiten.
- Der Neuankömmling kommt. Was weiter?Sie landen im Butcamp und werden dort angepasst. Der Bootkamp besteht aus zwei Teilen. Das erste - Training - dauert zwei Wochen: drei Tage, um den "Kontur" als Ganzes kennenzulernen, mit Produkten, Geschäftsmomenten - wo ist das Café, wo ist der Konferenzraum, Eintauchen in Kultur, Traditionen, Feiertage; weitere anderthalb Wochen, um sich mit Technologien und Werkzeugen vertraut zu machen. Beispielsweise wiederholen Entwickler sauberen Code, Ausnahmebehandlung, Verwendung funktionaler Programmierelemente, Testen und TDD, SOLID, DI. Sie untersuchen, wie die Infrastruktur und die gemeinsamen Dienste angeordnet sind, um mit anderen Entwicklern dieselbe Sprache zu sprechen.
Büro StandupNeben dem Training kommunizieren Anfänger mit Teamleitern und Entwicklungsmanagern. Timlids und Manager können selbst mit der Kommunikation beginnen, da es sich um offene Informationen handelt - die mit dem nächsten Satz geliefert wurden. Die Anmeldung zum Butcamp erfolgt alle drei Wochen.
In diesen zwei Wochen wird der Kandidat festgelegt, zu welchen Teams er für das Praktikum gehen wird.
Praktika sind bereits die zweite Stufe. Während der Probezeit kann eine Person mehrere Praktika besuchen. Im Durchschnitt gibt es drei, ungefähr drei Wochen in einem Team. Oder er kann ein Team gleichzeitig auswählen und dabei bleiben.
- In Bezug auf die Hauptstädte ist Jekaterinburg eine kleine Stadt. Es gibt so etwas nicht, dass die Jones kommen, um zu pumpen, bevor sie umziehen, und die Siniors in sonnige Länder ziehen?- Ja, die Leute kommen nicht nur, sondern gehen auch. Kontur investiert viel in Bildung, bindet aber niemals Menschen und zwingt sie nicht, Verträge mit irgendwelchen Verpflichtungen zu unterzeichnen. Natürlich sind wir traurig, wenn die Leute gehen, aber fast immer bleiben wir weiter in Kontakt.
Es gibt coole Ingenieure, die Contour verlassen und jetzt auf Facebook, Amazon und Google arbeiten.
Natürlich gibt es nicht genug Leckereien in der Küche und mehr Gehälter, um sie zu behalten. Benötigen Sie bahnbrechende Aufgaben. Wir haben große und stark ausgelastete Systeme, komplexe Produktaufgaben und wichtige Open Source-Projekte.
Wir überwachen den Markt und zahlen die entsprechenden Gehälter, damit es keine Situationen gibt, in denen eine Person mit einem konkurrierenden Angebot kommt, und wir beginnen, uns wie eine Schlange in einer Pfanne zu drehen.
Über interne Diebstähle von Mitarbeitern
Arbeitsbereich in der "Kontur"Wenn neue Projekte gestartet werden, suchen wir zuerst nach Menschen im Inneren. Interne Einstellungen erfolgen häufig hinter den Kulissen. Ein Manager kommt zu mir und bittet ihn, jemanden im Team zu finden, der nicht an seiner Stelle sitzt. Und es kommt vor, dass sie nach Kontur kommen, um sich sofort als ganzes Team niederzulassen. Sie sagen: „Wir wollen für Sie arbeiten.“ Dann gehe ich in die Richtung der Anweisungen und sage: "Decken Sie Rückstände auf, erhalten Sie verspätete Produkte - ein ganzes Team ist erschienen."
Im Allgemeinen ist das Thema mit Übergängen zwischen Teams für Contour jedoch etwas schmerzhaft. Dies ist eine Folge der Tatsache, dass sie weitgehend unabhängig voneinander sind und die Mitarbeiter auch unabhängig eingestellt werden. Natürlich kommt es manchmal vor, dass ein Mitarbeiter ohne vorherige Vereinbarung abrupt umzieht. Unterschiedliche Führungskräfte haben unterschiedliche Einstellungen dazu.
Jemand ist ruhig - schließlich kommt eine Person dem Unternehmen weiterhin zugute. Jemand ist eifersüchtiger und sagt: "Das Team hat schwierige Zeiten, aber ich habe immer noch Leute, die weggebracht werden." Jemand sagt: „Ich bin nicht abgeneigt zu geben, aber ich würde zuerst mit mir sprechen. Sie müssen nicht direkt zum Mitarbeiter gehen und überzeugen. “
Die Diskussion über horizontale Mobilität wird seit vielen Jahren geführt, die Sichtweisen sind unterschiedlich. Jeder kann verstanden werden. Ich selbst glaube, dass es besser ist, einer Person etwas innerhalb des Unternehmens anzubieten, als nach draußen gehen zu lassen.
Innerhalb des Unternehmens gibt es viele Möglichkeiten. Zum Beispiel sah ein Produktanalyst, ein ausgebildeter Psychologe, die Gelegenheit, in der Spezialität von Kontur zu arbeiten: Jetzt haben wir einen Vollzeitpsychologen, der anderen erklärt, wie sie seine Arbeit ändern können.
Aber die Frage ist natürlich heikel.
Wie man mit Burnout umgeht
Energiewende - Hackathon 2018- Stehen Sie häufig vor Burnout von Mitarbeitern?Ich werde das nicht oft sagen, aber ich komme rüber. Wir versuchen uns selbst zu finden. Wir bieten die Möglichkeit, zwischen Projekten zu wechseln, die Rolle und die Verantwortlichkeiten zu ändern. Sie können Skype mit demselben Vollzeitpsychologen treffen oder anrufen: Er berät Sie, wie es sein soll.
Manchmal scheint es mir, dass ich selbst als solcher Psychologe agiere. Die Menschen kommen, um fürs Leben zu reden. Es ist wichtig, dass sie nur gehört werden und Unterstützung erhalten. Konkrete Übergangsvorschläge oder Geschäftsentscheidungen sind nicht immer wichtig - manchmal ist nur die Teilnahme wichtig."Hast du persönlich ausgebrannt?"Ja natürlich. , . .
, . , , , .
, . — , . , — , , , . , , , .
, , , , . , , . , — , - .
.

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