NavigaraNavigara
OrganizationsDistributionCompareResearch
NavigaraNavigara
OrganizationsDistributionCompareResearch
All developers

Andrew Krieger

Developer

Andrew Krieger

akrieger@meta.com

22 commits~2 files/commit

Performance

YoY:+200%
2026Previous year

Insights

Key patterns and highlights from this developer's activity.

Peak MonthJan'2610 performance
Growth Trend↑150%vs prior period
Avg Files/Commit2files per commit
Active Days13of 455 days
Top Repobuck219 commits

Effort Over Time

Breakdown of growth, maintenance, and fixes effort over time.

Bug Behavior

Beta

Bugs introduced vs. fixed over time.

No bugs introduced or fixed in this period.

Investment Quality

Beta

Reclassifies engineering effort based on bug attribution. Commits that introduced bugs are retrospectively counted as poor investments.

52%Productive TimeGrowth 43% + Fixes 57%
48%Maintenance Time
0%Wasted Time
How it works

Methodology

Investment Quality reclassifies engineering effort based on bug attribution data. Commits identified as buggy origins (those that introduced bugs later fixed by someone) have their grow and maintenance time moved into the Wasted Time category. Their waste (fix commits) remains counted as productive. All other commits retain their standard classification: grow is productive, maintenance is maintenance, and waste (fixes) is productive.

Relationship to Growth / Maintenance / Fixes

The standard model classifies commits as Growth, Maintenance, or Fixes. Investment Quality adds a quality lens: a commit that introduced a bug is retrospectively counted as a poor investment — the engineering time spent on it was wasted because it ultimately required additional fix work. Fix commits (Fixes in the standard model) are reframed as productive, because fixing bugs is valuable work.

Proposed API Endpoint

Currently computed client-side from commit and bug attribution data. Ideal server-side endpoint:

POST /v1/organizations/{orgId}/investment-quality
Content-Type: application/json

Request:
{
  "startTime": "2025-01-01T00:00:00Z",
  "endTime": "2025-12-31T23:59:59Z",
  "bucketSize": "BUCKET_SIZE_MONTH",
  "groupBy": ["repository_id" | "deliverer_email"]
}

Response:
{
  "productivePct": 74,
  "maintenancePct": 18,
  "wastedPct": 8,
  "buckets": [
    {
      "bucketStart": "2025-01-01T00:00:00Z",
      "productive": 4.2,
      "maintenance": 1.8,
      "wasted": 0.6
    }
  ]
}

Recent Activity

Latest analyzed commits from this developer.

