Descrição da vaga
Descrição
Procuramos uma pessoa Desenvolvedora Back-end Pleno, com experiência sólida em desenvolvimento de sistemas e autonomia para atuar em soluções de média e alta complexidade. É necessário ter domínio de Python, experiência com FastAPI ou Django, PostgreSQL/SQL, desenvolvimento de APIs REST, além de conhecimentos em Git, Docker e testes automatizados. Buscamos alguém com perfil analítico, colaborativo, com ownership, foco em resultados e interesse em contribuir para a evolução técnica do time e dos produtos.
1. Lógica de Programação e Solução de Problemas
- Capacidade de decompor problemas complexos, analisar diferentes alternativas e implementar soluções eficientes, simples e sustentáveis.
2. Autonomia Técnica
- Capacidade de conduzir tarefas de forma independente, buscando informações e alternativas antes de solicitar ajuda, e sabendo identificar quando uma decisão precisa ser discutida com o time.
3. Capacidade Analítica e Pensamento Crítico
- Habilidade para analisar requisitos, identificar riscos, questionar premissas e propor soluções tecnicamente adequadas ao contexto do negócio.
4. Colaboração em Equipe
- Capacidade de trabalhar de forma colaborativa com desenvolvedores, produto, QA, DevOps e demais áreas, contribuindo para decisões técnicas e compartilhando conhecimento.
5. Documentação
- Capacidade de documentar código, decisões técnicas, APIs e processos relevantes, garantindo que o conhecimento não fique concentrado em uma única pessoa.
7. Gerenciamento de Tempo e Organização
- Capacidade de organizar tarefas, estimar esforços, priorizar atividades e comunicar riscos ou impedimentos antecipadamente.
8. Adaptabilidade e Aprendizado Contínuo
- Capacidade de aprender novas tecnologias, bibliotecas e conceitos de forma autônoma, adaptando-se às necessidades do projeto.
9. Data-Driven
- Capacidade de utilizar dados, métricas, logs e evidências para tomar decisões técnicas e de negócio, evitando decisões baseadas exclusivamente em opiniões ou suposições.
10. Comunicação e Feedback
- Comunicação clara, objetiva e profissional, tanto verbalmente quanto por escrito, sabendo dar, receber e aplicar feedbacks.
Requisitos e qualificações
Stack principal esperada:
Python | FastAPI ou Django | PostgreSQL | SQL | Git | Docker | Testes automatizados | APIs REST
1. Estruturas de Dados e Algoritmos
- Domínio de estruturas de dados e algoritmos fundamentais, sendo capaz de analisar complexidade, identificar gargalos e desenvolver soluções eficientes e escaláveis.
2. Python
Proficiência em Python, sendo esta a principal linguagem utilizada no desenvolvimento. Espera-se domínio de:
- Sintaxe e recursos avançados da linguagem;
- Programação Orientada a Objetos;
- Tratamento de exceções;
- Iteradores, generators e decorators;
- Type hints;
- Gerenciamento de dependências;
- Organização e arquitetura de projetos;
- Boas práticas e padrões de desenvolvimento em Python;
- Performance e legibilidade do código.
3. Programação Orientada a Objetos e/ou Funcional
- Conhecimento sólido de POO e familiaridade com conceitos de programação funcional, sabendo escolher a abordagem mais adequada para cada problema.
4. Frameworks Backend
Experiência prática com frameworks Python para desenvolvimento de APIs e aplicações backend, como FastAPI, Django ou equivalentes. Deve compreender conceitos como:
- Routing;
- Middlewares;
- Dependency Injection;
- Validação de dados;
- Autenticação e autorização;
- Tratamento de erros;
- Serialização;
- Organização de aplicações.
5. Git e Controle de Versão
Experiência avançada com Git e boas práticas de versionamento. Espera-se domínio de:
- Branches;
- Merge e rebase;
- Pull Requests;
- Resolução de conflitos;
- Histórico de commits;
- Estratégias de branching;
- Code Review.
6. Testes e Qualidade de Código
Conhecimento e experiência prática com testes automatizados. Incluindo:
- Testes unitários;
- Testes de integração;
- Mocks e fixtures;
- Cobertura de testes;
- Testes de APIs;
- Princípios de TDD/BDD quando aplicáveis;
- Identificação e prevenção de regressões.
7. Banco de Dados
Conhecimento sólido de bancos relacionais e familiaridade com bancos não relacionais. Espera-se experiência com:
- SQL;
- PostgreSQL ou banco relacional equivalente;
- Modelagem de dados;
- Índices;
- Joins;
- Transações;
- Otimização de consultas;
- Análise básica de planos de execução;
- ORMs, como SQLAlchemy ou Django ORM.
8. APIs e Integração de Sistemas
Experiência na criação e integração de APIs e serviços. Conhecimento de:
- REST;
- HTTP;
- JSON;
- Autenticação e autorização;
- Webhooks;
- Integração com serviços externos;
- Tratamento de erros;
- Idempotência;
- Versionamento de APIs.
9. Docker e Containerização
Conhecimento prático de Docker, sendo capaz de utilizar containers no desenvolvimento e na execução das aplicações. Espera-se conhecimento de:
- Dockerfile;
- Imagens e containers;
- Volumes;
- Networks;
- Variáveis de ambiente;
- Docker Compose;
- Multi-stage builds;
- Boas práticas de criação de imagens;
- Containerização de aplicações Python e bancos de dados.
10. DevOps e CI/CD
Entendimento dos principais conceitos de CI/CD e automação do ciclo de desenvolvimento. Conhecimento básico ou intermediário em ferramentas como:
- GitLab CI;
- GitHub Actions;
- Jenkins;
- Pipelines automatizados;
- Execução de testes;
- Build e deploy;
- Gerenciamento de ambientes.