Boas amigo,
As pressões antes do desenvolvimento eram piores, sabendo que o problema enquanto eu desenvolvia ja estava mapeado eu me sentia tranquilo, até porque, na faculdade sempre ressaltavam que o custo de um sistema sempre é mais caro na parte de manutenção, então não seria diferente do meu próprio sistema, sendo corrigindo um bug quanto desenvolvendo a próxima feature importante que não havia ainda desenvolvido.
Bug no controle de estoque eram específicas, normalmente falha de cálculo, juntando subtração dentro de dados específicos em um aninhado de objetos (orientação a objetos), acabou dando um certo trabalho em chegar numa lógica que funcionasse bem. Hoje em dia eu fiz uma v2 para ser mais simples toda essa lógica, porque na época eu não tinha experiência e noção como hoje.
Você perguntou sobre o bug de impressora, onde eu sou muito apaixonado nessa feature, de transformar algo digital em físico, ou seja, imprimir um dado. Na verdade, no início eu não implementei nenhuma conexão com a impressora térmica, foi usando um app terceiro que eu simplesmente abria via intent passando parâmetros de texto e esse aplicativo imprimia, aliviando muito o processo de desenvolvimento nessa parte. Mas, havia alguns motivos que mais tarde eu descobri o porque de nao imprimir, como configuração da linguagem a ser imprimida, configuração de imagens ou QR-CODE na nota que por algum motivo a impressora não imprimia nada e o pior, o cabo de ethernet simplificado parou de funcionar. Mas, após muita dor de cabeça fui descobrindo item por item e fui melhorando a configuração para simplesmente imprimir uma nota com os dados mais básicos e necessários.
Impressão é chato mesmo. Mas usando um app de terceiro a coisa fica mais simples. Tenho 2 sistemas que usam impressora térmica e ambos usam o rawbt. Eu tinha, inclusive, feito a integração mas o rawbt é mais simples. uma coisa ja testada por milhões de desenvolvedores no mundo todo com certeza é melhor que uma que você fez manualmente.