In this post, we show you how to run a one-hour prioritization session with your stakeholders, plot competing initiatives on a shared matrix by cost and impact and turn the result into an actionable architecture backlog - using a framework called Tech Roadmap Prioritization (TRP).
#best practices
18 posts
3 Jun
21 May
Learn how AI-citable documentation helps ChatGPT, Claude, and Perplexity understand and cite developer docs using schema, llms.txt, and clear code examples How to Build AI-Citable Documentation for ChatGPT, Perplexity, and Claude on SitePoint.
20 May
Cyber resilience on AWS: A reference approach for recovery from ransomware and destructive events
AWS ArchitectureCyber resilience is the ability to recover workloads to a known-good state after an adversary has affected the environment. Prevention works to keep threat actors out and detection works to find them quickly. Cyber resilience focuses on recovery: restoring a trustworthy environment when backups, credentials, or parts of the infrastructure can no longer be assumed […]
11 May
Organizations face critical architectural decisions that can impact their operations for years to come such as: Is it better to maintain a single organization or implement multiple organizations? In this post, I explain the key advantages and disadvantages of both approaches and the scenarios where each model fits best.
8 May
null How to Build a Python-Based Model Execution Framework for Treasury Analytics on SitePoint.
6 May
null Foundations First: Four Pillars Every Enterprise Needs Before AI on SitePoint.
12 Jun 2017
It's time that we took back our work day from our calendars and Calendar Tetris is the first thing that has got to go. Calendars are a tool and like every tool they should be used appropriately. What is "Calendar Tetris"? Does your calendar look like a Jackson Pollack painting?
14 Mar 2017
This post is another one brought to you by the good people at InRhythm. If you're an engineer that likes writing and building strong, happy culture focused on learning and growth you should apply! I like working with smart, passionate people :). Lots of companies embrace pair programming as a way
8 Jan 2017
This article is one in a series about writing client-focused JavaScript without the help of libraries and frameworks. It's meant to help developers remember that they can write good code on their own using nothing but native APIs and methods. For more, check out the original article on writing small
18 May 2016
If that title left you feeling a bit indignant, this post is just for you. After consulting with my Nth company running a content site and watching them struggle to design, develop, and maintain their own CMS, I think it's time to admit this: I'm not better than WordPress. None
13 May 2016
or "How I learned to stop worrying and love all browsers the same as long as they came out kinda recently" Time and time again I've seen companies ignore smaller audiences that use their product because those audiences are not the main/target/primary audience. At a recent job they
17 Apr 2016
You too can write vanilla JavaScript! A mistake that a lot of developers make when they first approach a problem (me included!) is to start thinking about the problem from the top down. They start thinking of the problem at hand in terms of frameworks and plugins and pre-processors and
1 Apr 2016
Here's my notes from day 2 of Clarity Conf. Again, apologies to the speakers whom I'm certain I misquoted and probably misrepresented. These are very incomplete. Please send me a message or say 'hi' in person with any changes. Jina Anne designsystems.herokuapp.com <- get invited to the
27 Jan 2016
Delegating event listeners in JavaScript is generally a good practice. It allows us to create only one event listener for events that might be triggered on a variety of nodes and across multiple contexts. If we're just looking to listen for any given click on a page it would be
29 Nov 2015
The new kid in town is called Template Strings. Template Strings are demarked by a backtick(`) on either end and can contain other backticks if they are escaped by a backslash(ie. let my_string = `some cool \`escaped\` thing`). This new kind of primitive in JavaScript is different from
Writing Immediately Invoked Function Expressions or IIFEs in ES6(Also known as ES2015 now) just got a lot easier with the introduction of fat arrow functions. (global => { const MY_CONSTANT = 'api key or something' let counter = 0 let some_array = [1,2,34,5,6,7] counter = some_array.
28 Jul 2015
Method overloading has always been a topic with mixed feelings. We’ve blogged about it and the caveats that it introduces a couple of times: You Will Regret Applying Overloading with Lambdas! Keeping things DRY: Method overloading Why Everyone Hates Operator Overloading API Designers, be Careful There are two main reasons why overloading is useful: To … Continue reading Java 8’s…
12 Mar 2014
Patterns 34:29 As Turing descended from Mount Compute – with the two iPads of the testimony in his hands as he descended the mountain – he did not realize that the skin of his blog shone as a result of his Compiling the Code. Patterns 35:1 Turing assembled the entire Geek community and said to … Continue reading The 10…