Você é apaixonado por Python, Django, IA e deseja participar de uma grande transformação no mercado jurídico? A Freelaw está em busca de um Desenvolvedor 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
o Conhecimento profundo de Django ORM, Views, Signals, Middlewares e Serializers avançados no DRF.
o Experiência no desenvolvimento de APIs complexas e no desenho de arquiteturas RESTful.
* Conhecimento em arquitetura de software
o Capacidade de planejar e arquitetar sistemas escaláveis e modulares, envolvendo múltiplos serviços e camadas de software.
o 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
o Experiência em otimização de consultas no Django ORM (uso avançado de select_related, prefetch_related, annotate, etc.).
o 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
o 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).
o Capacidade de lidar com dados sensíveis, conformidade com LGPD ou GDPR.
* Testes automatizados e integração contínua
o Experiência em escrever testes unitários, de integração e de ponta a ponta (usando pytest, unittest, etc.).
o 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.
O que a nossa equipe fala sobre a Freelaw?
#J-18808-Ljbffr