~/devreads

#design

69 posts

19 May

Danielle Wisen 2 min read

RGB has been the standard color model on the web for decades. It’s widely supported and works well. But it wasn’t designed to replicate the way humans perceive color. oklch() models lightness, chroma, and hue in a way that mirrors human vision. That makes color manipulation more predictable, accessible, and expressive than RGB allows. What […] The post oklch() in…

design strategycssdesign

30 Apr

J Simpson 7 min read

At PayPalDevDay 2025, PayPal’s Nathaniel Olson discussed a familiar problem. When he asked an AI coding assistant to build a product involving APIs, it was far too common for the AI to use outdated APIs rather than the most current iterations. It’s not that the official documentation or SDKs weren’t up-to-date, it’s the fact that ...

blogdesignstrategyai agentsapi

22 Apr

Art Anthony 8 min read

At some point or another, most software developers find themselves at a career crossroads. In one direction is comfort, ease, and predictability. In the other? Challenge, intention, and responsibility. (And, yes, higher salaries to go along with them.) That second route is what happens when developers start to think more deeply about the systems behind ...

blogdesignplatformsai agentsapi architecture

16 Apr

9 Apr

7 Apr

João Bernardo Narciso 8 min read

Uncovering the Shape of Fraud with Cosmos Explorer: Visual Metaphors Behind Millions of Transactions The Data Visualization Research team is developing Cosmos Explorer, an interface that leverages universe-related visual metaphors to convey information about the billions of transactions processed by Feedzai. Pedro Cruz, professor at Northeastern University, partnered with Feedzai to bring this idea to life by contributing with his…

datavizfrauddesignresearchfraud-detection

23 Mar

Bryan Elkus 9 min read

For years, designers waited on development. We’d finish research, deliver specs, hand off mockups — and then sit in a holding pattern while engineers built what we’d envisioned. The bottleneck was implementation. Design was ready. Dev needed time. That dynamic has completely flipped. Development speed has accelerated dramatically. AI coding tools, agentic workflows, and orchestrated […] The post Product Design…

ai for designersdesignartificial intelligenceai design tools

19 Mar

Frances Coronel 7 min read

Introduction 🔔 At Slack, notifications are how teams stay in the loop, but they can also become overwhelming when not designed with intention. Our goal was to make staying informed feel effortless. We set out to rebuild one of Slack’s most complicated systems from the ground up by bringing calm, consistency, and clarity to the…

uncategorizedandroidbackendcross-platformdesign

J Simpson 6 min read

Model Context Protocol (MCP) has been absolutely everywhere since it was first released in November 2024. Sometimes referred to as the “USB-C of AI,” MCP has come forward to help tame some of AI’s most glaring issues, namely a lack of standardization around integration as well as the context to understand what it’s accessing. Given ...

blogdesignai agentsapi architectureapi best practices

17 Mar

Janet Wagner 7 min read

If you build distributed applications, you’re likely already familiar with microservices. While the definition varies across the tech industry, I prefer the one from Sam Newman’s book Building Microservices. In it, he concisely describes microservices as “small, autonomous services that work together.” The concepts of microservices have been around for about fifteen years now. However, ...

blogdesignplatformsstrategyai agents

11 Mar

Bill Doerrfeld 5 min read

AI introduces many exciting developments in the software industry. However, the uncontrolled use of generative AI has the potential to undermine our mission to provide a platform for authentic voices in the API community. For this reason, we are clarifying our AI usage policy. This policy applies to anyone who contributes content to Nordic APIs, ...

blogdesignapiapi communityapi governance

24 Feb

J Simpson 8 min read

When building agentic AI systems that interact with APIs and other services, securely managing JSON Web Tokens (JWTs) becomes a critical part of the architecture. Unlike traditional web applications, agentic AI can operate autonomously, invoking APIs, making decisions, and passing sensitive information without direct human supervision. These nuances create unique authorization challenges around how JWTs ...

blogdesignsecurityai agentsapi governance

12 Feb

Kristopher Sandoval 8 min read

Model Context Protocol (MCP) has made huge waves in the industry as of late. Since MCP makes it incredibly easy to point agentic implementations towards tools and resources, it’s been used for everything from context-driven customer service tools to order fulfillment backends. One of the most interesting use cases, and one that is currently emerging ...

blogdesignstrategyai agentsapi discovery

11 Feb

Janet Wagner 6 min read

Nothing frustrates a user more than a slow or non-responsive website or application. This is especially true in ecommerce, where slow-loading pages lead to high bounce rates and lower conversion rates. Often, the hidden culprit behind delays is a high-latency API. Many app developers integrate multiple third-party APIs, cumulatively adding more latency. As more APIs ...

blogdesignstrategyapi architectureapi best practices

3 Feb

J Simpson 7 min read