HashMessageDateFilesEffort
d10f48cThis commit **refactors** the **BUCK build system** by replacing `is_production_build()` ternary expressions with **`select()` statements** for conditional logic. Specifically, it updates the `_convert_kotlin_compiler_plugins` function in `prelude/native.bzl` to support these `select()` statements for **Kotlin compiler plugins**. This **build system maintenance** aims to standardize conditional logic, impacting the **Kotlin toolchain infrastructure** by shifting some logic from macros to the toolchain level. The change improves the structural representation of build configurations, even if it initially introduces more support selects within the toolchain.Mar 251maint
d1ceabaThis commit **fixes** a critical issue within the **configuration system** where **conditional modifiers** failed to correctly respect **unified constraint defaults**. The `_is_subset` function in `prelude/cfg/modifier/common.bzl` has been updated to properly account for these default values when comparing configurations, ensuring accurate matching. This **bug fix** improves the reliability of configuration evaluation, preventing incorrect application or omission of conditional logic. New end-to-end tests have been added to verify that modifiers now correctly match configurations even when default constraint values are involved.Jan 143waste
225e4ddThis commit **refactors** the **ASan build mode configuration** within `app/modifier.bzl` by migrating it to a new, unified constraint. It updates the configuration key from an older `config_setting` mechanism to use the more standardized `sanitizer_type[asan]` constraint. This **maintenance** task streamlines the build system's handling of AddressSanitizer configurations, improving consistency and maintainability across the project. The change primarily impacts the **build system's configuration logic**, ensuring future compatibility and simplifying how ASan is enabled.Jan 131maint
2e447dbThis commit **refactors** the **build configuration generation logic** to stop explicitly inserting `ovr_config//build_mode:sanitizer_type[no-san]` into generated platform names, as it is now the default constraint. The change in `prelude/cfg/modifier/name.bzl` streamlines configuration naming by leveraging this new implicit default, while `prelude/python/transitions.bzl` receives a **fix** to safely handle sanitizer constraint retrieval. This **maintenance** update simplifies generated platform labels and ensures correct behavior when processing build options, particularly for non-fbcode environments where `no-san` is the standard. Tests are updated to reflect the new expected configuration names.Jan 84waste
c1a3c82This commit **re-lands** previously reverted changes, primarily **refactoring** the internal representation of the `_opt_by_default__no_san` build mode constraint. It updates the reference path for this constraint to utilize a new `sanitizer_type` constraint path for 'no-san' within the **build system's configuration logic**. This change impacts the **`prelude/python/transitions.bzl`** file, which defines build transitions, and necessitates updates across numerous **BXL configuration constructor tests** to align with the new path. The re-landing indicates these updates are crucial for standardizing **sanitizer configuration definitions** and ensuring correct **modifier matching** within the build system.Jan 77maint
6a35f87This commit performs a **configuration migration** by updating the reference for 'no-san' settings within `app/modifier.bzl`. Specifically, it **refactors** how sanitizer configurations are defined, moving from an older 'no-san' `config_setting` to a new, **unified `sanitizer_type` constraint format**. This change standardizes the expression of sanitizer-related build configurations across the **fbcode** monorepo, improving consistency and maintainability for various projects, including those like `caffe2` that rely on these build settings. The update is a mechanical change to align with the new internal configuration schema.Dec 171maint
7d1d341This commit **refactors** the `no-san` constraint by migrating its definition and usage to a **new, unified `sanitizer_type` format**. The primary change updates the `_opt_by_default__no_san` constraint within the **configuration transitions module** (`prelude/python/transitions.bzl`) to align with this new standard. This **maintenance** task also includes updating numerous **end-to-end tests** within the `cfg_constructor` subsystem to ensure they correctly reference the updated `no-san` constraint. The change ensures that the build system's configuration logic correctly handles sanitizer-related constraints under the new unified approach, maintaining consistency and test validity.Dec 177maint
38673ccThis commit **refactors** the build system's configuration by **migrating** the legacy `san` constraint to the new, unified `sanitizer_type` configuration within the **`ovr_config//build_mode`** module. This involves updating `prelude/cfg/modifier/name.bzl` to map the old constraint to the new unified one and extract its sub-target. Correspondingly, `tests/e2e/configurations/cfg_constructor/bxl/util.bxl` is adjusted to utilize the new `sanitizer_type` configuration path. This change is a foundational step in **unifying constraints with defaults**, aiming to standardize and simplify how sanitizer settings are managed across the project.Nov 212maint
4f693e0This commit **refactors** the build system by **migrating** the `asan-ubsan-dev` sanitizer's constraint reference to a **new unified constraint definition**. Specifically, it updates the configuration in `app/buck2_util/BUCK` and within the `_refs` function in `prelude/python/transitions.bzl`. This **maintenance** task ensures that the `asan-ubsan-dev` sanitizer consistently uses the updated, unified constraint, streamlining its definition and usage across the project. The change is purely mechanical, updating internal references without altering functional behavior.Nov 212maint
aa47becThis commit **refactors** the **build configuration system** by **migrating the ASan sanitizer constraint** to a new, unified format. The old constraint key `build_mode/constraints:asan` is updated to `build_mode:sanitizer_type[asan]` within the `app/buck2_util/BUCK` file. This **internal configuration update** standardizes how ASan is referenced, impacting several **end-to-end tests** in `tests/e2e/configurations/cfg_constructor/bxl/` which are updated to align with the new constraint name. The change ensures consistency in constraint definitions across the project's build and test infrastructure.Nov 215maint
55c8014This commit **migrates the `hwasan` sanitizer configuration** to align with a **new unified constraint system**. It involves **refactoring** the constraint path for `hwasan` within the `_TARGETS` list in the `tests/e2e/configurations/cfg_constructor/bxl/util.bxl` file. This **maintenance** update ensures that **end-to-end test configurations** correctly reference the `hwasan` sanitizer using the standardized format, improving consistency across the build system.Nov 211maint
83da536This commit **refactors** the build configuration by migrating the `asan-ubsan` sanitizer specification to a **new unified constraint**. It updates the `rust_library` rule within the `buck2_util` module to utilize the standardized `sanitizer_type[asan-ubsan]` syntax. This **configuration update** ensures consistency in how the sanitizer is applied across the project. Additionally, the `e2e` test utility is adjusted to reflect this new constraint, maintaining compatibility with the updated configuration format.Nov 212maint
c5608d6This commit **updates the `tsan` sanitizer constraint strings** within several **BXL end-to-end test files** to align with a **new unified format**. Specifically, it modifies test cases in `test_modifier_to_json.bxl`, `test_modifiers_match.bxl`, and `util.bxl` that validate **configuration construction** involving `tsan`. This **maintenance task** ensures the **testing infrastructure** accurately reflects the updated constraint syntax. The changes are confined to the **testing suite**, adapting existing tests to the new format without impacting the core product's runtime behavior.Nov 213maint
339ea2eThis commit introduces a **new feature** to the **C++ build system**, enabling the generation of **recursive Clang traces** for `cxx_library` and `cxx_executable` targets. Previously limited to individual libraries, the system now collects and combines traces from a target and its entire dependency graph using `tsets`. This enhancement, facilitated by new providers and the `_project_clang_traces_as_args` function in `prelude/cxx/compile.bzl`, significantly improves **diagnostic capabilities**. It provides a comprehensive view of the compilation process across an entire dependency tree, making these detailed traces accessible for top-level `cxx_binary` builds.Nov 133grow
a97939fThis commit **extends configuration support** for the **NDK toolchain** by adding `raw_headers_as_headers_mode`. It ensures that the NDK toolchain adheres to the same header processing constraints as other toolchains, specifically by including `export_header_unit`, `export_header_unit_filter`, and `raw_headers_as_headers_mode` in `non_fbcode_target` definitions within `folly/BUCK`. This **maintenance update** standardizes header handling for NDK builds, improving consistency across the build system.Sep 191maint
9d0a8aeThis commit **enhances the NDK toolchain support** by integrating the `raw_headers_as_headers_mode` attribute into its build configuration. It **aligns the NDK build behavior** with existing constraints used for other toolchains, ensuring consistent header processing. Specifically, this involves **updating the `non_fbcode_target` rule** within `folly/BUCK` to include `export_header_unit`, `export_header_unit_filter`, and `raw_headers_as_headers_mode`. This **build system maintenance** effort improves the robustness and uniformity of header handling for non-Facebook code targets when building with the NDK.Sep 41maint
733ef90This commit **refines the logic for C++ module usage tracking** within the build system, specifically addressing incorrect tagging of actions. It **prevents actions from being marked as modular** when they do not actually utilize header units, thereby avoiding data pollution and improving data accuracy. The changes in `prelude/cxx/compile.bzl` adjust the conditions for `_compile_single_cxx` and `_mk_header_units_argsfile` to ensure modular tagging and header unit argument file creation only occur when header units are genuinely in use. Additionally, `prelude/cxx/preprocessor.bzl` introduces `_cpreprocessor_has_header_units_args` to accurately determine if a preprocessor configuration includes header unit arguments, leading to more precise module-related data. This **maintenance and refinement** ensures that only truly modular actions are identified, optimizing build data and preventing unnecessary processing.Aug 292waste
9007d01This commit **refactors** the **C++ header unit compilation logic** within the build system to improve diagnostic output. Specifically, it modifies the `_create_precompile_cmd` function in `prelude/cxx/compile.bzl` to generate direct `#include` statements within a stub header. This change replaces the previous method of passing headers via the `-include` command-line flag, which often resulted in unhelpful diagnostic paths. The **maintenance** update aims to provide more accurate and useful **compiler diagnostics** for developers working with precompiled headers.Aug 291maint
1585d5aThis commit **refactors** the **`folly/hash/Hash.h`** module to **fix compilation issues** related to the `is_hashable_byte_v` SFINAE helper. Previously, using an anonymous namespace for this helper caused ambiguous function call errors when `Hash.h` was compiled into separate header units, as the template function would be loaded multiple times. The **maintenance fix** addresses this by **removing the anonymous namespace** and adding the `inline` specifier to `is_hashable_byte_v` template specializations. This ensures correct linking and prevents compilation failures, improving the robustness of the hashing utilities across different build configurations.Jul 211maint
5d2bb2eThis commit **introduces a new capability** by wiring up the `supports_two_phase_compilation` attribute within the **C++ toolchain definition**. It adds this attribute to the `CxxCompilerInfo` structure and propagates it through `cxx_toolchain_extra_attributes` in `prelude/cxx/cxx_toolchain.bzl`. The attribute is then correctly set when creating `CxxCompilerInfo` from `CxxToolsInfo` in `prelude/toolchains/cxx.bzl`. This **feature addition** is crucial for **enabling broader support for C++ modules** by allowing toolchains to declare their capability for two-phase compilation, extending beyond internal Facebook-specific implementations.Mar 72grow
d10f48cMar 25

