Friday, April 03, 2020

Friday Links

Goto: A Dozen New Masterclasses Are Now LIVE!
https://blog.gotocon.com/2020/04/02/a-dozen-new-masterclasses-are-now-live/

Changing the Approach to Debugging in Ruby with TracePoint
https://blog.appsignal.com/2020/04/01/changing-the-approach-to-debugging-in-ruby-with-tracepoint.html

AppSignal Now Supports Node.js: Roadmap for the Coming Weeks
https://blog.appsignal.com/2020/04/01/appsignal-now-supports-node-roadmap-for-the-coming-weeks.html

Code Search for Google open source projects
https://opensource.googleblog.com/2020/04/code-search-for-google-open-source.html

Why You Should Ignore All That Coronavirus-Inspired Productivity Pressure
https://www.chronicle.com/article/Why-You-Should-Ignore-All-That/248366/

See Everyone with the Google Meet Grid View Extension
https://www.controlaltachieve.com/2020/03/meet-grid-view.html

Optimizing Ruby Lazy Initialization in TruffleRuby with Deoptimization
https://engineering.shopify.com/blogs/engineering/optimizing-ruby-lazy-initialization-in-truffleruby-with-deoptimization

Eclipse Theia Offers a ‘True Open Source Alternative to Visual Studio Code’
https://thenewstack.io/eclipse-theia-offers-a-true-open-source-alternative-to-visual-studio-code/

Pay Analysis Update: Examining Equal Pay at Buffer in 2020
https://open.buffer.com/2020-pay-analysis/

PlanITPoker
https://www.planitpoker.com/

RailsConf 2020.2 Couch Edition
http://railsconf.com/

xkcd: Pathogen Resistance
https://xkcd.com/2287/

Tech Debt and the Pragmatic Middle Ground
https://blog.pragmaticengineer.com/tech-debt/

Fedora's Git forge decision
https://lwn.net/Articles/816282/

dry-rails
https://dry-rb.org/gems/dry-rails/0.1/

Deploys at Slack
https://slack.engineering/deploys-at-slack-cd0d28c61701

CentOS: Git Forge decision
https://blog.centos.org/2020/03/git-forge-decision/

Podcasts


Sorbet: Typed Ruby with Dmitry Petrashko
https://pca.st/d046m2v4

What Does COVID-19 Mean for Cities (and Marriages)?
https://pca.st/4yd9m07x

Remote Team Management with Ryan Chartrand
https://pca.st/au65wer9

Special: First, be human – Thoughts on the crisis from Reid Hoffman
https://pca.st/ubw64tme

Universal Basic Income: Alaska Style
https://pca.st/yfo4i0ke

Cloud Kitchen Platform with Ashley Colpaart
https://pca.st/wvxshy4m

Friday, March 27, 2020

Letting your CEO deploy to production

"One click" deploy (*)
Recently our CEO Raj Kumar spent a week in our Barcelona office where the majority of our engineering department is located.

I was working on some ideas for him to meet the team and get some insights into our daily work. While most of the company is aware of UI/UX and front-end changes we are doing to our site, some of the back-end and infrastructure work can seem like black magic. I think it is important to take every opportunity to bring this output closer to the rest of the company and especially the leadership.

By chance I watched the very good presentation “Getting Real about Managing up” by Kellan Elliott-McCrea, which contains as one example the idea of letting your CEO deploy to production.

One of the goals of our engineering team is continuous deployment. I set this out when I joined Devex to give us a far goal to aim for. I was inspired by Etsy’s Code as Craft blog and the book “Web Operations”. For me the important part was not continuous deployment itself, but all the changes in engineering culture required to achieve it. You need a good technical base from unit to integration tests, infrastructure as a code, continuous integration and a infrastructure team that is working side by side with the developers.

At the beginning this seemed to be an impossible task, QA and deployment were completely manual, there was no unit testing, no code reviews, a clear separation between developers and operations. The code itself was a mess too, with lots of moving parts, outdated libraries and no easy way to introduce testing.

But we slowly made progress, simplified the system and slowly worked our way up from deploying once in a blue moon, to once, then twice a week.

Currently we are at one deploy a day, with some manual involvement of QA. The deployment gets kicked off by a chatbot and is well documented in our engineering handbook.