Imagine you’re a developer working with multiple AI agents based on large language models (LLMs). On Monday morning, your client asks you to connect an AI coding assistant to access GitHub issues, Jira tickets, and internal documentation via MCP-powered tools. That’s where a centralized MCP tool registry comes into play. Instead of spending hours browsing ...

blogdesignplatformsai agentsapi discovery

15 Jan

Adriano Mota 9 min read

The emergence of AI coding assistants has ushered in a new era of software creation, formalized under the concept of “vibe coding.” This concept offers tremendous productivity but also introduces significant complexities, particularly when building critical APIs. Here is a comprehensive overview of what vibe coding is and the benefits it delivers. We also cover ...

blogdesignsecurityai agentsapi development

13 Jan

7 Jan

J Simpson 6 min read

In OpenAPI, the industry standard API specification, small steps can have major implications. While OpenAPI 3.2.0 may not reinvent the wheel, as it still follows the same architecture and uses the JSON Schema Specification Draft 2020-12 implemented in OpenAPI 3.1.0, OpenAPI Specification v3.2.0 still has enough changes to warrant excitement while remaining compatible with older ...

blogdesignapi designapi documentationapi governance

1 Jan

10 Dec 2025

Janet Wagner 7 min read

Choosing the right architectural style isn’t just a technical detail — it’s critical to the success of your API and every application that relies on it. The architecture determines how easily developers can understand and integrate your API, profoundly impacting their experience. It dictates how clients and servers communicate, directly affecting application efficiency, performance, and ...

blogdesignapi architectureapi designapi standards

9 Dec 2025

4 Dec 2025

3 Dec 2025

Kristopher Sandoval 7 min read

Model Context Protocol (MCP), a standard for connecting AI agents to external tools and data, is still a very new tech, and as such, it’s experiencing the same growth pains that any other technology experiences. In this process, certain use and design patterns are starting to emerge — and not always for the better. One ...

blogdesignai agentsapiapi architecture

25 Nov 2025

13 Nov 2025

Adriano Mota 7 min read

In modern system architectures, understanding data flow is crucial. Two fundamental concepts are north-south and east-west communications. Although both deal with APIs and services, they solve fundamentally different problems and require distinct tools. Below, we’ll explore when to use API gateways or a service mesh for north-south and east-west traffic. We’ll consider when each approach ...

blogdesignstrategyapi architectureapi gateway

11 Nov 2025

Janet Wagner 6 min read

We often talk about API design here at Nordic APIs and best practices to follow. One of those best practices is clear and consistent naming conventions throughout the API — from endpoint resources and URIs to fields and parameters. Naming is often overlooked in API design, leading to a poor experience for consumers. Imagine the ...

blogdesignai agentsapi best practicesapi description languages

23 Oct 2025

J Simpson 7 min read

API documentation is the cornerstone of discoverability. Well-structured API documentation allows an API to be understood by humans as well as machines. It lets a system understand how the API is structured, what it does, and includes invaluable metadata for further filtering and sorting. This means that API documentation is equally vital for an API ...

blogdesignmarketingai agentsapi architecture

22 Oct 2025

Kristopher Sandoval 6 min read

AI agents are increasingly autonomous in the way they interact with APIs and the systems those APIs represent. But unlike human developers, who can intuit solutions pretty readily, agents aren’t quite up to the task of reading docs, joining Slack channels, or pinging support when something breaks. They rely entirely on metadata, structure, and observed ...

blogdesignai agentsapi designapi development

14 Oct 2025

13 Oct 2025

Bill Doerrfeld 5 min read

Real-world constraints often impact how we build digital services. This is especially true for enterprise APIs in regulated industries that transmit sensitive data across jurisdictions. Constraints around how data is managed can easily slow progress — but it doesn’t have to be that way. At Platform Summit 2025, Yinka Omole, a lead software engineer at ...

blogdesignsecurityapiapi architecture

9 Oct 2025

Kristopher Sandoval 7 min read

“So it happened, Scott. An MCP server I use in one of my workflows shipped a breaking API change, and my entire workflow broke.” With this single line, Scott Feinberg illuminates a core problem that the excitement around Model Context Protocol (MCP) has fundamentally ignored: API versioning. APIs change all the time — that’s what ...

blogdesignstrategyai agentsapi changelog

24 Jul 2025

28 Jan 2025

3 Jan 2025

13 Dec 2024

1 Jun 2023

9 Jan 2023

Tinder 8 min read

Author: Darragh Burke, Software Engineer II, Web Development at Tinder Tinder’s UI Opportunities: Wildfire When Tinder first launched in 2012, it pioneered a brand new user experience: the Swipe Right® and “Swipe Left”™ features. The app’s simplicity was a big part of what made it so appealing. An early version of Tinder We’ve emphasized building new features and moving fast…

