The Curious Engineer

All blogs / Software / engineering practice

The Guardian Engineering Blog

theguardian.engineering/blog

A blog by the Guardian's internal engineering team. We build and run the Guardian website, mobile apps, editorial tools, revenue products, advertising, and data and identity platforms. This blog is where we share our experiences and approaches, including software development tips, code examples, ope

Software / engineering practiceMobile / iOS / AndroidSecurityEngineering management / careersEngineering blogs

Posts
351 from 21 Apr 2010 to 6 May 2026
Posting
now and then (4 in the last year)
Kind
company blog
Feed
https://theguardian.engineering/blog/rss.xml

2026 3

  1. Day in the Life: Stefano Le Pera
  2. Day in the Life: Stefano Le Pera
  3. Berger Hack Day: more global, more digital and more visual

2025 4

  1. Faster, cheaper, messier: lessons from our switch to self-hosted GitHub Actions
  2. Day in the Life: Simon Adcock
  3. Day in the Life: Simon Adcock
  4. The end of password pain: building frictionless authentication at the Guardian

2024 18

  1. Cooking up recipe data for the Feast app
  2. Cooking up recipe data for the Feast app
  3. Day in the Life: Alex Guild
  4. Day in the Life: Alex Guild
  5. Parsing: the merit of strictly typed JSON
  6. Parsing: the merit of strictly typed JSON
  7. Hack Day: Summer of Sport Fall of Democracy
  8. Hack Day: Summer of Sport Fall of Democracy
  9. When security matters: working with Qubes OS at the Guardian
  10. When security matters: working with Qubes OS at the Guardian
  11. Pinboard: transforming communication across the newsroom (part 3 of 3)
  12. Pinboard: transforming communication across the newsroom (part 3 of 3)
  13. Pinboard: transforming communication across the newsroom (part 2 of 3)
  14. Pinboard: transforming communication across the newsroom (part 2 of 3)
  15. Pinboard: transforming communication across the newsroom (part 1 of 3)
  16. Pinboard: transforming communication across the newsroom (part 1 of 3)
  17. The Digital Fellowship is your foot in the door to the future of news
  18. The Digital Fellowship is your foot in the door to the future of news

2023 12

  1. Large language models and generative AI: a recent hack day
  2. Large language models and generative AI: a recent hack day
  3. Making Typerighter work harder
  4. Who said what: using machine learning to correctly attribute quotes
  5. Standardisation: the merit of consistent patterns
  6. From a zebra to a rotating banner: how we stepped up your ability to Support the Guardian over the last seven years
  7. Aurora Serverless – a migration story
  8. Day in the Life: Jessica Leivers
  9. Roll Over Rollups! The Big Future of Ophan’s Historical Data
  10. Hack Day: Food Glorious Food
  11. Galaxies of the Guardian: the formation of an irregular org chart
  12. Day in the Life: Ana Pradas

2022 17

  1. Our journey towards the fastest breaking news service
  2. Recognising ‘bad actors’ in data leaks with AI
  3. Day in the Life: Raphael Kabo
  4. How we built the Guardian’s Tor Onion service
  5. Day in the Life: Abolade Akintunde
  6. Day in the Life: Simone Smith
  7. Day in the Life: Philip McMahon
  8. Day in the Life: Chloe Kirton
  9. What we learned at the International Journalism Festival
  10. Day in the Life: Georgia Ellis
  11. React islands on theguardian.com
  12. The future of work: development tooling and Covid-19
  13. How we have changed our application and hiring processes
  14. A Day in the Life: Gustavo Gava
  15. Turning the tables on accessibility
  16. Get to the point! Why we added pinned posts to the Guardian’s live blogs
  17. A Day in the Life: Mohammad Haque

2021 23

  1. A Day in the Life: Anna Beddow
  2. Guardian Software Engineering Fellowship 2022: apply now
  3. Talking sense: using machine learning to understand quotes
  4. A retrospective on a decade of innovations
  5. Pondering some Scala performance questions
  6. Cop26 Hack Day September 2021
  7. A Day in the Life: Roberto Tyley
  8. A Day in the Life: Amina Adewusi
  9. How we backfilled the Guardian’s in-house analytics tool to provide greater journalistic insight
  10. A Day in the Life: Max Duval
  11. Old the front page! The story of 1821 Mode
  12. Virtual Hack Day April 2021
  13. A Day in the Life: Yusuf Faraji
  14. A Day in the Life: Sophie Lambrakis
  15. A Day in the Life: Jonathon Herbert
  16. How technology unlocked the secretive power of ‘Queen’s consent’
  17. A Day in the Life: Rebecca Thompson
  18. How technology is powering Covid-19 investigations
  19. Virtual Hack Day November 2020 – Diversity and Inclusion Theme
  20. How we made Typerighter, the Guardian’s style guide checker
  21. How technology is powering election coverage
  22. A Day in the Life: Mahesh Makani
  23. How technology is powering environmental reporting

