Ir para o conteúdo
Logotipo da Catho
Seu novo emprego está na palma das suas mãos! Baixe nosso app e obtenha vantagens :)
Botão App StoreBotão Play Store

Vaga de Full-stack Developer Sênior

1 vaga: | Publicada em 17/05

Sobre a vaga

### Como trabalhamos 1. Os Product Managers realizam entrevistas, coletando dados da aplicação de uso e ouvindo stakeholders diversos e constroem a visão das features, que é uma documentação que norteará o desenvolvimento nos próximos 3-6 meses daquele problema/solução; 2. Em seguida o Product Manager quebra em pequenas entregas, e após input do Software Engineer em refinamentos a User Story entra em sprint, as sprints tem 15 dias e o Software Engineer estima em story points o que reflete esforço e complexidade; 3. O *Software Engineer* inicia a implementação seguindo requisitos técnicos amplos que garantem liberdade da abordagem a qual sempre pode ser validada com o Tech lead e CTO; 4. Possuímos um time de QA com uma suite de testes automatizados (end to end) o que ajuda o *Software Engineer* a garantir a qualidade da entrega; 5. Após isso a Pull Request sobe numa branch main (só possuímos uma branch) que depois é mergeada com o Jenkins. Estamos trabalhando para que esse processo seja cada vez mais automatizado via Terraform. 6. Realizamos releases diárias, entre 1-6 releases em horários fora de pico (18h). Todo o deploy leva em torno de 30 min. ### **Responsibilities.** - **Projetar, desenvolver e manter aplicações desenvolvidas** pela companhia de maneira full stack, incluindo backend RESTful em TypeScript, NodeJS e Python, e frontend em TypeScript + Angular. - **Acompanhar a idealização de soluções de features** a partir da necessidade desenhada e garantir uma comunicação/fluxo eficaz com o time de Produto, e partes interessadas, incentivando o time a compreender as entregas e as soluções propostas, com o olhar para o negócio e foco na entrega de valor para o cliente; - **Ser owner de todo o ciclo de vida do desenvolvimento de software**, escrevendo códigos bem estruturados, eficientes e testáveis, participando de revisões de código produzidos pelos colegas, garantindo nosso atual padrão de qualidade e sugerindo melhorias em todos os processos. - **Ser referência técnica para os membros da equipe** de engenharia e especialista em arquitetura da informação, auxiliando em dúvidas e configurações de cenários complexos. - **Compor a elaboração e execução de planos estratégicos** conforme objetivos de negócio da empresa, em busca de entregas de impacto na escalabilidade da aplicação. - **Pesquisar novas tecnologias e ser o precursor da cultura da inovação**, desenvolvendo e implementando boas práticas de software e disseminando estas práticas no time; - **Impulsionar melhorias significativas** para um crescimento sustentável da aplicação, contribuindo com o design, arquitetura e na otimização das estruturas de dados de forma eficaz e inovadora. - **Elaborar testes unitários** seguindo as guidelines que serão estabelecidas e mantendo-se atualizado com as tendências tecnológicas. - **Estabelecer comunicação eficaz** com o time de Produto, e partes interessadas, para compreender as entregas e as soluções propostas. - **Disseminar conhecimento para o time,** criando documentação técnica das tarefas entregues; - **Ser investigativo e atento aos incidentes**: identificar gargalos e intensificar esforços no desenvolvimento do time para elevar a barra na qualidade nas entregas, propondo uma solução mais adequada e rápida; ### Nossa Stack Estamos baseados em uma arquitetura de microsserviços em ambiente serverless, totalmente suportada pelos recursos da AWS. **Backend:** - Implementamos um backend RESTful utilizando microsserviços serverless em TypeScript, NodeJS e Python. Isso nos permite criar uma base sólida para nossas operações, mantendo uma flexibilidade essencial. **Frontend:** - Em nosso frontend, usamos tecnologias como Angular, Vue e React para criar interfaces interativas e dinâmicas, proporcionando aos usuários uma experiência atraente e amigável. **Práticas e Ferramentas:** - Utilizamos Domain Driven Design, RxJS e programação reativa para novas implementações. - Mantemos 100% de nossa infraestrutura como código, seguindo as melhores práticas *cloud native*, facilitando a escalabilidade e a manutenção contínua. - Utilizamos MongoDB e PostgreSQL como nossos sistemas de gerenciamento de banco de dados, proporcionando confiabilidade e flexibilidade para nossas necessidades variadas. **Serviços AWS:** - Para suportar nossa arquitetura, confiamos em uma variedade de serviços da AWS, incluindo S3, SQS, RDS, Lambda, CloudFront, CloudFormation, entre outros. Isso nos permite oferecer aos nossos clientes serviços confiáveis e de alta performance. **Automação e Gerenciamento:** - Implementamos integração contínua/desdobramento contínuo (CI/CD) usando Jenkins para garantir uma entrega rápida e confiável de nossos produtos. - Para organização e gerenciamento eficazes de nossas tarefas de desenvolvimento, contamos com o Jira. Estamos continuamente refinando nossa Stack para enfrentar os desafios de escala e para garantir que possamos atender às crescentes demandas de nossos clientes de maneira eficaz e inovadora.