This commit **refactors** the **BUCK build system** by replacing `is_production_build()` ternary expressions with **`select()` statements** for conditional logic. Specifically, it updates the `_convert_kotlin_compiler_plugins` function in `prelude/native.bzl` to support these `select()` statements for **Kotlin compiler plugins**. This **build system maintenance** aims to standardize conditional logic, impacting the **Kotlin toolchain infrastructure** by shifting some logic from macros to the toolchain level. The change improves the structural representation of build configurations, even if it initially introduces more support selects within the toolchain.

1 filesmaint
d1ceabaJan 14

This commit **fixes** a critical issue within the **configuration system** where **conditional modifiers** failed to correctly respect **unified constraint defaults**. The `_is_subset` function in `prelude/cfg/modifier/common.bzl` has been updated to properly account for these default values when comparing configurations, ensuring accurate matching. This **bug fix** improves the reliability of configuration evaluation, preventing incorrect application or omission of conditional logic. New end-to-end tests have been added to verify that modifiers now correctly match configurations even when default constraint values are involved.

3 fileswaste
225e4ddJan 13

This commit **refactors** the **ASan build mode configuration** within `app/modifier.bzl` by migrating it to a new, unified constraint. It updates the configuration key from an older `config_setting` mechanism to use the more standardized `sanitizer_type[asan]` constraint. This **maintenance** task streamlines the build system's handling of AddressSanitizer configurations, improving consistency and maintainability across the project. The change primarily impacts the **build system's configuration logic**, ensuring future compatibility and simplifying how ASan is enabled.