designweb-developmentuxobsidianengineering

11 May 2022

22 Mar 2020

Henrik Warne 6 min read

I really like Secure by Design. The key idea is that there is a big overlap between secure code and good software design. Code that is strict, clear and focused will be easier to reason about, and will have fewer … Continue reading →

learningprogrammingdesignsecurity

8 Mar 2020

0xADADA 1 min read

The Laughing Man 笑(わらい) い 男(おとこ) (warai otoko) is a fictional character in the anime series Ghost in the Shell: Stand Alone Complex. This lil’ project is an animated SVG using CSS transforms to rotate the text. The Laughing Man logo is an animated image of a smiling figure wearing a cap, with circling text quoting a line from Salinger’s…

projectsopen-sourcegraphicsdesign

23 Feb 2020

Dave Cheney 22 min read

This article was derived from my GopherCon Israel 2020 presentation. It’s also quite long. If you’d prefer a shorter version, head over to the-zen-of-go.netlify.com. A recording of the presentation is available on YouTube. How should I write good code? Something that I’ve been thinking about a lot recently, when reflecting on the body of my […]

gosmall ideasdesign

30 Jun 2019

jonskeet 16 min read

This is a blog post I’ve intended to write for a very long time. (Other blog posts in that category include a recipe for tiramisu ice cream, and “knights and allies”.) It’s one of those things that’s grown in my mind over time, becoming harder and harder to start. However, there have been three recent … Continue reading Versioning limitations…

c#designversioning

23 Apr 2018

Lucas Arundell 7 min read

If there was one word to describe the theme of JSConfIS it would be experience. Beyond the wonder and fantastical environment of the conference’s location and backdrop (hosted in Reykjavik, Iceland at their world-famous Harpa concert hall) – the majority of talks focused on topics relating to both the user and the developer experience too. The […]

frontenddesignhow we work

12 Mar 2018

22 Nov 2017

Timur Celikel 3 min read

The four of us (Charisse, Jan, Paulo & Timur) arrived early for coffee. Right before the first talk in the morning we were welcomed by a very happy DJ. As it turned out later, he embedded snippets of the talks in his songs of vastly different genres in the breaks. Over the course of the […]

designhow we work

5 Sept 2017

Seth Hubbell 8 min read

Language: Scala TestTool: Scalatest How did we get here? When systems become reasonably complex, tests must manage cumbersome amounts of data. A test case that may test a small bit of functionality may start to require large amounts of domain knowledge about the system being tested. This is often done through the mock data used […]

software architecturetestingdesignintegrationquality assurance

30 May 2017

Jan Heuermann 5 min read

Recently three of our developers attended the CSSconf 2017 in Berlin. The talks have been inspiring for us and once again we got clear about what a mature language CSS has become by now. The steady addition of new features continue to amaze and the enthusiasm of the community is infectious. The conference itself was […]

frontendproductdesignhow we work

8 May 2017

kevin 6 min read

You might have heard that you shouldn't be using JWT. That advice is correct - you really shouldn't use it. In general, specifications that allow the attacker to choose the algorithm for negotiation have more problems than ones that don't (see TLS). N libraries need to implement M different encryption and decryption algorithms, and an […]

codedesign

20 Apr 2017

Ellina Morits 4 min read

There is an overwhelming amount of books available today for UX (user experience) professionals of all levels. In this post I will share the books that helped me get started in UX. The following books got me hooked on the idea of working in UX and educating myself on the topic. They helped me shape an idea of what UX…

designweb-designuser-experienceux

27 Jan 2017

Litsa Litsa 5 min read

So many folks are wonder what they need to do to make a career of User Experience Design. As someone who interviewed many designers before, I’d say the only gate between you and a career in UX that really matters is your portfolio. Tech moves too fast and is too competitive to worry about tenure […]

uncategorizeduxdesigniaix

25 Jan 2017

Dave Cheney 2 min read

In my previous post I suggested that the best way to break the compile time coupling between the logger and the loggee was passing in a logger interface when constructing each major type in your program. The suggestion has been floated several times that logging is context specific, so maybe a logger can be passed around via […]

goprogrammingdesignlogging

23 Jan 2017

Dave Cheney 2 min read

This post is a spin-off from various conversations around improving (I’m trying not to say standardising, otherwise I’ll have to link to XKCD) the way logging is performed in Go projects. Consider this familiar pattern for establishing a package level log variable. package foo import “mylogger” var log = mylogger.GetLogger(“github.com/project/foo”) What’s wrong with this pattern? The first problem […]

goprogrammingdesignlogging

12 Jan 2017

Charisse De Torres 3 min read

