<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Osmar Petry</title>
  <link href="https://osmarpetry.dev/feed.xml" rel="self"/>
  <link href="https://osmarpetry.dev"/>
  
  <updated>2026-03-23</updated>
  <id>https://osmarpetry.dev/</id>
  
  <entry>
    <title>JavaScript Modules and Bundlers</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-modules-and-bundlers/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-modules-and-bundlers/</id>
    <updated>2026-03-23</updated>
    <summary>JavaScript module systems (IIFE, CommonJS, ESModules), modern bundlers, and build types for apps and libraries</summary>
  </entry>
  
  <entry>
    <title>PixieShop Authentication Playbook — OIDC SSO Across Four Identity Providers</title>
    <link href="https://osmarpetry.dev/content/articles/sso-authentication-playbook/"/>
    <id>https://osmarpetry.dev/content/articles/sso-authentication-playbook/</id>
    <updated>2026-03-21</updated>
    <summary></summary>
  </entry>
  
  <entry>
    <title>Backend Architectures — history, case studies &amp; dogfooding</title>
    <link href="https://osmarpetry.dev/content/articles/introduction-to-be-archtitectures/"/>
    <id>https://osmarpetry.dev/content/articles/introduction-to-be-archtitectures/</id>
    <updated>2025-09-01</updated>
    <summary>From monolith → services → serverless; lessons from Amazon, Netflix, Google, Uber; how dogfooding turns platforms into products.</summary>
  </entry>
  
  <entry>
    <title>Web Accessibility V3 — Topics cheat-sheet &amp; decision guide</title>
    <link href="https://osmarpetry.dev/content/articles/web-accessibility/"/>
    <id>https://osmarpetry.dev/content/articles/web-accessibility/</id>
    <updated>2025-09-01</updated>
    <summary>Compressed guide to the Web Accessibility (V3) course topics with quick heuristics, team workflow, and checklists.</summary>
  </entry>
  
  <entry>
    <title>XState — model UI behavior correctly and make it testable</title>
    <link href="https://osmarpetry.dev/content/articles/xstate-model-ui-bahavior/"/>
    <id>https://osmarpetry.dev/content/articles/xstate-model-ui-bahavior/</id>
    <updated>2025-07-12</updated>
    <summary>State modeling in React with XState: finite states, events, guards, effects. Clear behavior and cheap tests.</summary>
  </entry>
  
  <entry>
    <title>Domain-Driven, Data-Oriented Design (DDDOD)</title>
    <link href="https://osmarpetry.dev/content/articles/dddod/"/>
    <id>https://osmarpetry.dev/content/articles/dddod/</id>
    <updated>2025-06-01</updated>
    <summary>Bill Kennedy’s Go-centric take on DDD focusing on data flow, validation, and layered boundaries.</summary>
  </entry>
  
  <entry>
    <title>Gophers 2025 — Event Report</title>
    <link href="https://osmarpetry.dev/content/articles/gophers-2025-event/"/>
    <id>https://osmarpetry.dev/content/articles/gophers-2025-event/</id>
    <updated>2025-05-20</updated>
    <summary>Comprehensive recap of the Gophers 2025 conference (13–14 May) including sessions, workshops, detailed technical notes, and recommended next steps for Go teams.</summary>
  </entry>
  
  <entry>
    <title>Go Serialization Options</title>
    <link href="https://osmarpetry.dev/content/articles/go-serialization-options/"/>
    <id>https://osmarpetry.dev/content/articles/go-serialization-options/</id>
    <updated>2025-05-12</updated>
    <summary>How Go types expose custom wire formats with MarshalText, MarshalJSON, and helper-based serialization.</summary>
  </entry>
  
  <entry>
    <title>Package Oriented Design</title>
    <link href="https://osmarpetry.dev/content/articles/pod-go/"/>
    <id>https://osmarpetry.dev/content/articles/pod-go/</id>
    <updated>2025-05-12</updated>
    <summary>Bill Kennedy’s approach to Go package design: purpose-driven packages, clear boundaries, and modular structure.</summary>
  </entry>
  
  <entry>
    <title>Design by Contract (DbC)</title>
    <link href="https://osmarpetry.dev/content/articles/DbC/"/>
    <id>https://osmarpetry.dev/content/articles/DbC/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of Bertrand Meyer’s Design by Contract principles for robust software.</summary>
  </entry>
  
  <entry>
    <title>Conway’s Law — origins, literature, and team design</title>
    <link href="https://osmarpetry.dev/content/articles/conways-law-birth-1968/"/>
    <id>https://osmarpetry.dev/content/articles/conways-law-birth-1968/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of Melvin Conway’s original essay, subsequent research, and practical implications for structuring engineering teams.</summary>
  </entry>
  
  <entry>
    <title>No Silver Bullet — Essence &amp; Accidents</title>
    <link href="https://osmarpetry.dev/content/articles/no-silver-bullet-1986/"/>
    <id>https://osmarpetry.dev/content/articles/no-silver-bullet-1986/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of Frederick Brooks Jr.’s 1986 essay on inherent vs accidental complexity in software engineering.</summary>
  </entry>
  
  <entry>
    <title>Modularization Criteria — Parnas 1972</title>
    <link href="https://osmarpetry.dev/content/articles/parnas-modularization-1972/"/>
    <id>https://osmarpetry.dev/content/articles/parnas-modularization-1972/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of David Parnas’s criteria for decomposing systems into modules (KWIC case study).</summary>
  </entry>
  
  <entry>
    <title>Software Aging</title>
    <link href="https://osmarpetry.dev/content/articles/software-aging-1994/"/>
    <id>https://osmarpetry.dev/content/articles/software-aging-1994/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of David Parnas’s 1994 essay on software aging, causes, and preventive practices.</summary>
  </entry>
  
  <entry>
    <title>Decision-Making Traits of Great Software Engineers</title>
    <link href="https://osmarpetry.dev/content/articles/software-engineer-decisions-2015/"/>
    <id>https://osmarpetry.dev/content/articles/software-engineer-decisions-2015/</id>
    <updated>2025-04-15</updated>
    <summary>Highlights from Meyer et al. (2015) on decision-making characteristics in top engineers.</summary>
  </entry>
  
  <entry>
    <title>TDD Effects on Quality and Productivity</title>
    <link href="https://osmarpetry.dev/content/articles/tdd-systematic-review-2016/"/>
    <id>https://osmarpetry.dev/content/articles/tdd-systematic-review-2016/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of Bissi et al.&#39;s systematic review on Test-Driven Development impacts.</summary>
  </entry>
  
  <entry>
    <title>Teach Yourself Programming in Ten Years</title>
    <link href="https://osmarpetry.dev/content/articles/teach-yourself-programming-ten-years-2001/"/>
    <id>https://osmarpetry.dev/content/articles/teach-yourself-programming-ten-years-2001/</id>
    <updated>2025-04-15</updated>
    <summary>Summary of Peter Norvig’s essay on long-term skill development in programming.</summary>
  </entry>
  
  <entry>
    <title>JavaScript Sets, Maps, and Hashing</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-set-map-hash/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-set-map-hash/</id>
    <updated>2025-02-09</updated>
    <summary>Understanding Set vs Map behaviour, hashing, caching patterns, and differences from C#.</summary>
  </entry>
  
  <entry>
    <title>ADR — Architecture Decision Records</title>
    <link href="https://osmarpetry.dev/content/articles/adr/"/>
    <id>https://osmarpetry.dev/content/articles/adr/</id>
    <updated>2025-01-15</updated>
    <summary>How to use Architecture Decision Records (ADRs) to document important architectural choices, their context, and trade-offs.</summary>
  </entry>
  
  <entry>
    <title>Agile Software Development</title>
    <link href="https://osmarpetry.dev/content/articles/agile/"/>
    <id>https://osmarpetry.dev/content/articles/agile/</id>
    <updated>2025-01-15</updated>
    <summary>Comprehensive guide to Agile methodologies, values, and practices for modern software development teams.</summary>
  </entry>
  
  <entry>
    <title>Behavior-Driven Development (BDD)</title>
    <link href="https://osmarpetry.dev/content/articles/bdd/"/>
    <id>https://osmarpetry.dev/content/articles/bdd/</id>
    <updated>2025-01-15</updated>
    <summary>BDD with Cucumber and Gherkin — principles, syntax reference, step definitions in JS/TS, best practices, and comparison with TDD.</summary>
  </entry>
  
  <entry>
    <title>Domain-Driven Design: Tackling Complexity in the Heart of Software</title>
    <link href="https://osmarpetry.dev/content/articles/ddd/"/>
    <id>https://osmarpetry.dev/content/articles/ddd/</id>
    <updated>2025-01-15</updated>
    <summary>Domain-Driven Design (DDD) is a software design approach that focuses on modeling complex systems based on the real-world domains or concepts they represent.</summary>
  </entry>
  
  <entry>
    <title>Design Patterns</title>
    <link href="https://osmarpetry.dev/content/articles/design-patterns/"/>
    <id>https://osmarpetry.dev/content/articles/design-patterns/</id>
    <updated>2025-01-15</updated>
    <summary>Notes and presentation outline about design patterns, their intent, trade-offs, and related connections.</summary>
  </entry>
  
  <entry>
    <title>Closures and Curries</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-closures-and-curries/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-closures-and-curries/</id>
    <updated>2025-01-15</updated>
    <summary>Closures and currying are both important concepts in JavaScript, especially for functional programming.</summary>
  </entry>
  
  <entry>
    <title>Generator</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-generator/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-generator/</id>
    <updated>2025-01-15</updated>
    <summary>A generator is a special type of function in JavaScript that can be paused and resumed multiple times. Practical deep-dive with redux-saga as the real-world use case.</summary>
  </entry>
  
  <entry>
    <title>Prototype</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-prototype/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-prototype/</id>
    <updated>2025-01-15</updated>
    <summary>JavaScript prototype chain and inheritance</summary>
  </entry>
  
  <entry>
    <title>Recursion</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-recursion/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-recursion/</id>
    <updated>2025-01-15</updated>
    <summary>Recursion concepts and examples</summary>
  </entry>
  
  <entry>
    <title>This Object Inside Call, Apply and Bind</title>
    <link href="https://osmarpetry.dev/content/articles/javascript-this-object-inside-call-apply-and-bind/"/>
    <id>https://osmarpetry.dev/content/articles/javascript-this-object-inside-call-apply-and-bind/</id>
    <updated>2025-01-15</updated>
    <summary>How the this keyword works in JavaScript across four binding rules — implicit, explicit (.call, .apply, .bind), new, and window binding — with practical examples.</summary>
  </entry>
  
  <entry>
    <title>React ForwardRef</title>
    <link href="https://osmarpetry.dev/content/articles/react-forwardRef/"/>
    <id>https://osmarpetry.dev/content/articles/react-forwardRef/</id>
    <updated>2025-01-15</updated>
    <summary>Forwarding Refs is a technique in React where you pass a ref from a parent component to a child component</summary>
  </entry>
  
  <entry>
    <title>Optimizing React with Memoization</title>
    <link href="https://osmarpetry.dev/content/articles/react-optimizing-with-memoization/"/>
    <id>https://osmarpetry.dev/content/articles/react-optimizing-with-memoization/</id>
    <updated>2025-01-15</updated>
    <summary>Optimizing React applications with memoization techniques</summary>
  </entry>
  
  <entry>
    <title>React.Suspense</title>
    <link href="https://osmarpetry.dev/content/articles/react-suspense/"/>
    <id>https://osmarpetry.dev/content/articles/react-suspense/</id>
    <updated>2025-01-15</updated>
    <summary>React.Suspense for lazy loading</summary>
  </entry>
  
  <entry>
    <title>useRef</title>
    <link href="https://osmarpetry.dev/content/articles/react-useref/"/>
    <id>https://osmarpetry.dev/content/articles/react-useref/</id>
    <updated>2025-01-15</updated>
    <summary>useRef hook in React</summary>
  </entry>
  
  <entry>
    <title>Shape Up: Stop Running in Circles and Ship Work that Matters</title>
    <link href="https://osmarpetry.dev/content/articles/shape-up-2020/"/>
    <id>https://osmarpetry.dev/content/articles/shape-up-2020/</id>
    <updated>2025-01-15</updated>
    <summary>Notes and practice guide merging book takeaways and course review on Shape Up by Ryan Singer, connected with The Mythical Man-Month, Design by Contract, Programming with Abstract Data Types, and Domain-Driven Design.</summary>
  </entry>
  
  <entry>
    <title>SVG Are the Best</title>
    <link href="https://osmarpetry.dev/content/articles/svg-are-the-best/"/>
    <id>https://osmarpetry.dev/content/articles/svg-are-the-best/</id>
    <updated>2025-01-15</updated>
    <summary>Why SVG is often a better choice than icon fonts and bitmap images for modern web interfaces.</summary>
  </entry>
  
  <entry>
    <title>TensorFlow</title>
    <link href="https://osmarpetry.dev/content/articles/tensorflow/"/>
    <id>https://osmarpetry.dev/content/articles/tensorflow/</id>
    <updated>2025-01-15</updated>
    <summary>TensorFlow notes and resources from 2019</summary>
  </entry>
  
  <entry>
    <title>Mapped Types and Generics</title>
    <link href="https://osmarpetry.dev/content/articles/typescript-mapped-types-and-generics/"/>
    <id>https://osmarpetry.dev/content/articles/typescript-mapped-types-and-generics/</id>
    <updated>2025-01-15</updated>
    <summary>Mapped types and generics in TypeScript</summary>
  </entry>
  
  <entry>
    <title>Typescript Overwrite Types</title>
    <link href="https://osmarpetry.dev/content/articles/typescript-overwrite-types/"/>
    <id>https://osmarpetry.dev/content/articles/typescript-overwrite-types/</id>
    <updated>2025-01-15</updated>
    <summary>Overwriting types in TypeScript</summary>
  </entry>
  
  <entry>
    <title>Master’s Article Summaries</title>
    <link href="https://osmarpetry.dev/content/articles/masters-article-summaries/"/>
    <id>https://osmarpetry.dev/content/articles/masters-article-summaries/</id>
    <updated>2024-09-04</updated>
    <summary>Key takeaways from replay attack detection, deepfake speech, plant identification with remote sensing, and spoofing countermeasures.</summary>
  </entry>
  
  <entry>
    <title>Testing Concepts Notes</title>
    <link href="https://osmarpetry.dev/content/articles/testing-concepts-notes/"/>
    <id>https://osmarpetry.dev/content/articles/testing-concepts-notes/</id>
    <updated>2021-01-15</updated>
    <summary>Core testing concepts covering BDD, Sinon, accessibility, Lighthouse, CSS snapshots, unit testing best practices, and Storybook integration with Cypress.</summary>
  </entry>
  
  <entry>
    <title>Testing Library vs Enzyme</title>
    <link href="https://osmarpetry.dev/content/articles/testing-library-vs-enzyme/"/>
    <id>https://osmarpetry.dev/content/articles/testing-library-vs-enzyme/</id>
    <updated>2021-01-15</updated>
    <summary>Complete migration guide from Enzyme to Testing Library, covering the mindset shift, custom renders, wrapper patterns, form testing, and real-world Calendar component examples.</summary>
  </entry>
  
</feed>
