Title: @brunopedro.com on Bluesky
Open Graph Title: Bruno Pedro (@brunopedro.com)
Description: Building an API Product: Design, implement, release, and maintain API products that meet user needs: https://a.co/d/dE6pQpK Opinions expressed are solely my own and do not express the views or opinions of my employer.
Open Graph Description: Building an API Product: Design, implement, release, and maintain API products that meet user needs: https://a.co/d/dE6pQpK Opinions expressed are solely my own and do not express the views or opinions of my employer.
Opengraph URL: https://bsky.app/profile/brunopedro.com
X: @bluesky
Generator: bskyweb
Domain: bsky.app
{"@context":"https://schema.org","@type":"ProfilePage","dateCreated":"2023-06-29T08:52:51.142Z","mainEntity":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","description":"Building an API Product: Design, implement, release, and maintain API products that meet user needs: https://a.co/d/dE6pQpK\n\nOpinions expressed are solely my own and do not express the views or opinions of my employer.","image":"https://cdn.bsky.app/img/avatar/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreif52ogm5wu4xvouuqymoackzr5s2tyqgijffkzszxdi5ljsp77hle","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/FollowAction","userInteractionCount":7087}],"agentInteractionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/FollowAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/WriteAction","userInteractionCount":948}]},"hasPart":[{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mriq46i7bc2g","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mriq46i7bc2g","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"Weekend...","image":["https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreieqz7mavyal4h22cd3fuwgpdjnrwabue33flcd7i6ic45a6lyugba"],"thumbnailUrl":"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreieqz7mavyal4h22cd3fuwgpdjnrwabue33flcd7i6ic45a6lyugba","datePublished":"2026-07-25T20:41:52.965Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0}],"commentCount":0},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mrescat3y22l","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mrescat3y22l","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"To me, the terminology we're using when we refer to the different types of unknown APIs feels confusing!\n\nRead on if, like me, you often feel confused when someone says an API is an orphan, shadow, or zombie.\n\nhttps://apichangelog.substack.com/p/orphan-shadow-and-zombie-apis","datePublished":"2026-07-24T07:10:16.371Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0}],"commentCount":0,"sharedContent":{"@type":"WebPage","url":"https://apichangelog.substack.com/p/orphan-shadow-and-zombie-apis"}},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mrdabu2lvs2l","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mrdabu2lvs2l","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"Regular, ad-hoc, and SDK API consumers.\n\nEach type of consumer comes with its kind of governance. API producer governance works best with regular consumers. API implementation governance is best suited for ad-hoc consumers. API consumer governance produces the best outcome for SDK consumers.","image":["https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreibkieyiognfrels2wz6ayto3x2wuvwgvbkgvgfenymty7nprcuttq"],"thumbnailUrl":"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreibkieyiognfrels2wz6ayto3x2wuvwgvbkgvgfenymty7nprcuttq","datePublished":"2026-07-23T16:15:16.768Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0}],"commentCount":0},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mrcddudmys2o","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mrcddudmys2o","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"\"Achieving the quality you desire for your API depends on the perception consumers have. And that perception depends on the success of metrics that depend on how well your API is governed.\"\n\nhttps://apichangelog.substack.com/p/api-governance-delivers-quality","datePublished":"2026-07-23T07:37:25.165Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0}],"commentCount":0,"sharedContent":{"@type":"WebPage","url":"https://apichangelog.substack.com/p/api-governance-delivers-quality"}},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mr7rlj322c2e","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mr7rlj322c2e","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"\"Other than yourself, the developers from your team, and a couple of customers, no one really used your API. When you ask your team why there’s no usage, they can’t explain it.\"\n\nhttps://apichangelog.substack.com/p/no-one-understands-what-your-api-does","datePublished":"2026-07-22T07:14:15.267Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":1}],"commentCount":0,"sharedContent":{"@type":"WebPage","url":"https://apichangelog.substack.com/p/no-one-understands-what-your-api-does"}},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mr7rlj322c2e","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mr7rlj322c2e","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"\"Other than yourself, the developers from your team, and a couple of customers, no one really used your API. When you ask your team why there’s no usage, they can’t explain it.\"\n\nhttps://apichangelog.substack.com/p/no-one-understands-what-your-api-does","datePublished":"2026-07-22T07:14:15.267Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":1}],"commentCount":0,"sharedContent":{"@type":"WebPage","url":"https://apichangelog.substack.com/p/no-one-understands-what-your-api-does"}},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mr3ftxtqvs2a","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mr3ftxtqvs2a","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"I've been working on a Swagger UI plugin that highlights API changes inline.\n\nInstead of having to open a report with all the changes, you can see them while browsing the documentation.\n\nhttps://github.com/InditexTech/swagger-ui-plugin-diff-highlight","image":["https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreibawtmgs72pdblxrmi5trbzqnti2qf36572wer334gjws4v2tuzde"],"thumbnailUrl":"https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreibawtmgs72pdblxrmi5trbzqnti2qf36572wer334gjws4v2tuzde","datePublished":"2026-07-20T13:33:35.665Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":28},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":2}],"commentCount":0},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mqykniyods2t","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mqykniyods2t","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"\"You don’t need to be a developer to be able to design an API, implement it, and release it. You don’t even have to know about OpenAPI or any other API specification.\"\n\nhttps://notes.brunopedro.com/2026/07/19/20260719105922/","datePublished":"2026-07-19T10:21:27.271Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":2},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":2}],"commentCount":0,"sharedContent":{"@type":"WebPage","url":"https://notes.brunopedro.com/2026/07/19/20260719105922/"}},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mqykniyods2t","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mqykniyods2t","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"\"You don’t need to be a developer to be able to design an API, implement it, and release it. You don’t even have to know about OpenAPI or any other API specification.\"\n\nhttps://notes.brunopedro.com/2026/07/19/20260719105922/","datePublished":"2026-07-19T10:21:27.271Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":2},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":2}],"commentCount":0,"sharedContent":{"@type":"WebPage","url":"https://notes.brunopedro.com/2026/07/19/20260719105922/"}},{"@type":"DiscussionForumPosting","url":"https://bsky.app/profile/brunopedro.com/post/3mqvvshklmk22","identifier":"at://did:plc:bvyurmjke5qyfbosz6acvwbv/app.bsky.feed.post/3mqvvshklmk22","author":{"@type":"Person","name":"Bruno Pedro","alternateName":"@brunopedro.com","identifier":"did:plc:bvyurmjke5qyfbosz6acvwbv","url":"https://bsky.app/profile/brunopedro.com"},"text":"Weekend...","image":["https://video.bsky.app/watch/did%3Aplc%3Abvyurmjke5qyfbosz6acvwbv/bafkreia27oe25fnfrwg7dmapueoxmmyjzjdxhg7eziaap3capbyuauqxsy/thumbnail.jpg"],"thumbnailUrl":"https://video.bsky.app/watch/did%3Aplc%3Abvyurmjke5qyfbosz6acvwbv/bafkreia27oe25fnfrwg7dmapueoxmmyjzjdxhg7eziaap3capbyuauqxsy/thumbnail.jpg","video":{"@type":"VideoObject","name":"Video by @brunopedro.com","description":"Weekend...","thumbnailUrl":"https://video.bsky.app/watch/did%3Aplc%3Abvyurmjke5qyfbosz6acvwbv/bafkreia27oe25fnfrwg7dmapueoxmmyjzjdxhg7eziaap3capbyuauqxsy/thumbnail.jpg","uploadDate":"2026-07-18T09:03:06.865Z","contentUrl":"https://video.bsky.app/watch/did%3Aplc%3Abvyurmjke5qyfbosz6acvwbv/bafkreia27oe25fnfrwg7dmapueoxmmyjzjdxhg7eziaap3capbyuauqxsy/playlist.m3u8","embedUrl":"https://bsky.app/profile/brunopedro.com/post/3mqvvshklmk22","width":1080,"height":1920},"datePublished":"2026-07-18T09:03:06.865Z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":2},{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":0}],"commentCount":1}]}
| referrer | origin-when-cross-origin |
| application-name | Bluesky |
| og:site_name | Bluesky Social |
| og:logo | https://web-cdn.bsky.app/static/favicon.png |
| og:type | profile |
| profile:username | brunopedro.com |
| twitter:label1 | Account DID |
| twitter:value1 | did:plc:bvyurmjke5qyfbosz6acvwbv |
| og:image | https://cdn.bsky.app/img/banner/plain/did:plc:bvyurmjke5qyfbosz6acvwbv/bafkreihn4pk57w23joe77lur6242wtllg3t4noj6323en55yhxgnr6bi24 |
| twitter:card | summary_large_image |
Links:
| bsky.social | https://bsky.social |
| atproto.com | https://atproto.com |
Viewport: width=device-width, initial-scale=1, minimum-scale=1, viewport-fit=cover