Promises in JavaScript may feel like an abstract or magical thing that handles the async work for us. Once you get into them, they're relatively easy to use, but not that easy to understand what's really happening.
Will AI replace software engineers has been the quintessential question being asked in technology circles circa 2022 and beyond. The roles of product owners, graphic designers, and others shortly followed on the thread of that question too.
I’m not talking about skill, knowledge, or convincing a world focused on radical acceleration that optimization is necessary. Performance optimization is hard because it’s fundamentally a brute-force task, and there’s nothing you can do about it.
It starts innocently. You rename a batch of files with a ten-line Python script, or you alias a common git command to shave off two keystrokes. Maybe you build a small shell function to format JSON from the clipboard.
Look, I can instantly append a task to a list when I press Enter on the input field. That's great in theory, but in practice, there's likely more challenges awaiting you. I have already written a bit about this in #12: Mastering Mutation in React Query, but it's an important point to re-iterate on.
We’ve been experimenting with Claude Code — a coding assistant recently released by Anthropic — on CodeConcise, a tool we built at Thoughtworks to comprehend legacy codebases.
Suppose I want to greet you in my favorite color. This would require combining information from two different computers. Your name would be coming from your computer. The color would be on my computer.