During Ship It Week, I took the opportunity to redesign our emails. The goal was to deliver a more modern and fluid layout in hopes of strengthening trust and creating a more pleasant user experience among our customers. Before and After Design According to research1, aesthetics play a big role on how people interact with things. And […]

frontendproductdesignemail

16 Dec 2016

Litsa Litsa 4 min read

Pattern libraries sometimes fall short of helping enterprise teams build different products the same way. These palettes of components (toolbars, pop-ins) and patterns (searching, navigating) can be assembled into any number of UIs, leading to too many right answers. While the public pattern libraries like Google Material must accommodate countless unimagined applications, our private libraries […]

software architecturedesigniaixux

14 Dec 2016

Lucas Arundell 1 min read

Today we’re excited to announce a new makeover for the Small Improvements application; a new font family! Please welcome “Avenir Next”! This is all part of our mission to create a more enjoyable, engaging and enticing experience for Small Improvements users. The Design Team @ Small Improvements has had a big year; going responsive, updating colours, icons […]

productdesignuihtmlcss

7 Nov 2016

kevin 6 min read

For the past few weeks I've been working on Logrole, a Twilio log viewer. If you have to browse through your Twilio logs, I think this is the way that you should do it. We were able to do some things around performance and resource conservation that have been difficult to accomplish with today's popular […]

codedesign

3 May 2016

1 Apr 2016

Jack Tarantino 13 min read

Here are my notes from day 1 of Clarity Conf. Apologies in advance to the speakers whom I am certain I misquoted and misrepresented. Also if I missed things. Also for having some personal stuff just in the middle of there. Also because there's probably like 90 typos. I may

front-endstyle guidedesignstyleguide-driven developmentcode style

18 Mar 2016

6 Feb 2016

Dave Cheney 2 min read

Sandi Metz’s post on abstraction struck a chord with me recently. I was working with a piece of code which looked like this (in pseudo code): func Start() { const filename = "..." createOuputFile(filename) go run(filename) } It turned out that createOutputFile was written in an obscure way which first caused me to look at […]

goprogrammingabstractiondesign

14 Jan 2016

kevin 3 min read

Recently there's been a trend in API's to return more than one error, or to always return an array of errors, to the client, when there's a 400 or a 500 server error. From the JSON API specification: Error objects MUST be returned as an array keyed by errors in the top level of a […]

codedesign

5 Nov 2015

Dave Cheney 5 min read

This is a post inspired by a thread that Nate Finch started on the Go Forum. This post focuses on Go, but if you can see your way past that, I think the ideas presented here are widely applicable. Why no love ? Go’s log package doesn’t have leveled logs, you have to manually add prefixes like […]

goprogrammingsmall ideasdesignlogging

6 Sept 2015

kevin 7 min read

The Shyp API currently runs on top of the Sails JS framework. It's an extremely popular framework - the project has over 11,000 stars on Github, and it's one of the top 100 most popular projects on the site. However, we've had a very poor experience with it, and with Waterline, the ORM that runs […]

codedesignusability

31 Aug 2015

kevin 5 min read

Okay! You had an idea for how to improve the project, the maintainers indicated they'd approve it, you checked out a new branch, made some changes, and you are ready to submit it for review. Here are some tips for submitting a changeset that's more likely to pass through code review quickly, and make it […]

codedesignimprovement

24 Mar 2014

kevin 3 min read

"Build software like a tank." I am not sure where I read this, but I think about it a lot, especially when writing HTTP clients. Tanks are incredible machines - they are designed to move rapidly and protect their inhabitants in any kind of terrain, against enemy gunfire, or worse. HTTP clients often run in […]

codedesign

19 Sept 2013

jonskeet 9 min read

Note: this blog post has now been turned into a video by Webucator, to go alongside their C# classes. (I’ve ended up commenting on this issue on Stack Overflow quite a few times, so I figured it would be worth writing a blog post to refer to in the future.) There are lots of ways … Continue reading Casting vs…

c#design

22 Jun 2013

jonskeet 5 min read

It seems to be quite a long time since I’ve written a genuine "code" blog post. Time to fix that. This material may well be covered elsewhere – it’s certainly not terrifically original, and I’ve been meaning to post about it for a long time. In particular, I remember mentioning it at CodeMash in 2012. … Continue reading Array covariance:…

benchmarkingc#designwacky ideas

10 Feb 2013

kevin 3 min read

How should you design the controls for a shower? Let's take a quick look. Affordance A device should make clear by its design how to use it. Take a hammer for example. No one has ever looked at a hammer and wondered which end you are supposed to grab and which part you're supposed to […]

designusability

13 Sept 2012

Junior Grossi 1 min read

Hi all! I am here to present my new blog theme. I know that I have to blog more but I am not having time for that. So, yesterday I was thinking in a way to blog more and decided to create a new blog theme. I think a clean and small blog theme can … Continue reading My blog’s…

design