Git is a very powerful tool for source code version control. Often we do POCs and no one whats to waste time while you are doing a POC so often people dont pay much attention to their commit messages(including myself). However the POC grows and you reach the point to productionize the solution, all great but what you do with your poor commit messages? Good messages are critical for good configuration management, release management, and code hygiene. So what can we do? Well git rebase can rescue us. Git rebase is also useful in other use cases where you need…
This is the second post on the series of management the non-obvious. I highly recommend you check out the first post. For the first post, I shared +20 books which was the base of the ideas of the first slidecast. This is the second slidecast. In this second slidecast, we will continue covering some non-traditional ideas and I will recommend +20 books again. Books are portals to other dimensions. We have several cognitive biases in our brains that work against us. We also live in a world that the bad things are repeat over and over and the good things…
I had experiences where every single service had to be a ticket with an architect document in order to be able to start using every new technology or service. So every engineer hates to work like that. I personally dont think thats the why to roll because thats means that process wins. Netflix is famous to have a culture where they threaten people like grown-ups. So if you have grown-ups why do you need to review every single thing people do all the time? For sure reviews are a good thing but architects as Gate Keepers are not a good…
Terraform is awesome. Terraform allow us to do declarative Infrastructure as Code and it’s really the way to roll in AWS nowadays. You really dont want to do things manually or using the mouse because they dont scale and are error-prone. Automation often takes more time to do it and get it right but in the long run, it really pays off because it scales very well. So today I want to share a specific feature in Terraform called S3 Object Bucket. This resource allows us to upload local files to S3. So let’s get started!
The Video
The Code
Cheers,
Diego Pacheco
Originally published at http://diego-pacheco.blogspot.com on February 25, 2021.
This is the 3rd and final post on the Apache Mina series. I highly recommend you check out posts I and II. tcpdump is very important networking debugging tool. tcpdump allows us to capture traffic because on a specific port. Wireshark is a visual(there is a terminal version as well) network capture and analyzer tool. We will use tcpdump to capture traffic between our mina TCP server app and a telenet client session. We will use the tcpdump capture to feed Wireshark and we will use Wireshark to understand what’s going on between the client and the server on the…
Testing is often hard. Mostly because we need data to perform some forms of testing. For Unit Tests often you can fake your own data pretty easily. However, as we move to Integration Tests, E2E Tests, Big Data Data Science Discovery, Product(PO) Acceptance Testing, PO Discovery we might have a scaling issue. For sure you could build a tactical solution where you hardcoded all domains/data-sets of your company but this approach is highly coupled with systems database and is hard to maintain. So there are the tools and startups on the land of Synthetical Data Generation where they use metadata…
This is the second post on the Apache Mina series. In the first post, I show how to build a simple TCP Application using Mina, Xstream and we did create a Client which we test with Junit and also Telnet. Now we will do something a bit different, we will add SSL support. So there is another video where I explain in detail how we can generate the keys, also test the application using the OpenSSL client in Linux. So Let’s get started!
The Video
The Code
Cheers,
Diego Pacheco
Originally published at http://diego-pacheco.blogspot.com on February 25, 2021.
Apache Mina is a rock-solid framework to build high performant network applications. Mina provides sockets using NIO Framework with non-blocking IO fashion. Using mina you can build a TCP Server/Client, FTP Server, SShd lib, or an XMPP server. Today I want to explore a TCP Server/Client simple application protocol using Apache Mina. So I made a simple POC so how the application working and also used Junit to test the app. There is a video explaining in detail how it works. So Let’s get started.
The Video
The Code
Cheers,
Diego Pacheco
Originally published at http://diego-pacheco.blogspot.com on February 25, 2021.
Caches are often used as a cheap way to reduce latency and improve the performance of applications. Often we leverage libraries like Guava because they are rock solid and have lots of functionality but at the same time, all libs using Guava could easily bring a big jar hell and distributed monolith if you dont be cautious about your shared libraries. So if you are building a service might be completely fine to use more libs but as you build shared libs that could be really bad. So It’s always precise and lean about your dependencies. So today I want…
Are you crazy? No, I’m serious. Testing in production is hard dont get me wrong. There are several requirements like Observability, automation, and guardrails. However even being hard, a test in production is needed. Pre-production testing has limits. basically, we cannot predict all possible failure scenarios beforehand therefore we need a new approach a new mentality. It’s much better to recover from failure rather them try to prevent failure. Anti-fragility is the key of everything, meaning: isolate failure and recover rather than trying to prevent failure. Testing in production at the end of the day will be hard and will…
Brazilian, Software Architect, SWE(Java, Scala, Rust, Go) SOA & DevOps expert, Author. Working with EKS/K8S. diegopacheco.github.io (Opinions on my own)