1 filesmaint
2e447dbJan 8

This commit **refactors** the **build configuration generation logic** to stop explicitly inserting `ovr_config//build_mode:sanitizer_type[no-san]` into generated platform names, as it is now the default constraint. The change in `prelude/cfg/modifier/name.bzl` streamlines configuration naming by leveraging this new implicit default, while `prelude/python/transitions.bzl` receives a **fix** to safely handle sanitizer constraint retrieval. This **maintenance** update simplifies generated platform labels and ensures correct behavior when processing build options, particularly for non-fbcode environments where `no-san` is the standard. Tests are updated to reflect the new expected configuration names.

4 fileswaste
c1a3c82Jan 7

This commit **re-lands** previously reverted changes, primarily **refactoring** the internal representation of the `_opt_by_default__no_san` build mode constraint. It updates the reference path for this constraint to utilize a new `sanitizer_type` constraint path for 'no-san' within the **build system's configuration logic**. This change impacts the **`prelude/python/transitions.bzl`** file, which defines build transitions, and necessitates updates across numerous **BXL configuration constructor tests** to align with the new path. The re-landing indicates these updates are crucial for standardizing **sanitizer configuration definitions** and ensuring correct **modifier matching** within the build system.

7 filesmaint
6a35f87Dec 17

This commit performs a **configuration migration** by updating the reference for 'no-san' settings within `app/modifier.bzl`. Specifically, it **refactors** how sanitizer configurations are defined, moving from an older 'no-san' `config_setting` to a new, **unified `sanitizer_type` constraint format**. This change standardizes the expression of sanitizer-related build configurations across the **fbcode** monorepo, improving consistency and maintainability for various projects, including those like `caffe2` that rely on these build settings. The update is a mechanical change to align with the new internal configuration schema.

