Your personal development happens amidst the atomic habits! Read daily!

SUNDAY, DECEMBER 6, 2020 12:00 AM    

What have you done to get yourself equipped and prepared for the new year ahead? That could be getting into courses to up skill yourself. It could be a career switch to a new role with broader/specialised job description as you think is better for your own career. Whatever those maybe, what matters more are often not found in the big decisions as mentioned. Rather, they are found in your daily habits. Reading one technical article a day. Figuring out how to earn 1 buck from your investments a day. The power of atomic habits creates that change you wish to see. How are you improving today?


In this article, I’ve curated some articles I’ve put time to read through the past weeks to share with you all. Its broadly general topics and technical topics.


I’ve attached the youtube briefly explaining about the book atomic habits by James Clear.





General



While people are paying to even get into the beta testing for starlink, this has been a consistent business strategy to acquire capital by the famous Elon Musk for Tesla’s cybertruck. Perhaps this is a classic example of not leaving any money on the table. If people are willing to pay for it, then just take it and also put yourself on a position to provide a minimal standard of quality.



Uniting the local boookshops and allowing them a platform to establish their online presence. A short description of what they do


It allows independent bookshops to create their own virtual shopfront on the site, with the stores receiving the full profit margin – 30% of the cover price – from each sale. All customer service and shipping are handled by Bookshop and its distributor partners, with titles offered at a small discount and delivered within two to three days


Really amazing how people are taking that leap of faith to stand for what they believe in and actually pursues it. Its definitely one of the most rewarding feeling to see what you believe in takes fruit and gaining traction.



  1. Good writing is clear
  2. Good writing is cohesive
  3. Good writing has emphasis
  4. Good writing is concise


While it is indeed affecting our visibility of the beautiful universe, it is interesting to see how these bright artificial lights are actually affecting nature and its nocturnal sleep cycle.



It is always more insightful to hear what are non FAANG companies doing on their engineering front. With a more realistic set of resources and limitations to one of your own ideas, it gives better and more insightful perspectives. These perspectives can serve as role models or lessons to learn.




It is a really insightful article to look at our daily life activity (video call) from a different lens. Its heartening to hear how the disability does not deter companies from valuing the skill and results of these people.


Otter, google meets, Zoom, these are tools that are specialized at what they do and thus integration of services can often times be more valuable than we engineers can imagine. While it makes sense to build your features in-house but that will probably pale in comparison to companies which are specialized and focused on the feature.


For example, zoom wishes to do caption but that would not be as comprehensive as Otter which is a tool specialised for caption capturing.



Self driving was never imaginable a decade ago and here we are putting human into the hands of software to beta-test the possibility of human free driving. Amazing work and article sharing some user experiences through those tests.



Saas software is definitely one tool you have to consider investing time and effort into. Build once and leverage. Build your own cash cow. Find a strong use-case you can personally resonate with, and get down into being a problem solver. Find your ways to put your product out there for your customers.




Technology



While it is an interesting idea, you can check out the comments for this article here.
Simple is better. Just write a decent readme.md and that already serves the purpose of documentation: let other developers understand what is going on with this tool, how to use it, when to use it, and what are the edge cases not covered. This might be an example of over-engineering and making the possibly-best solution more complicated than it already is.



Check out what you get when you type


npm list -g


These are packages that you want to make sure are used commonly and not isolated to any projects you are working on.



Every line of code comes at a cost: maintenance. To avoid paying a large price for every line of code written, we build reusable components.


  • Repeat your code to avoid creating dependencies, but do not repeat yourself to manage them.
  • Split your code by separating out hard-to-write pieces of code with frequently-changed ones.
  • Layer your code by building simple-to-use APIs out of simpler-to-implement parts. A component is made up for even smaller components like that of a lego.

Genuinely, this is one piece of bad writing, but the essence is paramount. Write code that requires as little maintenance in the future. Writing readable code lowers your maintenance cost. Writing test lowers maintenance cost. On and on; if you just take a moment to think through, are there exceptions to good coding practices that ends up actually creating more maintenance cost? Do leave your comments below for discussion!



It is built around the popular AMQP protocol. What is this protocol
https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol


RabbitMQ is often summarized as an “open source distributed message broker”
Apache Kafka is described as a distributed event streaming platform; focusing on facilitating raw throughput.


If you ever want to decide between thee two applications, consider the following

  • What skills are needed to operate these services
  • What is the strength of its surrounding developer community
  • What does these two services excel at?

If you want to consider use-cases which has more specific routing needs and per-message guarantees, consider RabbitMQ. This service is created with these use-cases in mind and thus serves these use-cases more specifically.


The developer community around these two services have been going steadily. So that makes this factor (at least for these two services in particular) negligible. Its a tie!


RabbitMQ do have its own kubernetes operator. So you can consider leveraging on that for your livechat services if that is what you wish to pursue in the long run. When you are using Kubernetes, there are much more opportunities to leverage your resource and the CICD’s innovations.


it is interesting from how I managed to learn at least 5 new concepts from a single article. Definitely this scope of work is hugely unfamiliar to me. While i am in a stage of my engineering journey to explore more deep-tech tools for more specific business use-cases. I have to stay ahead my the current situations i am exposed so i can be ready as i start to walk down the growth path I’ve set for myself when i choose to leave the comfort of my full time to pursue my own idea.


The new concepts i’ve learnt are mainly:

  1. There exists something called binary-based stream protocol
  2. What is AMQP? Advanced Message Queuing Protocol
  3. There are actually such a thing call streaming use-cases.


This is a good article to help you understand the difference between git rebase and git merge. Going back a step to the purpose of a git, it is to keep your source of truth on the master branch. If there is a bug, you can revert back, track back, hunt it down with ease and get it sorted out without having to pull out all your hair. Rebase while it keeps your history clean does not entirely prioritize or set you up for the purpose as mentioned earlier. It makes the debugging harder if the feature branch you are rebasing is vast and has thousands of commit. That makes the entire debugging process more tedious than its needed to be in the context of git. A good fundamental read to get yourself up to date on the use-cases of git.


There is a new learning called git bisect. It allows you to use binary search to find the commit in which the bug was introduced.


You start of your bug search in this manner


git bisect start
git bisect bad # Indicate the current version is bad
git bisect good # Indicate from which commit is the version good


Once you have the the following above, git bisect will select a commit in the middle of that range (as you would expect of a binary search), checks it out and output something as the following


Bisecting: 675 revisions left to test after this (roughly 10 steps)


Once you see the message above, that indicates that the middle commit has been checked out. If that version is working correctly, type


git bisect good


if its bad, type


git bisect bad


you can check out the git bisect documentation over here.



Take care of yourself. If you do not have health, you don’t have anything else. Sales is just as important as a good product.




TLDR;


Keep reading. Keep exposing yourself to new technology, to the technological breakthroughs that are happening. Read as people share about their personal stories in developing their own solutions. Keep reading you fool! It will bring you far! Technology is advancing too fast for you to not learn how to be equipped for the new world which is unfolding before you - one breakthrough at a time. Cheers!