Entwickler Perekrestok.ru. Was wir tun und wen wir in Teams suchen

Heute möchten wir über die Einstellung von Mitarbeitern im IT-Team des Online-Supermarkts Perekrestok.ru und darüber sprechen, wie unsere Arbeit „innen“ angeordnet ist. Der Einzelhandel ist eine Branche mit ihren eigenen interessanten Besonderheiten, und jetzt hängt es von unserer Arbeit ab, ob täglich Tausende von Menschen mit Produkten versorgt werden. In diesem Beitrag geben wir unseren Teamleitern das Wort, sie sprechen über Perekrestok.ru-Projekte, Arbeitsmethoden sowie darüber, wie sie in das Team kommen und was sie beim Interview fragen können.



Sergey // iOS-Teamleiter



Alles, was ich erzählen werde, betrifft die Entwicklung unserer neuen Anwendung eines Online-Supermarkts. Ich möchte sofort darauf hinweisen, dass die überwiegende Mehrheit der Entwickler auf die eine oder andere Weise ihre Reise in einem kleinen Startup oder allgemein im Outsourcing beginnt. Dies hilft ihnen, die sogenannte Breite zu vergrößern - schließlich stehen sie ständig vor sehr unterschiedlichen Aufgaben und einer Vielzahl von Technologien.

Wir haben ein internes Produktteam, wir sprechen von „tiefgreifendem“ Wachstum, daher sind wir an diejenigen gewöhnt, die an dieser Art von beruflichem Wachstum interessiert sind.

Wir stellen ein Produkt her, das von Tausenden von Menschen verwendet wird. Hier gibt es genügend verschiedene User Stories und Verhaltensszenarien, sodass die Anforderungen an das Produkt ernst sind. Natürlich ein klassisches Set für solche Fälle: Zuverlässigkeit, Leistung, Erweiterbarkeit, Modularität, Wartbarkeit und Testbarkeit.

Um all dies sicherzustellen, haben wir die Uber-RIBs-Architektur als Grundlage genommen, nur die Modulschnittstelle und den vollständig neu gestalteten DI belassen, mit Diplinking routing und einen unidirektionalen Datenstrom darüber gelegt. Während der Flug normal (und interessant) ist, beenden wir weiter.

Es ist geplant, einen erweiterten Debug-Bildschirm mit Ständern, Diplinks und einem Katalog von Bildschirmen zu erstellen, mit denen Sie schnell in den Moki- oder Status wechseln können. Ja, genau zur Laufzeit.

Um die Arbeit zu beschleunigen, haben wir ein eigenes Designsystem entwickelt. Wir legen großen Wert auf den reibungslosen Betrieb der Benutzeroberfläche. Wir unterstützen das Thema "dunkel".

Unser Team ist so aufgebaut, dass es keine Menschen gibt, die sich mit etwas völlig Eng fokussiertem beschäftigen. Sie sagen, Sasha ist für diesen Knopf verantwortlich, und Pascha ist nur für die Architektur als Ganzes verantwortlich. Tatsächlich ist die Situation so, dass jeder alles tut, aber im Rahmen vorgegebener Richtlinien und Modulvorlagen, sonst würden wir aus der Demokratie in die Anarchie rutschen.

Ruslan // Android-Teamleiter



Einer der wichtigsten Entwicklungspunkte ist das Design von Softwarearchitekturen. Der Preis für Fehler, die in dieser Phase gemacht werden, steigt exponentiell. Daher liegt unsere Priorität auf der Flexibilität der Software, mit der wir sowohl die Geschäftsanforderungen als auch die Benutzeranforderungen erfüllen können.

Wir halten uns an den MVI-Ansatz, mit dem wir die Kosten für das Debuggen und Testen aufgrund von Transparenz und Zustandsintegrität senken können. Die Sache ist gut, aber es gibt ein Minus: eine sehr, sehr hohe Einstiegsschwelle für einen neuen Mitarbeiter. Daher ist es unser Ziel, diese Schwelle zu senken. Die „Regel von 10 Minuten“ hilft dabei, die besagt, dass wir einem Anfänger alle unsere Ansätze in 10 Minuten erklären müssen. Auch wenn er noch nie auf einen unidirektionalen Datenstrom gestoßen ist.