The short version looks like this:
  1. Check QA status
  2. Tell the chatbot to deploy 
  3. Check the metrics
Everybody in the engineering team is already in the rotation of deploys and it is easy enough for everyone in the company to do it.

Our CEO Raj Kumar was happy to do it and sat together with our two infrastructure engineers to help him along. Because there are some permission requirements it was also easier to do it from the workstation of our lead engineer.

After some hiccups in QA the progress went smoothly and we had a new release in production.

I guess in the end he was surprised how boring it turned out to be. Which a deploy should be.





btw: we are hiring: Check out our current open positions


*) the hat is part of the deploy protocol and not a fashion statement







Friday Links

My Pandemic Zoom Setup
https://www.eugenewei.com/blog/2020/3/26/my-pandemic-zoom-setup

Two Years With Rust
http://brooker.co.za/blog/2020/03/22/rust.html

Helping FOSS conferences in the face of a pandemic
https://lwn.net/Articles/815913/

O'Reilly shutting down its conference group
https://lwn.net/Articles/815966/
https://www.oreilly.com/conferences/from-laura-baldwin.html

How to Run a Successful Online Conference
https://ianlandsman.com/run-an-online-conference/

Video conferencing with Jitsi
https://lwn.net/Articles/815751/

Remote Working: The home office desks of Basecamp
https://m.signalvnoise.com/remote-working-the-home-office-desks-of-basecamp/

The Housekeeping of the Intangible
https://randsinrepose.com/archives/the-housekeeping-of-the-intangible/

Podcasts / YouTube


Setting Objectives and Key Results in your team | Whitney O'Banner | #LeadDevLondon
https://youtu.be/Us6jaZoXgdU

Goal-Setting Workshops for Managers - Melinda Seckington | #LeadDevLondon 2018
https://youtu.be/np1rZvM9GD4

Beauty In Code
https://www.youtube.com/channel/UCWzjBygxodQkVTIQDEHjgbg/

How to Implement Good Software Development Processes with Eric Elliott
https://pca.st/episode/9f954057-d77e-4820-bcc5-2e8d07878c97

The Side Effects of Social Distancing
https://pca.st/wivktfy2

Emergency episode: Rob & Howie on the menace of COVID-19, and what both governments & individuals might do to help
https://pca.st/y7gzkrdr

Social distancing: learning to cope with a new normal
https://pca.st/w5jy3ygm

Engineer to manager and back again
https://pca.st/l1iv4xe5

Friday, March 20, 2020

Friday Links

How to survive isolation with your roommates, your partner, your kids – and yourself
https://www.theguardian.com/lifeandstyle/2020/mar/17/self-isolation-survival-guide-relationships-coronavirus

The Simplicity of Benjamin Franklin’s Daily Schedule
https://thefocuscourse.com/franklin-schedule/

A Few Small Things You Can Do as a Leader
https://randsinrepose.com/archives/a-few-small-things-you-can-do-as-a-leader/

Asynchronous Communication and Why It Matters For Remote Work
https://open.buffer.com/asynchronous-communication/

Hotspotting developer productivity.
https://lethain.com/hotspotting/

List of Free Software and Services During Coronavirus Outbreak
https://www.bleepingcomputer.com/news/software/list-of-free-software-and-services-during-coronavirus-outbreak/

What the heck is Backstage anyway?
https://labs.spotify.com/2020/03/17/what-the-heck-is-backstage-anyway/

Facade Pattern in Rails for Performance and Maintainability
https://blog.appsignal.com/2020/03/18/facade-pattern-in-rails-for-performance-and-maintainability.html

Atlassian finally unleashes free Jira tier – nearly six months late yet just in time for coronavirus crunch
https://www.theregister.co.uk/AMP/2020/03/19/atlassian_free_jira/

Tech Ecosystem Barcelona & Madrid
https://www.joppy.me/download-report/

Google Just Confirmed A Powerful Chrome COVID-19 Security Move That Will Impact All Users
https://www.forbes.com/sites/kateoflahertyuk/2020/03/19/google-just-confirmed-a-powerful-chrome-covid-19-security-move-that-will-impact-all-users/

