Ivan Shamatov: comment écrire de l'argent

Salut

Nous nous préparons pour la prochaine conférence RubyRussia 2019 (avez-vous déjà marqué le 28 septembre dans le calendrier?) Et discutons avec nos conférenciers de la vie, de la communauté et de la programmation. Dans l'interview d'aujourd'hui, Felix Yasnopolsky d'Evrone s'entretient avec Ivan Shamatov: le chef de la communauté Saint P Ruby ( ici vous pouvez rejoindre le chat de la communauté sur Telegram) et vice-président de l'ingénierie chez Cybergizer.

image

De quoi parlera votre discours lors de la prochaine conférence?

Je veux montrer que l'argent dans la programmation est facile! Avec de l'argent, nous exprimons la valeur d'un produit ou d'un service. En général, ils peuvent être décrits comme un tuple de dimension 2, composé d'une valeur numérique (par exemple, 100) et d'une valeur de caractère (par exemple, USD, $). Dans le cas de transactions monétaires avec les mêmes symboles, l'appareil mathématique est relativement simple, mais même ici, vous pouvez trouver des pièges. Que pouvons-nous dire sur le scénario de conversion de l'argent d'une devise à une autre. Ici, le monde mathématique idéal s'effondre et la comptabilité d'entreprise commence. Je vais montrer comment comprendre certains des scénarios et quelles erreurs peuvent être sur des exemples de pratiques de projets fintech.

Pourquoi avez-vous choisi ce sujet?

J'ai participé au développement d'un système de paiement pour le métro, Aeroexpress, un système de paiement des factures de services publics pour certains États des États-Unis et bien d'autres. Le tout premier script que j'ai écrit pour de l'argent est un script php pour payer Internet via des terminaux à Pouchkine. La prochaine fois que j'ai rencontré le sujet de l'argent lorsque je travaillais chez Cryptopay - il y avait aussi des transferts et des transactions. Ensuite, je suis allé travailler chez Toptal, où je faisais partie d'une équipe de facturation. En me préparant pour la conférence, j'ai pensé que beaucoup de gens pouvaient parler des fonctionnalités de Ruby, mais peu de gens savent comment écrire de l'argent et comment le faire correctement. Et c'est un sujet que nous rencontrons souvent dans une variété de projets.

Quelles technologies en plus de Ruby aimez-vous?

J'aime vraiment JavaScript. Profitez de la facilité d'écriture sur ES6. J'aime les paradigmes qui viennent à Ruby à partir d'autres langues: dans ce cas, il ne devient pas nécessaire pour nous d'utiliser ces très autres langues. Vous pouvez ouvrir une gemme simultanée et voir un tas d'outils de Go, Clojure, Java et JavaScript. J'aime que dans différentes langues, il soit nécessaire d'utiliser différentes façons de penser. Il y a des gens qui passent de Ruby à Go pour maintenir les principes de la pensée Ruby. Ou venez à Ruby avec les principes de PHP. Cela ne fonctionne pas en programmation: chaque langue a sa propre approche, son propre workflow, sa propre mentalité. Vous devez comprendre comment écrire des programmes précisément dans le cadre d'une technologie particulière.

Je suis très intéressé par le développement mobile: les mêmes schémas, le même MVC, mais tout fonctionne de manière complètement différente. C'était très intéressant d'étudier React et Redux - un super repo pour un rail typique :)

Parlez-nous de vos plus grands échecs et des raisons de votre fierté.

Je peux être fier des projets auxquels j'ai participé et auxquels j'ai participé. Par exemple, un projet qui permet de payer à la carte avec une carte Aeroexpress à Moscou. Le même système est utilisé dans le métro de Kazan. J'ai écrit un client pour les tourniquets sur JRuby, et le backend Rails qui gère ces transactions de transport fonctionne avec diverses API. C'était un projet très intéressant, avec seulement trois développeurs y participant.

Fakapov n'a pas honte, même lorsqu'ils se produisent. Une personne a le droit de faire une erreur. Erreur - et vous ne le faites plus.

L'une de vos activités est le mentorat. Pourquoi tu fais ça?

J'ai moi-même toujours eu des mentors qui m'ont suggéré quoi et comment faire. Ce sont des gars de différents chats, des gens avec qui j'ai parlé lors de conférences et de réunions. Lorsque j'ai atteint un certain niveau, j'ai commencé à encadrer à la fois hors ligne et en ligne. Maintenant, je traite avec des gens qui sont venus chez nous de Rubizz . C'est l'un de mes principaux projets pour aujourd'hui, une étude pratique intensive de Ruby pour les débutants. Les enfants ont une liberté d'action maximale et le droit de faire des erreurs. Et seulement après que les cônes sont pleins, le mentor explique pourquoi c'était une erreur et pourquoi vous ne devriez pas le faire. Je crois que c'est la bonne approche: certaines choses ne peuvent pas être comprises tant que vous ne récupérez pas ce râteau vous-même. Si vous n'avez jamais utilisé les rappels de manière incorrecte, vous ne comprendrez pas quel pourrait être le problème avec eux. Et pourquoi tant de gens dans la communauté détestent les rappels.