Dies trug dazu bei, die Standardansätze für die MVI-Implementierung zu überarbeiten und eine eigene Lösung zu entwickeln, die sich als schneller und vor allem einfacher herausstellte.

Was kann ich über die Teams sagen? Dies ist eine Geschichte über „Liebe“, über die Zusammenarbeit, daher können wir es uns nicht leisten, eine Person einfach als eine Reihe spezifischer Kompetenzen zu betrachten. Der Mann in unserem Paradigma ist seine Funktion der Zukunft, von der er in unserem Team werden kann.

Jan // Teamleiter, Innopolis



Wir haben bisher das jüngste Team von 10 Mitarbeitern, wir sind seit Dezember 2019 im Projekt, wir haben unseren Sitz in Innopolis. Wir haben verschiedene Aufgaben, wir sind de facto ein funktionsübergreifendes Team, das im B2B-Segment, im Backoffice und in den Schaufenstern (Frontend) arbeitet.

Im Allgemeinen hatte X5 vor der Gründung unseres Teams bereits ein Büro in Innopolis, etwa ein Drittel einer Etage des Technoparks, aber Teams aus unseren anderen Netzwerken saßen dort. Heute ist auch perekrestok.ru hier.

Das Auffälligste (die Entfernung von Moskau betrifft) ist das geringe Eintauchen des Teams in Projekte. Zunächst war es notwendig, schnell eine Reihe von Prozessen in seinem Team zu erstellen und diese mit den allgemein anerkannten im Unternehmen zu verknüpfen. Und auch - kompetentes Personal hilft.

Aber es gibt ein Brötchen, das Brötchen von Innopolis ist eine IT-Stadt, also hatten wir keine Probleme mit dem Personal, der Kandidatenstrom war nicht nur groß, sondern auch von hoher Qualität.

Wir suchten nach Menschen, angefangen beim Stack (wir haben PHP, PostgeSQL, JS) und nach dem Wunsch einer Person, nicht nur monoton zu sitzen und zu arbeiten, sondern ein gutes Produkt zu entwickeln, sich dafür zu interessieren. Idealerweise haben Sie Ihre eigene Vision und Fähigkeit, einen Standpunkt zu verschiedenen Themen zu vertreten.

Ivan // Teamleiter Projektintegrationsteam



Unser Team besteht seit ungefähr sechs Monaten, es sind die Entwickler (Backend + Frontend), Tester und der Leiter des Teams. Jetzt haben wir das Niveau erreicht, auf dem wir jede Aufgabe von Anfang bis Ende lösen können. Trotz kurzer Erfahrung vertrauen wir sowohl geschäftlichen als auch technischen Aufgaben (in Bezug auf das Hauptfenster, Interaktionen zwischen Systemen, Organisation von APIs, Aufteilung in Microservices, Optimierung, Refactoring). Wir suchen Menschen, die uns bei der Lösung neuer Probleme helfen und nicht nur über die erforderlichen Kenntnisse, Fähigkeiten und den Wunsch verfügen, das Produkt zu verbessern, sondern auch unseren Arbeitsansatz teilen.

Von Zeit zu Zeit werden je nach Projekt auch Geschäftsanalysten (und Systemanalysten) verbunden. Wir entwickeln und implementieren Projekte, die sich auf die Interaktion unserer Systeme (intern und extern) sowie auf Änderungen in der Benutzererfahrung beziehen.

