Issue #165

12 December 2019

Issue #165
A Reading Club For Software Developers - Sign Up Here
- Paul Graham, Programmer, Writer & Investor
#CareerAdvice #Startups
tl;dr: "Schools train us to win by hacking bad tests" so we can get good grades, but not learn. Good grades reward us in obvious ways. This mindset filters into the startup world, founders want to hack the system. This is correcting itself and that makes Paul optimistic.
#CTO #Management #ManagementProcess
tl;dr: Plethora of advice on building an engineering team for growth starting with the importance of culture. "Culture isn’t just about the 'feels', it’s about "accountability and behavior." 
- Drew DeVault, Software Consultant
tl;dr: Software distribution is based on a social network, and it works well. It's a system of checks and balances refined over time. As engineers we perceive it to be slow, which is not always the case. There is a stark difference in quality between managed (Linux, Debian) and unmanaged (Chrome Extensions, PyPi) distribution. 
Git From The Inside Out
- Mary Rose Cook, Software Engineer at Airtable
tl;dr: Mary's article focuses on "the graph structure that underpins Git and the way the properties of this graph dictate Git’s behavior."
- Ben Thompson, Founder at Stratechery
tl;dr: The biggest task regulating large tech companies is to decouple platforms e.g. Apple's App Store and data aggregators e.g. Google. Ben highlights the difference in how they operate, monetize and the incentive hierarchy around each. 

Why Databases Use Ordered Indexes But Programming Uses Hash Tables
- Evan Jones, Software Engineer at Bluecore 


tl;dr: Discussion on the lower level differences between hash maps and b-trees, when to use them, and why.
Recommended Jobs

- Graphy (London) are hiring two React engineers - 
click here
- Fresh Bowl (NYC) is hiring a software engineer - click here
- Sendhil Mullainathan, Professor of Behavioral Science at University of Chicago Booth
#AI #Algorithms
tl;dr: Bias exist in both algorithms and people. Bias caused by an algorithm is symptomatic of a poor data set. If we create a framework to improve data sets - to account for everyone - an algorithm can be trained properly to negate bias. Retraining people is harder. 
- Chris Garrett, Marketing Technologist
tl;dr: If you're interested in home automation, IoT, connected devices, this tutorial introduces MicroPython - a language optimized to run on a microcontroller. 
- Linda Christin Halvorsen, UX Designer
#APIs #Design
tl;dr: As soon as users were interviewed, it dawned on Linda that APIs were very much a viewed as a product provided by her company but not internally managed like one. She highlights the re-organization that was required to rectify this. 
- The Engineering Team at Unitily
#BestPractices #Java
tl;dr: The more code you write, the more monotonous it becomes. Some languages like Java require a lot of code to be written for little functionality. In this article there is an example of writing a Java app in a "more efficient, more enjoyable way".  
- Dimitry Dolgov, PostgreSQL Contributor
tl;dr: Deep dive into the inner workings of a Postgres DB. Dimitry uses a few examples of situations he finds interesting or useful, where outside tools help illustrate what's going on under the hood. 
- Bozhidar Batsov, VP Engineering at Toptal 
tl;dr: Ruby 2.7 was released with "several highly controversial changes." This article runs through these. Although the author acknowledges the Ruby team is listening to feedback, there is mistrust as to how the language is being managed and will evolve.