Mayzner
mayzner@google.com
90d · built 2026-05-28
90-day totals
- Commits
- 77
- Grow
- 14.2
- Maintenance
- 9.9
- Fixes
- 2.1
- Total ETV
- 26.1
Where this dev ranks
Percentile against the global top-100 leaderboard (all-time totals).
- By commits
- Top 60 %
- By Growth share
- Top 15 %
30-day trajectory
Last 30 days vs. the 30 days before. Up arrows on Growth and ETV mean improvement; up arrow on Fixes share means more time on fixes (worse).
Daily performance
Daily ETV, stacked by Growth, Maintenance and Fixes.
Work-mix over time
Share of Growth / Maintenance / Fixes over a rolling 7-day window. Reads as 'where is effort flowing right now'.
Bug flow over time
Monthly bug flow attributed to this developer. The left bar (red) is bug impact this dev authored that was addressed in the given month — combining bugs others fixed for them and bugs they fixed themselves. The right bar is fixes they personally shipped that month, split between self-fixes (overlap with the red bar) and fixes done for someone else. X-axis is fix-time, not introduction-time — the Navigara API attributes bugs backward to the author at the moment the fix lands.
- Self-fix share
- 39%
- Bugs you introduced
- 4.2
- Bugs you fixed
- 8.9
Repository spread
Where this developer's commits land. Concentrated work (top1 > 80%) vs polymath spread (top1 < 30%).
Most impactful commits
Top 20 by ETV in the 90-day window.
- 2.4ETVde: Add dashboard functionality (#5104) Add dashboard functionality to the Data Explorer, allowing users to create dashboard tabs that display charts from exported data sources. Users connect upstream nodes to "Export to Dashboard" nodes in graph tabs, then visualize the exported data on free-form dashboard canvases with drag-and-drop, resize, cross-chart brush filtering, and source switching.github.com-google-perfetto · 3733eab8 · 2026-03-13
- 2.4ETVde: Download from metric (#5212) This provides loading dowloading the .pbtxt file with TraceSummary or metric and show it as a graph. This is a big change, but relatively self contained - this whole file will disappear once we migrate proto based serialization.github.com-google-perfetto · ac6282fc · 2026-03-23
- 1.6ETVde: Add grouping (#5234)github.com-google-perfetto · 3b7db405 · 2026-03-30
- 1.5ETVde: Use PerfettoSqlType everywhere (#5098) Column types in Data Explorer were confusing - constantly converting between string and PerfettoSqlType. This change is the first attempt to bring it all to PerfettoSqlType.github.com-google-perfetto · a3dfed06 · 2026-03-12
- 1.3ETVtp: Add tables with stdlib documentation data (#5555)github.com-google-perfetto · 85dbfccb · 2026-05-01
- 1.1ETVde: Add tabs to Data Explorer (#4994) Add multi-tab support to the Data Explorer, allowing users to work on multiple independent graph explorations simultaneously. Each tab maintains its own state (nodes, layout, history, materialization) and tabs persist across page reloads via localStorage and permalinks. ## Changes - Refactored `ExplorePage` component to render multiple tabs using the existing `Tabs` widget, with per-tab services (query execution, cleanup, history) - Added `explore_tabs_storage.ts` for persisting tab layout to localStorage using zod schema validation - Updated plugin (`index.ts`) to manage an array of tabs instead of a single state, with debounced saves and backward compatibility for v1 single-graph permalinks and recentGraphsStorage - Fixed SVG marker ID collisions in `nodegraph.ts` when multiple NodeGraph instances exist (e.g. across tabs) by using instance-unique IDs and scoped DOM queries - Added `onTabDblClick` callback to the `Tabs` widget for tab renaming - Registered a `beforeunload` handler to flush pending saves on page unloadgithub.com-google-perfetto · a77ea945 · 2026-03-04
- 1.0ETVde: Rename explore page to data explorer (#5088) Noop rename from Explore Page (plugin/directory name/all mentiones) to Data Explorer.github.com-google-perfetto · 0f2624f2 · 2026-03-11
- 0.8ETVde: Add Trace Summary node (#4975) Trace Summary node can only be a child of Metrics node - it takes multiple metrics and creates Trace Summary out of them. It has a custom data explorer that shows only metrics results (proto converted to data grid)github.com-google-perfetto · 11e66453 · 2026-03-02
- 0.7ETVde: Dashboards have drivers and consumers (#5168) Add segment dividers to dashboards that split charts into "drivers" and "consumers". Charts above a divider show brush selection overlays but don't filter their own data — they only propagate brush filters to charts below dividers. This enables master-detail patterns where top-level charts control the filtering of dependent charts below.github.com-google-perfetto · 776ed75b · 2026-03-18
- 0.7ETVde: Dashboard tweaks and fixes (#5502) Dashboard tweaks: adds stacked bar chart support, a settings panel for canvas/chart display options, and improves the edit panel with inline renaming and data source switching. ## Changes - **Stacked bar charts**: bar charts now support a `groupColumn` that splits data into multiple stacked series with a legend - **Settings panel**: new sidebar tab with grid dot toggle and chart grid lines dropdown (none/horizontal/vertical/both) - **Edit panel**: inline title renaming and data source picker - **Canvas spacer**: invisible element extends scroll area below the last item - **Grid dot alignment**: dots now land on grid-line intersections - **Polish**: consistent `storage` icon, clarified section titles, `classNames()` wrappers, removed `isResizing` state, heatmap `yColumnLabel` supportgithub.com-google-perfetto · 6d0835fe · 2026-04-20
- 0.7ETVui: Support selection alongside brushing for charts (#5113) Selection doesn't modify the data visualized on the graph. It only propagates the resulting filters.github.com-google-perfetto · e858627a · 2026-03-16
- 0.6ETVtp: Add intervals_create C++ Perfetto SQL function (#4988) Replace the O(n*m) SQL-based `create_slices` implementation with an O(n+m) C++ two-pointer algorithm. The structured query generator now calls `_intervals_create!` macro (backed by `__intrinsic_interval_create`) instead of inlining a (inefficient) subquery. ## Changes - Add `SortedTimestamps` type and `__intrinsic_timestamp_set_agg` aggregate to collect and sort timestamps from SQL into a C++ vector - Add `__intrinsic_interval_create` scalar function that takes two `SortedTimestamps` pointers and produces a dataframe with `ts`/`dur` columns - Add `_intervals_create!` PerfettoSQL macro in `intervals/create_slices.sql` that wires the aggregate + scalar function together - Update `StructuredQueryGenerator::CreateSlices` to emit the macro call and register the module dependency - Add 8 diff tests covering basic, interleaved, partial match, empty, equal-timestamp, unsorted, and no-match scenariosgithub.com-google-perfetto · cde35b23 · 2026-03-03
- 0.5ETVtp: 'Materialize' as views where it's optimal (#5074) Optimize the Summarizer to create VIEWs instead of materialized TABLEs for simple pass-through queries (table source, simple_slices, inner_query_id) that have no GROUP BY or ORDER BY, or multi source operations. This preserves source table indexes for downstream joins and avoids redundant data copies.github.com-google-perfetto · 9e9f6fb5 · 2026-03-11
- 0.5ETVui: Add scorecard/KPI chart (#5170) Simple HTML/CSS chart for displaying the value with a label. Rename StatsCard to Gaugegithub.com-google-perfetto · db2b5e84 · 2026-03-18
- 0.5ETVui: Add stats widget (#5121) Simple stats chart widgetgithub.com-google-perfetto · 5eb53b8a · 2026-03-16
- 0.5ETVde: Fix the fallout from changing to PerfettoSqlType (#5116) R 5098 changed column types from strings (e.g., "INT", "TIMESTAMP") to PerfettoSqlType objects (e.g., {kind: 'int'}). This change wasn't backwards compatible, so now add backwards compatibility and update the json files.github.com-google-perfetto · 9106608c · 2026-03-13
- 0.5ETVui: Auto-compute chart grid spacing from measured label width (#5529) ## Summary Previously each chart type (bar, boxplot, histogram, line, scatter, heatmap) hard-coded its own `grid.bottom`, `grid.top`, and Y-axis `nameGap` values. These magic numbers were brittle - any change to axis labels, tick formatting, or chart size would silently clip or misalign axis names. This change centralizes all grid-spacing logic into a single `autoAdjustGridSpacing` pass in `EChartView`, which runs on every option update before passing to ECharts. It measures actual Y-axis tick label widths using `canvas.measureText` and computes `nameGap` and `grid.left` dynamically, so charts self-adjust regardless of data range or formatting. ## Notes `collectYAxisLabels` approximates which tick values ECharts will render by scanning series data for min/max and generating nice ticks - it does not read ECharts' internal model. This means the measured width can be slightly off if ECharts chooses a tick value outside the data range. The consequence is cosmetic (minor nameGap over/under-shoot), and a post-render approach would require a significantly more complex layout pass. The approximation is an intentional trade-off.github.com-google-perfetto · c48befc3 · 2026-04-22
- 0.4ETVde: Simplify serialization (#5346) Node graph serialization in Data Explorer previously required every node type to manually include connection IDs in its `serializeState()` (e.g. `leftNodeId`, `primaryInputId`, `unionNodes`) and a corresponding `deserializeConnections` hook to restore them. This was error-prone and meant adding a new node type required remembering to handle connections in multiple places. Connections are now captured automatically at the graph level in `serializeNode()` and restored generically in `deserializeState()`. Node `serializeState()` methods only need to handle their own configuration data. Backward compatibility with old saved graphs (where connection IDs lived inside node state) is handled by a single declarative lookup table in `legacy_connections.ts`, keeping it out of `core_nodes.ts` entirely.github.com-google-perfetto · 2b7ca6cc · 2026-04-20
- 0.4ETVde: Tabs import/export (#5166) Add whole-tab import/export for Data Explorer, bundling graph state and dashboards (items + brush filters) into a single JSON file. Add a new upload button next to the "+" button on the tabs, with a separate download button for exporting the active tab. <img width="1010" height="168" alt="image" src="https://github.com/user-attachments/assets/4f5e65bd-a743-4948-93fe-ee97f8a47180" />github.com-google-perfetto · be11b137 · 2026-03-18
- 0.4ETVde: Add dimensions display name and help (#5141) New functionality to metrics node - more options for each dimensiongithub.com-google-perfetto · 09f24759 · 2026-03-16