Wenn es klarer ist, haben wir opt.perekrestok.ru (eine Plattform für die Bestellung von Unternehmen, wie aus der URL hervorgeht), zoo.perekrestok.ru(ein separates Schaufenster, in dem Sie Lebensmittel für Ihr geliebtes Tier abholen können), wurde ein Mechanismus zur Auswahl ähnlicher Produkte eingeführt. Dank der Mitarbeiter des mobilen Entwicklungsteams beantragten sie auch die Bestellung von Lebensmitteln zu Fuß. Darüber hinaus haben wir die Auswahl der Lieferadresse vereinfacht (früher war es schwieriger, ja), den Monolithen leicht in mehrere Microservices zersägt und den Release-Montagemechanismus erheblich vereinfacht, der die Einführung von nicht einem Release pro Woche, sondern zehn ermöglicht. Wir versuchen, eine vollständige kontinuierliche Integration zu erreichen, damit dieser Prozess wurde dauerhaft und kontinuierlich.

Im Moment sind wir damit beschäftigt, die API für die mobile Anwendung zu ersetzen und einige Seiten der Site neu zu gestalten und umzugestalten.

Alexander // Teamlead Logistiksystem



Wir arbeiten an Aufgaben in Richtung Lieferung und allem, was damit zusammenhängt. Wir haben eine Android-Anwendung entwickelt, mit der der Kurier reist und Bestellungen ausliefert. Wird von Kotlin und Java verwendet. Hier liegen die großen Aufgaben der Integration in Registrierkassen und Zahlungssysteme.

Unsere Arbeit betrifft die Kurieranwendung, Benutzeroberflächen und das Routing von Bestellungen - im Allgemeinen gibt es genügend Aufgaben, und sie sind wirklich unterschiedlich. Für die Kurieranwendung haben wir beispielsweise die REST-API erstellt. Derzeit werden Vorgänge, Zahlungen, das Logbuch, die Routenwartung und Ereigniswarnungen bearbeitet. Für Logistik und Auftragsweiterleitung - Integration in TMS-Systeme (Transport Management System) zum automatischen Erstellen von Routen und Verteilen von Aufträgen sowie Schnittstellentools zum Anzeigen und Verwalten von Routen auf der Karte, ein System zum Abrechnen und Versenden von Kisten mit Bestellungen in Lagern von Karren und Märschen bis zum Auto Kurier. Und auch eine detaillierte Implementierung der Geschäftslogik zur Berechnung der Lieferkosten - dies hängt auch von der Region und dem spezifischen Zeitraum ab und nimmt die Bestellung in die Region auf.in dem es schon irgendeine bestellung gibt, billiger. All dies wird berücksichtigt.

In Zukunft werden wir einen Service mit einer API implementieren, um die gesamte Logik und den Bereitstellungsvorgang zu kapseln und von einem Monolithen auf Microservices zu übertragen. Eine Person, die mit uns daran arbeiten möchte, benötigt gute Kenntnisse und Kenntnisse in PHP, Laravel, PostgreSQL und (vorzugsweise) Golang. Es wird auch Schnittstellenaufgaben für die Arbeit mit Karten und Tabellendaten geben. Hier muss der Kandidat über gute Kenntnisse in HTML, CSS, JS und einer Art Framework a la Vue verfügen.

Wir planen, neue Tools für die Arbeit mit statistischen Daten und die Erstellung von Berichten (postgreSQL, RabbitMQ, MongoDB, PHP) zu schreiben und in den CAN-BUS-Autobus zu integrieren, um technische Parameter und Indikatoren unserer Flotte zu erfassen und zu verarbeiten.

Dmitry // teamlead team warehouse system