J'ai entendu dire que vous avez essayé de faire partie de l'équipe Toptal six ou sept fois. Est-ce vrai?

Oui, c'est vrai, j'en ai parlé plusieurs fois. Toptal mène une politique de recrutement agressive ou plus correctement proactive depuis le début de l'entreprise. J'ai été invitée à des entretiens environ une fois par an. Après plusieurs tentatives infructueuses, j'ai décidé de ne pas réessayer. Mais mon ami, avec qui nous avons déjà commencé notre voyage à Ruby, a trouvé un emploi là-bas et m'a suggéré d'essayer à nouveau. Et cette fois, j'ai pu passer par toutes les étapes de l'entretien. Il y a un gros test technique à l'entrée, puis une interview, puis une autre, et plus encore ... Et maintenant je crois que conduire 5-6 étapes d'interview est une pratique très cool. Ce n'est qu'ainsi que vous pourrez comprendre qui est devant vous, si vous voulez travailler avec cette personne, si elle s'intégrera dans l'équipe. Et je comprends pourquoi ils ne m'ont pas prise pour la première fois, je n'ai vraiment pas tiré alors.

À votre avis, comment organiser un entretien d'embauche et un processus d'embauche idéaux?

Lorsque j'ai aidé à la sélection des personnes pour l'équipe précédente, Cryptopay, nous avons eu deux étapes. Comme tâche de test, nous avons donné un morceau de code pour le refactoring. Sur la base de ce morceau de code, nous avons fait une évaluation préliminaire du candidat. Ensuite, nous avons mené une interview sous forme de codage en direct afin de comprendre si cette personne nous convient. Le codage en direct vous permet de comprendre comment une personne pense. Vous pouvez évaluer non seulement ce qui est écrit, mais aussi comment le développeur utilise le système d'exploitation, IDE, le raccourci clavier sait-il à quel point il comprend certains sujets, quelles approches il utilise, quelles questions il pose à ses collègues dans le processus. Cette approche fournit beaucoup plus d'informations sur une personne qu'un test ou une interview sur les algorithmes.

Mais je pense que cela ne suffit pas. Maintenant, chez Cybergizer, j'engage souvent des gens avec qui j'ai déjà travaillé. Il y a des gens avec qui nous n'avons pas travaillé, mais ensemble ils ont écrit une sorte d'open source. Une telle activité conjointe vous permet de voir comment une personne écrit du code. Et vous comprenez également comment votre flux de travail correspond, à quel point vous êtes mentalement proche.

Je ne me considère pas comme un expert de l'embauche, mon approche est également ratée. Une de mes erreurs récentes: je ne voulais pas emmener la personne après la session de codage en direct pour une interview, il ne m'a pas impressionné. Mais d'autres membres de l'équipe ont voté pour lui et nous avons commencé à travailler ensemble. Et en collaboration, j'ai réalisé qu'il s'agissait d'un spécialiste de haut niveau. Il y avait un cas absolument opposé quand j'étais un homme avec toutes mes mains, et en tant que développeur, il n'était rien. Après ces deux cas, je ne suis pas prêt à juger de l'exactitude d'une méthode d'embauche particulière. Peut-être chanceux, peut-être pas chanceux. Pour paraphraser une blague célèbre:
- Comment arrivez-vous à embaucher de si bons développeurs?
- C'est toute l'expérience d'embaucher de bons développeurs!
- Et comment vivre une telle expérience?
- Nous devons embaucher différents développeurs.

Il me semble étrange que tant de gens s'intéressent à la manière d'attirer de bons spécialistes. Mais peu de gens souhaitent savoir comment devenir une entreprise dans laquelle de bons spécialistes voudront travailler. Ou peut-être devriez-vous y penser d'abord?

Vous organisez des réunions et des réunions de Saint P Rubyconf à Saint-Pétersbourg. Pourquoi et pourquoi faites-vous cela?

Cela fait partie de la culture Ruby - contributeur communautaire. Quelqu'un intègre du code, écrit opensource. Je contribue à ce que j'obtiens. Beaucoup de gens pensent que pour apporter une contribution, il faut avoir sept travées au front. Mais ce n'est pas le cas! Il y a près de 10 ans, alors que j'étais au tout début de mon voyage à Ruby, avec l'équipe de gars, j'ai traduit en russe et exprimé RailsCasts. Ainsi, tout le monde peut être utile à toute la communauté: peu importe que vous mettiez à jour le dock dans gem, écriviez un article ou organisiez un mitap.

Rendez-vous à RubyRussia le 28 septembre!

Regardez le programme et rejoignez-nous ici , la prochaine augmentation de prix est attendue après le 15 septembre.

Merci aux entreprises qui nous soutiennent:

Organisateur - Evrone
Associé commandité - Toptal
Partenaire Gold - Gett
Partenaires Silver - JetBrains , Bookmate et Cashwagon
Partenaire Bronze - InSales

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


All Articles