Ivan Shamatov: cómo escribir dinero

Hola

Nos estamos preparando para la próxima conferencia RubyRussia 2019 (¿ya marcó el 28 de septiembre en el calendario?) Y estamos hablando con nuestros oradores sobre la vida, la comunidad y la programación. En la entrevista de hoy, Felix Yasnopolsky de Evrone habla con Ivan Shamatov: el líder de la comunidad Saint P Ruby ( aquí puede unirse al acogedor chat de la comunidad en Telegram) y vicepresidente de ingeniería en Cybergizer.

imagen

¿De qué tratará su discurso en la próxima conferencia?

¡Quiero mostrar que el dinero en programación es fácil! Con la ayuda del dinero, expresamos cierto valor de un producto o servicio. En general, pueden describirse como una tupla de dimensión 2, que consiste en un valor digital (por ejemplo, 100) y un valor de carácter (por ejemplo, USD, $). En el caso de transacciones de dinero con los mismos símbolos, el aparato matemático es relativamente simple, pero incluso aquí puede encontrar dificultades. ¿Qué podemos decir sobre el escenario de convertir dinero de una moneda a otra? Aquí se derrumba el mundo matemático ideal y comienza la contabilidad empresarial. Mostraré cómo entender algunos de los escenarios y qué errores pueden existir en ejemplos de prácticas de proyectos fintech.

¿Por qué elegiste este tema?

Participé en el desarrollo de un sistema de pago para el metro, Aeroexpress, un sistema para pagar facturas de servicios públicos para algunos estados en los Estados Unidos y muchos otros. El primer script que escribí por dinero es un script php para pagar por Internet a través de terminales en Pushkin. La próxima vez que me encontré con el tema del dinero cuando trabajaba en Cryptopay, también había transferencias y transacciones allí. Luego fui a trabajar a Toptal, donde formé parte de un equipo de facturación. Al preparar la conferencia, pensé que muchas personas podían hablar sobre las características de Ruby, pero pocas personas entienden cómo escribir dinero y cómo hacerlo bien. Y este es un tema que a menudo encontramos en una variedad de proyectos.

¿Qué tecnologías además de Ruby te gustan?

Me gusta mucho JavaScript. Disfruta de la facilidad de escribir en ES6. Me gustan los paradigmas que llegan a Ruby desde otros idiomas: en este caso, no es necesario que usemos estos otros idiomas. Puede abrir una gema concurrente y ver un montón de herramientas de Go, Clojure, Java y JavaScript. Me gusta que en diferentes idiomas es necesario usar diferentes formas de pensar. Hay personas que van de Ruby a Go para mantener los principios del pensamiento de Ruby. O ven a Ruby con los principios de PHP. Esto no funciona en la programación: cada lenguaje tiene su propio enfoque, su propio flujo de trabajo, su propia mentalidad. Debe comprender cómo escribir programas precisamente en el marco de una tecnología en particular.

Estoy muy interesado en el desarrollo móvil: los mismos patrones, el mismo MVC, pero todo funciona de una manera completamente diferente. Fue muy interesante estudiar React y Redux, un gran repositorio para un carril típico :)

Cuéntanos sobre tus mayores fracasos y motivos de orgullo.

Puedo estar orgulloso de los proyectos en los que participé, a los que tuve una mano. Por ejemplo, un proyecto que permite pagar con una tarjeta Aeroexpress en Moscú. El mismo sistema se utiliza en el metro de Kazan. Escribí un cliente para torniquetes en JRuby, y el backend de Rails que atiende estas transacciones de transporte funciona con varias API. Fue un proyecto muy interesante, con solo tres desarrolladores participando en él.

Fakapov no se avergüenza, incluso cuando suceden. Una persona tiene derecho a cometer un error. Error - y ya no haces eso.

Una de sus actividades es la tutoría. ¿Por qué haces esto?

Yo siempre tuve mentores que sugirieron qué y cómo hacer. Estos son chicos de diferentes chats, personas con quienes hablé en conferencias y reuniones. Cuando llegué a cierto nivel, comencé a ser mentor tanto fuera de línea como en línea. Ahora trato con gente que vino a nosotros desde Rubizz 's. Este es uno de mis principales proyectos para hoy, un estudio práctico intensivo de Ruby para principiantes. Los niños tienen la máxima libertad de acción y el derecho a cometer errores. Y solo después de que los conos estén llenos, el mentor explica por qué esto fue un error y por qué no debe hacerlo. Creo que este es el enfoque correcto: algunas cosas no se pueden entender hasta que recoja este rastrillo usted mismo. Si nunca usó devoluciones de llamada incorrectamente, no entenderá cuál podría ser el problema con ellas. ¿Y por qué muchas personas en la comunidad odian las devoluciones de llamadas?