Mein Team entwickelt das WMS (Warehouse Management System). Zum größten Teil ist dies eine Backend-Entwicklung in PHP (Laravel), aber wir beginnen auch, Go zu verwenden.
Für die Datenbank verwenden wir PostgreSQL. Hier sind die Hauptaufgaben, die wir lösen:

  • Lagerverwaltung: Sortieren von Verbrauchsmaterialien, Platzieren von Waren in Zellen, Qualitätskontrolle, Abschreibungen und mehr.
  • Auftragsabwicklung: Reservierung, Erstellung und Terminierung von Auswahlaufgaben, Auswahl von Waren nach Aufgaben.
  • Integration mit BO (Bestellungen und Stammdaten von Waren) und X5 ERP-System (Preise, Lieferungen, Abschreibungen usw.). Für die Integration mit BO verwenden wir RabbitMQ.
  • Wir entwickeln eine Anwendung für TSD auf Android. Die native TSD-Anwendung öffnet in der Webansicht eine einseitige Anwendung, die in jQuery und knockout.js geschrieben ist.
  • Wir entwickeln und pflegen Betriebsberichte für Lagermitarbeiter.

// -



Was ist ein Website-Entwicklungsteam? Dies sind nun zwei Spezialistenteams im Bereich Backend und Frontend, deren Aufgabe es ist, die Hauptwebsite perekrestok.ru und alle internen Geschäftsprozesse zu entwickeln und zu unterstützen, mit Ausnahme von Lieferung, Lager (WMS) und mobiler API (auf die sich andere Kollegen konzentrieren).

Wir sind ein Team von Spezialisten mit vielfältiger Erfahrung und Wissen: Es gibt bereits führende Experten, die bereits ausgebildet wurden, und solche, die vor kurzem ihre Karriere in der IT begonnen haben und vom Praktikanten zum Entwickler gewachsen sind. Wir kümmern uns umeinander, sowohl bei architektonischen Lösungen als auch bei der Cross-Codierung. Wir haben keine Angst, uns an Kollegen zu wenden, wenn Zweifel bestehen. Schließlich versuchen wir, uns gegenseitig zu unterstützen, und wir wissen, dass jeder von uns, nachdem er ein gemeinsames Ziel erreicht hat, sowohl beim Verständnis des Produkts als auch als technischer Spezialist besser wird.

Ich kann nicht anders, als mich zu wundern und stolz auf uns zu sein, wie stark die Motivation im Team ist: Keiner von uns kümmert sich um das Schicksal des Projekts. Jeder ist daran interessiert, die Aufgabe in die Produktion zu bringen, und zögert nicht, mit PM und QA über alle Fragen zu kommunizieren.

Wir überprüfen regelmäßig unsere Roadmap. Dies hilft uns, besser zu verstehen, wohin wir uns bewegen, und uns auf Aufgaben zu konzentrieren, die jetzt oder in Zukunft Gewinn bringen.

Roman und Semyon werden Ihnen mehr über ihre Teams selbst erzählen.

Roman // teamlead Marketing- und Handelsteams



Unser Team besteht aus Teamleitern und Backend-Entwicklern. Wir beschäftigen uns hauptsächlich mit der Entwicklung des Backend-Teils des Fensters www.perekrestok.ru , seines Backoffice (CRM / CMS) sowie der Entwicklung einer B2B-Version der Website opt.perekrestok.ru .

Die meisten unserer Teams sind funktionsübergreifend, sodass Aufgaben in verschiedenen Bereichen ausgeführt werden. Dies kann sein: Produktsuche, Integration in interne und externe Systeme (ERP zur Unterstützung von B2B, unserem WMS-, B2C- und B2B-Treue- und Zahlungssystem, Empfehlungen für den Kauf oder Ersatz von Waren), Verwaltung und Berechnung von Marketingkampagnen, Marktplatz, E-Mail- / SMS-Benachrichtigung , Analyseberichte, Datenfeeds und dergleichen.

Folgendes hilft uns bei der Lösung der meisten Aufgaben: Fachwissen in modernen PHP-Frameworks (Laravel, Symfony, Yii); Arme wachsen aus den Schultern; Fähigkeit, die Arbeit von PHP- und SQL-Abfragen zu profilieren; Verständnis des Unterschieds zwischen synchroner und asynchroner Systeminteraktion; Bereitschaft, Wissen mit Kollegen zu teilen.

