Friday, January 31, 2020

Friday Links

Zappos has quietly backed away from holacracy
https://qz.com/work/1776841/zappos-has-quietly-backed-away-from-holacracy/

emacs-todoist
https://github.com/abrochard/emacs-todoist

Use Emacs to get social and track your todo list
https://opensource.com/article/20/1/emacs-social-track-todo-list

How we retired Python 2 and improved developer happiness
https://engineering.linkedin.com/blog/2020/how-we-retired-python-2-and-improved-developer-happiness 

Why the Guardian will no longer accept fossil fuel advertising
https://www.theguardian.com/help/insideguardian/2020/jan/29/why-the-guardian-will-no-longer-accept-fossil-fuel-advertising

Ring Doorbell App Packed with Third-Party Trackers
https://www.jwz.org/blog/2020/01/ring-doorbell-app-packed-with-third-party-trackers/

Terraform at Flexport
https://flexport.engineering/terraform-at-flexport-c274a9d86d9f

New Enterprise IT Controls for Data Studio
https://www.blog.google/products/marketingplatform/analytics/new-enterprise-it-controls-data-studio/

Google Receives Geofence Warrants
https://www.schneier.com/blog/archives/2020/01/google_receives.html

How to Perform Concurrent HTTP Requests in Ruby and Rails
https://pawelurbanek.com/ruby-concurrent-requests

Introducing Buffer’s Family Support Fund
https://open.buffer.com/family-support-fund/

Confessions of a Recovering Proprietary Programmer, Part XVII
https://paulmck.livejournal.com/57332.html

Do more with Data Studio Community Visualizations
https://www.blog.google/products/marketingplatform/analytics/do-more-data-studio-community-visualizations/

Preserving open source software for future generations
https://archiveprogram.github.com/

Podcasts


#74 Jeff Hunter: Embracing Confusion
https://pca.st/oywbviyc

S2 Ep.2: How do you balance investment in tech debt vs customer value?
https://pca.st/xemra1n8

Bicycle - Pessimists Archive Podcast
https://pca.st/Dj0b

The Walkman - Pessimists Archive Podcast
https://pca.st/s3hq

#68 - Will MacAskill on the paralysis argument, whether we're at the hinge of history, & his new priorities
https://pca.st/kykfcpoi

Tuesday, January 28, 2020

Saying goodbye to some legacy code

When I joined Devex a bit more than six years ago most of the code base was in one large monolith. This monolith was based on Ruby On Rails and was responsible for delivering devex.com.
urn

This part was called "neo". I guess because it was a rewrite of a previous Java
version. I am not sure if it was a reference to Matrix or the Greek meaning. 

There were already some initiatives in place rewriting parts of it in different services, but the monolith was always looming in the background.
Any changes to it required increasing amount of work. It was like someone tried to put the definition of technical code into code.

I generally against rewrites, they tend to last for years and you loose a lot of knowledge that is baked into the original. I also have nothing against Monoliths. So I tried refreshing the code base by upgrading the dependencies, getting the few tests to run and making local development easier with Vagrant. I realized fairly early that this was not going to work.

So we went with a gradual rewrite. Whenever we worked on part of the site we migrated it to our new architecture (Also a Monolith or at least a Duolith).

Now six years later we finally switched off the remainders of "neo" and I thought we should celebrate in style.

Legacy code is after all something that successfully supported you for a long time and enabled you to start with something fresh. Devex wouldn't be were we are without "neo".
Cremation - ignore the dog

So we staged a proper funeral, where everybody who wanted said some words. We also collected printouts of the most annoying bits of code, some very dated looking screenshots and some email and chat conversations from the very beginning.



This was my eulogy:
Today we say goodbye to maybe the best known system at Devex.+
Neo - from Greek meaning young or new, which he was neither.
Or from the Matrix character, handsome, powerful and agile, which he was also not.

We all have memories of him that will stay with us for a long time.
We laughed about his quirks.
He had amazing depths, which brought us sometimes close to tears trying to understand him.

His heritage will live forever in our data structures.
Finally we burned the printouts, collected them in an urn (aka hummus glass) and cheered with Cava while chatting about the "good" old days.

