Open source is part of my day-to-day work: maintaining my own tools, trying them in practice, and contributing improvements upstream. Early experiments and visualizations live in Labs .
Dotfiles My everyday development environment · Actively maintained
My largest ongoing personal open-source project is the environment I work in. These dotfiles bring together Neovim, tmux, zsh, terminal tools, and coding-agent configuration across macOS and Linux.
I keep improving the small things that shape a working day: finding information, moving between sessions, carrying configuration between machines, and giving agents consistent instructions. A Makefile installs the configuration and converges the tools toward the setup I use.
This is an opinionated personal environment. Read the installation steps and scripts before applying it to your own machine.
Browse the dotfiles · Setup and documentation
Viewrule Experimental tool · Used on this website
How do you give a coding agent useful design boundaries—and check whether its UI stays within them?
Viewrule combines written design rules with executable browser checks for layout, density, context, and accessibility. It captures both page overviews and native-scale detail so large screens do not conceal small defects. Agents receive findings tied to the rules; human feedback helps refine the constraints.
It includes a CLI and a Claude Code plugin. This website uses it to check its rendered pages. Passing those checks means the configured constraints passed; it does not establish that a design is good or automate every accessibility judgment.
Source and installation · Releases · Why feedback matters
GitHub activity GitHub contributions over the last year 2025-09-14 to 2026-09-13. Each square is one day, from top to bottom within each week. Brighter squares indicate more contributions as categorized by GitHub. Monthly totals follow. 2025-09-14: 0 contributions 2025-09-15: 1 contributions 2025-09-16: 0 contributions 2025-09-17: 0 contributions 2025-09-18: 10 contributions 2025-09-19: 7 contributions 2025-09-20: 0 contributions 2025-09-21: 12 contributions 2025-09-22: 12 contributions 2025-09-23: 5 contributions 2025-09-24: 10 contributions 2025-09-25: 12 contributions 2025-09-26: 0 contributions 2025-09-27: 14 contributions 2025-09-28: 11 contributions 2025-09-29: 17 contributions 2025-09-30: 8 contributions 2025-10-01: 8 contributions 2025-10-02: 1 contributions 2025-10-03: 10 contributions 2025-10-04: 0 contributions 2025-10-05: 5 contributions 2025-10-06: 26 contributions 2025-10-07: 16 contributions 2025-10-08: 12 contributions 2025-10-09: 19 contributions 2025-10-10: 19 contributions 2025-10-11: 0 contributions 2025-10-12: 27 contributions 2025-10-13: 4 contributions 2025-10-14: 1 contributions 2025-10-15: 0 contributions 2025-10-16: 0 contributions 2025-10-17: 11 contributions 2025-10-18: 56 contributions 2025-10-19: 38 contributions 2025-10-20: 16 contributions 2025-10-21: 19 contributions 2025-10-22: 22 contributions 2025-10-23: 36 contributions 2025-10-24: 8 contributions 2025-10-25: 4 contributions 2025-10-26: 54 contributions 2025-10-27: 42 contributions 2025-10-28: 52 contributions 2025-10-29: 16 contributions 2025-10-30: 34 contributions 2025-10-31: 19 contributions 2025-11-01: 77 contributions 2025-11-02: 98 contributions 2025-11-03: 53 contributions 2025-11-04: 73 contributions 2025-11-05: 87 contributions 2025-11-06: 79 contributions 2025-11-07: 142 contributions 2025-11-08: 79 contributions 2025-11-09: 72 contributions 2025-11-10: 79 contributions 2025-11-11: 65 contributions 2025-11-12: 76 contributions 2025-11-13: 98 contributions 2025-11-14: 69 contributions 2025-11-15: 54 contributions 2025-11-16: 126 contributions 2025-11-17: 153 contributions 2025-11-18: 140 contributions 2025-11-19: 158 contributions 2025-11-20: 141 contributions 2025-11-21: 177 contributions 2025-11-22: 214 contributions 2025-11-23: 278 contributions 2025-11-24: 166 contributions 2025-11-25: 245 contributions 2025-11-26: 457 contributions 2025-11-27: 102 contributions 2025-11-28: 193 contributions 2025-11-29: 347 contributions 2025-11-30: 145 contributions 2025-12-01: 117 contributions 2025-12-02: 91 contributions 2025-12-03: 113 contributions 2025-12-04: 80 contributions 2025-12-05: 31 contributions 2025-12-06: 0 contributions 2025-12-07: 32 contributions 2025-12-08: 21 contributions 2025-12-09: 9 contributions 2025-12-10: 31 contributions 2025-12-11: 17 contributions 2025-12-12: 16 contributions 2025-12-13: 15 contributions 2025-12-14: 10 contributions 2025-12-15: 0 contributions 2025-12-16: 5 contributions 2025-12-17: 0 contributions 2025-12-18: 10 contributions 2025-12-19: 23 contributions 2025-12-20: 31 contributions 2025-12-21: 1 contributions 2025-12-22: 23 contributions 2025-12-23: 51 contributions 2025-12-24: 0 contributions 2025-12-25: 0 contributions 2025-12-26: 4 contributions 2025-12-27: 0 contributions 2025-12-28: 15 contributions 2025-12-29: 0 contributions 2025-12-30: 4 contributions 2025-12-31: 4 contributions 2026-01-01: 0 contributions 2026-01-02: 0 contributions 2026-01-03: 10 contributions 2026-01-04: 20 contributions 2026-01-05: 1 contributions 2026-01-06: 3 contributions 2026-01-07: 2 contributions 2026-01-08: 5 contributions 2026-01-09: 12 contributions 2026-01-10: 12 contributions 2026-01-11: 0 contributions 2026-01-12: 2 contributions 2026-01-13: 2 contributions 2026-01-14: 6 contributions 2026-01-15: 8 contributions 2026-01-16: 2 contributions 2026-01-17: 1 contributions 2026-01-18: 12 contributions 2026-01-19: 8 contributions 2026-01-20: 14 contributions 2026-01-21: 27 contributions 2026-01-22: 55 contributions 2026-01-23: 16 contributions 2026-01-24: 7 contributions 2026-01-25: 0 contributions 2026-01-26: 15 contributions 2026-01-27: 29 contributions 2026-01-28: 18 contributions 2026-01-29: 8 contributions 2026-01-30: 17 contributions 2026-01-31: 10 contributions 2026-02-01: 8 contributions 2026-02-02: 35 contributions 2026-02-03: 55 contributions 2026-02-04: 3 contributions 2026-02-05: 3 contributions 2026-02-06: 1 contributions 2026-02-07: 2 contributions 2026-02-08: 9 contributions 2026-02-09: 0 contributions 2026-02-10: 0 contributions 2026-02-11: 8 contributions 2026-02-12: 9 contributions 2026-02-13: 8 contributions 2026-02-14: 56 contributions 2026-02-15: 44 contributions 2026-02-16: 49 contributions 2026-02-17: 33 contributions 2026-02-18: 85 contributions 2026-02-19: 6 contributions 2026-02-20: 16 contributions 2026-02-21: 35 contributions 2026-02-22: 15 contributions 2026-02-23: 23 contributions 2026-02-24: 7 contributions 2026-02-25: 43 contributions 2026-02-26: 51 contributions 2026-02-27: 16 contributions 2026-02-28: 0 contributions 2026-03-01: 38 contributions 2026-03-02: 25 contributions 2026-03-03: 42 contributions 2026-03-04: 53 contributions 2026-03-05: 18 contributions 2026-03-06: 33 contributions 2026-03-07: 23 contributions 2026-03-08: 38 contributions 2026-03-09: 27 contributions 2026-03-10: 36 contributions 2026-03-11: 38 contributions 2026-03-12: 26 contributions 2026-03-13: 15 contributions 2026-03-14: 21 contributions 2026-03-15: 7 contributions 2026-03-16: 10 contributions 2026-03-17: 2 contributions 2026-03-18: 20 contributions 2026-03-19: 4 contributions 2026-03-20: 2 contributions 2026-03-21: 21 contributions 2026-03-22: 6 contributions 2026-03-23: 0 contributions 2026-03-24: 2 contributions 2026-03-25: 4 contributions 2026-03-26: 4 contributions 2026-03-27: 3 contributions 2026-03-28: 26 contributions 2026-03-29: 7 contributions 2026-03-30: 7 contributions 2026-03-31: 6 contributions 2026-04-01: 12 contributions 2026-04-02: 3 contributions 2026-04-03: 6 contributions 2026-04-04: 0 contributions 2026-04-05: 9 contributions 2026-04-06: 11 contributions 2026-04-07: 10 contributions 2026-04-08: 6 contributions 2026-04-09: 10 contributions 2026-04-10: 19 contributions 2026-04-11: 13 contributions 2026-04-12: 19 contributions 2026-04-13: 15 contributions 2026-04-14: 64 contributions 2026-04-15: 65 contributions 2026-04-16: 0 contributions 2026-04-17: 2 contributions 2026-04-18: 1 contributions 2026-04-19: 10 contributions 2026-04-20: 35 contributions 2026-04-21: 25 contributions 2026-04-22: 31 contributions 2026-04-23: 24 contributions 2026-04-24: 42 contributions 2026-04-25: 14 contributions 2026-04-26: 31 contributions 2026-04-27: 25 contributions 2026-04-28: 13 contributions 2026-04-29: 22 contributions 2026-04-30: 10 contributions 2026-05-01: 2 contributions 2026-05-02: 18 contributions 2026-05-03: 49 contributions 2026-05-04: 105 contributions 2026-05-05: 72 contributions 2026-05-06: 104 contributions 2026-05-07: 125 contributions 2026-05-08: 109 contributions 2026-05-09: 58 contributions 2026-05-10: 24 contributions 2026-05-11: 80 contributions 2026-05-12: 112 contributions 2026-05-13: 89 contributions 2026-05-14: 38 contributions 2026-05-15: 84 contributions 2026-05-16: 6 contributions 2026-05-17: 15 contributions 2026-05-18: 47 contributions 2026-05-19: 45 contributions 2026-05-20: 35 contributions 2026-05-21: 21 contributions 2026-05-22: 49 contributions 2026-05-23: 21 contributions 2026-05-24: 59 contributions 2026-05-25: 25 contributions 2026-05-26: 34 contributions 2026-05-27: 31 contributions 2026-05-28: 37 contributions 2026-05-29: 29 contributions 2026-05-30: 25 contributions 2026-05-31: 17 contributions 2026-06-01: 22 contributions 2026-06-02: 19 contributions 2026-06-03: 26 contributions 2026-06-04: 23 contributions 2026-06-05: 41 contributions 2026-06-06: 20 contributions 2026-06-07: 40 contributions 2026-06-08: 28 contributions 2026-06-09: 36 contributions 2026-06-10: 35 contributions 2026-06-11: 34 contributions 2026-06-12: 45 contributions 2026-06-13: 7 contributions 2026-06-14: 46 contributions 2026-06-15: 18 contributions 2026-06-16: 15 contributions 2026-06-17: 7 contributions 2026-06-18: 49 contributions 2026-06-19: 29 contributions 2026-06-20: 17 contributions 2026-06-21: 1 contributions 2026-06-22: 11 contributions 2026-06-23: 8 contributions 2026-06-24: 1 contributions 2026-06-25: 16 contributions 2026-06-26: 18 contributions 2026-06-27: 15 contributions 2026-06-28: 30 contributions 2026-06-29: 28 contributions 2026-06-30: 19 contributions 2026-07-01: 19 contributions 2026-07-02: 9 contributions 2026-07-03: 6 contributions 2026-07-04: 7 contributions 2026-07-05: 5 contributions 2026-07-06: 20 contributions 2026-07-07: 12 contributions 2026-07-08: 61 contributions 2026-07-09: 100 contributions 2026-07-10: 57 contributions 2026-07-11: 13 contributions 2026-07-12: 10 contributions 2026-07-13: 14 contributions 2026-07-14: 12 contributions 2026-07-15: 71 contributions 2026-07-16: 50 contributions 2026-07-17: 80 contributions 2026-07-18: 18 contributions 2026-07-19: 11 contributions 2026-07-20: 22 contributions 2026-07-21: 10 contributions 2026-07-22: 0 contributions 2026-07-23: 0 contributions 2026-07-24: 6 contributions 2026-07-25: 9 contributions 2026-07-26: 0 contributions 2026-07-27: 54 contributions 2026-07-28: 57 contributions 2026-07-29: 33 contributions 2026-07-30: 56 contributions 2026-07-31: 30 contributions 2026-08-01: 1 contributions 2026-08-02: 23 contributions 2026-08-03: 47 contributions 2026-08-04: 21 contributions 2026-08-05: 37 contributions 2026-08-06: 73 contributions 2026-08-07: 93 contributions 2026-08-08: 4 contributions 2026-08-09: 65 contributions 2026-08-10: 18 contributions 2026-08-11: 7 contributions 2026-08-12: 38 contributions 2026-08-13: 93 contributions 2026-08-14: 127 contributions 2026-08-15: 58 contributions 2026-08-16: 149 contributions 2026-08-17: 131 contributions 2026-08-18: 31 contributions 2026-08-19: 117 contributions 2026-08-20: 156 contributions 2026-08-21: 110 contributions 2026-08-22: 0 contributions 2026-08-23: 33 contributions 2026-08-24: 39 contributions 2026-08-25: 38 contributions 2026-08-26: 100 contributions 2026-08-27: 203 contributions 2026-08-28: 128 contributions 2026-08-29: 93 contributions 2026-08-30: 108 contributions 2026-08-31: 110 contributions 2026-09-01: 105 contributions 2026-09-02: 23 contributions 2026-09-03: 116 contributions 2026-09-04: 89 contributions 2026-09-05: 90 contributions 2026-09-06: 211 contributions 2026-09-07: 202 contributions 2026-09-08: 160 contributions 2026-09-09: 156 contributions 2026-09-10: 248 contributions 2026-09-11: 144 contributions 2026-09-12: 50 contributions 2026-09-13: 9 contributions
GitHub contributions over the last 13 weeks 2026-06-21 to 2026-09-13. Each square is one day, from top to bottom within each week. Brighter squares indicate more contributions as categorized by GitHub. Monthly totals follow. 2026-06-21: 1 contributions 2026-06-22: 11 contributions 2026-06-23: 8 contributions 2026-06-24: 1 contributions 2026-06-25: 16 contributions 2026-06-26: 18 contributions 2026-06-27: 15 contributions 2026-06-28: 30 contributions 2026-06-29: 28 contributions 2026-06-30: 19 contributions 2026-07-01: 19 contributions 2026-07-02: 9 contributions 2026-07-03: 6 contributions 2026-07-04: 7 contributions 2026-07-05: 5 contributions 2026-07-06: 20 contributions 2026-07-07: 12 contributions 2026-07-08: 61 contributions 2026-07-09: 100 contributions 2026-07-10: 57 contributions 2026-07-11: 13 contributions 2026-07-12: 10 contributions 2026-07-13: 14 contributions 2026-07-14: 12 contributions 2026-07-15: 71 contributions 2026-07-16: 50 contributions 2026-07-17: 80 contributions 2026-07-18: 18 contributions 2026-07-19: 11 contributions 2026-07-20: 22 contributions 2026-07-21: 10 contributions 2026-07-22: 0 contributions 2026-07-23: 0 contributions 2026-07-24: 6 contributions 2026-07-25: 9 contributions 2026-07-26: 0 contributions 2026-07-27: 54 contributions 2026-07-28: 57 contributions 2026-07-29: 33 contributions 2026-07-30: 56 contributions 2026-07-31: 30 contributions 2026-08-01: 1 contributions 2026-08-02: 23 contributions 2026-08-03: 47 contributions 2026-08-04: 21 contributions 2026-08-05: 37 contributions 2026-08-06: 73 contributions 2026-08-07: 93 contributions 2026-08-08: 4 contributions 2026-08-09: 65 contributions 2026-08-10: 18 contributions 2026-08-11: 7 contributions 2026-08-12: 38 contributions 2026-08-13: 93 contributions 2026-08-14: 127 contributions 2026-08-15: 58 contributions 2026-08-16: 149 contributions 2026-08-17: 131 contributions 2026-08-18: 31 contributions 2026-08-19: 117 contributions 2026-08-20: 156 contributions 2026-08-21: 110 contributions 2026-08-22: 0 contributions 2026-08-23: 33 contributions 2026-08-24: 39 contributions 2026-08-25: 38 contributions 2026-08-26: 100 contributions 2026-08-27: 203 contributions 2026-08-28: 128 contributions 2026-08-29: 93 contributions 2026-08-30: 108 contributions 2026-08-31: 110 contributions 2026-09-01: 105 contributions 2026-09-02: 23 contributions 2026-09-03: 116 contributions 2026-09-04: 89 contributions 2026-09-05: 90 contributions 2026-09-06: 211 contributions 2026-09-07: 202 contributions 2026-09-08: 160 contributions 2026-09-09: 156 contributions 2026-09-10: 248 contributions 2026-09-11: 144 contributions 2026-09-12: 50 contributions 2026-09-13: 9 contributions
Last year Last 13 weeks · Less More14,719 contributions across September 14, 2025 – September 13, 2026. Retrieved September 13, 2026.
Publicly visible GitHub profile activity, which can include anonymized private contributions. Counts show activity, not impact.
Monthly contribution totals Month Contributions September 2025 119 October 2025 575 November 2025 4,243 December 2025 754 January 2026 322 February 2026 620 March 2026 564 April 2026 547 May 2026 1,565 June 2026 704 July 2026 852 August 2026 2,251 September 2026 1,603
First and last months may be partial.
View current activity on GitHub · What GitHub counts