Hola a todos!
Mi nombre es Alik Kurdyukov, soy CTO de United Traders . Puedes encontrar un poco sobre mí en mi perfil. Recientemente, hemos aumentado el ritmo de reclutamiento de personas de TI para la empresa y nos enfrentamos a un problema: muchas personas nos conocen como una empresa "Fin", pero muy pocas personas saben cómo "Tech". Por lo tanto, ahora tenemos un blog sobre Habré.
En esta publicación quiero hablar sobre cómo estamos organizados en el lado del desarrollo. Y con gusto responderé preguntas en los comentarios.
Acerca de la empresa
United Traders es una empresa de tecnología financiera que crea productos digitales para el mercado bursátil (NYSE, NASDAQ, CME) y la inversión (IPO, OTC y sus propios productos de inversión). Desarrollamos software para comerciantes, plataformas web, aplicaciones móviles, algoritmos financieros y nuestro intercambio de criptomonedas.
El equipo de TI es responsable del código de los siguientes productos digitales del ecosistema de United Traders:
- UTEX es un intercambio de criptomonedas con una interfaz adaptativa (principiantes / profesionales).
- UT Investment es una plataforma web de inversión con un escaparate de ideas exclusivas.
- Aurora es una plataforma para operar en varios intercambios.
- UT Magazine es un portal de información sobre comercio y finanzas.
- Answr: una enciclopedia con pago por el trabajo de los autores en criptomonedas.
Desarrollo
Trabajamos en un mercado dinámico. Por lo tanto, los equipos de productos están "afilados" para un enfoque iterativo flexible. Ciclo de iteración Scrum y ciclo de cadencia Kanban: 1 semana.
El desarrollo está estrechamente relacionado con los negocios. Los desarrolladores están involucrados en las decisiones del producto. Los equipos de productos trabajan como parte de los ciclos HADI. Lo principal es el resultado, por lo tanto, para los productos formados, hacemos una revisión detallada de todo el código, incluso los diseños, y tratamos de asignar tiempo para la refactorización y las mejoras técnicas.
Equipo distribuido
Nuestra empresa tiene una estructura plana, CTO es ahora el gerente directo de todas las personas de TI. El equipo trabaja de forma remota, distribuido en toda Rusia y países vecinos:
- Moscú
- San petersburgo
- Komsomolsk-on-Amur
- Kaliningrado
- Taganrog
- Chisinau
- Riazán
- Kolomna
- Cherepovets
- Murmansk
- Tallin
- Vilna
- Minsk
- Vitebsk
- Istra
Las comunicaciones se llevan a cabo utilizando:
- Flojo como un chat corporativo,
- JIRA y Trello como rastreadores.
- Sococo como herramienta para la comunicación de voz y video, una oficina virtual.
La empresa financia el desarrollo de los empleados, recibe discursos en conferencias y reuniones (JPoint, Joker, HighLoad, RIT ++).
Equipos de desarrollo
Tenemos más de 30 desarrolladores profesionales, probadores, ingenieros de OPS, diseñadores, diseñadores de diseño. Todas nuestras personas de TI interactúan entre sí a diario en pequeños equipos:
Plataforma
Desarrolla los servicios generales de la empresa: recepción de pagos, contabilidad interna, programa de afiliación, etc. Los más utilizados son Java y Kotlin.
Utex
Desarrolla un intercambio para el comercio de criptomonedas. Hay 2 equipos trabajando en el producto: Team Back, Team Front. Usado por Kotlin, Java, Erlang, Rust, React, Redux, Apollo.
Declaraciones
Mejora el sistema de informes para el comercio y la gestión de los parámetros comerciales. Usado por Kotlin y Java.
Aurora
Está trabajando en el desarrollo de la plataforma de negociación de clientes Aurora, que está representada por servidores para diversos fines, así como por terminales de clientes y gerentes. Usado por C #.
Operaciones
La tarea principal de los ingenieros de OPS es ayudar a los equipos DEV en asuntos de:
operación de entornos de prueba y combate,
configuración y soporte de la tubería de desarrollo desde la organización del entorno de desarrollo hasta la implementación.
Se utilizan los principios de DevOps. Herramientas: Ansible, OpenShift, PostgreSQL, Prometheus, Docker, CentOS.
Autotesting
Ayudar a los equipos de desarrollo a mantener un alto nivel de calidad. Trabaja con pruebas automáticas de integración. Herramientas: Spock, Spek, Allure.
Diseñadores UX / UI
Explore las preferencias del usuario, cree un diseño para todos los proyectos de desarrollo en UT, trabaje en la usabilidad.
Capital humano
Ayudan a atraer a personas con quienes compartimos los mismos valores y contribuyen al desarrollo de equipos de desarrollo.
Arquitectura, pilas tecnológicas, prácticas
La arquitectura de todo nuestro ecosistema se basa en microservicios con todas sus ventajas y desventajas. Para la interacción de microservicios, utilizamos REST, gRPC, Kafka. Tenemos descubrimiento, servicio de configuración. Utilizamos disyuntores y otros patrones.
Nuestras pilas de desarrollo:
- JVM: Kotlin, Java8, Spring Boot2, Hibername, PostgeSQL
- Frontend: TypeScript, React, Redux, ReduxSaga, Apollo GraphQL
- .NET - C # 7, .NET Framework 4.7.1, WPF, Castle Windsor
- Rust - Tokio, Actix
- Erlang
Prácticas de ingeniería:
- CI / CD está hecho en base a Jenkins y Ansible,
- Para todos los idiomas hay un estilo de código, generalmente verificado automáticamente,
- Hay una revisión de código obligatoria para todos los proyectos, excepto MVP rápido,
La mayoría de los proyectos tienen 3 niveles de pruebas automáticas:
- pruebas unitarias para el código,
- pruebas de integración para artefactos activados de forma aislada,
- Pruebas del sistema para grupos de artefactos: los probadores y desarrolladores están trabajando en estas pruebas.
Intentamos utilizar nuevas tecnologías si pueden ayudarnos a resolver problemas, pero es costumbre "vender" la nueva tecnología al equipo. Por ejemplo, durante el año pasado comenzamos a usar Rust, GraphQL, ClickHouse.
Estilo de trabajo
En UT, estamos acostumbrados no solo a cortar tareas, sino a ofrecer mejoras en el camino y hacer preguntas. Tenemos la "Regla de los 30 minutos": si encuentra una dificultad que no se puede resolver en media hora, tiene sentido hacer una pregunta en el equipo de chat de Slack, alguien lo ayudará con la solución o le dirá dónde cavar. Y estamos seguros de que aquellos que emprendieron la tarea definitivamente la completarán.
En general, contamos con un excelente equipo, estaremos felices si algún día te encuentras en él, y a partir de hoy te contaremos cómo hacemos de United Traders no solo una empresa financiera, sino también financiera.