2020 5

  1. Pairing with Coding Black Females
  2. Guardian Software Engineering Fellowship 2021: apply now
  3. Welcome to the dark side: deploying ‘dark mode’ on the Guardian live app
  4. The Guardian’s experience implementing Sign in with Apple on Android
  5. Taming data transfer costs with Elasticsearch

2019 21

  1. How the Guardian’s engineering team supports the 24 hour news cycle
  2. Championing the reader
  3. Async Failure handling in Typescript
  4. Securing and centrally monitoring accounts in Amazon Web Services
  5. Shrinking the download size of the Guardian’s Live app on Android
  6. Migrating the Guardian website to React
  7. Software quality in a world of microservices and continuous deployment
  8. The Tools Game, building empathy with our journalists
  9. Faster PostgreSQL connection recovery
  10. Has Mary Wollstonecraft's CPU spiked?
  11. Revisiting the rendering tier part 2: migrating AMP
  12. Structured content: benefits for creating and publishing articles
  13. Life in the Guardian's Digital department
  14. First days in the Guardian's Digital department
  15. Guardian Digital Fellowship 2019: apply now
  16. Applying to the Guardian's Digital department
  17. Being part of The Guardian's Digital Fellowship
  18. Harness web development skills to create better desktop applications
  19. Revisiting the rendering tier
  20. Code readability matters
  21. Leaving Scribe

2018 9

  1. Bye bye Mongo, Hello Postgres
  2. Hello computer: introducing the Guardian Voice Lab
  3. How the Guardian co-designs with readers to improve our journalism
  4. Using Scala string interpolation to protect logged data
  5. Why the Guardian is using encrypted EC2 root volumes on AWS
  6. Our Digital Fellows share their experiences of the scheme
  7. Guardian Digital Fellowship 2018: apply now
  8. How to tackle uncertainty with design
  9. First-timer's guide to Guardian Hack Days

2017 7

  1. How not to break the Guardian website
  2. Development of the live blog at the Guardian
  3. Championing Accessibility at the Guardian
  4. Lesbians Who Tech: How do we improve diversity?
  5. How we integrated off-platform at the Guardian
  6. How our userhelp team became more digitally focused
  7. Empowering our editorial teams to impact page performance

2016 43

  1. Scanamo: simpler, safer DynamoDB access for Scala
  2. Multiple DNS: synchronising Dyn to AWS Route 53
  3. Implicits and type classes in Scala
  4. Creating a culture of learning at the Guardian
  5. Testing in Production: rethinking the conventional deployment pipeline
  6. Introducing the Guardian Digital’s self-organised Diversity & Inclusion group
  7. What we learnt from our mistakes in 2016
  8. The Assumptions Buffet
  9. Real-world software security lessons
  10. Levelling up our client side developer experience
  11. Mirrors, lights, sawdust, lasers
  12. What we’ve learnt from Startup Culture
  13. Stepping into a new world: What we have learnt from The Guardian VR
  14. “Show me the money!”
  15. Code Mesh 2016
  16. Adventures with Echo
  17. Guardian Digital Fellowship 2017
  18. The Digital Fellows: A New Hope
  19. How to publish an Android library: a mysterious conversation
  20. Testing in Production: How we combined tests with monitoring
  21. Perfect software: the enemy of rapid deployment?
  22. The Guardian coding workshop
  23. The art of the design sprint
  24. Discover new compression innovations Brotli and Zstandard
  25. Guardian Developer Blog Advent
  26. The Guardian has moved to HTTPS🔒
  27. What did you think about our live election results alert?
  28. Ada Lovelace Day 2016
  29. How we made the RioRun progressive web app
  30. Pulling back the curtain: building the Guardian's sous chef bot
  31. Git Merge 2016
  32. Coming in from the cold: Routes to becoming a software engineer
  33. The web we want hack day
  34. Enabling developer migration!
  35. Quality Assured Cinematics
  36. The Guardian Digital Fellowship: six months in
  37. Building Bonobo, the Guardian's open source API key management tool
  38. Data-Driven Quality
  39. Testing in the right places
  40. It's All About the Team
  41. Migrating Postgres to RDS without downtime
  42. Be agile in being agile
  43. The Guardian's new pairing exercises

