Saying goodbye to some legacy code

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

January 28, 2020 · 3 min · Christof Damian

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://kubernetes.io/blog/2020/01/22/kubeinvaders-gamified-chaos-engineering-tool-for-kubernetes/ Rails is Fast: Optimize Your View Performance https://blog.appsignal.com/2020/01/22/rails-is-fast-optimize-your-view-performance.html PHP in 2020 https://stitcher.io/blog/php-in-2020 Linkedin: Global Talent Trends https://business.linkedin.com/content/dam/me/business/en-us/talent-solutions/resources/pdfs/global-talent-trends-2019-EMEA.pdf How I Master My Calendar on Buffer’s Distributed Team https://open.buffer.com/calendar/ Uber Has Been Quietly Assembling One of the Most Impressive Open Source Deep Learning Stacks in the Market https://towardsdatascience.com/uber-has-been-quietly-assembling-one-of-the-most-impressive-open-source-deep-learning-stacks-in-b645656ddddb We’re approaching the limits of computer power – we need new programmers now https://amp.theguardian.com/commentisfree/2020/jan/11/we-are-approaching-the-limits-of-computer-power-we-need-new-programmers-n-ow snowflake - Your Cloud Data Platform 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. https://lethain.com/eng-brand/ Podcasts 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 https://pca.st/4m4fu70k

January 24, 2020 · 1 min · Christof Damian

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 ...

January 17, 2020 · 2 min · Christof Damian

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 ...

January 10, 2020 · 1 min · Christof Damian
Book Review: The Phoenix Project and The Unicorn Project

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 The Phoenix Project The Unicorn Project

January 7, 2020 · 2 min · Christof Damian