Quais são as responsabilidades?

  • Criação, evolução e monitoramento de arquiteturas complexas baseadas em micro-serviços (aplicações que suportam mais de um milhão de requisições por minuto).
  • Criação de aplicações de alta escala utilizando dados em tempo real (aplicações utilizando o e Kafka como Broker por exemplo).
  • Monitoramento e aprimoramento da performance de bancos de dados como o PostgreSQL, Redis, Cassandra e Couchbase.
  • Análise de dados utilizando SQL para depuração e otimização de algoritmos.
  • Colaboração efetiva na equipe, com comunicação clara e foco na resolução de problemas.

Quais são os requisitos?

  • Boas noções de Algoritmos e Estruturas de dados.
  • Boas noções de comunicação entre serviços (HTTP, gRPC, GraphQL ou Thrift).
  • Saber elaborar testes unitários e de integração dos sistemas.
  • Saber utilizar container e orquestradores (e.g Docker, Kubernetes).
  • Saber utilizar banco de dados SQL e NoSQL (e.g Postgresql, Cassandra).

Por que um engenheiro back-end é importante para a In Loco?

Estamos crescendo cada vez mais rápido. Hoje, em um mês, nossos SDKs são capazes de detectar mais de 2 bilhões de visitas, e nosso sistema entrega mais de 1.5 bilhão de anúncios aos nossos parceiros. Essa alta carga recebida pelos nossos servidores faz com que seja necessário otimizá-los, monitorá-los e incrementá-los de forma a manter a latência do sistema saudável para servir dados relevantes aos nossos clientes.



Quais são as experiências relevantes?

  • Ter trabalhado com micro-serviços em Java ou Go com alta carga de requisições e baixa latência.
  • Ter utilizado Amazon Web Services como provedor de recurso (EC2, S3 etc) e Kubernetes como orquestrador de containers.
  • Ter criado arquiteturas escaláveis utilizando streaming de dados (Kafka, RabbitMQ etc).
  • Ter utilizado ferramentas de monitoramento como Prometheus, StatsD e Grafana.
  • Ter utilizado ferramentas de análise de dados como Presto e Spark.

Como é o dia a dia de um back-end engineer?

No dia-a-dia utilizamos metodologias ágeis para idealizar, planejar e criar as soluções, desde sessões de “brainstorming” - para definir como será a arquitetura, qual o banco de dados será usado e como as APIs vão se comunicar - até reuniões diárias para ter um alinhamento mais rápido. Tudo isso em um ambiente descontraído e colaborativo.

Também é necessário se comunicar efetivamente com equipes de produto e design para entender os requisitos e assim poder desenhar aplicações que atendam às necessidades de nossos clientes.

Por sermos uma plataforma de dados de localização, trabalhamos com serviços de alta escala que precisam responder a milhões de requisições por minuto. Faz-se necessário, então, arquitetar APIs que possam suportar essa carga, o que envolve a escolha da linguagem de programação, do banco de dados e de como vamos consumir esses dados.

Todos os engenheiros na In Loco tem autonomia para escolher e desenhar as soluções e escolher que tecnologia se adequa mais aos problemas enfrentados.