2015 29

  1. How to add a form to a Play application
  2. Announcing the Guardian Digital Fellowship
  3. Building an offline page for theguardian.com
  4. The software testing identity crisis
  5. How I went from a tester to a developer role
  6. Open sourcing Grid, the Guardian’s new image management service
  7. Device wall of awesome: how Lego helped our digital development
  8. The User Experience of Creative Sprints
  9. Hack day report: Using Amazon Machine Learning to predict trolling
  10. Announcing the Guardian's digital networking event
  11. Maintaining an open source project at the Guardian
  12. Designing in the dark: How we created the Guardian App for Apple Watch
  13. Extra! Extra! Rethinking the Guardian Breaking News Experience
  14. Clever Compilers
  15. The best way to learn tech is to teach it
  16. Upgrading Elasticsearch: Content API’s dual stack strategy
  17. Android Subtle Prompt library
  18. Fullstack 2014 - conference report
  19. Compile-to-JavaScript languages
  20. What to listen to next? jq to the rescue!
  21. "Do what you want": building great products through anarchy
  22. How we reimagined search for the Guardian app in one day
  23. All the news that fits to print
  24. Prout: is your pull request out?
  25. Why learn about algorithms?
  26. Five months in software development at the Guardian - what we’ve learned
  27. How does the Guardian recruit developers?
  28. Hour(s) of Code – inspiring the next generation
  29. Delivering Continuous Delivery, continuously

2014 44

  1. What is the Guardian's tech stack?
  2. Problems with Selection and Range objects
  3. Functional Android
  4. Taming timeouts with a Promise
  5. Developing in the open
  6. The perils of excessive JavaScript timeouts
  7. On the ambitious but bumpy road to AngularJS 2.0
  8. MozFest 2014: creative chaos – in the best possible way
  9. Immutable data structures in Python
  10. Websockets and AngularJS
  11. #dareconf 2014 review: people skills for digital workers
  12. Pitfalls and prizes of ensuring quality mobile apps
  13. Shipping from GitHub to Maven Central and S3, using Travis-CI
  14. Parsing JSON with Scheme
  15. Eyewitness is moving from a stand-alone app to being integrated into our main offering
  16. What does it mean to be a senior developer?
  17. Case study: Guardian Soulmates redesign
  18. Introducing the new Guardian Developers Site
  19. Hacking Journalism at the MIT Media Lab
  20. Introducing the Content API v2
  21. Navigating the Guardian
  22. Creating Glassware for the Guardian
  23. A Tale Of Two Users
  24. Experience the best of the Guardian World Cup coverage with our new mobile app
  25. Engineering the iOS Guardian news app 3.0
  26. Git 2.0 released - defaults to 'better'
  27. Improving the beta commenting experience
  28. Exciting changes for the Guardian app are just around the corner
  29. Changing the Guardian's pairing test
  30. Improving Sass code quality on theguardian.com
  31. How the Guardian uses GitHub to audit GitHub
  32. New mix of stories on mobile homepage
  33. Shortening the goalposts
  34. Coming of a new age - the younger older generation
  35. HackForLiving: A weekend of calm collective thinking with AgeUK
  36. Monitoring, alerting and starting from scratch
  37. Inside the Guardian’s CMS: meet Scribe, an extensible rich text editor
  38. Robustium - improving robustness in automation testing
  39. Articles don't write themselves... or do they?
  40. Introducing wraith-donk
  41. How the Guardian successfully moved domain to www.theguardian.com
  42. London DevOps meetup held at the Guardian
  43. Encrypting sensitive data in Puppet
  44. QA testing for the Guardian's Content API

2013 16

  1. The Guardian's digital development team speaks
  2. Teachers and students at PyconUK
  3. Moving mountains: managing a systems hardware refresh
  4. Young Rewired State 2013: mentoring the tech stars of tomorrow
  5. The Plucky Contender: on failing hard, fast and briefly
  6. The Guardian development flow
  7. 10 things we learned during the making of Firestorm
  8. How the Guardian built a solid, scalable foundation for digital-first journalism
  9. State of the Browser 2013: conference writeup
  10. The Guardian attends Hack the Government 2013 with Rewired State
  11. The Trials, Tribulations and Triumph of PyCon 2013
  12. A day at the Raspberry Jamboree: microcomputing and hardware hacking
  13. Notes from Edge Conference 2013
  14. Introducing Google+ sign-in
  15. Sending better emails
  16. Tools of the trade: the browser-based tools the Guardian's digital team uses for coding

