Categories
GenAI

First Impressions of AmazonQ

My employer has organised a ‘Summer of Q’, where a number of us have signed up to play with AmazonQ. This weekend was the first time I could work with Q in depth. The main result – I ‘built’ a quiz application in 30 minutes (while also doing some chores) and it looked and worked better than what I’d have produced solo. But there are a lot of subtleties and caveats to add to this.

  • A major argument against GenAI putting developers out of work is how poor the tooling and signup flows for Q are. The signup is terrible and confuses a lot of people. Q failed to help, and kept hallucinating links to help pages that didn’t exist. The IntelliJ plugin is awful and locks the IDE, so I’ve had to use the command-line version instead.
  • Q is great at producing code. Producing the quiz example was a trivial task, so I’m now working on a much more complicated example. Straight away, I can see Q making me more effective. Personal tools I’ve wanted to make, that I decided against investing time in, now look easy.
  • The quiz app that Q produced looked and played better than what I could have produced by myself. I’m very impressed by this.
  • The model’s reasoning is clever and spooky – it makes mistakes sometimes, but then works to fix those. Interesting behaviour – although I expect there to be fewer mistakes in the generated code over time.
  • One of the challenges of coding agents is getting used to the new workflow. There’s a fair bit of waiting involved while Q thinks about each file that needs creating. It’s very different to using a GenAI coding assistant, and I need to figure out the best new workflow.
  • An ongoing problem with GenAI is that it involves a lot more reading than writing. I figure almost no-one is reading co-pilot meeting summaries, and I worry that not everyone will closely read the impressive amount of code that Q generates.
  • At present, I’m reviewing each action Q takes, rather than trusting it for the session. It’s going to be interesting to how other people are working. There’s a lot of boring waiting this way, but a lot less reading to do in one go.
  • Being able to produce decent (albeit not perfect) code so quickly will change the nature of programming. The coding part is going to get much easier. The development part – making sure the right thing is produced – will become more important, and maybe more difficult. I’m currently using feature tests as a way of validating what is being made.
  • Something I’ve noticed with GenAI in a number of areas is the importance of taste. The tools produce things (image/text/code) incredibly fast, and require an operator with strong opinions about this output.
  • Q responded to my initial, naive prompts by producing ornate additional features. For example I asked it to generate some BDD feature files and it’s adding some complicated accessibility tests. I’m looking forward to watching it try to fill those out! I also spotted some subtle divergences from the spec that I need to edit. The quiz code I initially generated also included a lot of useful but unasked-for features. They were improvements, for sure, but it was definitely not an MVP. It will be interesting to see how easy it is to work with Q on my more complicated application.
Categories
weeknotes

Weeknotes: 2025-28

  • I’ve been working this week on mongo replicasets and I’m very impressed with their resilience, particularly the use of an intelligent client in the driver to handle failover etc.
  • As part of an initiative at work, I started playing with Amazon Q, initially asking it to generate some basic arcade games. First impression was to be impressed at the simple examples produced, while being aware of the challenge in getting precise results from a coding agent. Something I need to spend more time on.

Links

  • An excellent post from Sean Goedecke, AI Interpretability is further along than I thought, talks about internals of language models – it was a useful reminder of why telling a chatbot that it’s an expert works.
  • AI-assisted coding for teams that can’t get away with vibes (via Simon Willison) was a useful primer on large-scale coding with GenAI. A useful rule here was ‘what helps the human helps the AI’, including linting, CI/CD, documentation and clearly defined features. Some good examples around prompting, and how AIs are used to build the prompts to code from. The most interesting bit, and something I’d like to go back to, is the claim that the DRY principle is less useful when working with LLMs. This is a living document being maintained by nilenso, which I will have to keep an eye.
  • Could HTTP 402 be the Future of the Web was a good speculative article about the need for micropayments and how charging AI crawlers could lead to that.
  • Some excellent words of wisdom from Everything is Prioritization: “If you’re remote and still free frazzled, you’re not doing remote wrong. You’re just prioritizing availability over impact.” The article talks about the need to avoid tempting distractions: “The best teams aren’t full of geniuses. They’re full of people who keep their focus and say ‘no’ without having a breakdown”.
  • I’ve long disliked the cargo cult metaphor, and this is deconstructed in The origin of the cargo cult metaphor, which points out a lot of the errors and miscomprehension in the popular understanding of actual cargo cults. “The cargo cult metaphor is best avoided”.
  • Simon Willison’s Identify, solve, verify is a short piece on the role of the programmer in the era of GenAI. “The more time I spend using LLMs for code, the less I worry about my career”.
  • The Elegance Question: What Makes Some Systems Just Work? set out some simple principles for building ‘elegant’ systems. This was thought-provoking, particularly around the question of why so many systems go against these principles.

Books

No time for reading this week – and I’ve been distracted by a non-tech book.

Categories
weeknotes

Weeknotes: 2025-27

  • I’m going to try writing a few weeknotes to see how they feel. I need some way to consolidate everything I’m reading and thinking about, but longer blog posts are not coming together. These weeknotes will help me track my technical interests – and hopefully help me find interesting blog posts when I need to refer back to them.
  • Last Sunday, I had an interesting conversation with Laurence where I found myself asking whether agile is too hard for most teams. Laurence pointed out out that the core of agile is simple, but it does place a lot of demand on developers. I think the widely perceived failures of agile need much more consideration.
  • In another discussion with Laurence, I realised how vital GenAI skills will be for technical managers – there is a huge change in software development coming and staying current will require understanding those skills – not least to be able to support and unblock those who use them most.
  • Something I’ve not blogged about over the past few weeks is the decline of stack overflow. It’s been interesting to see how the references for learning technical skills have changed over the years.
  • One of the things I like most about working in a large consultancy is the number of talks and activities going on. An ‘unadvent of code’ group has started to look at the Advent of Code puzzles from 2018. This has got me playing with Go as a coding activity, which I’m enjoying.

Links

  • I watched the video Java for AI by Java Library Architect Paul Sandoz – another example of the Java platform’s strength as a combination of JVM, libraries. It’s will be good to see Java become a first-class platform for AI
  • AI Is Poised to Re-write History is an interesting article looking at GenAI as a reading machine rather than a writing machine. It also interviews Mark Humphries, who was discussed in the excellent Feb 2024 Verge article How AI can make history

Reading

Writing for Developers

I started reading this book, a recommendation from my colleague Matt. The book could probably be titled ‘Blogging for Developers’, and it’s interesting to see someone writing such a book in 2025. I like the book, but I definitely have philosophical differences with it, in that it focusses on blogging as a way to go viral, sometimes neglecting the more personal uses of blogging (such as weeknotes). A good counterpoint occurs in Simon Willison’s piece on keeping a link blog.