O que a Simbiose faz

Pelo ponto de vista estratégico

Estrategicamente falando, a Simbiose existe para impulsionar pessoas e tecnologias além do limite.

Impulsionamos pessoas proporcionando um ambiente, ferramentas e incentivo para que elas cresçam e se aprimorem, tanto em competências técnicas (hard skills) quanto em competências comportamentais (soft skills). Por acreditar que é mais fácil desenvolver hard skills, buscamos pessoas que já estejam razoavelmente bem desenvolvidas em soft skills - e ajudamos elas a crescerem ainda mais.

Essas pessoas, por sua vez, utilizam esse conhecimento para criar tecnologias inovadoras, que transformamos em produtos e oferecemos a nossos clientes. Nós usamos tecnologias próprias e outras de código livre (open source) para desenvolver uma base, em cima da qual podemos construir diversos produtos relacionados a análise de dados.

Importante: Por focarmos em criar tecnologias relacionadas a dados, muitas pessoas acham que o nosso trabalho seja fazer "análise de dados" para outras empresas, o que não é o caso.

O que fazemos é criar as ferramentas e tecnologias que serão utilizadas por pessoas e empresas para que consigam armazenar, acessar, visualizar e analisar seus próprios dados. A Simbiose não é uma consultoria, não fazemos análise de dados para clientes e nem somos uma fábrica de software que faz sistemas sob encomenda.

Em outras palavras, a Simbiose é a empresa que cria as tecnologias e ferramentas para que os profissionais de business intelligence (BI) possam analisar seus dados.

Pelo ponto de vista técnico

Tecnicamente falando, a Simbiose é uma criadora de tecnologias e plataformas relacionadas a dados.

Para ficar claro, quando falamos em criar tecnologia, queremos dizer que, diferente do que é muito comum em outras empresas a Simbiose não simplesmente usa tecnologia para criar seus produtos ou oferecer serviços, mas sim cria as tecnologias e plataformas que serão utilizada por milhares de outras empresas para analisar seus dados e criar seus próprios produtos e serviços.

Guardadas as devidas proporções, obviamente, em termos de propósito e tecnologia a Simbiose pode ser comparada a empresas/serviços como Amazon Web Services, Confluent, Datastax, Tableau etc.

Se você é um(a) desenvolvedor(a) de software que ainda está no início da carreira, pedimos que não se assuste com o que verá abaixo. Desde que você tenha disciplina e goste muito de ler e estudar, nós iremos te apoiar e ensinar tudo que é necessário para enfrentar nossos desafios técnicos.

Tecnologias criadas por nossa equipe

Para maior compreensão, listamos abaixo alguns detalhes sobre as tecnologias e plataformas que criamos.

ShannonDB

O ShannonDB é um banco de dados OLAP criado do zero pela equipe da Simbiose desde 2015. A principal vantagem do ShannonDB está em sua capacidade extrema de compressão de dados, chegando próximo dos limites teóricos idealizados por Claude Shannon, o criador da teoria da informação. Daí o nome ShannonDB, em homenagem ao Claude.

Utilizamos o ShannonDB extensivamente em nossa infraestrutura, pois ele possibilita armazenar dados com baixo custo (devido a alta compressão) e realizar consultas (queries) complexas com baixíssima latência (geralmente alguns milissegundos).

O ShannonDB é primariamente desenvolvido em Java, sendo que algumas partes fundamentais são escritas em C. Apesar de ser em Java, aplicamos no ShannonDB a diversas técnicas utilizadas em sistemas de "high-frequency trading", que exigem baixa latência e pouca utilização de memória. Em outras palavras, usamos o Java mas não deixamos o GC por conta da JVM.

Caso tenha interesse, você pode saber um pouco mais sobre o ShannonDB (também conhecido como S1Search) assistindo ao vídeo abaixo:

Data Job Service

O Data Job Service é um sistema distribuído e resiliente para processamento de dados em larga escala, também criado pela equipe da Simbiose.

Como o próprio nome indica, o Data Job Service é utilizado para realização de tarefas ("jobs") relacionadas a dados, como por exemplo: carregamento de dados, transformação de dados, exportação de dados etc.

