I used Kiro.dev for 5 days to complete my hackathon project (analyzing GitHub repositories). My quick eval: Kiro feels like a below mid-level dev. below mid-level Coding skills: mid-level Engineering skills: below mid Discipline: below mid Coding skills: mid-level Coding skills: Engineering skills: below mid Engineering skills: Discipline: below mid Discipline: How Kiro stacks up vs a senior dev Here’s how Kiro stacks up vs. a senior dev (based on my 25 years in software): What Kiro does What a senior does Ideas to fix Kiro Chooses a random repo with 100+ forks Chooses a few smaller repos Ask Kiro to research repos suitable for testing Implements one big, long-running command (multiple requests per fork) Plans smaller steps: show-info, list-forks. Tests step by step → sees most forks are empty and skips them Ask to force task decomposition (Kiro resists) and break all processes into smaller steps Plans redundant, unnecessary, undisclosed features Plans only what’s needed Ask to stay minimal when planning features Rewrites raw data into vague, emotional, emoji-heavy text Reports raw data as is Ask to transmit entity names/data directly, without rephrasing Loses insights during planning/implementation Keeps track of all key details Summaries + separate notes sessions Starts coding immediately during “specs” discussion Plans first Use separate sessions, ask for summaries, and store notes in a separate file Ignores instructions (agent steering rules) Gets fired Must follow rules or refund Creates new specs for tiny features instead of extending existing ones Creates a new package only if reusable Must respect current session scope Crashes but still marks task as “completed” Gets fired Must either finish properly or refund Outputs “successful all done complete” placeholders as results Raises NotImplementedError Should always raise for unimplemented features Does a sloppy job Hunts for a new job Hopefully more careful with smaller tasks Never runs proper tests Runs thorough tests Ask for full test coverage - but beware, your budget may vanish fast Not ready to ship autonomously Can work autonomously Add more rules - will it help? Burns through your budget for only uncertain results Delivers within budget Pricing should reflect useful results, not wasted usage What Kiro does What a senior does Ideas to fix Kiro Chooses a random repo with 100+ forks Chooses a few smaller repos Ask Kiro to research repos suitable for testing Implements one big, long-running command (multiple requests per fork) Plans smaller steps: show-info, list-forks. Tests step by step → sees most forks are empty and skips them Ask to force task decomposition (Kiro resists) and break all processes into smaller steps Plans redundant, unnecessary, undisclosed features Plans only what’s needed Ask to stay minimal when planning features Rewrites raw data into vague, emotional, emoji-heavy text Reports raw data as is Ask to transmit entity names/data directly, without rephrasing Loses insights during planning/implementation Keeps track of all key details Summaries + separate notes sessions Starts coding immediately during “specs” discussion Plans first Use separate sessions, ask for summaries, and store notes in a separate file Ignores instructions (agent steering rules) Gets fired Must follow rules or refund Creates new specs for tiny features instead of extending existing ones Creates a new package only if reusable Must respect current session scope Crashes but still marks task as “completed” Gets fired Must either finish properly or refund Outputs “successful all done complete” placeholders as results Raises NotImplementedError Should always raise for unimplemented features Does a sloppy job Hunts for a new job Hopefully more careful with smaller tasks Never runs proper tests Runs thorough tests Ask for full test coverage - but beware, your budget may vanish fast Not ready to ship autonomously Can work autonomously Add more rules - will it help? Burns through your budget for only uncertain results Delivers within budget Pricing should reflect useful results, not wasted usage What Kiro does What a senior does Ideas to fix Kiro What Kiro does What Kiro does What a senior does What a senior does Ideas to fix Kiro Ideas to fix Kiro Chooses a random repo with 100+ forks Chooses a few smaller repos Ask Kiro to research repos suitable for testing Chooses a random repo with 100+ forks Chooses a random repo with 100+ forks Chooses a few smaller repos Chooses a few smaller repos Ask Kiro to research repos suitable for testing Ask Kiro to research repos suitable for testing Implements one big, long-running command (multiple requests per fork) Plans smaller steps: show-info, list-forks. Tests step by step → sees most forks are empty and skips them Ask to force task decomposition (Kiro resists) and break all processes into smaller steps Implements one big, long-running command (multiple requests per fork) Implements one big, long-running command (multiple requests per fork) Plans smaller steps: show-info, list-forks. Tests step by step → sees most forks are empty and skips them Plans smaller steps: show-info, list-forks. Tests step by step → sees most forks are empty and skips them Ask to force task decomposition (Kiro resists) and break all processes into smaller steps Ask to force task decomposition (Kiro resists) and break all processes into smaller steps Plans redundant, unnecessary, undisclosed features Plans only what’s needed Ask to stay minimal when planning features Plans redundant, unnecessary, undisclosed features Plans redundant, unnecessary, undisclosed features Plans only what’s needed Plans only what’s needed Ask to stay minimal when planning features Ask to stay minimal when planning features Rewrites raw data into vague, emotional, emoji-heavy text Reports raw data as is Ask to transmit entity names/data directly, without rephrasing Rewrites raw data into vague, emotional, emoji-heavy text Rewrites raw data into vague, emotional, emoji-heavy text Reports raw data as is Reports raw data as is Ask to transmit entity names/data directly, without rephrasing Ask to transmit entity names/data directly, without rephrasing Loses insights during planning/implementation Keeps track of all key details Summaries + separate notes sessions Loses insights during planning/implementation Loses insights during planning/implementation Keeps track of all key details Keeps track of all key details Summaries + separate notes sessions Summaries + separate notes sessions Starts coding immediately during “specs” discussion Plans first Use separate sessions, ask for summaries, and store notes in a separate file Starts coding immediately during “specs” discussion Starts coding immediately during “specs” discussion Plans first Plans first Use separate sessions, ask for summaries, and store notes in a separate file Use separate sessions, ask for summaries, and store notes in a separate file Ignores instructions (agent steering rules) Gets fired Must follow rules or refund Ignores instructions (agent steering rules) Ignores instructions (agent steering rules) Gets fired Gets fired Must follow rules or refund Must follow rules or refund Creates new specs for tiny features instead of extending existing ones Creates a new package only if reusable Must respect current session scope Creates new specs for tiny features instead of extending existing ones Creates new specs for tiny features instead of extending existing ones Creates a new package only if reusable Creates a new package only if reusable Must respect current session scope Must respect current session scope Crashes but still marks task as “completed” Gets fired Must either finish properly or refund Crashes but still marks task as “completed” Crashes but still marks task as “completed” Gets fired Gets fired Must either finish properly or refund Must either finish properly or refund Outputs “successful all done complete” placeholders as results Raises NotImplementedError Should always raise for unimplemented features Outputs “successful all done complete” placeholders as results Outputs “successful all done complete” placeholders as results Raises NotImplementedError Raises NotImplementedError Should always raise for unimplemented features Should always raise for unimplemented features Does a sloppy job Hunts for a new job Hopefully more careful with smaller tasks Does a sloppy job Does a sloppy job Hunts for a new job Hunts for a new job Hopefully more careful with smaller tasks Hopefully more careful with smaller tasks Never runs proper tests Runs thorough tests Ask for full test coverage - but beware, your budget may vanish fast Never runs proper tests Never runs proper tests Runs thorough tests Runs thorough tests Ask for full test coverage - but beware, your budget may vanish fast Ask for full test coverage - but beware, your budget may vanish fast Not ready to ship autonomously Can work autonomously Add more rules - will it help? Not ready to ship autonomously Not ready to ship autonomously Can work autonomously Can work autonomously Add more rules - will it help? Add more rules - will it help? Burns through your budget for only uncertain results Delivers within budget Pricing should reflect useful results, not wasted usage Burns through your budget for only uncertain results Burns through your budget for only uncertain results Delivers within budget Delivers within budget Pricing should reflect useful results, not wasted usage Pricing should reflect useful results, not wasted usage Final My opinion: Kiro isn’t ready to work fully autonomously. It burns through budget fast, delivers only so-so results, and needs tighter rules plus better pricing to be truly useful. My opinion: Will I hire Kiro? Definitely yes. We need agents with different angles - just like people - to handle different tasks. Will I hire Kiro? Definitely yes.