Innovando de forma segura

Tecnología

Seguridad

Tecnología

Herramientas para tu éxito

Y muchos muchos más como Python, React, React Native, Angular, Vue, Next.js, Cypress, Diesel, WebAssembly, WebGL, Websockets, Redis, MySQL, Postgree, MongoDB, Linux, etc.

Node.js + Typescript

Nuestra elección para código que no crítico

Rust

Cuando rendimiento, estabilidad y seguridad son prioridad

Java

¿Sistemas heredados en Java? ¡Ningún problema!

Docker

Nuestra herramienta básica para escalar y aislar cada servicio

Buddy.Works

Nuestra herramienta preferida para integración continua (CI). Sólida y flexible.

Kubernetes

Escalando microservicios con despliegues sin riesgo

AWS y Digital Ocean

Nuestros proveedores para la nube Podemos construir sistemas híbridos con servidores físicos y en la nube.

Ansible

Mantiene los servidores seguros Aplicamos nuestras recetas ya probadas

Kafka

¿Escalando a millones de eventos? Sin problema.

Event Store

Creado para los patrones que mejor se nos dan (DDD y Event-sourcing)

técnicas

Herramientas en buen uso con estos patrones.

Dependiendo del tamaño de tu proyecto usaremos técnicas diferentes. Estas son algunas de las que podemos usar.

 

Event-sourcing

Listo para escalar tus datos e integrarlos con cualquier cosas que necesites. Event-sourcing hace que tu información sea auditable en tiempo real sin casi esfuerzo comparado con la forma tradicional de guardar información en bases de datos relacionales.

Microservicios

Desplegamos microservicios comunicados solo por eventos para asegurar escalabilidad y alta tolerancia a fallos. Cada microservicio puede arreglarse, escalar y ser desplegado de forma independiente. Esto habilita el uso de diferentes tecnologías en cada servicio, dando como resultado más flexibilidad durante el desarrollo.

Domain Driven Design

Seguimos la metodología DDD cuando diseñamos nuestras aplicaciones. DDD es un conjunto de estrategias y tácticas bien probadas para construir sistemas complejos con éxito. Fue creado con microservicios y Event-sourcing en mente, haciéndolo la elección perfecta para cuando se necesita escalar.

SOLID + TDD

SOLID y TDD asegura que seremos capaces de expandir y modificar el código sin la necesidad de hacer grandes refactorizaciones de código, manteniendo toda la aplicación en ejecución sin problemas. Desarollamos sabiendo que el reto real no son las primeras característica si no las últimas. Nuestro código está construido para durar.

Entrega continua (Continuous Delivery)

No nos damos el tiempo a hacer grandes despliegues donde partes del producto se pueden romper. Nosotros desplegamos rápido y de forma regular, asegurándonos de que puedas testear e iterar las características que de verdad importan en cuestión semanas. Cada despliegue es configurado con tests y verificaciones de seguridad para evitar errores.

eXtreme Programming

Usamos programación en parejas (Pair Programming) y exponemos a nuestros programadores al cliente para asegurar que el código cumple con los requerimientos. Nuestros empleados trabajan en equipo para resolver tus problemas de la forma más sensata y eficiente posible. Usualmente usamos Event-Storming.

SEGURIDAD

Repuestas rápida para máxima seguridad

Seguimos estándares de seguridad probados y/o requeridos legalmente para proporcionar seguridad y conformidad de la información. Tenemos experiencia tanto con la ley europea de protección de datos (GDPR) como con protección de secretos industriales, adherirse a requisitos de privacidad y estándares del estado, ejecutar respuesta de a crisis, etc.

Podemos construir sistemas redundantes y tolerantes a fallos que no confíen en el resto de sistemas para asegurar una máxima seguridad.

Técnicas de seguridad

Contratos de confidencialidad (NDA)

Todos nuestros empleados han formado un contrato de confidencialidad (NDA) y están entrenados en mantener secretos.

LOPD (y GDPR)

Conocemos como implementar sistemas que sigan la LOPD y GDPR y podemos ofrecer las herramientas necesarias para una implementación con éxito.

Cifrado de equipo informático

Usamos solo equipos informáticos cifrados con algoritmos seguros.

Formación

Los empleados están entrenados en como mantener y comunicar datos privados o sensibles.

Localización de la información

Podemos construir sistemas internacionales que mantengan la información localizada en el continente de origen.

Autentificación

Es obligatorio para nuestros empleados usar autentificación de doble factor y gestores de contraseñas para prevenir fugas de datos.

Recomendaciones

Si es necesario podemos recomendar sistemas y plataformas para conformidad y protección de datos.

Des/Aprovisionamiento

Tenemos definidos claramente protocolos de aprovisionamiento y desaprovisionamiento de empleados.

Transferencia de secretos

Solo comunicamos secretos a través de medios y canales protegidos.

Auditoria de datos

Usamos herramientas de auditoria para monitorizar datos y documentos a través de nuestra empresa

Conformidad con estándares

Seguimos e implementamos STIG y otros estándares para mantener la información y sistemas seguros.

Auditorias de código

Si se necesita podemos proveer auditorias de código de terceras partes para asegurar máxima protección.

Tecnologías de seguridad

Monitorización proactiva de aplicaciones y detección de riesgos de seguridad.

Usamos herramientas como Sentry, Datadog, New Relic y ThreatStack para monitorizar cualquier problemas o brecha en el sistema. Podemos usar otras herramientas si es requerido. Los logs son anonimizados y analizados.

Refuerzo de seguridad en los servidores

Siempre intentamos mantener el área de ataque al al mínimo para evitar problemas de seguridad. Seguimos estandares como STIG lo más posible para proteger los servidores. Si es necesario podemos implementar conformidad con los estándares de seguridad del cliente.

Contraseñas y secretos

Preferimos usar Argon2 o scrypt en vez de bcrypt (devido a devilidades a ataques usando FPGAs). En ningún caso usaremos SAH2 u otros algoritmos genéricos de «hashing». Para cualquier otro propósito que identificación, los datos siempre se envían cifrados entre servidores y se almacenan en sistemas adecuadamente protegidos.

Aplicaciones críticas o de riesgo

Para sistemas que no pueden fallar usaremos lenguajes de programación como Rust que ofrecen mayor seguridad y confianza. Nos esforzaremos al máximo en mantener las dependencias del código al mínimo y solo usaremos librerías de código abierto que sean bien conocidas y con un compromiso de mantenerse seguras.

Tests y cobertura del código

Para minimizar comportamiento no indefinido podemos testear el 100% del código y usar «eXtreme Programming». Para cualquier proyecto siempre proponemos mantener una cobertura de los test con un alto porcentaje y usar TDD. Podemos usar «Fuzz Testing» para encontrar comportamientos indefinidos ocultos que puedan ser un problema de seguridad.

¿Estas listo para empezar?

Envia un email o llamanos con cualquier duda. Estamos deseando trabajar contigo y ver tu negocio properar.