aws-toolkit-vscode — Engineering Performance
6 engineers all time · Jan 2025 – Aug 2026 · built 2026-09-10 · GitHub
Performance snapshot
Today's rolling 90-day reading for aws-toolkit-vscode, compared with the start of the series. Pick a window to move that comparison point.
Avg. perf / dev / mo
−94.4%
0.53 → 0.03 ETV
Active engineers
−50.0%
4.0 → 2.0
Features
−41.3pp
41.3% → 0.0%
vs. AWS
0.04x
1.7x → 0.04x · −96% below
aws-toolkit-vscode vs. AWS
Per-engineer ETV for aws-toolkit-vscode against AWS as a whole. Both lines are 90-day rolling averages scaled to a 30-day month, so they share one axis and can be read against each other at any point. Pick a window to zoom the chart to it.
Performance Composition
Each month's output split by type of work: Features (new value), Maintenance (sustaining systems), Tests, Docs, and Fixes (rework). The yellow line is output per engineer, so when it rises each engineer is delivering more, whatever the team size did. Unit: Engineering Throughput Value (ETV).
Engineering capacity
Effective engineers behind aws-toolkit-vscode, against its pre-AI baseline. Each subject has its own: aws-toolkit-vscode's is 0.53 ETV / dev / mo, its first reading in Q1 2025. Per-engineer ETV divided by that gives a capacity multiple, and that multiple applied to the engineers active in the trailing 90 days turns it into engineer-equivalents. The line is the real headcount, so the gap between line and area is what the leverage is worth. Because each baseline is its own, every subject opens at 1.0x on its first day: multiples measure improvement and are not comparable between subjects.
Knowledge concentration
How dependent is this repo on a small number of engineers? Higher top-1 share = higher key-person risk.
Will Lo owns 30.6 % of commits.
Behind the numbers
Written summary of the work completed each month.
No monthly reports available yet.
Most impactful commits
Top 10 by ETV in the all-time window.
- 4.4ETVrefactor(aws-toolkit-vscode): migrate aws-sdk v2 to v3 (#8183) ## Note **There is still a little bit more work needed for fully migrating aws-sdk v2 to v3, specifically all of these clients [here](https://github.com/aws/aws-toolkit-vscode/blob/59fd17fcfa22798e78d0df196290edb4a070f7ec/packages/core/scripts/build/generateServiceClient.ts#L232-L251) from the `generateServiceClient.ts` script** ## Problem AWS SDK V2 is at EOL ## Solution Migrate AWS SDK V2 to V3 This work has been done in the `feature/v2-to-v3-migration` feature branch and thus merging it into `master` Here are the PRs, which this does not include the merges from main and resolving conflicts: - https://github.com/aws/aws-toolkit-vscode/pull/8043 - https://github.com/aws/aws-toolkit-vscode/pull/8042 - https://github.com/aws/aws-toolkit-vscode/pull/8046 - https://github.com/aws/aws-toolkit-vscode/pull/8054 - https://github.com/aws/aws-toolkit-vscode/pull/8041 - https://github.com/aws/aws-toolkit-vscode/pull/8056 - https://github.com/aws/aws-toolkit-vscode/pull/8081 - https://github.com/aws/aws-toolkit-vscode/pull/8069 - https://github.com/aws/aws-toolkit-vscode/pull/8067 - https://github.com/aws/aws-toolkit-vscode/pull/8093 - https://github.com/aws/aws-toolkit-vscode/pull/8095 - https://github.com/aws/aws-toolkit-vscode/pull/8094 - https://github.com/aws/aws-toolkit-vscode/pull/8171 - https://github.com/aws/aws-toolkit-vscode/pull/8159 - https://github.com/aws/aws-toolkit-vscode/pull/8175 - https://github.com/aws/aws-toolkit-vscode/pull/8182 ## Testing Manually tested the [prerelease builds](https://github.com/aws/aws-toolkit-vscode/releases/tag/pre-v2-to-v3-migration) https://github.com/user-attachments/assets/b1d4795c-4027-462e-a195-509ac4a9d8ae --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. --------- Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com> Co-authored-by: Tai Lai <ctlai95@gmail.com> Co-authored-by: invictus <149003065+ashishrp-aws@users.noreply.github.com> Co-authored-by: Laxman Reddy <141967714+laileni-aws@users.noreply.github.com>chungjac · d34ddfe6 · 2025-10-21
- 2.9ETVfeat(lambda): Merging Feature/lambda console2 ide to staging branch (#2144) ## Problem ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. --------- Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com> Co-authored-by: Roger Zhang <roger.zhang.cs@gmail.com> Co-authored-by: Reed Hamilton <49345456+rhamilt@users.noreply.github.com> Co-authored-by: Jacob Chung <chungjac@amazon.com>Laxman Reddy · 5cb7d9bc · 2025-07-03
- 2.9ETVfeat(lambda): Merging Feature/lambda console2 ide to staging branch. (#7601) ## Notes: - Releasing https://github.com/aws/aws-toolkit-vscode-staging/pull/2144 --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com> Co-authored-by: Roger Zhang <roger.zhang.cs@gmail.com> Co-authored-by: Reed Hamilton <49345456+rhamilt@users.noreply.github.com> Co-authored-by: Jacob Chung <chungjac@amazon.com>Laxman Reddy · d81c0a68 · 2025-07-03
- 2.8ETVfeat(sagemaker): Merging Feature/sagemaker connect to master (#7607) ## Notes: - feat(sagemaker): Merging Feature/sagemaker connect to master --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. --------- Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com> Co-authored-by: aws-asolidu <asolidu@amazon.com> Co-authored-by: Newton Der <newton.der@gmail.com> Co-authored-by: Newton Der <dernewtz@amazon.com> Co-authored-by: Edward Sun <edward.psun@amazon.com> Co-authored-by: Lei Gao <97199248+leigaol@users.noreply.github.com> Co-authored-by: Roger Zhang <roger.zhang.cs@gmail.com> Co-authored-by: Reed Hamilton <49345456+rhamilt@users.noreply.github.com> Co-authored-by: Jacob Chung <chungjac@amazon.com> Co-authored-by: aws-ides-bot <github-aws-toolkit-automation@amazon.com> Co-authored-by: aws-toolkit-automation <>Laxman Reddy · 4edc8152 · 2025-07-03
- 1.4ETVfeat(sagemaker): Releasing feature sagemaker parker (#8340) ## Problem ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. --------- Co-authored-by: Austin Jang <ajangg@amazon.com> Co-authored-by: Arkaprava De <arkaprava08@gmail.com> Co-authored-by: Roger Zhang <ruojiazh@amazon.com>Laxman Reddy · 7cceda06 · 2025-11-21
- 1.0ETVfeat(amazonq): client-side build support #6771 ## Problem We should perform builds client-side (rather than server-side) to handle customers’ unique / challenging local environments, which often cause our server-side build to fail. ## Solution Periodically download intermediate `diff.patch` files, apply them to a copy of the project, perform the local build, then upload the build logs and resume the transformation.David · 0651afd6 · 2025-04-30
- 0.8ETVfeat(sagemaker): Merge sagemaker to master (#7681) ## Notes - feat(sagemaker): Merging Feature/sagemaker-connect-phase-2 to master - Reference PR: https://github.com/aws/aws-toolkit-vscode/pull/7677 --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license. --------- Co-authored-by: aws-toolkit-automation <43144436+aws-toolkit-automation@users.noreply.github.com> Co-authored-by: Roger Zhang <roger.zhang.cs@gmail.com> Co-authored-by: Reed Hamilton <49345456+rhamilt@users.noreply.github.com> Co-authored-by: Jacob Chung <chungjac@amazon.com> Co-authored-by: aws-ides-bot <github-aws-toolkit-automation@amazon.com> Co-authored-by: aws-asolidu <asolidu@amazon.com> Co-authored-by: Newton Der <newton.der@gmail.com> Co-authored-by: Newton Der <dernewtz@amazon.com>Laxman Reddy · b39ab4ec · 2025-07-16
- 0.6ETVtelemetry: add domain acccount id telemetry (#8048) ## Problem - Require account id to create a more complete product metric on SMUS feature usage ## Solution - Add domain account id metadata to smus_login metric ## Test - on core `npm run generateTelemetry` - `npm test` - manually test telemetry ``` 2025-09-16 01:21:25.358 [debug] telemetry: smus_login { Metadata: { metricId: '43dfab8d-d5a6-4791-9afb-b0b3454efb23', traceId: 'ba4dd30a-3ad6-4101-84a0-8ae558947fed', parentId: '4e6f9558-995e-444e-8461-d718bd6434a5', duration: '1763', result: 'Cancelled', reason: 'UserCancelled', reasonDesc: 'Failed to initiate login. | UserCancelled: User cancelled domain URL input', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:22:39.406 [debug] telemetry: smus_login { Metadata: { metricId: '4840c7e2-7a68-49a8-8bb6-710d629856ab', traceId: '65160024-7c03-47c8-80e3-9fdf8493047b', smusDomainId: 'dzd_bh80g0fbj1h7xl', awsRegion: 'us-east-2', smusDomainAccountId: '050752642559', duration: '34889', result: 'Succeeded', awsAccount: 'not-set' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:22:48.391 [debug] telemetry: smus_accessProject { Metadata: { metricId: 'fad0c4d1-49bd-4a87-aed5-72a6e4d04c3a', traceId: '65160024-7c03-47c8-80e3-9fdf8493047b', parentId: 'cda698a1-1c85-477c-9722-ca5b81ae6f63', smusDomainId: 'dzd_bh80g0fbj1h7xl', smusProjectId: 'c1wqm5rlzb150p', smusDomainRegion: 'us-east-2', smusDomainAccountId: '050752642559', duration: '10451', result: 'Succeeded', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:22:51.374 [debug] telemetry: smus_renderProjectChildrenNode { Metadata: { metricId: '0bc6e3e4-a54b-44a2-84d6-b033e656d91e', traceId: 'e280e0c3-54c5-4aae-8431-ef5724a20e42', smusToolkitEnv: 'local', smusDomainId: 'dzd_bh80g0fbj1h7xl', smusDomainAccountId: '050752642559', smusProjectId: 'c1wqm5rlzb150p', smusDomainRegion: 'us-east-2', duration: '2979', result: 'Succeeded', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: true } 2025-09-16 01:24:25.389 [debug] telemetry: smus_renderLakehouseNode { Metadata: { metricId: 'f50b2b04-ffe7-49f6-8d85-a1e5d59438cc', traceId: '83155b49-3d84-4896-bb04-5ed5182006e6', smusToolkitEnv: 'local', smusDomainId: 'dzd_bh80g0fbj1h7xl', smusDomainAccountId: '050752642559', smusProjectId: 'c1wqm5rlzb150p', smusConnectionId: 'c1pnab9bdg3qjt', smusConnectionType: 'LAKEHOUSE', smusProjectRegion: 'us-east-2', duration: '2321', result: 'Succeeded', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:24:54.443 [debug] telemetry: smus_renderS3Node { Metadata: { metricId: '74f286b6-1feb-43aa-b15e-4e0919ab272a', traceId: '9db37019-272f-4963-9e9e-1da9d9f9a26e', smusToolkitEnv: 'local', smusDomainId: 'dzd_bh80g0fbj1h7xl', smusDomainAccountId: '050752642559', smusProjectId: 'c1wqm5rlzb150p', smusConnectionId: 'c13ow7arqtblih', smusConnectionType: 'S3', smusProjectRegion: 'us-east-2', duration: '2', result: 'Succeeded', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:25:40.741 [debug] telemetry: smus_openRemoteConnection { Metadata: { metricId: '2f32a489-b013-4f47-951f-04d535bc2761', traceId: '1b90a3dc-f01f-40cc-b0bf-5920b7c6e9cc', smusSpaceKey: 'd-rxs4hhmzrnho__ce', smusDomainRegion: 'us-east-2', smusDomainId: 'dzd_bh80g0fbj1h7xl', smusDomainAccountId: '050752642559', smusProjectId: 'c1wqm5rlzb150p', duration: '18000', result: 'Succeeded', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:26:52.258 [debug] telemetry: smus_stopSpace { Metadata: { metricId: 'b0903fd5-ffb5-4a9a-b131-99baf11cb3a7', traceId: 'c5ec5f41-ae58-46b3-af8e-47c1d8fb737d', smusSpaceKey: 'd-rxs4hhmzrnho__ce', smusDomainRegion: 'us-east-2', smusDomainId: 'dzd_bh80g0fbj1h7xl', smusDomainAccountId: '050752642559', smusProjectId: 'c1wqm5rlzb150p', duration: '2308', result: 'Succeeded', awsAccount: 'not-set', awsRegion: 'us-east-1' }, Value: 1, Unit: 'None', Passive: false } 2025-09-16 01:27:22.027 [debug] telemetry: smus_signOut { Metadata: { metricId: 'e41138b8-9949-4088-b175-73c4d48110cc', traceId: 'b6a34176-e2a2-47f1-b170-d092488c0d00', parentId: '51f87fa9-fc1c-4351-914b-c0ce077b8f1b', smusDomainId: 'dzd_bh80g0fbj1h7xl', awsRegion: 'us-east-2', smusDomainAccountId: '050752642559', duration: '476', result: 'Succeeded', awsAccount: 'not-set' }, Value: 1, Unit: 'None', Passive: false } ``` --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.kzr · e06830b5 · 2025-09-17
- 0.5ETVfix(amazonq): downloadExportResultAcrchive api not passed with profileArn and cause 400 error (#7022) ## Problem The CreateUploadUrl and StartTestGenerationJob requests succeeded with the profile ARN attached. However, the ExportResultArchive requests were made without this profile ARN, leading to inconsistent profile resolution between operations. ## Solution --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.Will Lo · 5824582f · 2025-04-11
- 0.5ETVfix(smus): DataExplorer parity with Portalkzr · 6fe6924b · 2026-04-16