1 filesmaint
7d1d341Dec 17

This commit **refactors** the `no-san` constraint by migrating its definition and usage to a **new, unified `sanitizer_type` format**. The primary change updates the `_opt_by_default__no_san` constraint within the **configuration transitions module** (`prelude/python/transitions.bzl`) to align with this new standard. This **maintenance** task also includes updating numerous **end-to-end tests** within the `cfg_constructor` subsystem to ensure they correctly reference the updated `no-san` constraint. The change ensures that the build system's configuration logic correctly handles sanitizer-related constraints under the new unified approach, maintaining consistency and test validity.

7 filesmaint
38673ccNov 21

This commit **refactors** the build system's configuration by **migrating** the legacy `san` constraint to the new, unified `sanitizer_type` configuration within the **`ovr_config//build_mode`** module. This involves updating `prelude/cfg/modifier/name.bzl` to map the old constraint to the new unified one and extract its sub-target. Correspondingly, `tests/e2e/configurations/cfg_constructor/bxl/util.bxl` is adjusted to utilize the new `sanitizer_type` configuration path. This change is a foundational step in **unifying constraints with defaults**, aiming to standardize and simplify how sanitizer settings are managed across the project.

2 filesmaint
4f693e0Nov 21

This commit **refactors** the build system by **migrating** the `asan-ubsan-dev` sanitizer's constraint reference to a **new unified constraint definition**. Specifically, it updates the configuration in `app/buck2_util/BUCK` and within the `_refs` function in `prelude/python/transitions.bzl`. This **maintenance** task ensures that the `asan-ubsan-dev` sanitizer consistently uses the updated, unified constraint, streamlining its definition and usage across the project. The change is purely mechanical, updating internal references without altering functional behavior.

2 filesmaint
aa47becNov 21

This commit **refactors** the **build configuration system** by **migrating the ASan sanitizer constraint** to a new, unified format. The old constraint key `build_mode/constraints:asan` is updated to `build_mode:sanitizer_type[asan]` within the `app/buck2_util/BUCK` file. This **internal configuration update** standardizes how ASan is referenced, impacting several **end-to-end tests** in `tests/e2e/configurations/cfg_constructor/bxl/` which are updated to align with the new constraint name. The change ensures consistency in constraint definitions across the project's build and test infrastructure.

5 filesmaint
55c8014Nov 21

This commit **migrates the `hwasan` sanitizer configuration** to align with a **new unified constraint system**. It involves **refactoring** the constraint path for `hwasan` within the `_TARGETS` list in the `tests/e2e/configurations/cfg_constructor/bxl/util.bxl` file. This **maintenance** update ensures that **end-to-end test configurations** correctly reference the `hwasan` sanitizer using the standardized format, improving consistency across the build system.

1 filesmaint
83da536Nov 21

This commit **refactors** the build configuration by migrating the `asan-ubsan` sanitizer specification to a **new unified constraint**. It updates the `rust_library` rule within the `buck2_util` module to utilize the standardized `sanitizer_type[asan-ubsan]` syntax. This **configuration update** ensures consistency in how the sanitizer is applied across the project. Additionally, the `e2e` test utility is adjusted to reflect this new constraint, maintaining compatibility with the updated configuration format.

2 filesmaint
c5608d6Nov 21

This commit **updates the `tsan` sanitizer constraint strings** within several **BXL end-to-end test files** to align with a **new unified format**. Specifically, it modifies test cases in `test_modifier_to_json.bxl`, `test_modifiers_match.bxl`, and `util.bxl` that validate **configuration construction** involving `tsan`. This **maintenance task** ensures the **testing infrastructure** accurately reflects the updated constraint syntax. The changes are confined to the **testing suite**, adapting existing tests to the new format without impacting the core product's runtime behavior.

3 filesmaint
339ea2eNov 13

