Desde antes da pandemia, a Idopter Labs já adotava uma dinâmica de ações 100% remota e distribuída, enfatizando a autonomia e responsabilidade como fundamentais para o trabalho remoto eficaz. Nesse post falamos de trabalho remoto e a importância da organização para garantir produtividade com um ritmo de vida saudável.
No mundo da tecnologia, acompanhar a evolução e as tendências é fundamental para se manter atualizado e competitivo. Um marco importante nesse contexto foi o lançamento da Apple Vision Pro, um dispositivo revolucionário que combina tecnologia de ponta com o conceito de realidade aumentada.Para entender a importância desse lançamento, é interessante voltar no tempo e lembrar dos primórdios da realidade aumentada. Nesse post vou te contar umas curiosidades sobre a Realidade Aumentada.
Quando iniciamos o desenvolvimento de um projeto de software, um dos fatores chave de sucesso é o relacionamento com o cliente. Uma das principais responsabilidades de um Gerente de Produto ou Product Owner, é garantir a satisfação do cliente e o crescimento contínuo do negócio. Neste texto, vamos falar sobre práticas que aplicamos no dia a dia da Idopter Labs para estabelecer um relacionamento saudável com nossos clientes e gerenciar essa parceria de forma eficiente.
O Product Manager e Product Owner são papéis muito importantes nos projetos da Idopter Labs, são responsáveis pela manutenção e comunicação da visão dos projetos, dos objetivos, organização do planejamento, roadmap, milestones, comunicação entre o time e cliente, entre outras atividades que ajudam a garantir o alinhamento e clareza entre todos os envolvidos. Sim, os dias são bem agitados aqui na Idopter Labs e exigem uma boa organização para manter as engrenagens girando. Neste post, compartilhamos algumas dicas de organização, apresentando como os Product Managers e Product Owners na Idopter Labs gerenciam o seu dia de trabalho.
Desenvolver software não é uma tarefa fácil, envolve muitos conhecimentos, inúmeras habilidades, e além disso ainda estamos falando de algo difícil de mensurar e tangibilizar, a não ser que seja construído. Na indústria de software temos várias técnicas e abordagens que são usadas para resolver esse “problema”, seria mais uma característica do desenvolvimento de software. Aqui na Idopter Labs a abordagem usada para diminuir os impactos da dificuldade de mensurar e tangibilizar o que vai ser desenvolvido é entregando software rápido e continuamente. Esse post tem 5 dicas sobre como fazer isso e porque assim suas chances de êxito podem ser maiores.
Idealizado e definido pelo especialista em produtos ágeis Fábio Aguiar , o PBB - Product Backlog Building, é uma técnica que facilita e simplifica a criação e refinamento de um backlog efetivo e emergente para o desenvolvimento de software em time ágeis. Há alguns anos tenho atuado como Product Owner (PO) na Idopter Labs e aproveito a minha experiência para comentar, nesse artigo, sobre dois pontos valiosos do meu dia-a-dia onde o PBB facilita e me ajuda bastante.
A Idopter Labs trabalha com um conjunto de tecnologias que permitem que nossos times sejam extremamente eficientes no processo de desenvolvimento. Hoje, os principais desafios trabalhados junto aos nossos clientes são voltados para a web e dispositivos móveis (celulares, tablets, entre outros equipamentos). Para isso, as duas tecnologias principais adotadas são Elixir e React Native. Esse post é uma breve apresentação dessas duas tecnologias e algumas das razões pelas quais as adotamos.
Esse artigo é um resumo da conversa que tive com meu amigo Zeca no episódio número 15 do Espresso Tech. Nesse episódio, demos 5 dicas para aqueles que desejam buscar um emprego na área de tecnologia 👊🏻 Essas dicas foram selecionadas baseadas na nossa experiência atuando na área de tecnologia há mais de 15 anos — tanto no papel de empregado em busca de novas oportunidades e novos projetos, quanto no papel de empregador avaliando candidatos e contratando novos membros para a nossa equipe na Idopter Labs.
Neste post vamos falar de Behaviour Driven Development (Desenvolvimento Guiado por Comportamento), também chamado de BDD, que tem como um dos benefícios a interação dos diferentes papéis de um time tais como desenvolvedores, testadores, negócio, através da melhoria da comunicação.
Neste post iremos construir selects dinâmicos com Phoenix e LiveView. A aplicação de exemplo é uma simples página de listagem de guitarras.
A recuperação de objetos deletados é possível 🚨 apenas em buckets com versionamento habilitado 🚨. Por padrão, ao criarmos novos buckets, a funcionalidade de versionamento não é habilitada automaticamente. Neste post iremos aprender como utilizar a AWS CLI para recuperar objetos deletados em um bucket S3.
Uma mix task é um script Elixir executado através do mix e normalmente utilizado para tarefas corretivas. Neste artigo, iremos escrever uma task para popular uma coluna recém criada em uma tabela no banco de dados.Infelizmente, é comum encontrarmos aplicações com este tipo de funcionalidade como parte de uma migration. Entretanto, tal abordagem é uma anti-pattern e deve ser evitada. Migrations devem ser utilizadas única e exclusivamente para mudanças na estrutura do banco de dados, e não para a manipulação de dados.
Prestes a completar 15 anos 🎂, o Heroku continua sendo a minha escolha preferida para publicação rápida de aplicações na nuvem. Neste artigo, iremos aprender como publicar uma aplicação Elixir/Phoenix em sua infraestrutura utilizando buildpacks.Antes de mais nada, é preciso entender alguns termos essenciais do Heroku
Neste artigo vamos desenvolver uma tela de login de duas etapas com Phoenix LiveView. Falaremos também sobre os recursos extras de usabilidade que temos quando utilizamos LiveView, assim como suas limitações.Apesar do LiveView proporcionar dinamicidade e uma melhor usabilidade para o usuário — considerando que ele não precisa recarregar a página para ter dados atualizados — o mesmo não possui exatamente as mesmas capacidades que o Plug.Conn. A principal limitação do Plug.LiveView.Socket que nos afetou foi a incapacidade de “escrever” na sessão do usuário.
Rails escala bem? Bom, podemos observar o Github que, sim, escala muito bem. Mas como eles fazem? Como se resolve um problema de N+1 para que não afete a performance de pesquisas no banco de dados?Neste post, vamos começar explicando o que é o problema N+1. Depois, veremos como podemos resolvê-lo com SQL puro e, finalmente, como implementamos a solução em Rails.
Neste artigo iremos falar sobre o Phoenix LiveView. Juntos, construiremos uma aplicação web bem simples, semelhante ao Twitter. Visitantes poderão postar mensagens de texto que serão exibidas em uma única página. Todos aqueles contectados à aplicação, verão as novas mensagens publicadas em real-time!
This unwanted and extremely annoying behavior happens in almost 100% of the React Native apps I encounter. It used to happen in all of the ones I created myself, but I was bitten by this bug enough times that I decided to adopt a particular default approach for using a widely popular element in React Native: ScrollView.
Having worked on a multitude of software projects in the past 10 years, our team has adopted a workflow which we believe allows us to achieve peak efficiency. By following this workflow we are able to continuously deliver value to our clients, starting on the very first week of work.The workflow is simple. It’s composed of two phases: Inception and Development.This is the first of a series of posts where I will describe these two phases, along with a few important practices we use on each of them.In this post, I will describe the first phase, Inception. Albeit being the less technical of the two phases, we strongly believe this is the most productive way to gather requirements and, most importantly, collectively build a vision for the project.
O post de hoje começa com uma pergunta, por que criar módulos nativos usando o react native ? Se você trabalha com desenvolvimento mobile, em algum momento você irá esbarrar com alguma lib, algum sdk que só possui versões pra Android ou iOS e você tem o aplicativo já em andamento com React Native. Dado esse cenário, surge a necessidade de entender, estudar e aprender a criar a comunicação usando React Native, isso é possível e com isso a gente é capaz de extrapolar o comum e passar a desenvolver aplicativos mais poderosos ou até contribuir criando um pacote que não existia para abstrair o SDK/Lib nativas. Para criar os módulos nativos temos duas opções, criar um pacote NPM/Yarn ou criar o módulo nativo dentro do nosso projeto de aplicativo.