Posts

Management: The non-obvious II

Image
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 are faiding. So it's really important to spot and think about it. Often we think we have all the answers and just need to execute something, is that so? They allow us to see things we were not seeing before. So I hope you guys like it. Let's get started.

Architects as Gatekeepers

Image
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 thing. In general Gate Keepers(DevOps Engineers) as well is as bad as Arch as Gate Keepers. I have mixed feelings but personally, I dont think there is value in having Gate Keepers which is a very poor solution and IMHO a poor usage of people's times. So Why gate Keepers exist? 

Terraform S3 Bucket Object

Image
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! 

Networking Troubleshooting/Debugging with Wireshark & tcpdump

Image
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 network stack. Wireshark has a killer feature to follow TCP flow: meaning you can see all exchanges from client and server. So I made a video showing in detail this whole thing. So Let's get started.

Synthetic Data Generation and Java Faker

Image
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 to understand databases and generate data because of constraints like size, type of data, verifications(CPF for Brazil, SSN for the US). This approach is hard but I believe is the future. Today I want to show something in that direction, but much more simple and maybe a starting point? Which is Java-Faker  which is similar to Faker.js . 

Apache Mina TCP Server using SSL

Image
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!

Building a TCP Server with Apache Mina

Image
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.