The reckless, infinite scope of web browsers
https://drewdevault.com/2020/03/18/Reckless-limitless-scope.html

How to do effective video calls
https://martinfowler.com/articles/effective-video-calls.html

CERT partners with GitHub Security Lab for automated remediation
https://github.blog/2020-03-18-cert-partners-with-github-security-lab-for-automated-remediation/
https://securitylab.github.com/research/CERT-CVE-2020-8527-automated-remediation-scale

Rails 6.0.2.2 and 5.2.4.2 have been released!
https://weblog.rubyonrails.org/2020/3/19/Rails-6-0-2-2-and-5-2-4-2-has-been-released/


Podcasts


How coronavirus closed down Italy
https://pca.st/scko6d9z

Friday, March 13, 2020

Friday Links

pocket-reader.el
https://github.com/alphapapa/pocket-reader.el

retronym - Word of the Day : March 12, 2020
https://www.merriam-webster.com/word-of-the-day/retronym-2020-03-12

TBM 11/53: The Know-It-All CEO
https://cutlefish.substack.com/p/tbm-1153-the-know-it-all-ceo

Why cycling in Palestine is an intensely political act
https://www.theguardian.com/environment/bike-blog/2020/mar/10/why-cycling-in-palestine-is-an-intensely-political-act

How to Break Apart a Rails Monolith
https://kellysutton.com/2020/03/12/how-to-break-apart-a-rails-monolith.html

One-track minds: Using AI for music source separation
https://tech.fb.com/one-track-minds-using-ai-for-music-source-separation/

Atlassian brings rules-based automation to Jira Cloud
https://venturebeat.com/2020/03/12/atlassian-brings-rules-based-automation-to-jira-cloud/

Powerful, no-code automation now available to all Jira Cloud customers
https://www.atlassian.com/blog/jira-software/introducing-automation-in-jira

DBT: Your entire analytics engineering workflow
https://www.getdbt.com/

Amazon teases Bottlerocket, its take on Linux specifically for running containers
https://www.theregister.co.uk/AMP/2020/03/11/amazon_launches_bottlerocket_new_linux_distro_for_running_containers/

Ready for changes with Hexagonal Architecture
https://netflixtechblog.com/ready-for-changes-with-hexagonal-architecture-b315ec967749

It’s now on us to respond': A new Atlassian study finds many employees would quit if their employer didn't align with their values
https://www.businessinsider.com.au/atlassian-report-employees-2020-3/

CIA Dirty Laundry Aired
https://www.schneier.com/blog/archives/2020/03/cia_dirty_laund.html

How does Monzo keep 1,600 microservices spinning? Go, clean code, and a strong team
https://www.theregister.co.uk/2020/03/09/monzo_microservices/

How Dailymotion hacked its feature team project model to shorten time to market
https://medium.com/dailymotion/how-dailymotion-hacked-its-feature-team-project-model-to-shorten-time-to-market-618232f671da

Grab a towel and pour yourself a Pan Galactic Gargle Blaster because The Hitchhiker's Guide to the Galaxy is 42
https://www.theregister.co.uk/2020/03/09/hhgttg_42/

10 Google Ranking Factors You Shouldn’t Ignore
https://ahrefs.com/blog/google-ranking-factors/

The Elephant in the Architecturehttps://martinfowler.com/articles/value-architectural-attribute.html

this artwork does not exist
https://thisartworkdoesnotexist.com/

Building a Rails App With Multiple Subdomains
https://blog.appsignal.com/2020/03/04/building-a-rails-app-with-multiple-subdomains.html

Graylog at Scale
https://tech.xing.com/graylog-at-scale-b20aabd55cc4

Coronavirus

How to respond to COVID-19
https://www.gatesnotes.com/Health/How-to-respond-to-COVID-19

Lead Your Business Through the Coronavirus Crisis
https://hbr.org/amp/2020/02/lead-your-business-through-the-coronavirus-crisis

Coronavirus: The Black Swan of 2020
https://medium.com/sequoia-capital/coronavirus-the-black-swan-of-2020-7c72bdeb9753

Working From Home

Work in the Time of Corona
https://blog.alicegoldfuss.com/work-in-the-time-of-corona/

20 Ways COVID Made Me a Better Boss
https://www.learntoscale.us/thought-bubbles/covid-management-tips

