El desarrollador de backend tiene que ser competente con:
- Bases de datos relacionales como PostgreSQL o al menos MySQL (deben conocer los principios de ACID y comprender los niveles de aislamiento de transacciones)
- Los servidores de mensajes (como ActiveMQ, RabbitMQ y Kafka) y deben saber cuándo usar cuál de ellos.
- Servidores de almacenamiento en caché ( Redis , Memcached, Hazelcast) y deben saber qué usar y cuándo.
- Bases de datos de documentos (MongoDB, PostgreSQL , ya que supera a MongoDB y admite transacciones, se fragmenta bien con PgPool, ahora es la mejor opción para el enfoque base relacional y de documentos)
- Bases de datos compatibles con Big Data como Cassandra o HBase (SOLO en caso de que el desarrollador de backend maneje una gran cantidad de datos)
- Marcos de seguridad (por ejemplo, SpringSecurity o Shiro para java).
- Criptografía aplicada (en la lista distinta cuándo usar criptografía asimétrica y simétrica y qué cifras).
- Debe saber cómo escribir software que sea fácil de probar.
- Debe estar familiarizado con los patrones EIP e implementaciones como Apache Camel o Spring Integration.
También como cualquier programador desarrollador de backend debe saber:
- Su idioma de elección y marcos para ese idioma como (Spring e Hibernate para java).
- Debe conocer patrones de diseño como GOF.
- Y debe conocer los principios generales de diseño de software como KISS, DRY, YAGNI y SOLID.
Opcional agradable tener habilidades será:
- ¿Qué debe saber un programador para desarrollar para el back-end de aplicaciones web y móviles?
- ¿Dónde puede un desarrollador de backend aprender diseño web práctico?
- ¿Qué es lo que necesito hacer para ingresar a las startups como desarrollador de back-end de Java? Mi principal problema es determinar dónde comenzar a encajar en estas startups.
- Entre los desarrolladores front-end y back-end, ¿qué conjuntos de habilidades son más importantes para uno que para el otro?
- ¿Por qué no se encuentran juntas de expansión a los lados de las carreteras? Los veo en la parte posterior y frontal, lo que tiene sentido.
- comprensión de la configuración de nginx
- administrar contenedores con docker y docker compose (a menudo es muy útil iniciar el entorno de agujeros en su PC)
- bash (o python)
Debería saber UML.