GITHUB ACTIVITY 11,161 contributions in the last year
11,161 Contributions last 12 months
72d Current streak active today
312 Busiest day 17 Jan 2026
2,213 PRs merged 2,287 opened, last 12 months
Sep
0 contributions on 2025-09-21
0 contributions on 2025-09-22
0 contributions on 2025-09-23
0 contributions on 2025-09-24
0 contributions on 2025-09-25
0 contributions on 2025-09-26
2 contributions on 2025-09-27
0 contributions on 2025-09-28
0 contributions on 2025-09-29
3 contributions on 2025-09-30
3 contributions on 2025-10-01
1 contribution on 2025-10-02
0 contributions on 2025-10-03
0 contributions on 2025-10-04
Oct
1 contribution on 2025-10-05
0 contributions on 2025-10-06
1 contribution on 2025-10-07
0 contributions on 2025-10-08
0 contributions on 2025-10-09
0 contributions on 2025-10-10
0 contributions on 2025-10-11
0 contributions on 2025-10-12
0 contributions on 2025-10-13
0 contributions on 2025-10-14
0 contributions on 2025-10-15
0 contributions on 2025-10-16
0 contributions on 2025-10-17
0 contributions on 2025-10-18
0 contributions on 2025-10-19
0 contributions on 2025-10-20
0 contributions on 2025-10-21
0 contributions on 2025-10-22
0 contributions on 2025-10-23
0 contributions on 2025-10-24
0 contributions on 2025-10-25
0 contributions on 2025-10-26
0 contributions on 2025-10-27
0 contributions on 2025-10-28
1 contribution on 2025-10-29
0 contributions on 2025-10-30
0 contributions on 2025-10-31
0 contributions on 2025-11-01
Nov
0 contributions on 2025-11-02
0 contributions on 2025-11-03
0 contributions on 2025-11-04
0 contributions on 2025-11-05
0 contributions on 2025-11-06
0 contributions on 2025-11-07
0 contributions on 2025-11-08
0 contributions on 2025-11-09
0 contributions on 2025-11-10
0 contributions on 2025-11-11
0 contributions on 2025-11-12
0 contributions on 2025-11-13
0 contributions on 2025-11-14
0 contributions on 2025-11-15
0 contributions on 2025-11-16
0 contributions on 2025-11-17
0 contributions on 2025-11-18
0 contributions on 2025-11-19
0 contributions on 2025-11-20
0 contributions on 2025-11-21
0 contributions on 2025-11-22
0 contributions on 2025-11-23
1 contribution on 2025-11-24
0 contributions on 2025-11-25
0 contributions on 2025-11-26
0 contributions on 2025-11-27
0 contributions on 2025-11-28
0 contributions on 2025-11-29
0 contributions on 2025-11-30
0 contributions on 2025-12-01
0 contributions on 2025-12-02
0 contributions on 2025-12-03
0 contributions on 2025-12-04
0 contributions on 2025-12-05
0 contributions on 2025-12-06
Dec
0 contributions on 2025-12-07
1 contribution on 2025-12-08
0 contributions on 2025-12-09
1 contribution on 2025-12-10
0 contributions on 2025-12-11
0 contributions on 2025-12-12
0 contributions on 2025-12-13
1 contribution on 2025-12-14
1 contribution on 2025-12-15
0 contributions on 2025-12-16
3 contributions on 2025-12-17
2 contributions on 2025-12-18
0 contributions on 2025-12-19
0 contributions on 2025-12-20
0 contributions on 2025-12-21
0 contributions on 2025-12-22
2 contributions on 2025-12-23
2 contributions on 2025-12-24
1 contribution on 2025-12-25
1 contribution on 2025-12-26
0 contributions on 2025-12-27
0 contributions on 2025-12-28
2 contributions on 2025-12-29
1 contribution on 2025-12-30
3 contributions on 2025-12-31
1 contribution on 2026-01-01
2 contributions on 2026-01-02
0 contributions on 2026-01-03
Jan
2 contributions on 2026-01-04
6 contributions on 2026-01-05
8 contributions on 2026-01-06
27 contributions on 2026-01-07
11 contributions on 2026-01-08
0 contributions on 2026-01-09
9 contributions on 2026-01-10
24 contributions on 2026-01-11
0 contributions on 2026-01-12
22 contributions on 2026-01-13
99 contributions on 2026-01-14
100 contributions on 2026-01-15
104 contributions on 2026-01-16
312 contributions on 2026-01-17
107 contributions on 2026-01-18
82 contributions on 2026-01-19
86 contributions on 2026-01-20
56 contributions on 2026-01-21
114 contributions on 2026-01-22
34 contributions on 2026-01-23
24 contributions on 2026-01-24
7 contributions on 2026-01-25
89 contributions on 2026-01-26
26 contributions on 2026-01-27
37 contributions on 2026-01-28
1 contribution on 2026-01-29
0 contributions on 2026-01-30
32 contributions on 2026-01-31
Feb
27 contributions on 2026-02-01
14 contributions on 2026-02-02
4 contributions on 2026-02-03
4 contributions on 2026-02-04
37 contributions on 2026-02-05
4 contributions on 2026-02-06
50 contributions on 2026-02-07
45 contributions on 2026-02-08
29 contributions on 2026-02-09
18 contributions on 2026-02-10
59 contributions on 2026-02-11
23 contributions on 2026-02-12
66 contributions on 2026-02-13
64 contributions on 2026-02-14
4 contributions on 2026-02-15
80 contributions on 2026-02-16
50 contributions on 2026-02-17
15 contributions on 2026-02-18
34 contributions on 2026-02-19
68 contributions on 2026-02-20
6 contributions on 2026-02-21
41 contributions on 2026-02-22
14 contributions on 2026-02-23
18 contributions on 2026-02-24
6 contributions on 2026-02-25
20 contributions on 2026-02-26
12 contributions on 2026-02-27
36 contributions on 2026-02-28
Mar
71 contributions on 2026-03-01
13 contributions on 2026-03-02
43 contributions on 2026-03-03
79 contributions on 2026-03-04
74 contributions on 2026-03-05
72 contributions on 2026-03-06
27 contributions on 2026-03-07
49 contributions on 2026-03-08
48 contributions on 2026-03-09
0 contributions on 2026-03-10
8 contributions on 2026-03-11
7 contributions on 2026-03-12
62 contributions on 2026-03-13
8 contributions on 2026-03-14
1 contribution on 2026-03-15
0 contributions on 2026-03-16
10 contributions on 2026-03-17
0 contributions on 2026-03-18
0 contributions on 2026-03-19
30 contributions on 2026-03-20
34 contributions on 2026-03-21
3 contributions on 2026-03-22
3 contributions on 2026-03-23
8 contributions on 2026-03-24
11 contributions on 2026-03-25
17 contributions on 2026-03-26
0 contributions on 2026-03-27
0 contributions on 2026-03-28
0 contributions on 2026-03-29
15 contributions on 2026-03-30
48 contributions on 2026-03-31
9 contributions on 2026-04-01
0 contributions on 2026-04-02
0 contributions on 2026-04-03
5 contributions on 2026-04-04
Apr
1 contribution on 2026-04-05
0 contributions on 2026-04-06
17 contributions on 2026-04-07
4 contributions on 2026-04-08
22 contributions on 2026-04-09
5 contributions on 2026-04-10
64 contributions on 2026-04-11
29 contributions on 2026-04-12
7 contributions on 2026-04-13
6 contributions on 2026-04-14
22 contributions on 2026-04-15
5 contributions on 2026-04-16
7 contributions on 2026-04-17
0 contributions on 2026-04-18
21 contributions on 2026-04-19
20 contributions on 2026-04-20
14 contributions on 2026-04-21
3 contributions on 2026-04-22
7 contributions on 2026-04-23
25 contributions on 2026-04-24
6 contributions on 2026-04-25
41 contributions on 2026-04-26
28 contributions on 2026-04-27
5 contributions on 2026-04-28
29 contributions on 2026-04-29
3 contributions on 2026-04-30
18 contributions on 2026-05-01
14 contributions on 2026-05-02
May
55 contributions on 2026-05-03
136 contributions on 2026-05-04
11 contributions on 2026-05-05
3 contributions on 2026-05-06
0 contributions on 2026-05-07
20 contributions on 2026-05-08
56 contributions on 2026-05-09
307 contributions on 2026-05-10
37 contributions on 2026-05-11
78 contributions on 2026-05-12
54 contributions on 2026-05-13
13 contributions on 2026-05-14
28 contributions on 2026-05-15
4 contributions on 2026-05-16
14 contributions on 2026-05-17
12 contributions on 2026-05-18
3 contributions on 2026-05-19
2 contributions on 2026-05-20
2 contributions on 2026-05-21
11 contributions on 2026-05-22
0 contributions on 2026-05-23
33 contributions on 2026-05-24
69 contributions on 2026-05-25
105 contributions on 2026-05-26
50 contributions on 2026-05-27
8 contributions on 2026-05-28
50 contributions on 2026-05-29
60 contributions on 2026-05-30
41 contributions on 2026-05-31
48 contributions on 2026-06-01
32 contributions on 2026-06-02
10 contributions on 2026-06-03
297 contributions on 2026-06-04
62 contributions on 2026-06-05
74 contributions on 2026-06-06
Jun
89 contributions on 2026-06-07
32 contributions on 2026-06-08
56 contributions on 2026-06-09
134 contributions on 2026-06-10
29 contributions on 2026-06-11
22 contributions on 2026-06-12
6 contributions on 2026-06-13
94 contributions on 2026-06-14
32 contributions on 2026-06-15
22 contributions on 2026-06-16
67 contributions on 2026-06-17
8 contributions on 2026-06-18
0 contributions on 2026-06-19
4 contributions on 2026-06-20
13 contributions on 2026-06-21
47 contributions on 2026-06-22
24 contributions on 2026-06-23
6 contributions on 2026-06-24
15 contributions on 2026-06-25
7 contributions on 2026-06-26
3 contributions on 2026-06-27
6 contributions on 2026-06-28
11 contributions on 2026-06-29
4 contributions on 2026-06-30
0 contributions on 2026-07-01
0 contributions on 2026-07-02
0 contributions on 2026-07-03
0 contributions on 2026-07-04
Jul
1 contribution on 2026-07-05
11 contributions on 2026-07-06
35 contributions on 2026-07-07
11 contributions on 2026-07-08
1 contribution on 2026-07-09
8 contributions on 2026-07-10
1 contribution on 2026-07-11
2 contributions on 2026-07-12
1 contribution on 2026-07-13
0 contributions on 2026-07-14
0 contributions on 2026-07-15
1 contribution on 2026-07-16
1 contribution on 2026-07-17
16 contributions on 2026-07-18
13 contributions on 2026-07-19
21 contributions on 2026-07-20
37 contributions on 2026-07-21
51 contributions on 2026-07-22
14 contributions on 2026-07-23
125 contributions on 2026-07-24
236 contributions on 2026-07-25
151 contributions on 2026-07-26
53 contributions on 2026-07-27
3 contributions on 2026-07-28
2 contributions on 2026-07-29
100 contributions on 2026-07-30
16 contributions on 2026-07-31
215 contributions on 2026-08-01
Aug
103 contributions on 2026-08-02
98 contributions on 2026-08-03
125 contributions on 2026-08-04
62 contributions on 2026-08-05
12 contributions on 2026-08-06
26 contributions on 2026-08-07
90 contributions on 2026-08-08
209 contributions on 2026-08-09
89 contributions on 2026-08-10
145 contributions on 2026-08-11
216 contributions on 2026-08-12
38 contributions on 2026-08-13
9 contributions on 2026-08-14
12 contributions on 2026-08-15
44 contributions on 2026-08-16
60 contributions on 2026-08-17
64 contributions on 2026-08-18
100 contributions on 2026-08-19
91 contributions on 2026-08-20
100 contributions on 2026-08-21
18 contributions on 2026-08-22
178 contributions on 2026-08-23
94 contributions on 2026-08-24
53 contributions on 2026-08-25
80 contributions on 2026-08-26
92 contributions on 2026-08-27
80 contributions on 2026-08-28
104 contributions on 2026-08-29
54 contributions on 2026-08-30
114 contributions on 2026-08-31
28 contributions on 2026-09-01
61 contributions on 2026-09-02
85 contributions on 2026-09-03
75 contributions on 2026-09-04
63 contributions on 2026-09-05
Sep
44 contributions on 2026-09-06
20 contributions on 2026-09-07
46 contributions on 2026-09-08
33 contributions on 2026-09-09
73 contributions on 2026-09-10
62 contributions on 2026-09-11
53 contributions on 2026-09-12
13 contributions on 2026-09-13
32 contributions on 2026-09-14
14 contributions on 2026-09-15
65 contributions on 2026-09-16
76 contributions on 2026-09-17
18 contributions on 2026-09-18
14 contributions on 2026-09-19
93 contributions on 2026-09-20
65 contributions on 2026-09-21
49 contributions on 2026-09-22
124 contributions on 2026-09-23
264 contributions on 2026-09-24
7 contributions on 2026-09-25
Less
More
HOW I BUILD
AI-native
I build with AI in the loop; coding agents in the terminal, with kBrain giving them the same prompts and context every session, and MCP servers I've written so they can work directly with my own systems.
Every morning at 05:30 a scheduled agent picks one of my repos and works through the mechanical findings SonarQube has raised on it, limited to an allowlist of rules that are safe to fix this way; a fix only merges once that repo's own build, tests and CI have passed.
SCAN self-hosted SonarQube
→
FIX mechanical smells, capped & allowlisted
→
VERIFY against each repo's own tests
→
MERGE only on a green build and CI
Every fix goes through a pull request; bugs and vulnerabilities are triaged for me to review and are never fixed automatically.
Around that I run several scanners side by side, since each one picks up things the others don't:
Static + SAST SonarQube / SonarCloud: code quality, bug patterns, infrastructure-as-code
Dependencies + secrets Snyk: known CVEs, container & IaC, leaked credentials
Local pre-push OSV-Scanner + Grype/Syft: offline, before anything leaves the machine
AI review Claude Code /code-review ultra: logic bugs the scanners miss