Pedro Piñera

Home 🏚
Journal 📝
About 👨‍💻
Speaking 🎤
Photos 📸
Open Source 🐙
Lens 🔍
Wiki 📝
Books 📚


A reading list of articles and other links I use to inform my work, posted almost every weekday.

You can subscribe to my lens RSS feed.

5 December 2019

Written by Brent Simmons.

While accomplishing things — or just plain getting our work done — is important, it’s also important that not everything go in that bucket. The life where everything is measured is not really a full life: we need room for the un-measured, the not-obsessed-about, the casual, the fun-for-fun’s sake.

3 December 2019

Written by Rachel Coldicutt.

Creating this new social contract requires new norms, new institutions, new laws – and a stronger public sector, that is prepared to hold a different space: uphold different kinds of progress, measure different kinds of success, and celebrate a different kind of innovation to that of big technology platforms and venture capitalists.

26 November 2019

Written by Vijay Kolinjivadi.

Indeed, growth-oriented capitalism will "sell" you veganism as a noble practice that reflects your values and benefits your health, but it would not tell you the full story about the ongoing and long-term social and ecological consequences of industrial veganism.

25 November 2019

Written by Chris Krycho.

Saying something meaningful (especially if you want to say it well) requires more than just throwing out off-the-cuff thoughts like these. It requires thought, and more than that: it requires understanding

18 November 2019

Written by Jack Li.

Collaboration with a large team is challenging, and even more so if it’s on a single codebase, like the Shopify monolith. Shopify changes 40 times a day. We follow a trunk-based development workflow and merge around 400 commits to master daily. There are three rules that govern how we deploy safely, but they were hard to maintain at our growing scale. Soft conflicts broke master, slow deployments caused large drift between master and production, and the time to deploy emergency merges slowed due to a backlog of pull requests. To solve these issues, we upgraded the Merge Queue (our tool to automate and control the rate of merges going into master) so it integrates with GitHub, runs continuous integration (CI) before merging to master keeping it green, removes pull requests that fail CI, and maximizes deployment throughput of pull requests.

14 November 2019

Written by Martin Fowler.

In practice the vast majority of software projects find they need to change their requirements significantly within a few months, due to everyone learning more about the domain, the characteristics of the software environment, and changes in the business environment.

13 November 2019

Written by Claire Lew.

“If you’re too busy doing the actual work, as a manager, that’s a huge mistake.” Michael shared how you can’t truly anticipate nor respond to the needs of your team if you’re in the weeds of the work. You can’t clarify a decision or help sort out interpersonal dynamics.

12 November 2019

Written by Srinivas Rao.

If you’re serious about finding 1000 true fans for your work, you need to stop confusing attention with accomplishment and make a shift from metrics to meaning. This is not an easy shift because as a society we are programmed to seek out status. And more is the ultimate indicator of status: more followers, more money, more traffic.

11 November 2019

Written by Miguel Gaeta.

[UIImage imageNamed] is the de-facto method for loading images on iOS, so, why was it slow? It turns out, React Native was passing it absolute paths instead of referencing named images in the bundle. So, we deleted all the images again and added a few of them to the bundle and tried again. Now, the exact same images were loading in 0.1ms and the app was fast.

7 November 2019

Written by Troy Hunt.

Yes, this is screwy, but welcome to the web! I see far worse on a near daily basis and arguably, there are multiple different circumstances in which you may genuinely need a script block that contains dynamic content that's potentially malicious. But that means you can't return a hash because you simply don't know what the script block will contain. Yes, you could build the whole thing up dynamically, calculate the hash then return that in the CSP and render the script block to the page but not only is that getting super messy, it doesn't help with the maintainability problem.

6 November 2019

Written by Steph Smith.

Each time you write a page, you are a writer. Each time you practice the violin, you are a musician. Each time you start a workout, you are an athlete. Each time you encourage your employees, you are a leader. - Atomic Habits