Product creator, software engineer, coffee obsessed.

Joined January 2019
5 Photos and videos
1 Oct 2025
Last night I published a tool for running CLIs in Docker containers in YOLO mode ๐Ÿš€ and a bit later I came across this article about agentic loops that talks about exactly that. Seems like I was on the right track ๐Ÿ’ช ๐Ÿ”— github.com/zzev/ai-cli ๐Ÿ“ simonwillison.net/2025/Sep/3โ€ฆ
30
6 Sep 2025
I created a Docker config to run Claude Code without worrying about using --dangerously-skip-permissions. โœ… User without sudo privileges โœ… Complete isolation from the host โœ… Multi-account support (work/personal) โœ… Persistent volumes per account Any better alternatives?
51
21 Jul 2025
Lately Iโ€™ve seen some products claim: โ€œJust connect your OpenAPI and voilร  โ€” instant tools for your LLM!โ€ But thatโ€™s rarely the case. OpenAPI shows what endpoints exist โ€” but not how to use them, when to call them, or what shape the output should take. Tools need real design.
1
36
21 Jul 2025
You canโ€™t just slap an OpenAPI spec into an MCP server and call it a day. The hard part is wrapping it with the context an agent needs to avoid shooting itself in the foot. OpenAPI โ†’ MCP is a starting point, not the product.
1
40
13 Mar 2025
I've been reflecting on how companies treat APIs. Far too often, APIs are merely another engineering projectโ€”something to tick off on the roadmap. But honestly, an API isn't a bunch of endpoints. It's a product.
1
27
13 Mar 2025
Did you ever get to work for an organization that treated APIs as first-class products? Or is it still a struggle?
19
5 Mar 2025
๐Ÿš€ API-first companies & dev teams: Weโ€™re researching API onboarding challenges to build better tools! โณ How long does theโ€‚integration take? What are your biggest blockers? Take our 5-min survey & help shape the future of API onboarding! ๐Ÿ‘‡ ๐Ÿ”— tally.so/r/m6M8Bk
102
26 Feb 2025
How do you onboard users to your APIs? Just by sending them the documentation, through guides, maybe sharing a Postman collection or is there some other way I'm unaware of?
1
153
19 Sep 2024
A dear friend, CTO of a cybersecurity startup is looking for a mid-level DevOps to join the team. Completely remote. If you are interested, DM for more details. #devops #job #remotejob
2
1
103
16 Sep 2024
I'm done with @MaterialUI. I've been a heavy user for years, even opened a few issues on their GitHub, but it's become increasingly complex to implement, debug and maintain. Also, it's not very NextJS friendly.
1
1
58
16 Sep 2024
A few months ago I tried @tailwindcss and it's been so simple and smooth to use and I'm so in love, I'll build all my components from now on on top of it. In fact, I've already started with the transition. No more drama!
50
zeta retweeted
People are out here depending on an external service and paying PER-REQUEST for API calls to do rate-limiting... Rails 7.2 lets you do all that with your existing app infra for free with one line of code
34
42
545
46,379
zeta retweeted
๐Ÿฑ ๐˜๐—ถ๐—ฝ๐˜€ ๐—ณ๐—ผ๐—ฟ ๐—ฑ๐—ฒ๐˜€๐—ถ๐—ด๐—ป๐—ถ๐—ป๐—ด ๐—ฎ ๐—พ๐˜‚๐—ฎ๐—น๐—ถ๐˜๐˜† ๐—”๐—ฃ๐—œ ๐Ÿ‘‡ How do you design a good API? API design is deciding how your API will expose data and functionality to consumers. A good API design describes the API endpoints and resources in some standard format. There are 4 key stages of API design: 1 - Determine what the API should do 2 - Define the API contracts (OpenAPI) 3 - Validate your assumptions with tests 4 - Document the API (endpoints, error codes, etc.) Here are 5 more tips for designing a good API. 1) ๐—ฃ๐—ฟ๐—ถ๐—ผ๐—ฟ๐—ถ๐˜๐—ถ๐˜‡๐—ฒ ๐—–๐—ผ๐—ป๐˜€๐—ถ๐˜€๐˜๐—ฒ๐—ป๐—ฐ๐˜† ๐—ฎ๐—ป๐—ฑ ๐—ฆ๐—ถ๐—บ๐—ฝ๐—น๐—ถ๐—ฐ๐—ถ๐˜๐˜† Your API should have consistent naming conventions, response formats, and an error-handling strategy. Simplicity in API design makes it easier for developers to understand and integrate with your API. 2) ๐—˜๐—บ๐—ฏ๐—ฟ๐—ฎ๐—ฐ๐—ฒ ๐—ฅ๐—˜๐—ฆ๐—ง๐—ณ๐˜‚๐—น ๐—ฃ๐—ฟ๐—ถ๐—ป๐—ฐ๐—ถ๐—ฝ๐—น๐—ฒ๐˜€ You should design your API according to RESTful principles, emphasizing statelessness, a client-server architecture, and a uniform interface. REST APIs are the standard in most .NET applications. 3) ๐—จ๐˜€๐—ฒ ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ฟ๐—ฟ๐—ฒ๐—ฐ๐˜ ๐—›๐—ง๐—ง๐—ฃ ๐—ฆ๐˜๐—ฎ๐˜๐˜‚๐˜€ ๐—–๐—ผ๐—ฑ๐—ฒ๐˜€ You should use the correct HTTP status codes to communicate the outcome of API requests. This includes successful operations (2xx), client errors (4xx), and server errors (5xx). It helps consumers of your API understand what went wrong and how to rectify it. 4) ๐—œ๐—บ๐—ฝ๐—น๐—ฒ๐—บ๐—ฒ๐—ป๐˜ ๐—”๐—ฃ๐—œ ๐—ฉ๐—ฒ๐—ฟ๐˜€๐—ถ๐—ผ๐—ป๐—ถ๐—ป๐—ด Implement versioning in your API to plan for future changes. This allows you to make improvements and changes without breaking existing client integrations. The most common approach is URL versioning. 5) ๐—”๐˜‚๐˜๐—ต๐—ก ๐—ฎ๐—ป๐—ฑ ๐—”๐˜‚๐˜๐—ต๐—ญ Implement authentication, authorization, and data encryption where necessary. Protecting sensitive data and ensuring that only authorized users can access specific API endpoints is crucial for maintaining the trust and integrity of your API. What is something you do to design a good API? Learn more about API design here: postman.com/api-platform/apiโ€ฆ
1
63
304
24,428
zeta retweeted
๐—ฆ๐—ต๐—ผ๐˜‚๐—น๐—ฑ ๐˜†๐—ผ๐˜‚ ๐˜€๐˜๐—ผ๐—ฝ ๐˜‚๐˜€๐—ถ๐—ป๐—ด ๐—จ๐—จ๐—œ๐——๐˜€? UUIDs (Guid in C#) are widely used as unique identifiers in databases. UUIDs are random, which makes them popular in distributed systems. However, UUIDs have some drawbacks: 1. UUIDs slow down database inserts. Each insert must update the clustered index, a B tree. Because UUIDs are random, this is an expensive operation as it requires rebalancing the tree 2. Higher storage costs. A UUID is 128 bits long, and it's even longer if you store it in human-readable format as a string. So, let me introduce you to ULIDs. ULID attempts to solve the drawbacks of UUID. It's also 128-bit, so it's compatible with a UUID. However, unlike a UUID, ULIDs are sortable. The first 40 bits of a ULID represent a timestamp, making ULIDs monotonically increasing. There's a .NET package that implements the ULID spec, so you can start using it immediately. However, you'll need to write some code if you want ULID to work with popular ORMs. What do you think about ULIDs? --- Subscribe to my weekly newsletter to accelerate your .NET skills: milanjovanovic.tech/?utm_souโ€ฆ
65
398
2,965
458,290