2012 26

  1. Fragmented world: what two years of traffic data teaches you about mobile
  2. How the Guardian Soulmates development team took a lesson from rugby league
  3. Real-time QA: staying confident with code
  4. The Guardian and the Knight-Mozilla OpenNews fellowship
  5. Functional Programming Principles in Scala: the final push
  6. Responsive design at the Guardian: an introduction
  7. Functional Programming Principles in Scala: three weeks in
  8. Winning the metrics battle
  9. Facebook's London Hack 2012: hacking Guardian commenting
  10. Our new video pages – an inside look at some of the design details
  11. Functional Programming Principles in Scala: First Impressions
  12. Five features of Japanese news sites
  13. HTML5 and native apps: the hybrid approach
  14. Software development: What I know now that I wish I'd known before
  15. Reimagining the timeline: behind our Second Screen web app
  16. Testing, testing: the Guardian attends a QA community meet-up
  17. Discovery Week Diary: Day Two
  18. Discovery Week Diary: Day One
  19. Introducing the Miso Project
  20. Design and usability changes to the Guardian iPad edition
  21. Computer, meet your maker
  22. Developing the Google TV app in Beta
  23. The confusing language around programming languages
  24. Calling passionate software developers
  25. Guardian Hack Day: The presentations
  26. Help hack day developers make the Guardian's cycling coverage better

2011 58

  1. December's "Carnival of journalism" round-up
  2. Behind the rumours: how we built our Twitter riots interactive
  3. Music Hack Day London 2011: a developer's view
  4. Guardian Spotify app: FAQ
  5. Guardian launches music reviews app for Spotify
  6. Goodbye to the Guardian's TagBot
  7. Join in December's Carnival of journalism
  8. Business:designed
  9. Live blogging research
  10. Guardian Eyewitness iPad app updated
  11. Guardian Android app now lets you save to SD card - an explainer
  12. UX drop-in and EuroIA Predux events at the Guardian
  13. Introducing the Guardian's new music album pages
  14. Agit – a Git client for Android
  15. Developer drop-ins continue through the summer
  16. From 'Social by design' to 'Social workers of technology' - UPA 2011
  17. Notes on Release 115
  18. Developing the new artist pages
  19. Hactivate: A participant's perspective
  20. Notes on Releases 113 & 114
  21. Drop-ins: Phase II
  22. (H)activate 2011: come and join us
  23. Knight-Mozilla News Innovation Jam
  24. So long, IE6, it's the end of testing times
  25. Developer drop-ins: half time report
  26. Knight-Mozilla News Innovation Jam
  27. Notes on Release 112
  28. The experience of a developer drop-in
  29. Notes on Release 111
  30. Developer drop-in events
  31. Scala at guardian.co.uk
  32. Cennydd Bowles predicts a rocky road ahead for UX at the Denver IA Summit
  33. Introducing developer drop-ins
  34. Notes on Release 110
  35. National Hack the Government Day 2011
  36. Hacks and Hackers: ScraperWiki day
  37. Notes on Release 109
  38. Getting noticed in the iTunes App Store
  39. The SXSW Tumblr tracker
  40. Notes on Release 108
  41. SXSW 2011: How we made our interactive band tracker
  42. Questions in search of an answer
  43. Notes on Release 107
  44. Why we built our automated SXSW listings pages - Part two
  45. Why we built our automated SXSW listings pages
  46. Things I wish I'd known before the Guardian Hacks SXSW event
  47. Notes on Release 106
  48. Technology bursary 'opened my eyes'
  49. How we created our SXSW music listings pages
  50. Balancing front-end performance with tracking
  51. Tags are magic! - Part 4
  52. Notes for Release 105
  53. Tags are magic! - Part 3
  54. Announcing Guardian Hacks SXSW
  55. Tags are magic! - Part 2
  56. Notes on Release 104
  57. Tags are magic! - Part 1
  58. Talking about The Guardian and 'Linked Open Data' at news:rewired

2010 16

  1. Microapps and the Art of Widget Maintenance
  2. The big freeze: notes on Release 103
  3. Switching to Google-hosted jQuery
  4. Exploiting open and linked data at Online Information 2010
  5. New 'British soldiers killed in Afghanistan' interactive with Javascript
  6. Six things I've learned about web development working at the Guardian
  7. The everlasting permalink
  8. Notes on Release 102
  9. Welcome to Guardian Developer Blog
  10. The story behind the redesign of Guardian Jobs
  11. From Publisher to Platform: 14 ways to get benefits from social media
  12. Adding Linked Data to the Open Platform
  13. Notes from dConstruct 2010
  14. World Cup instant Twitter replay: how we did it
  15. Calculating the swing, marginality and targets for constituencies
  16. How we built the UK national carbon calculator