Issue #445

5 September 2023


Issue #445
pointer.io


Tuesday 5th September’s issue is presented by PostHog

PostHog's open source suite of product tools now includes performance monitoring in session recordings - see not only what your users are doing, but also how long each action takes!

The Worst Programmer I Know

— Daniel Terhorst-North


tl;dr: Dan introduces us to Tim Mackinnon, a programmer whose productivity score was consistently zero because he never signed up for any stories in the team's project management system. "Tim wasn’t delivering software; Tim was delivering a team that was delivering software." Mackinnon spent his time pairing with teammates, guiding less experienced developers, and co-creating solutions with seniors. His presence made the entire team "more effective, more productive, more aligned, more idiomatic, more fun." Dan argues against individual performance metrics, stating that they are flawed measures in a "complex adaptive system" like software development. Productivity should be measured in terms of tangible business impact, such as dollars saved, generated, or protected. 

 

Leadership Management

Three Dimensions Of Developer Productivity

— Abi Noda


tl;dr: Abi offers a three-dimensional approach to understanding and measuring developer productivity. The dimensions are Velocity, Quality, and Satisfaction. The authors argue that "any picture of productivity would be incomplete if these dimensions are not considered." Velocity is the speed at which tasks are completed, but the authors caution that the type of task, its complexity, and routineness must be considered. Quality can be both internal (code quality) and external (end-user experience). Satisfaction encompasses feelings like happiness, autonomy, and flow, and it balances the other two dimensions e.g. "an increase in velocity may lead to reduced costs, but at the same time it can lead to increased stress for developers reducing satisfaction."


Leadership Management Productivity

When, Why, And How GitHub And GitLab Use Feature Flags

— Ian Vanagas


tl;dr: Ian discusses several benefits, such as reduced stress on developers, fewer failed deployments, and a higher rate of shipping features. GitLab calculated that fixing an issue without flags is as time-consuming as "developing a whole new feature." The article explores the advantages of feature flags over long-living feature branches for collaboration. Feature flags keep code changes small, make reviews easier, and limit merge conflicts. Both GitHub and GitLab use feature flags not just based on users but also on "actors" like organizations, teams, and repositories to create consistent experiences.


Promoted by PostHog

Management Testing

Push And Pull

— Kellan Elliott-McCrea


tl;dr: Kellan discusses a model for understanding engineering processes that focuses on two elements: "Push" and "Pull." "Push" refers to the rules, templates, and expectations set by a team for a process. "Pull" is the inherent value or need that the process fulfills, making it worthwhile and valuable for team members to engage in it. The author notes that many processes fail due to a lack of "Pull," as seen in the example of weekly status updates that fade out because "It didn’t feel like anyone was reading it."


Management Process

"The quality of a leader is reflected in the standards they set for themselves."


- Ray Kroc

How To Write An Effective Progress Report

— Anna Schmunk


tl;dr: Well-crafted progress report "helps build trust by actively letting everyone know how things are going, what may have changed, and where you may need support." The article outlines the key elements that should be included in a progress report: Activity Summary, Progress Update, Challenges and Obstacles, and Next Steps and Action Items. Templates are recommended for creating quick and easy-to-read reports and Anna includes tips e.g. outlining sections and using tables for metrics. The article also discusses how to handle negative and positive feedback from stakeholders. 


CareerAdvice Guide

What Is The Easiest Way To Integrate Video conferencing - WebRTC, Jitsi, Or Other SDKs?


tl;dr: When integrating video calls, you have a few options. You can use WebRTC, the backbone of video calls, or open source tools like Jitsi, but both have complex configurations and limited customizations. Alternatively, you can use any Video SDK, but this means sacrificing either speed or customizability. With Dyte's video conferencing SDK, you can embed enterprise-class scalability, HD call quality, customization, and secure video interactions all in under five minutes. Start building with Dyte now.


Promoted By Dyte


UsefulTool

The 11 Types Of Toxic Pull Requests (According To 4.5 Million Code Branches)


tl;dr: "Half of all PRs are idle for at least 50% of their lifespan." The article identifies four root problems in PR management: (1) No formal process for getting PRs assigned. (2) No standardization or best-practice guidance for PR size. (3) Teams treat all PRs with equal importance despite different risk levels. (4) Lack of visibility into PR context or how long it will take to review until opened. To address these issues, the article suggests two potential solutions: pair programming and continuous merge.



Management Process

This Is How Quora Shards MySQL To Handle 13+ Terabytes


tl;dr: With data storage requirements in the tens of terabytes and 100,000 queries per second, Quora chose MySQL for its improved read performance. To manage rapid data growth and high write queries, Quora implemented both vertical and horizontal sharding techniques. Vertical sharding involves moving different tables to different servers, improving write scalability. Horizontal sharding, on the other hand, splits a large table into multiple smaller tables. Quora opted to build its sharding solution instead of using third-party service for low latency and easy reuse of existing logic.



Database Performance

GitHub Has Too Many Hidden Features

— Hillel Wayne


tl;dr: A variety of lesser-known but useful features on GitHub: (1) Pressing '.' on a repo main page opens it in "github.dev," an online VSCode instance where you can edit code, push commits, and review pull requests. (2) The "feature preview" option allows users to enable experimental features like rich Jupyter diffs. (3) Regex search is available both within a repo and sitewide by wrapping the search in slashes. (4) Keyboard shortcuts like 'Y' to change the URL from branch-based to commit-based, and 'I' to hide comments in a PR. (5) GitHub.dev can be used on other people's repos and saves work across browser sessions. (6) Labeling a backtick-codeblock as 'suggestion' in a PR comment shows it as a line change.


GitHub Tips

Notable Links


DevToys: A Swiss Army knife for developers.


GPT Pilot: Scalable apps while overseeing implementation.


LIDA: Generate visualizations & infographics using LLMs.


Ntfy: Send push notifications to phone or desktop.


Textbase: Framework for AI chatbots.


Click the below and shoot me an email!


1 = Didn't enjoy it all // 5 = Really enjoyed it


12345