Wir sind mutig genug, um Igel nicht für mehrere hundert Zeilen vor nacktem SQL zu fürchten (ja, so etwas gibt es). Manchmal müssen wir mit schwacher Hoffnung auf den Grund des Legacy-Codes gehen und mit dem Banner des erfolgreichen Refactorings darauf zurückkommen. Sobald wir die Aktualisierung des Volltextsuchindex 365 Mal von 1 Stunde auf 10 Sekunden beschleunigt haben. Wir lieben es, Statistiken zur Anwendungslast zu erstellen und zu analysieren. Wir wissen, dass früher oder später die Datenmenge und die Benutzer die kritische Marke überschreiten werden, und wir suchen bei Microservices nach Möglichkeiten für eine horizontale Skalierung und eine Verringerung der starken Konnektivität der Systemknoten.

Sperma // Teamleitungswebsite und Schaufenster



Hallo alle zusammen! Ich bin ein Teamleiter und werde versuchen, ein wenig über das Team, die Aufgaben und das Projekt selbst zu erzählen, an dem unser Team beteiligt ist.

Wir arbeiten an einem Showcase-Projekt (Website perekrestok.ru ). Wir nennen das Projekt auch „FD“, was „Front Office“ bedeutet. Alles, mit dem der Benutzer (Käufer) konfrontiert ist, ist FD: Suche, Katalog, Bestellung, persönliches Konto, Online-Zahlung, verschiedene Lagermechanismen, Rezepte, Banner usw.

Es gibt viele Funktionen auf der Website, wir fügen ständig neue hinzu und ändern die vorhandene. Wir haben ein sehr starkes Produkt- und Designteam, das Trends überwacht und interessante Aufgaben für uns generiert. Neben der Entwicklung neuer Funktionen beschäftigen wir uns mit der Neugestaltung, der Erstellung von Werbelandungen, der Optimierung und natürlich der Korrektur von Fehlern sowie der Unterstützung anderer Teams bei der Überprüfung ihrer Zusammenführungsanforderungen für das Showcase-Projekt.

Für das Frontend haben wir uns für VueJS entschieden und verwenden es seit einem Jahr. Wir schreiben alles Neue darauf und ersetzen nach und nach den alten Code. Im Backend versuchen wir, keine ActiveRecord-Modelle mehr zu verwenden, die für Laravel Standard sind, aber für die CPU zu eifrig sind. Durch die Anpassung von Datenbankabfragen und die Ablehnung unnötiger Reflexionen wird die Produktivität um eine Größenordnung gesteigert, was sich positiv auf die Zeit bis zum ersten Byte auswirkt.

Jetzt arbeitet unser Team an einem Epos - dies ist eine komplett überarbeitete Bestellung für Browser auf Mobilgeräten. Zusammen mit anderen Teams beschäftigen wir uns mit der Optimierung und Verfeinerung der Backend-Architektur für die Möglichkeit einer horizontalen Skalierung.

Im Team ist jeder stark in das Projekt involviert. Wenn ein Notfall eintritt, kann jeder eine Verbindung herstellen, um das Problem zu lösen.

Denis // teamlead dritte Unterstützungslinie



Ich leite das technische Support-Team der dritten Reihe. Wir rekrutieren die Jungs hier für die Aufgabe, Probleme auf dem Produkt schnell zu lösen. Wenn etwas mit der Site passiert, geht dieses Geschäft zuerst in die erste und zweite Zeile, und wenn die Intervention von Programmierern erforderlich ist, kommen sie zu uns. Unsere Mitarbeiter verfügen über umfassende Kompetenz - wie man das Warteschlangensystem betrachtet, Fehler in JS, PHP analysiert und die Datenübertragung an Dienste von Drittanbietern analysiert.

Wir rekrutieren umfassend entwickelte Leute in Teams, wie bereits erwähnt, diejenigen, die ziemlich stressresistent sind, man muss oft je nach Dringlichkeit und Priorität wechseln, das sollte kein Stress sein. Nun, Sie können sich vorstellen, wie Unterstützung und Stress im Prinzip zusammenhängen.