5 tips for ramping up on remote work in a hurry
https://www.atlassian.com/blog/teamwork/remote-work-productivity/

Slack on Slack: Adapting the way we work when offices need to close
https://slackhq.com/managing-remote-work-in-slack

Virtual Conferences

Amid Coronavirus Fears, Startups Rethink the Virtual Conference
https://www.wired.com/story/amid-coronavirus-fears-startups-rethink-virtual-conference/

Run The World
https://www.runtheworld.today/

Hopin
https://hopin.to/

Podcasts

#158 The Case of the Missing Hit
https://pca.st/arllgw2h

Work, Rest, and What You Will
https://pca.st/cecb2lnl

DBT: Data Build Tool with Tristan Handy
https://pca.st/eaa7a4nv

Enter the Matrix
https://pca.st/6si7hh7j

Friday, March 06, 2020

Friday Links

The Ultimate 1-on-1 Meeting Questions Template
https://www.peoplebox.ai/t/one-on-one-meeting-template-manager-questions-list
 
One-on-one questions
https://one-on-ones.app/
 
How a 2 person startup already uses 28 other tools
https://acrossapp.com/blog/how-a-2-person-startup-already-uses-28-other-tools
 
Project LightSpeed: Rewriting the Messenger codebase for a faster, smaller, and simpler messaging app
https://engineering.fb.com/data-infrastructure/messenger/
 
Wi-Fi Chip Vulnerability
https://www.schneier.com/blog/archives/2020/03/wi-fi_chip_vuln.html
 
From one to two: how to start a successful distributed engineering office.
https://lethain.com/how-to-start-distributed-engineering-office/
 
World Bank staff call for canceling Spring Meetings — permanently
https://www.devex.com/news/world-bank-staff-call-for-canceling-spring-meetings-permanently-96683
 
How did software get so reliable without proof?
https://surfingcomplexity.blog/2020/03/02/how-did-software-get-so-reliable-without-proof/
 
The WHO sent 25 international experts to China and here are their main findings after 9 days
https://www.reddit.com/r/China_Flu/comments/fbt49e/the_who_sent_25_international_experts_to_china/
 
Production Oriented Development
https://paulosman.me/2019/12/30/production-oriented-development.html

Podcasts


Delete Your Account
https://pca.st/yhxjpwq9
Why Work Doesn't Have to Be Crazy
https://pca.st/e5k9gtxu

Friday, February 28, 2020

Friday Links

Cloud Computing Is Not the Energy Hog That Had Been Feared
https://www.nytimes.com/2020/02/27/technology/cloud-computing-energy-usage.html

Preparing for Coronavirus to Strike the U.S.
https://blogs.scientificamerican.com/observations/preparing-for-coronavirus-to-strike-the-u-s/

Google programming language scorecard: How C, C++, Dart, Rust, Go rate for Fuchsia
https://www.zdnet.com/article/google-programming-language-scorecard-how-c-c-dart-rust-go-rate-for-fuchsia/

Introducing Hanami::API
http://hanamirb.org/blog/2020/02/26/introducing-hanami-api.html

Love it or hate it, Marmite is having a massive foodie moment
https://www.theguardian.com/food/2020/feb/26/love-it-or-hate-it-marmite-is-having-a-massive-foodie-moment

What is a Tech Lead? The 4 worst things about this promotion
https://www.getclockwise.com/blog/what-is-a-tech-lead-the-4-worst-things-about-this-promotion

Some MVP and Experiment Tips
https://cutle.fish/blog/mvp-and-experiment-tips

Second Sock Syndrome – What It Is and How to Fight It
https://sheepamongwolves.net/2018/09/second-sock-syndrome-what-it-is-and-how-to-fight-it/

Slack etiquette at Zapier
https://zapier.com/blog/slack-etiquette-at-zapier/

Google releases Lighthouse web dev extension for Firefox
https://9to5google.com/2020/02/24/google-lighthouse-extension-firefox/

Who cares about Emacs?
https://opensource.com/article/20/2/who-cares-about-emacs

The Causal Analysis of Cannibalization in Online Products
https://codeascraft.com/2020/02/24/the-causal-analysis-of-cannibalization-in-online-products/

