Descrição:
Você é apaixonado por Python, Django, IA e deseja participar de uma grande transoformação no mercado jurídico? A Freelaw está em busca de um Desenvolver de Software Back-end Sênior para se juntar ao nosso time dinâmico! Aqui, você terá a oportunidade de trabalhar com projetos desafiadores, moldar a experiência de nossos usuários e colaborar com uma equipe multidisciplinar, focada em entregar soluções inovadoras aos advogados que utilizam a nossa plataforma. Se você gosta de criar aplicações que geram impacto positivo no negócio, com foco em otimizar processos e gerar mais receita para a empresa, essa vaga é para você!
Quais serão suas principais responsabilidades?
Arquitetura e Design de Software: Participar da definição e desenho da arquitetura da aplicação, considerando melhores práticas de escalabilidade, segurança e manutenção. Estabelecer padrões de desenvolvimento e de versionamento de API, como RESTful ou até GraphQL, caso necessário.
Criação de APIs complexas: Desenvolvimento de APIs eficientes utilizando Django Rest Framework, incluindo autenticação (JWT, OAuth), autorização, cache, e otimização de queries para evitar problemas de desempenho (como o N+1 problem).
Serialização de dados: Desenvolvimento de serializers avançados (normalização e desnormalização), tratamento de relacionamento entre modelos e campos customizados.
Modelagem de dados: Criação e manutenção de modelos no Django ORM, mapeando classes Python para tabelas no banco de dados (SQL e NoSQL).
Querysets otimizados: Uso avançado de QuerySets, como queries select_related, prefetch_related, annotate, e aggregate para otimização de consultas ao banco.
Migrações: Gerenciamento e planejamento de migrações de banco de dados de maneira eficiente, minimizando downtime e problemas com dados existentes.
Otimização de desempenho: Identificação de gargalos de performance e criação de soluções escaláveis, como uso de cache (Redis, Memcached), otimização de consultas, e balanceamento de carga.
Escalabilidade de aplicações: Preparar a aplicação para suportar picos de tráfego e grandes volumes de dados, utilizando boas práticas de escalabilidade horizontal e vertical.
Suporte e refatoração de código: Manutenção e atualização de sistemas legados, refatorando código quando necessário para garantir que esteja de acordo com as melhores práticas e tecnologias atuais.
Migração de versões: Atualização de versões do Django, DRF e outros pacotes de maneira segura, garantindo a compatibilidade e a não quebra de funcionalidades.
Implementação de boas práticas de segurança: Garantir que a aplicação siga as melhores práticas de segurança, como proteção contra injeção de SQL, CSRF, XSS, segurança de API (autenticação, autorização), e tratamento de dados sensíveis.
Monitoramento e respostas a vulnerabilidades: Implementar mecanismos de monitoramento de vulnerabilidades e resposta a incidentes de segurança.
Testes automatizados: Desenvolvimento de testes unitários, de integração e testes de ponta a ponta utilizando ferramentas como pytest, unittest, ou o test framework do próprio Django.
Cobertura de testes: Garantir que a cobertura de testes seja adequada e que as APIs sejam testadas com diferentes cenários, como grandes volumes de dados e situações de erro.
CI/CD: Configurar pipelines de integração contínua e entrega contínua para automatizar testes e deploys.
Integrações de APIs de terceiros: Desenvolver integrações com serviços externos, como provedores de pagamento, gateways de autenticação, serviços de email, e outros, utilizando Django ou DRF.
Webhooks e sistemas de mensagens: Implementação e consumo de webhooks e integração com filas de mensagens como Celery, RabbitMQ, ou Kafka.
Documentação de API: Manter a documentação das APIs atualizada e clara, utilizando ferramentas como Swagger ou DRF-Spectacular para documentação automatizada.
Boas práticas de desenvolvimento: Garantir que o código siga as boas práticas de Python (PEP 8) e de Django, promovendo a utilização de code reviews e linters.
Liderança técnica: Orientar desenvolvedores juniores e plenos, conduzindo revisões de código e oferecendo suporte técnico. Participar ativamente nas decisões técnicas da empresa, colaborando na escolha de tecnologias, padrões e frameworks.
Configuração de ambientes: Definir e configurar ambientes de desenvolvimento, teste e produção (Docker, Kubernetes, etc.).
Deploy e monitoramento: Auxiliar no processo de deploy contínuo, monitoramento de performance em produção (com ferramentas como New Relic, Sentry, Prometheus) e troubleshooting.
O que você precisa ter para encarar o desafio?
Experiência avançada com Django e Django Rest Framework
Conhecimento profundo de Django ORM, Views, Signals, Middlewares e Serializers avançados no DRF.
Experiência no desenvolvimento de APIs complexas e no desenho de arquiteturas RESTful.
Conhecimento em arquitetura de software
Capacidade de planejar e arquitetar sistemas escaláveis e modulares, envolvendo múltiplos serviços e camadas de software.
Conhecimento em boas práticas de design de software, como SOLID, DDD (Domain-Driven Design), e design de APIs.
Otimização de performance e escalabilidade
Experiência em otimização de consultas no Django ORM (uso avançado de select_related, prefetch_related, annotate, etc.).
Capacidade de aplicar técnicas de cache (Redis/Memcached), load balancing e trabalhar com fila de mensagens (ex: Celery, RabbitMQ, Kafka).
Segurança em aplicações web e APIs
Experiência com boas práticas de segurança no desenvolvimento web e APIs, incluindo proteção contra CSRF, XSS, SQL Injection, e segurança de autenticação/autorização (JWT, OAuth2).
Capacidade de lidar com dados sensíveis, conformidade com LGPD ou GDPR.
Testes automatizados e integração contínua
Experiência em escrever testes unitários, de integração e de ponta a ponta (usando pytest, unittest, etc.).
Familiaridade com pipelines de CI/CD, incluindo configuração de integração contínua e deploy contínuo (Jenkins, GitLab CI, CircleCI).
O que não é obrigatório, mas se você tiver será um diferencial:
Já ter trabalhado em Startups;
Já ter trabalhado com Sistemas de pagamentos;
Já ter trabalhado com IA e automação de processos;
Já ter trabalhado com SaaS;
Ter alguma certificação de curso de Django ou algum projeto em Django entregue.
2411140203011177720
#J-18808-Ljbffr