I hope you can give your legacy code also the sendoff they deserve.

The End

Update (March 2020)

We got a present from our CEO while he was visiting the Barcelona Devex office this week....

RIP Neo Mug







Friday, January 24, 2020

Friday Links

How we built the good first issues feature 
https://github.blog/2020-01-22-how-we-built-good-first-issues/

Which of these 2020 Democrats agrees with you most? 
https://www.washingtonpost.com/graphics/politics/policy-2020/quiz-which-candidate-agrees-with-me/

KubeInvaders - Gamified Chaos Engineering Tool for Kubernetes 
https://stitcher.io/blog/php-in-2020

Linkedin: Global Talent Trends 
https://open.buffer.com/calendar/

Uber Has Been Quietly Assembling One of the Most Impressive Open Source Deep Learning Stacks in the Market 
https://www.snowflake.com/

Critical Windows Vulnerability Discovered by NSA 
https://www.schneier.com/blog/archives/2020/01/critical_window.html

How to build your company's engineering brand. 

Vancouver, Tall Buildings and Brent Toderian - The Life-Sized City Urbanism Podcast 
https://pca.st/kclh98qi

The People's Pyramid 
https://pca.st/aocfrfrd

Webflow Engineering with Bryant Chou 

Friday, January 17, 2020

Friday Links

How Slack is Silently Killing Your Productivity
https://www.userlike.com/en/amp/blog/slack-productivity

Goofonts
https://goofonts.com/

Enroll in the new Advanced Protection Program in an instant
https://www.blog.google/technology/safety-security/new-advanced-protection-program-account-security-instant/

Portfolio for Jira 3.0 and beyond
https://www.atlassian.com/blog/portfolio-for-jira/portfolio-for-jira-3-and-beyond

“Up and to the right” with Data Studio
https://www.blog.google/products/marketingplatform/analytics/up-and-to-the-right-with-data-studio/

Pros and Cons of Using structure.sql in Your Ruby on Rails Application
https://blog.appsignal.com/2020/01/15/the-pros-and-cons-of-using-structure-sql-in-your-ruby-on-rails-application.html

My polyglot Advent of Code
https://m.signalvnoise.com/my-polyglot-advent-of-code/

Engineering management: An Interview with Michael Lopp
https://www.welcometothejungle.com/en/articles/btc-michael-lopp-interview-management

Why Cassettes Are The New 45s
https://blog.discogs.com/en/cassettes-are-the-new-45s/

Floppy Sleeves
https://www.flickr.com/photos/textfiles/albums/72157682181421785

Google to phase out user-agent strings in Chrome
https://www.zdnet.com/google-amp/article/google-to-phase-out-user-agent-strings-in-chrome/

Accelerating netfilter with hardware offload, part 1
https://lwn.net/Articles/809333/

Radical Candor: Software Edition
https://medium.com/@rinaarts/radical-candor-software-edition-d4b5ad401be3

Goodbye, Clean Code
https://overreacted.io/goodbye-clean-code/

Google’s Hash Code competition is back
https://www.blog.google/technology/developers/googles-hash-code-2020/

More great memos.
https://lethain.com/more-great-memos/

Git v2.25.0
https://lwn.net/Articles/809361/

Facebook releases improved Displacement Maps for crisis response
https://research.fb.com/blog/2020/01/facebook-releases-improved-displacement-maps-crisis-response/

5 Work Culture Trends We’re Looking Out For in 2020
https://open.buffer.com/work-trends-2020/

Work Is Work
https://codahale.com//work-is-work/

Your first 90 days as CTO or VP Engineering.
https://lethain.com/first-ninety-days-cto-vpe/

I went to see a movie, and instead I saw the future
https://m.signalvnoise.com/i-went-to-see-a-movie-and-instead-i-saw-the-future/

The End of Indie Web Browsers: You Can (Not) Compete
https://blog.samuelmaddock.com/posts/the-end-of-indie-web-browsers/

AWS S3: You’re out of order.
https://m.signalvnoise.com/aws-s3-youre-out-of-order/