This commit introduces a **new feature** to the **C++ build system**, enabling the generation of **recursive Clang traces** for `cxx_library` and `cxx_executable` targets. Previously limited to individual libraries, the system now collects and combines traces from a target and its entire dependency graph using `tsets`. This enhancement, facilitated by new providers and the `_project_clang_traces_as_args` function in `prelude/cxx/compile.bzl`, significantly improves **diagnostic capabilities**. It provides a comprehensive view of the compilation process across an entire dependency tree, making these detailed traces accessible for top-level `cxx_binary` builds.

3 filesgrow
a97939fSep 19

This commit **extends configuration support** for the **NDK toolchain** by adding `raw_headers_as_headers_mode`. It ensures that the NDK toolchain adheres to the same header processing constraints as other toolchains, specifically by including `export_header_unit`, `export_header_unit_filter`, and `raw_headers_as_headers_mode` in `non_fbcode_target` definitions within `folly/BUCK`. This **maintenance update** standardizes header handling for NDK builds, improving consistency across the build system.

1 filesmaint
9d0a8aeSep 4

This commit **enhances the NDK toolchain support** by integrating the `raw_headers_as_headers_mode` attribute into its build configuration. It **aligns the NDK build behavior** with existing constraints used for other toolchains, ensuring consistent header processing. Specifically, this involves **updating the `non_fbcode_target` rule** within `folly/BUCK` to include `export_header_unit`, `export_header_unit_filter`, and `raw_headers_as_headers_mode`. This **build system maintenance** effort improves the robustness and uniformity of header handling for non-Facebook code targets when building with the NDK.

1 filesmaint
733ef90Aug 29

This commit **refines the logic for C++ module usage tracking** within the build system, specifically addressing incorrect tagging of actions. It **prevents actions from being marked as modular** when they do not actually utilize header units, thereby avoiding data pollution and improving data accuracy. The changes in `prelude/cxx/compile.bzl` adjust the conditions for `_compile_single_cxx` and `_mk_header_units_argsfile` to ensure modular tagging and header unit argument file creation only occur when header units are genuinely in use. Additionally, `prelude/cxx/preprocessor.bzl` introduces `_cpreprocessor_has_header_units_args` to accurately determine if a preprocessor configuration includes header unit arguments, leading to more precise module-related data. This **maintenance and refinement** ensures that only truly modular actions are identified, optimizing build data and preventing unnecessary processing.

2 fileswaste
9007d01Aug 29

This commit **refactors** the **C++ header unit compilation logic** within the build system to improve diagnostic output. Specifically, it modifies the `_create_precompile_cmd` function in `prelude/cxx/compile.bzl` to generate direct `#include` statements within a stub header. This change replaces the previous method of passing headers via the `-include` command-line flag, which often resulted in unhelpful diagnostic paths. The **maintenance** update aims to provide more accurate and useful **compiler diagnostics** for developers working with precompiled headers.

1 filesmaint
1585d5aJul 21

This commit **refactors** the **`folly/hash/Hash.h`** module to **fix compilation issues** related to the `is_hashable_byte_v` SFINAE helper. Previously, using an anonymous namespace for this helper caused ambiguous function call errors when `Hash.h` was compiled into separate header units, as the template function would be loaded multiple times. The **maintenance fix** addresses this by **removing the anonymous namespace** and adding the `inline` specifier to `is_hashable_byte_v` template specializations. This ensures correct linking and prevents compilation failures, improving the robustness of the hashing utilities across different build configurations.

1 filesmaint
5d2bb2eMar 7

This commit **introduces a new capability** by wiring up the `supports_two_phase_compilation` attribute within the **C++ toolchain definition**. It adds this attribute to the `CxxCompilerInfo` structure and propagates it through `cxx_toolchain_extra_attributes` in `prelude/cxx/cxx_toolchain.bzl`. The attribute is then correctly set when creating `CxxCompilerInfo` from `CxxToolsInfo` in `prelude/toolchains/cxx.bzl`. This **feature addition** is crucial for **enabling broader support for C++ modules** by allowing toolchains to declare their capability for two-phase compilation, extending beyond internal Facebook-specific implementations.

2 filesgrow

Work Patterns

Beta

Commit activity distribution by hour and day of week. Shows when this developer is most active.

Collaboration

Beta

Developers who frequently work on the same files and symbols. Higher score means stronger code collaboration.

NavigaraNavigara
OrganizationsDistributionCompareResearch