Coronavirus COVID-19 Global Cases by Johns Hopkins CSSE
https://www.arcgis.com/apps/opsdashboard/index.html#/bda7594740fd40299423467b48e9ecf6

Podcasts


A Mathematician's Guide to Beauty
https://pca.st/0it5pen1

The One About Time Management
https://pca.st/vxtrjjl9

Friday, February 21, 2020

Friday Links

Debian discusses how to handle 2038
https://lwn.net/Articles/812767/

The Pyramid of Unit Testing Benefits
https://blog.pragmaticengineer.com/unit-testing-benefits-pyramid/

Internet of Things Candle
https://www.schneier.com/blog/archives/2020/02/internet_of_thi.html

A Blueprint for Internal Open Source
https://medium.com/@SkyscannerEng/a-blueprint-for-internal-open-source-7169745018c2

Open sourcing DataHub: LinkedIn’s metadata search and discovery platform
https://engineering.linkedin.com/blog/2020/open-sourcing-datahub--linkedins-metadata-search-and-discovery-p

Titan Security Keys - now available in Austria, Canada, France, Germany, Italy, Japan, Spain, Switzerland, and the UK
https://security.googleblog.com/2020/02/titan-security-keys-now-available-in.html

When To Be Concerned About Concerns
https://blog.codeship.com/when-to-be-concerned-about-concerns/

About Rails concerns
https://medium.com/@carlescliment/about-rails-concerns-a6b2f1776d7d

Tech Debt Developer Survey Results 2020 - Impact on Retention
https://codeahoy.com/2020/02/17/technical-debt-survey/

Survey results: What makes a company People-first?
https://wildbit.com/blog/2020/02/17/what-makes-a-people-first-company

8 Best Professional Development Goals for Managers
https://getlighthouse.com/blog/professional-development-goals-for-managers/

Podcasts


The One About Meetings (Pt. 1)
https://pca.st/szmckrif

The One About 1:1s
https://pca.st/pt7fs88u

The Pragmatic Programmers
https://pca.st/W76B

Back to Agile's basics (Uncle Bob)
https://pca.st/sl1posnk

Intro to Rust programming
https://pca.st/qdo2bn9s

Good tech debt
https://pca.st/6tyd3ydl

The Data Exchange with Ben Lorica
https://pca.st/ppah3ejp

Productionising real-world ML data pipelines
https://pca.st/6a8gt1dm

Monday, February 17, 2020

Using multiple git configurations

It is fairly common that you might be contributing to multiple git repositories which make different git configuration necessary.

Mine and probably the most common case is that I am using different contributor email addresses for my private and work git repositories. You might also want want to have separate global git ignores or other options that differ in multiple repositories.

The way I do it is having one ~/.gitconfig which looks like this:

[user] 
  name = Christof Damian 
  email = christof@damian.net 

[core] 
  excludesfile = ~/.gitignore_global 

[includeIf "gitdir:~/devex/"] 
  path = ~/.gitconfig_devex 

This defines the defaults for my name, email and a global gitignore. It also tell git to look at another git config for all repositories that are below the ~/devex/ folder. This file is very short for me, as it just changes the email address (~/.gitconfig_devex):

[user] 
  email = christof.damian@devex.com 

The ~/.gitignore_global is just a normal gitignore file, which excludes all the files the editors or tools I use create. It could for example look like this:

*~ 
/.project 
# whatever files your local editor/tools config generates

You could use for example https://www.gitignore.io/ to generate this

Friday, February 14, 2020

Friday Links