A principal vantagem do Data Job Service em relação a outros sistemas como Spark, Hadoop, etc está justamente no seu baixo consumo de recursos computacionais e na extrema resiliência em caso de falhas sistêmicas. Jamais um dado é perdido ou uma tarefa ("job") deixa de ser processada por conta de falhas na rede etc.

Assim como no ShannonDB, o Data Job Service é primariamente desenvolvido em Java, também focado em baixa latência e controle extremo de uso de memória.

Simbiose API

Toda a arquitetura sistêmica da Simbiose é orientada a APIs, isso é, somos completamente api-centric.

No centro de todas nossas tecnologias e sistemas está a API Simbiose, que é uma camada central de operação e comunicação entre tudo o que fazemos.

Todos os produtos criados pela Simbiose utilizam a API como base. A grande maioria das lógicas de negócios e funcionalidades estão na camada da API, sendo que os produtos (front-end) apenas utilizam esses recursos para prover um determinado valor / funcionalidade para os nossos clientes.

A API Simbiose é desenvolvida em Python, também utilizando diversas técnicas de otimização de código, visto que nossos endpoints podem receber bilhões de requisições por dia.

Caso tenha interesse, você pode saber um pouco mais sobre sobre a API da Simbiose assistindo ao vídeo abaixo:

Tecnologias das quais somos mantenedores

Além das tecnologias que criamos, nós também somos contribuidores e mantenedores de algumas tecnologias famosas e de ampla adoção global.

PrestoDB

O Presto é uma tecnologia de processamento de dados/queries em memória, criado pelo Facebook em 2012 e que foi liberada como open source em 2013.

Nós utilizamos o Presto para realizar consultas (queries) em fontes de dados que não estejam armazenadas em nossa infraestrutura, isso é, outros bancos de dados, arquivos armazenados em sistema de object storage etc.

Nós temos uma equipe na Simbiose dedicada a adaptar o Presto para as nossas necessidade, bem como evoluir a tecnologia e contribuir com a comunidade.

O Presto é desenvolvido em Java.

Alluxio

O Alluxio é uma tecnologia para cache de dados armazenados em sistemas remotos de object storage. Foi criada em 2013 e liberada como open source em 2014.

Nós utilizamos o Alluxio para diminuir o tempo de acesso aos dados de nossos clientes que ficam armazenados em sistemas como AWS S3, Backblaze B2 etc.

Assim como no caso do Presto, nós também temos pessoas dedicadas para adaptar a tecnologia para as nossas necessidade, bem como realizar contribuições com a comunidade.

O Alluxio é desenvolvido em Java.

Algumas outras tecnologias que utilizamos

Para as tecnologias abaixo nós não somos criadores ou mantenedores, mas nossa equipe possui um profundo conhecimento, pois são amplamente utilizadas em nossa infraestutura.

Kafka

O Kafka possui diversas funcionalidades, mas pode ser considerado primariamente um sistema de fila de mensagens (message queue). Algumas vezes utilizamos o Kafka como buffer de mensagens e também para comunicação entre os diversos sistema (microserviços) que temos na infraestrutura.

ZooKeeper

O ZooKeeper é um sistema resiliente para armazenamento de configurações de forma distribuída. É como se o ZooKeeper fosse um banco de dados, mas totalmente focado em armazenar pequenos metadados (configurações). Nós utilizamos o ZooKeeper para justamente armazenar metadados críticos de sistemas como o ShannonDB, Data Job Service e outros, que não podem ficar offline jamais.

Aerospike

O Aerospike é um banco de dados distribuído do tipo chave-valor (key-value store) com extrema performance de leitura e escrita de dados. A principal diferença do Aerospike para o Redis está na persistência dos dados, que no caso do Aerospike pode ser em disco (SSD), bem como na resiliência e escalabilidade.

Airflow

O Airflow é um sistema distribuído para agendamento e gerenciamento de tarefas. Utilizamos o Airflow para controlar todas as tarefas (jobs) e fluxos (pipelines) que são executados continuamente, como tarefas e fluxos de carregamento e processamento de dados.