Sunday, April 25, 2021

List of posts

I'm always reading posts, articles, and papers from various sources on the Internet. In the last 4 years I have developed the habit of collecting the texts that are most relevant to me, and now that I've reached the number of 100 posts collected I think it's a good time to share them with you. I have divided them into some broad categories. The categories are organized in alphabetical order, although the posts themselves do not follow a specific order. Most of the texts are in English and some of them are in Portuguese. Enjoy!

APIs

  1. Best Practices for Designing a Pragmatic RESTful API
  2. API Gateways are going through an identity crisis
  3. API Versioning Has No "Right Way"

Architecture

  1. Unifying Mobile Onboarding Experiences at Uber
  2. What do you mean by "Event-Driven"?
  3. Focusing on Events
  4. 11 erros comuns em arquiteturas orientadas a eventos e como evitá-los
  5. Event Collaboration
  6. ParallelChange
  7. The evergreen cache
  8. The LMAX Architecture
  9. A primer on functional architecture
  10. A Brief History of Scaling LinkedIn
  11. The Architect Elevator — Visiting the upper floors
  12. BLIKI: Arquitetura de Software — EximiaCo.Tech

Blockchain

  1. WTF is The Blockchain?
  2. Who owns the Blockchain?

Carreer and personal development

  1. Programmer Competency Matrix
  2. LimitationsOfGeneralAdvice
  3. SoftwareDevelopmentAttitude
  4. Your obsession with learning might be holding you back
  5. How to get experience as a software engineer
  6. On Being A Senior Engineer
  7. What does sponsorship look like?
  8. A forty-year career.
  9. Pendulum swings
  10. How to Disagree

Development tools

  1. How (and Why) to Log Your Entire Bash History
  2. Who Needs Git When You Got ZFS?

Documentation

  1. Como escrever boas documentações
  2. Etsy's experiment with immutable documentation
  3. The Golden Rules of Code Documentation
  4. Our team broke up with instant-legacy releases and you can too
  5. Undervalued Software Engineering Skills: Writing Well

Incident management

  1. Introducing Dispatch
  2. Blameless PostMortems and a Just Culture
  3. Three months, 30x demand: How we scaled Google Meet during COVID-19

Microservices and distributed systems

  1. Best Practices for Building a Microservice Architecture
  2. Standing on Distributed Shoulders of Giants
  3. The rise of non-microservices architectures
  4. Thinking about Microservices: The Fiefdom and the Emissaries
  5. Where is my cache? Architectural patterns for caching microservices by example
  6. Patterns for Microservices — Sync vs. Async
  7. The Hardest Part About Microservices: Your Data
  8. The Hardest Part of Microservices: Calling Your Services
  9. Introducing Domain-Oriented Microservice Architecture
  10. Seven Hard-Earned Lessons Learned Migrating a Monolith to Microservices
  11. Backend-in-the-frontend: a pattern for cleaner code
  12. The Log: What every software engineer should know about real-time data's unifying abstraction

People, teams, and processes

  1. The Agile Fluency Model
  2. Why Your Employees Are Losing Motivation
  3. Our obsession with performance data is killing performance
  4. Evidence Based Scheduling
  5. 3 Habits of a Highly Effective Growth Engineering Team
  6. The epistemology of software quality
  7. Building a Platform Team — Laying the Foundations
  8. Maximizing Developer Effectiveness
  9. front-of-the-front-end and back-of-the-front-end web development
  10. Embrace the Grind

Product

  1. Design for the Novice, Configure for the Pro
  2. Once You’ve Solved for the Novice, You Need to Handle the Pro
  3. When a rewrite isn’t: rebuilding Slack on the desktop

