Why this early release instead of a gap of 7 days?

I am traveling this Saturday and Sunday, so here is an early release of this techletter for you.

Summary of useful links

  • How the Boeing 737 Max Disaster Looks to a Software Developer: This one is a little old write-up, but I think everyone in the software development field should read it at least once. It is a good reminder of how hacks put into the system to “make things work” can have disastrous consequences, more so if lives are on the line. But it also is a wake-up call for us to regularly remind ourselves how not to prioritize money or delivery pressure over safety. Two lines that stand out:

the major selling point of the 737 Max is that it is just a 737, and any pilot who has flown other 737s can fly a 737 Max without expensive training, without recertification, without another type of rating.

and

Those lines of code were no doubt created by people at the direction of managers. Neither such coders nor their managers are as in touch with the particular culture and mores of the aviation world as much as the people who are down on the factory floor…

  • For learning stuff, this video talks about how to learn pretty much anything. The good part I like about it is that it highlights the importance of fundamentals like developing focus through practice, reducing distractions, proper sleep, and exercise. While this is 10-minute refresher and I believe misses few very important steps, and a far better course on Coursera which takes approximately 12 hours to complete is Learning How to Learn: Powerful mental tools to help you master tough subjects.

  • If you are a developer working with JVM stack and have not checked out Kotlin, I would highly recommend you to do so. It is not just for Android (though widely used there). It is a multi-paradigm language and provides many simple yet powerful constructs to write concise yet readable code. And above all, it has very high compatibility with Java (though not 100% as claimed at some places, but higher than other few languages on JVM). If you start learning Kotlin, you will come across coroutines, and remember they are not exactly the same as Java’s executors, as I have seen some beginners get confused.

  • If you love making lists, you will love this post which I have successfully used multiple times to generate ideas and get over writer’s block. It recommends making a list of 100 things in a single sitting to force your brain to think. The concept called 100:10:1 takes this further, and is more powerful in filtering your ideas. You can read about it here (source), here and here.

Extremely Good Books

  • An extremely good book is Designing Data-Intensive Applications. I have read it once, I will read it again, and I would recommend you to do so at least once as well if you are even closely related to software development.
  • Similarly, if you code in Java, read Java 8 in Action to understand how things happen behind the hood in Java streams.

More from Github

Continuing from the previous techletter, here are some more must-know projects on gitHub.com

  • awesomo is an extensive list of interesting open-source projects written in ะก, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala, etc.
  • mermaid is an awesome library to make flowcharts, Gantt charts and sequence diagrams in javascript. It integrates with apps like Typora to quickly create markdown documents with flowcharts.

More to come in the next techletter. Happy Reading.