Escuché que intentaste ingresar al equipo de Toptal seis o siete veces. ¿Es eso cierto?

Sí, es cierto, hablé de esto muchas veces. Toptal ha seguido una política de contratación agresiva, o más correctamente, proactiva, desde el inicio de la empresa. Me invitaron a entrevistas una vez al año. Después de repetidos intentos fallidos, decidí que no volvería a intentarlo. Pero mi amigo, con quien una vez comenzamos nuestro viaje en Ruby, consiguió un trabajo allí y me sugirió que volviera a intentarlo. Y esta vez pude pasar por todas las etapas de la entrevista. Hay una gran prueba técnica en la entrada, luego una entrevista, luego otra y más ... Y ahora creo que realizar 5-6 etapas de entrevistas es una práctica muy buena. Solo de esta manera puedes entender quién está frente a ti, si quieres trabajar con esta persona, si encajará en el equipo. Y entiendo por qué no me llevaron por primera vez, realmente no tiré entonces.

¿Cómo, en su opinión, debería organizarse una entrevista de trabajo ideal y un proceso de contratación?

Cuando ayudé con la selección de personas para el equipo anterior, Cryptopay, tuvimos dos etapas. Como tarea de prueba, proporcionamos un código para refactorizar. Con base en este código, hicimos una evaluación preliminar del candidato. Luego realizamos una entrevista en formato de codificación en vivo para comprender si esta persona es adecuada para nosotros. La codificación en vivo le permite comprender cómo piensa una persona. Puede evaluar no solo lo que está escrito, sino también cómo el desarrollador usa el sistema operativo, IDE, si la tecla de acceso rápido sabe cuán profundamente comprende ciertos temas, qué enfoques usa, qué preguntas hace a sus colegas en el proceso. Este enfoque proporciona mucha más información sobre una persona que una prueba o entrevista sobre algoritmos.

Pero creo que esto no es suficiente. Ahora, en Cybergizer, a menudo contrato personas con las que ya he trabajado. Hay personas con las que no trabajamos, pero juntas escribieron algún tipo de código abierto. Dicha actividad conjunta le permite ver cómo una persona escribe el código. Y también comprende cómo coincide su flujo de trabajo, qué tan mentalmente cercano está.

No me considero un experto en contratación, mi enfoque también falla. Uno de mis errores recientes: no quería llevar a la persona después de la sesión de codificación en vivo para una entrevista, no me impresionó. Pero otros miembros del equipo votaron por él y comenzamos a trabajar juntos. Y en colaboración, me di cuenta de que este es un especialista de clase alta. Hubo un caso absolutamente opuesto cuando yo era un hombre con todas mis manos, y como desarrollador, él no era nada. Después de estos dos casos, no estoy listo para juzgar la corrección de ningún método de contratación en particular. Quizás con suerte, quizás no con suerte. Parafraseando un famoso chiste:
- ¿Cómo logras contratar a tan buenos desarrolladores?
- ¡Esta es toda la experiencia de contratar buenos desarrolladores!
- ¿Y cómo conseguir tal experiencia?
- Necesitamos contratar a diferentes desarrolladores.

Me parece extraño que tantos estén interesados ​​en cómo atraer buenos especialistas. Pero pocas personas están interesadas en cómo convertirse en una empresa en la que los buenos especialistas quieran trabajar. ¿O tal vez deberías pensarlo antes que nada?

Está organizando reuniones y reuniones de Saint P Rubyconf en San Petersburgo. ¿Por qué y por qué haces esto?

Esto es parte de la cultura Ruby - contribuyente comunitario. Alguien incrusta código, escribe código abierto. Contribuyo a lo que obtengo. Muchas personas piensan que para hacer cualquier contribución, debes tener siete tramos en la frente. ¡Pero esto no es así! Hace casi 10 años, cuando estaba al comienzo de mi viaje a Ruby, traduje al ruso y expresé RailsCasts con el equipo de chicos. Por lo tanto, todos pueden ser útiles para toda la comunidad: no importa si actualiza el dock en gem, escribe un artículo u organiza un mitap.

¡Nos vemos en RubyRussia el 28 de septiembre!

Mire el programa y únase aquí , se espera el próximo aumento de precios después del 15 de septiembre.

Gracias a las empresas que nos apoyan:

Organizador - Evrone
Socio general - Toptal
Gold Partner - Gett
Silver Partners - JetBrains , Bookmate y Cashwagon
Socio de bronce - InSales

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


All Articles