PostgreSQL Connection Pooling: Part 2 – PgBouncer
http://highscalability.com/blog/2020/1/8/postgresql-connection-pooling-part-2-pgbouncer.html

The last tracker was just removed from Basecamp.com
https://m.signalvnoise.com/the-last-tracker-was-just-removed-from-basecamp-com/

What I learned going from prison to Python
https://opensource.com/article/20/1/prison-to-python

It's 2020, and browsers can do amazing stuff.
https://github.com/luruke/browser-2020

Podcasts


Slack Data Platform with Josh Wills
https://pca.st/c1etmhkr

Friday, January 10, 2020

Friday Links (Post holidays podcast edition)

BeOS: The Alternate Universe’s Mac OS X
https://hackaday.com/2020/01/09/beos-the-alternate-universes-mac-os-x/

Outcome Over Output: Also Impact and Effort
https://medium.com/@kentbeck_7670/outcome-over-output-also-impact-and-effort-8f9eb0ce0dbb

DoD Enterprise DevSecOps Initiative(Software Factory)
https://software.af.mil/wp-content/uploads/2019/12/DoD-Enterprise-DevSecOps-Initiative-Keynote-v1.7.pdf

Why I’m putting Bra Theory on an indefinite hiatus
http://bratheory.com/hiatus/

Twitter is probably not the right medium for explaining the intricacies of analyzing and refactoring crusty old FORTRAN.
https://twitter.com/arclight/status/1208054147397894145

The C64 review – a captivatingly precise replica of the joys of 80s gaming
https://www.theguardian.com/games/2019/dec/19/the-c64-review-precise-replica-80s-gaming

Making instagram.com faster: Code size and execution optimizations (Part 4)
https://instagram-engineering.com/making-instagram-com-faster-code-size-and-execution-optimizations-part-4-57668be796a8

Podcasts


Alex Talks to Cycling Whistleblower Jonathan Vaughters
https://pca.st/4famg9xf

Bill Gates — The biggest success story you haven't heard
https://pca.st/k4vyfkt4

Living with Star Wars
https://pca.st/7yihyysc

freeCodeCamp with Quincy Larson
https://pca.st/9wn3tjyc

Best of: Master the Art of Staying in
https://pca.st/hi7hkux0

Alex Talks to Dayton Mayor Nan Whaley
https://pca.st/2bsdhy1i

Bruce Schneier: How insecure, unregulated tech is endangering the world
https://pca.st/1epz1i19

Kubernetes Progress with Kelsey Hightower
https://pca.st/qlwr1xh4

Amazon Kubernetes with Abby Fuller
https://pca.st/hu7ofs2l

RadioLab: 60 Words
https://pca.st/7rczgxi4

Tuesday, January 07, 2020

Book Review: The Phoenix Project and The Unicorn Project

The Phoenix Project


Someone recommended this to me and I got it for free on Kindle, so I thought I give it a go.

I kind of like the concept of a novelized version of a DevOps book.

I also liked the main characters and the general setup. It seemed a bit weird that a lot of best practices are completely unknown in the fictional company, but I guess this might also exist in the real world.

For most of the book I was question myself why I would even read it, it is close enough to what I had to deal with in some of my jobs and I don't really find my life exciting enough to be made into a book.

One of the problems I see is how rapid change is shown in the book. A very large company is turned around in less than a year and this is even managed in spite of the awful internal company politics.

The Unicorn Project


After reading The Phoenix Project I thought I give this one a try to see the other side of the fictional company. 

The Unicorn Project is the developers view of The Phoenix Project, the timelines overlap and some characters are also shared.

That being said, I found the main character of this book super annoying. Apparently she is "really, really good" and keeps repeating this a few times. There is even half a chapter, which just describes how "really, really good" she is. Getting through the book with her as the central character was painful.

As the first book, this one is also a long list of best practices put into a story. In this book it is put to the extreme though. And there is no reality where all of these could be applied in the short time-frame of the book.

If you are interested into a novelization of a developers life I would suggest to just read The Phoenix Project and skip this one.


On Goodreads