Fehler, auf die reagiert werden muss, können so unterschiedlich wie möglich sein, von den einfachsten Typen - "Stil oder Strich haben nicht gezeichnet" - bis hin zur Tatsache, dass "Aktionscodes nicht funktionieren" oder die Bestellung ausgestellt wurde, das Lager sie jedoch nicht erhalten hat. Sie müssen also den Verlauf nachverfolgen oder die Menge dort unterscheidet sich von der ursprünglichen - Sie müssen den Bestellpfad verfolgen und genau verstehen, wo und zu welchem ​​Zeitpunkt etwas schief gelaufen ist.

Es gibt auch Standard-Dinge wie Fehler "500" oder "404" ", die Sie überwachen und darauf reagieren müssen.

Neben der Stressresistenz ist es bei solchen Menschen wichtig, dass sie wissen, wie man mit Frameworks arbeitet, während sie verstehen, wie sie funktionieren und sie verstehen, damit sie Code lesen und schön schreiben können. Um Informationen analysieren zu können, müssen Sie nicht nur Aufgaben erledigen, sondern darüber nachdenken, wie sich dies auf benachbarte Ökosysteme auswirkt.

Im Allgemeinen ist die Entwicklung der dritten Zeile ein Teamkern. Menschen, die das gesamte System kennen und verstehen, wie alles funktioniert, sehen nicht nur ihren eigenen Code, sondern auch, wo sonst Fehler auftreten können. Solche Leute werden schnell zu Teamleitern, in ein paar Jahren ist es normal, von einem Junior zum Leader zu werden.

Rinat // Teamleiter Entwicklungsteam in Innopolis



Wenn ich Leute in einem Team versammle, ist die Auswahl nicht für bestimmte Aufgaben. Ich betrachte die Erfahrungen und Fähigkeiten jedes Spezialisten individuell. Ich glaube, dass jedes Mitglied des Teams seine eigene Supermacht hat, und diese Fähigkeiten lassen sich am besten genau bei der Lösung allgemeiner Probleme in einem Team offenlegen. Dies kann als Synergieeffekt angesehen werden.

In Perekrestok.ru habe ich den Traum verwirklicht - ein Team komplett neu zusammenzustellen, um es mit den Fähigkeiten aller in Einklang zu bringen. Die Ergebnisse zeigen, dass wir sehr gut unterwegs sind, uns aktiv den Hauptteams in Moskau anschließen und ihnen helfen.

Wenn Sie sich die Anforderungen für jeden Teilnehmer ansehen, die vorgeschlagen werden, dann ist dies ein gutes Wissen im Technologie-Stack. Ich weiß es zu schätzen, wenn eine Person nicht nur Aufgaben in der Stirn erledigt, sondern auch die Vor- und Nachteile ihrer Entscheidung rechtfertigen kann. Ich begrüße auch die breite Perspektive und die Beteiligung an den Prozessen.

Wir haben viel Arbeit mit der Datenbank, jeder Code wird hunderttausend Mal am Tag aufgerufen. Aus diesem Grund sind die obligatorischen Fragen bei der Auswahl eines Teams ein tiefes Wissen über SQL und eine gute algorithmische Vorbereitung eines Kandidaten für das Schreiben von Code, dessen Komplexität optimal ist.

Eine sehr wichtige Voraussetzung ist die Verantwortung für unsere Entscheidungen. Denn im Einzelhandel kann der Fehlerpreis sehr hoch sein, und jeder sollte dies verstehen.

Unser Projekt entwickelt sich aktiv weiter, jeden Tag brechen wir Besucherrekorde und die Anzahl der Bestellungen. Deshalb brauchen wir Spezialisten sowohl in Moskau als auch in Innopolis. Die Pläne des Unternehmens sind grandios, es wird definitiv nicht langweilig.

Übrigens heißt das Projekt „XO“. X - Kreuzung, O - Online.


All Articles