Supercharge your command line experience: GitHub CLI is now in beta
https://github.blog/2020-02-12-supercharge-your-command-line-experience-github-cli-is-now-in-beta/
3 (+1) Questions for impactful Sprint Goals!
https://medium.com/@SkyscannerEng/3-1-questions-for-impactful-sprint-goals-48faa776aac3
Getting Started With System Tests in Rails With Minitest
https://blog.appsignal.com/2020/02/12/getting-started-with-system-tests-in-ruby-with-minitest.html
I love Free Software Day 2020
https://fsfe.org/campaigns/ilovefs/
Unlearning toxic behaviors in a code review culture
https://medium.com/@sandya.sankarram/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c
Agile as Trauma
https://doriantaylor.com/agile-as-trauma
Rotary Cellphone
http://justine-haupt.com/rotarycellphone/
Interview with Yukihiro Matsumoto: Ruby is Designed for Humans, not Machines
https://hackernoon.com/interview-with-yukihiro-matsumoto-ruby-is-designed-for-humans-not-machines-1fee3610
How to Use the Distance Matrix API
https://cloud.google.com/blog/products/maps-platform/how-use-distance-matrix-api
Mythical man month : 10 lines per developer day
https://blog.ndepend.com/mythical-man-month-10-lines-per-developer-day/
THE CYBERIZER!
https://www.jwz.org/blog/2020/02/the-cyberizer/
How Big Technical Changes Happen at Slack
https://slack.engineering/how-big-technical-changes-happen-at-slack-f1569d25ee7b

Podcasts / Videos


Getting Real about Managing up
https://www.infoq.com/presentations/management-challenges/
Presto with Justin Borgman
https://pca.st/ru0uespu

Friday, February 07, 2020

Friday Links

3 research-backed principles that help you scale your engineering org
https://www.atlassian.com/blog/technology/3-research-backed-principles-scaling-engineering

Paris mayor unveils '15-minute city' plan in re-election campaign
https://www.theguardian.com/world/2020/feb/07/paris-mayor-unveils-15-minute-city-plan-in-re-election-campaign

UN poverty expert's visit shines light on struggles of Spain’s poor
https://www.theguardian.com/world/2020/feb/06/un-poverty-experts-visit-shines-light-on-struggles-of-spains-poor

Street View’s 15 favorite Street Views
https://www.blog.google/products/maps/street-views-15-favorite-street-views/

A new hash algorithm for Git
https://lwn.net/Articles/811068/

Istio as an Example of When Not to Do Microservices
https://blog.christianposta.com/microservices/istio-as-an-example-of-when-not-to-do-microservices/

Monoliths are the future
https://changelog.com/posts/monoliths-are-the-future

Browsers, web sites, and user tracking
https://lwn.net/Articles/811532/

Austerity, gentrification and big tunes: why illegal raves are flourishing
https://www.theguardian.com/music/2020/feb/05/austerity-gentrification-and-big-tunes-why-illegal-raves-are-flourishing

What we do and don’t know about the 2019-nCoV coronavirus
https://80000hours.org/2020/02/experimental-episode-about-2019-ncov-coronavirus/

NYC Parks Are Using a Designer’s ‘Tree Font’ to Plant Secret Messages with Real Trees
https://mymodernmet.com/nyc-trees-font-katie-holten/

AppSignal Ruby Gem 2.10: Better Diagnose (And More)
https://blog.appsignal.com/2020/02/05/ruby-gem-2-10.html

This Week in Programming: Forget Microservices, Monoliths Are the Way Forward
https://thenewstack.io/this-week-in-programming-forget-microservices-monoliths-are-the-way-forward/

Retrium: Public Team Rooms
https://blog.retrium.com/public-team-rooms

thispersondoesnotexist
https://www.thispersondoesnotexist.com/

The journey to fast production asset builds with Webpack
https://codeascraft.com/2020/02/03/production-webpack-builds/

Facebook’s Platform Opportunity
https://stratechery.com/2020/facebooks-platform-opportunity/

Letters To A New Developer: Develop empathy
https://letterstoanewdeveloper.com/2020/02/03/develop-empathy/

Things I Believe About Software Engineering
https://blog.wesleyac.com/posts/engineering-beliefs

Google Maps Hacks
http://www.simonweckert.com/googlemapshacks.html

NSA Security Awareness Posters
https://www.schneier.com/blog/archives/2020/01/nsa_security_aw.html

Integrated systems for integrated programmers
https://m.signalvnoise.com/integrated-systems-for-integrated-programmers/

The dark side of expertise
https://lwn.net/Articles/809556/

Podcasts / YouTube


Leadership is Language
https://pca.st/ltdmqj0n

John Deere: Farm Software with Ryan Bergman
https://pca.st/84tg0458

Ryan Bergman - Walking Into Mordor: The History and Future of DevOps
https://youtu.be/k6_xlRUNzF0

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