The Changelog The Changelog #370

The making of GitHub Sponsors

Devon Zuegel is an Open Source Product Manager at GitHub. She’s also one of the key people responsible for making GitHub Sponsors a thing. We talk with Devon about how she came to GitHub to develop GitHub Sponsors, the months of research she did to learn how to best solve the sustainability problem of open source, why GitHub is now addressing this issue, the various ways and models of addressing maintainers’ financial needs, and Devon also shared what’s in store for the future of GitHub Sponsors.

read more

Flavio Copes

How to work from home without going crazy

We plan to dig deep into this topic on Brain Science (listen and subscribe here), but until then, here’s some great advice from Flavio Copes based on many years of working remotely. I’m an introvert, I am independent and I like doing things alone. This post is heavily influenced by this fact, and you might find that what I say is madness if you’re an extrovert who needs people around to be productive. The first suggestion I have for you is to have a dedicated office space. It does not need to be in another building, but it might be necessary if you have lots of people in your house. I do have a dedicated room, with a door I can close. It’s very helpful because it avoids.. interruptions.

read more

Gergely Orosz

An engineering team where everyone is a leader

If you are a leader or someone aspiring to lead, consider this approach to engineering management. This post is a summary of the approach and tools I’ve used to build an engineering team, where everyone is a leader - including sharing of the project management expectations Google Docs guide that my team uses. It’s also a reflection on the pain points that came with this approach. I can’t advocate for how universally this approach could work. However, based on my results, it is something I suggest engineering leaders - especially frontline managers - consider as an option.

read more

Segment Icon Segment – Sponsored

Measuring the impact of 95,000 landing pages

When you’re a cash-strapped nonprofit and you have to compete for attention against multi-billion dollar public companies, you have to get creative with growth. This is how Upsolve produced high-quality landing pages focused on topics related to their audience and then complemented those with “programmatic locality-specific landing pages” based on data from Segment’s Identities feature. Of the content we’d produced, only ~10% of our conversions were coming from our editorial articles while ~70% were coming from state and city page templates (created programmatically). Based on the data we saw in Personas, we all quickly saw where our growth was coming from and devoted the time previously set aside for editorial toward improving the quality of our programmatic content. It’s been so successful, we’ve now created over 95,000 landing pages!

read more

logged by @logbot permalink

Machine Learning

A booklet on machine learning systems design with exercises

This booklet covers four main steps of designing a machine learning system: Project setup Data pipeline Modeling: selecting, training, and debugging Serving: testing, deploying, and maintaining It comes with links to practical resources that explain each aspect in more details. It also suggests case studies written by machine learning engineers at major tech companies who have deployed machine learning systems to solve real-world problems.

read more

Brain Science Brain Science #6

Respect, empathy, and compassion

Mireille and Adam discuss empathy, respect, and compassion and the role each of these interpersonal constructs play in strengthening our relationships, both personally and professionally. What exactly is empathy, respect, and compassion? What are key indicator lights to be aware of when any of them are lacking or off-kilter? We also discuss Dr. John Gottman’s research on “The Four Horsemen” in relationships.

read more

DigitalOcean Icon DigitalOcean – Sponsored

How to build and install Go programs

From the how to code in Go series on DigitalOcean’s Community site from our friends at Gopher Guides (Mark Bates & Cory LaNou). In Go, the process of translating source code into a binary executable is called building. Once this executable is built, it will contain not only your application, but also all the support code needed to execute the binary on the target platform. This means that a Go binary does not need system dependencies such as Go tooling to run on a new system, unlike other languages like Ruby, Python, or Node.js.

read more

logged by @logbot permalink

Eve Martin

WebSockets vs Server-Sent Events

Eve Martin: Sometimes we need information from our servers instantaneously. For this sort of use case our usual AJAX request/response doesn’t cut it. Instead, we need a push-based method like WebSockets, Long Polling, Server-Sent Events (SSE) and - more recently - HTTP2 push. In this article, we compare two methods for implementing realtime - WebSockets and Server-Sent Events, with information on which to use and when. This is a nice, reasoned comparison of the two technologies: advantages, stumbling blocks, open source resources, etc.