Programming languages, design, and implementation

  1. Revenge of the Nerds
  2. Things You Should Never Do, Part I
  3. Python Design Patterns: For Sleek And Fashionable Code
  4. The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
  5. Efficiently Exploiting Multiple Cores with Python
  6. Python 3 Q & A
  7. DRY is about Knowledge
  8. Domain-Driven Design is Linguistic
  9. GoF Design Patterns — Sobreviveu ao teste do tempo?
  10. Design patterns of 1972
  11. Ralph Johnson on design patterns
  12. "Design Patterns" Aren't
  13. Monopólio de linguagens: uma perspectiva além de tecnologia
  14. Programming as translation
  15. Short Identifier
  16. Crash-only software: More than meets the eye
  17. Ignore All Web Performance Benchmarks, Including This One
  18. Too DRY — The Grep Test
  19. The Right Way to Bundle Your Assets for Faster Sites over HTTP/2
  20. Collection Pipeline

Security

  1. So you want to secure something
  2. Up to 20% of your application dependencies may be unmaintained

Technical debts

  1. Chernobyl: The True Cost Of Technical Debt
  2. Three Tips for Managing Technical Debt: While Maintaining Developer Velocity (and Sanity)
  3. When Your Tech Debt Comes Due
  4. TechnicalDebtQuadrant

DevOps

  1. 5 Lessons Learned From Writing Over 300,000 Lines of Infrastructure Code
  2. Monitoring Check Smells
  3. The Calculus of Service Availability
  4. How to invest in technical infrastructure
  5. Why Google Stores Billions of Lines of Code in a Single Repository

Technology and history

  1. True Innovation
  2. The Secret History of Women in Coding
  3. The Yoda of Silicon Valley

Tests and quality

  1. Software Testing Anti-patterns
  2. Is High Quality Software Worth the Cost?
  3. The Rise of Test Impact Analysis
  4. I test in prod

Thursday, April 1, 2021

Lista de podcasts

Podcasts têm crescido bastante em audência no mundo todo e ganhado cada vez mais espaço no Brasil. Desde que descobri essa mídia, passei a integrá-la também à minha rotina, como mais uma fonte de conhecimento. É uma ótima maneira, por exemplo, de aproveitar o tempo gasto em tarefas mais mecânicas (como limpar a casa, lavar a louça, dirigir ou caminhar) para consumir novos conteúdos e aprender um pouco mais. Eventualmente escuto episódios isolados de certos podcasts, seja por indicação de alguém que conheço ou por esbarrar com algo na Internet que me chama a atenção. No entanto, existem alguns podcasts que acompanho com regularidade, e são esses que compartilho na lista a seguir:

  • Hipsters Ponto Tech: é o podcast de tecnologia que acompanho há mais tempo (desde que surgiu, em 2016). Com temática diversa, hosts muito simpáticos e ótimos convidados, o Hipsters consegue atingir um bom equilíbrio entre informação e entretenimento. Os episódios do Hipsters On The Road, spin-off do podcast, também são muito bons.
  • DEVNAESTRADA: embora possua alguns episódios mais técnicos sobre tecnologias específicas, o forte do DEVNAESTRADA é o foco no cotidiano de quem trabalha com desenvolvimento de software, falando tanto de aspectos profissionais (como carreira, processos e ferramentas) quanto de aspectos pessoais (como saúde, hábitos e motivações). Nos episódios de entrevistas é possível escutar histórias de vida inspiradoras de pessoas que trabalham com tecnologia dentro e fora do Brasil.
  • Lambda3 Podcast: com um feed variado, o podcast da Lambda3 também consegue atingir um bom equilíbrio entre densidade de informação e uma apresentação leve e divertida. Os podcasts técnicos são bem embasados, representando hoje uma das grandes referências nacionais em tecnologia.
  • Naruhodo: um dos podcasts que mais gosto de ouvir. Naruhodo alia curiosidades do dia-a-dia com ciência, apresentando os assuntos com muito bom humor sem abrir mão da corretude científica. Não é um podcast de tecnologia, mas muitas das informações podem ser aplicadas nesse contexto também.
  • Software Engineering Daily: o único da lista em inglês e provavelmente o mais técnico de todos. Jeff Meyerson entrevista profissionais de alto nível da indústria de software a fim de destrinchar tecnologias e abordagens específicas.