Posts

AI maturity levels - understanding the software engineering disruption

Image
The last 2 to 3 years have been a whirlwind of disruption in Software engineering due to the impact of AI. I was seeking about a way to represent an "ai maturity" scale to make sense of the changes and I think this video based on  this article from Dan Shapiro is a good representation. From these I created a graphic which represents visually key points as I understand it. Remember about 2 or 3 years ago when you first used copilot in vscode? the predictive typeahead...pretty cool eh. Then we all moved on to cursor and its much better typeahead. Btw what a great acquisition by cursor to buy Supermaven code completion in 2024 . I believe it more than repaid their investment given cursors since skyrocketed valuation. And then came ai chat for code gen. At the time codegen quality was low e.g. "write tests for function xyz". It used to get maybe 30% and then you finished the rest. Then we added rules to make the codegen better (we added 1000s of lines of rules for diff...

cypress e2e tests: page objects vs application actions vs custom commands

Should you use Application Actions when writing cypress tests? Or is the Page Objects pattern better? Or neither and just write tests and use cypress custom commands to share common selectors and user actions? Page Objects is a well established pattern. Create classes for pages in your app and put selectors in those classes. Then in your test use (and reuse) the page object classes methods to simulate user actions such as fill in a field or submit a form. This centralizes and reuses selector code. Application Actions pattern exposes the applications model as a property on window which can be directly edited in cypress test code. Now test setup to add todos so they can be toggled becomes basically like so: `window.appModel.addToDos([{}, {}])` The author provides examples of how to use Application actions including with async operations. Faster setup results in faster tests. And per the author better organized app code. The Application Actions post link argues that Page Objects are a ...

My learnings from Addy Osmanis article on how good is AI React coding

These are my notes from the article How Good Is AI at Coding React (Really)?  by Addy Osmani. There's a lot of information packed into this presentation Addy says that AI is a force multiplier. "It amplifies everything: good requirements, good architecture, good taste" AI is most useful for scenarios such as building isolated components, scaffolding, implementing explicit requirements. Its less useful for scenarios such as: multi-step integration, design taste, complex state management.  We can generalize this to: the higher the complexity the less useful (productive) is the LLM.  I called this same point out in a presentation I made in October to our tech leaders.  And in fact Addys says this explicity later in the article:  "If you remember nothing else from this article, remember this: AI handles simple tasks well and then falls off a cliff as complexity rises." I like that Addy calls out "Objective benchmarks". We've seen by now that LLM model ...

AI product idea: your teams performance dashboard and continuous review

Ah yes, "Welcome Performance reviews my old friend" as the song goes So I'm using AI to help me write my performance review. I use Glean to pull key data from conversations, documents, tickets and more. I use Gemini to help me write and summarize data. And my manager will use AI when writing their performance review of me. So why not skip all this and build a product around this: a performance dashboard and continuous review for your team Imagine a dashboard of your team viewable by timeframe such as: day, week, month etc. for all activity as well as ability to zero in on specific projects Imagine Agents with specific focus:  Performance review Agent; reviews personnel performance based on custom criteria Career Growth Agent: a coach and mentor for personnel career growth. Feedback tailored to the persons role as well as their next role Career change Agent: want to switch from an IC engineer to Manager role, we have an agent for that Parental Leave Agent: guides you throu...

cursor commands

I'm liking cursors commands : a way to integrate your common ai prompts into cursor using the / command store your prompts (commands) as markdown in the repo folder, then access in cursor chat using slash command I'm storing my commands in a file in the repo but this is a nice enhancement by cursor

conductor - manage claude code instances

Running Claude Code in terminals is ok, but I felt managing it all needed a better user interface to organize and track.   conductor is an example of what such a user interface could be

claude code - technology and usages

Image
claude code npm tech stack:  typescript - claude code is written in ts (pssst: typescript is a must know language imo) react - ui is written in react and uses ink for interactive command line ink - react components for command line! used by a whole list of AI whos who with command line yoga - embeddable flexbox layout engine and  bun  - js runner, runtime, bundler; choose over webpack/vite etc. because bun is faster) npm to distribute claude code Started as a simple project to query what music someone was listening to. Then added capabilities to access the file system and run batch commands. Usage spread rapidly within Claude Code team who dogfooded it. "around 90% of claude code is written with claude code" (not by, with) claude code is a thin wrapper over the claude model, they deliberately want people to experience the raw model, not obstructed by much business logic a guiding principal is: simplicity, choose the simplest approach possible the most complex part of cl...