read more


type less, do more, wayyy faster with this full-featured terminal file manager

I logged this almost exactly 1 year ago, but nnn is worth another look: it is also a disk usage analyzer, a fuzzy app launcher, a batch renamer and a file picker. The plugin repository has tons of plugins and documentation to extend the capabilities further. You can plug new functionality and play with a custom keybind instantly.

read more

InfoQ Icon InfoQ

How Apple plans to address the systemic issue that made iOS 13 so buggy

iOS 13’s rollout was soooo buggy. Most notably: backgrounded apps were routinely being killed for no reason. What was to blame? …Apple top executives Craig Federighi and Stacey Lysik identified iOS daily builds’ instability as the main culprit for iOS 13 bugs. In short, Apple developers were pushing too many unfinished or buggy features to the daily builds. Since new features were active by default, independently of their maturity level, testers had a hard time to actually use their devices, which caused Apple’s buggy releases. Here’s how they plan to address the problem: Federighi suggested leaving all new features disabled by default, so testers can ensure no regressions make it into the latest build and avoid being impaired by new bugs. New features shall be enabled on-demand by testers using a new internal Flags menu, making it possible to test each new feature in isolation. How did it take Apple to the end of 2019 before they discovered feature flags? I hope it helps 🤞

read more

Go Time Go Time #108

Graph databases

Mat, Johnny, and Jaana are joined by Francesc Campoy to talk about Graph databases. We ask all the important questions — What are graph databases (and why do we need them)? What advantages do they have over relational databases? Are graph databases better at answering questions you didn’t anticipate? How is data structured? How do queries work? What problems are they good at solving? What problems are they not suitable for? And…since we had Francesc on the hot seat, we asked him about Just for Func and when it’s coming back.

read more

Manuel Vila

Do we really need a web API?

Most of the time, web APIs are not functional requirements. They don’t add any value to the product we are building. They are just a necessary evil so the frontend can communicate with the backend. But is that really the case? Wouldn’t it be possible to get rid of these web APIs? In response to this, Manuel built Liaison, which is still in alpha, but aims to seamlessly bridge the divide between frontend and backend without having to formalize an API between the two. From reading the post, it appears to be akin to our old friend, RPC. If you are interested enough to dive into the code, he’s put together a RealWorld example which holds up quite well to the competition on a lines-of-code-to-implement basis.

read more

Alberto Marchetti Medium

Get notified when your k8s cron jobs fail

Alberto Marchetti: What do you do when you have CronJobs running in your Kubernetes cluster and want to know when a job fails? Do you manually check the execution status? Painful. Or do you perhaps rely on roundabout Prometheus queries, adding unnecessary overhead? Not ideal… But worry not! Instead, let me suggest a way to immediately receive notifications when jobs fail to execute, using two nifty tools…

read more

Practical AI Practical AI #66

Build custom ML tools with Streamlit

Streamlit recently burst onto the scene with their intuitive, open source solution for building custom ML/AI tools. It allows data scientists and ML engineers to rapidly build internal or external UIs without spending time on frontend development. In this episode, Adrien Treuille joins us to discuss ML/AI app development in general and Streamlit. We talk about the practicalities of working with Streamlit along with its seemingly instant adoption by AI2, Stripe, Stitch Fix, Uber, and Twitter.

read more

Liz Fong-Jones Increment

Code less, engineer more

The new issue of Increment is out and it’s all about team dynamics. This piece by Liz Fong-Jones is 🔥 Effective teams write less software, and writing less software enables teams to be more effective. This may sound counterintuitive at first: Aren’t we all here as engineers to write software? Isn’t our productivity measured in lines of code? To dispel this illusion, we need to stop conflating what we sometimes do with why.

read more

0:00 / 0:00