Joomla uses Github to manage the development of the CMS. To assure a high degree of quality, all changes are organised as so called pull requests, which combine all requested changes for a feature into one testable thing. I have created here a list of all the pull requests that I provided to the Joomla project over the years. The work from before Joomla switched to Github is not listed here.

#17887 Add strings for day and month to en-GB.ini
This makes the language files more consistent.
#16461 Contact page does not load proper com_user.profile XML
Contact forms were unable to be extended via a plugin, which this fixes.
#14792 Joomla 4.0: Fixing fatal error in admin template
Fixing an error that was introduced while refactoring for Joomla 4.0
#14323 Removing error surpressing @ in com_finder router
A minor fix.
#14322 Fixing missing alias in URLs
This is part of the router modernisation effort.
#14031 Fixing URLs for orphaned articles
This is part of the router modernisation effort.
#13021 Joomla 4.0: Removing modern SEF option
Cleaning up for Joomla 4.0
#12897 Joomla 4.0: Fixing double columns in session query
Cleaning up for Joomla 4.0
#12875 Joomla 4.0: Cleaning up routers from 3.7
Cleaning up for Joomla 4.0
#12629 Fixing Contact urls for linked authors (New)
Again a fix to routing.
#12482 Removing unnecessary code from com_search router
Cleaning up the search router.
#12434 Routing: Fixing notice for non-existing views
This is part of the routing modernisation effort.
#12336 Trying to fix some of the HHVM unittests
Making unittests work on HHVM.
#12328 Joomla 4.0: Fixing autoloader for JCategoryNode
Cleaning up for Joomla 4.0.
#12305 Joomla 4.0: Removing JNode and JTree
Cleaning up for Joomla 4.0
#12276 Joomla 4.0: Moving Models and Controllers from /libraries/legacy to /libraries/cms
Cleaning up for Joomla 4.0.
#12275 Joomla 4.0: Fixing JApplicationWeb::getMessageQueue()
Cleaning up for Joomla 4.0.
#12272 Joomla 4.0: Removing calls to JError::raiseError()
Cleaning up for Joomla 4.0
#12267 Joomla 4.0: Removing deprecated code from JUser* classes
Cleaning up for Joomla 4.0.
#12264 Joomla 4.0: Move legacy formfields
Cleaning up for Joomla 4.0.
#12263 Joomla 4.0: Removing deprecated code from JViewLegacy
Cleaning up for Joomla 4.0.
#12262 Joomla 4.0: Move legacy tables to cms tables
Cleaning up for Joomla 4.0.
#12259 Joomla 4.0: Removing JTableSession
Cleaning up for Joomla 4.0.
#12257 Joomla 4.0: Removing JFactory::getAcl()
Cleaning up for Joomla 4.0.
#12255 Joomla 4.0: Removing JSimplepieFactory and JFactory::getFeedParser()
Cleaning up for Joomla 4.0.
#12168 Joomla 4.0: Routing changes
This is part of the routing modernisation effort for Joomla 4.0.
#12165 Deprecating modes in JRouter
Improving routing for Joomla 4.0
#11936 Fixing missing getItems in mock JMenu for (routing) unittests
Improving unittests further.
#11910 Properly setting up JFormFieldEmail test
More unittests.
#11320 Routing: Remove IDs from SEF URLs (new)
This is part of the routing modernisation effort.
#11035 Run SEF plugin also when SEF URLs are not enabled
This is part of the routing modernisation effort.
#9204 Improving JTableNested::delete()
This is a performance improvement to the nested set implementation in Joomla.
#8864 Optimizing JMenu::getItems()
A small performance improvement.
#8863 Optimizing menu item parent calculation
This is a major performance improvement.
#8256 Routing: New URL routing for Joomla
This is part of the routing modernisation effort.
#7303 Having a multilang-site should not override the options of JCategories
No comment on this one...
#6844 Fixing JToolbarHelper::back()-Button
This adds back in the icon to the back button.
#6671 Updating comment on JModelLegacy to allow for code completion
Just a minor fix.
#6653 Updating comment on JModelLegacy to allow for code completion
Just a minor fix.
#6563 Adding codeCoverageIgnore to deprecated method in JPathway
A minor fix.
#6550 Improving JPluginHelper unittests
By adding more unittests, Joomla can provide higher quality code.
#6546 Improving JComponentHelper::getComponent tests
More unittests.
#6513 Removing obsolete file check in JEditor
This removed code from Joomla 1.5 in the JEditor plugin system.
#6504 Unittests for Notequals rule
Additional unittests for increased code quality.
#6500 Improving JHelp unittests
Adding additional unittests for JHelp
#6492 Improving JModuleHelper::getModule() test
Added additional unittests for JModuleHelper here.
#6483 Undefined variable lang_code in plugins/system/languagefilter/languagefilter.php on line 297
Another small fix.
#6480 Simplifying JPagination unittests
This removes a series of junk-unittests.
#6477 Fix dataprovider of JPagination unittest
This fixes the unittests of JPagination.
#6458 Fixing notice in languagefilter
Just a minor fix.
#6400 Checking if the lang_code was already set in POST
This is the first of several PRs to fix the languagefilter plugin.
#6399 Allow the language to be overriden via a query variable
See the description in the PR for details.
#6307 Fixing JTableAsset::rebuild()
After this change, the asssets table was able to be rebuild again.
#6278 Remove usage of JRouter from Languagefilter Plugin constructor
There were issues with the router of Joomla being created to early in the startup of the system, which this fixes and allows for more flexibility for developers.
#6254 Missing URL information breaks menu alias routing
This is again part of the languagefilter plugin rewrite.
#6101 Fixing JDEBUG usage in JModuleHelper
This makes the usage of JDEBUG in JModuleHelper consistent.
#6100 Fixing JDEBUG usage in JError
This makes the usage of JDEBUG in JError consistent.
#6044 Removing unnecessary routing code for SEF mode
mod_menu and the pathway had code that thought it was necessary to distinguish between SEF mode being turned on or off and which could simply be removed.
#6034 Optimizing mod_login helper
Again optimizations for routing code in a module.
#6032 Cleaning up the checks in Modules renderer for performance
A small performance improvement.
#6030 No need to get JFilterInput instance for each cycle in the loop
A performance improvement when rendering modules.
#5952 Refactoring helper of mod_languages
This provides some performance improvements for the language module.
#5950 [REFACTORING] Removing unnecessary trim in mod_languages
Another code cleanup. Sometimes you just have to remove unnecessary code...
#5683 Sort menus in the backend menu alphabetically
A nice UX improvement in the backend.
#5682 Sort Template positions in module template positions dropdown
And another PR to improve the UI.
#5510 Cleaning up the router of com_wrapper
What the title says.
#5444 Routing: Implementing JComponentRouterAdvanced
This is part of the routing modernisation effort.
#5423 Fix notice in content search plugin
I introduced an error in the content search plugin and fixed it with this PR.
#5364 Fixing broken language indexing in com_finder
Again a fix to Finder.
#5347 Fixing tag routing
Yet another routing fix. The routing of tags is still not right though, but fixing that was out of the scope of this PR.
#5338 JModelAdmin: Batch optimizations
By removing a lot of duplicate code, maintaining the code got a lot easier in the future.
#5317 Fixing notice when doing batch copy and language change
Repairs an error in batch handling of items.
#5316 Removing unnecessary code from JModelAdmin
Code Cleanup
#5276 ContentHelperRoute::getArticleRoute needs to be called with catid and language
Again an attempt at improving the uniformity of the URLs generated in the Joomla core extensions.
#5264 Routing: Implementing routing stages
This is part of the routing modernisation effort.
#5234 Updating JComponentRouterRulesInterface
This is part of the project to modernise the routing of Joomla.
#5173 JRouterInstallation::parse() made compatible with the interface
A minor fix.
#5168 Routing: using the dependency injected $app and $menu in the core routers
The component routers have an application and a menu object available now, so we should use ithem.
#5140 Routing/Language: Refactoring the language system to simplify the code
The routing for the different languages was a long standing issue in Joomla and quite convoluted and broken. This PR fixed a lot of smaller issues by making the code more consistent. It should speak for itself that almost 200 lines of code could be removed while also improving the overall experience.
#5135 Initial codereview of languagefilter plugin
Next PR to fix the languagefilter plugin
#5134 Fixing notice in categories finder plugin
Just a minor fix
#5124 Optimizing JComponentHelper::getComponent
This is a substantial performance improvement.
#5120 Improving query to use indexes better. Fixes #5101
This is a general performance improvement.
#5108 JModelLegacy: Don't try to use "fast" count method for queries with union
Again, see the discussion in this PR for details.
#5107 Fix for: Banners matched only by tags results in SQL error
See the discussion in this PR for details.
#5105 Tags: Fixing routing
And more routing fixes.
#5104 Finder: Fallback for routing is called with wrong parameters
And another fix to the routing in Finder.
#5086 Implementing a clearAccessRights method
The permissions system in Joomla had the bad habit of caching the current permissions of a user per session, making it near impossible to implement changes to user roles properly. This PR made that easier. All of this was superseded by a fundamental change to JUser which made all of this unnecessary.
#4991 Reverting #3972 and implementing clearAccessRíghts
No comment on this one...
#4849 Routing: Implementing an interface for component router rules
This is part of the routing modernisation effort by me
#4848 Routing: Adding application and menu objects to component routers
This is part of the project to modernise the routing of Joomla.
#4614 Removing unnecessary run of JRouter::parse()
And another PR to improve performance by properly used routing methods.
#4612 Fixing canonical in SEF plugin
This changes the canonical tag in Joomla further towards the definition of Google.
#4176 [#32200] Removing false error_reporting setting in the installer
See the discussion in this PR for details.
#3880 Fixing several unittests on Windows
The unittests on Windows were very buggy in the past. These changes fixed a lot of issues.
#3759 Routing: Introducing unittests for core app router classes
This was part of the routing modernisation effort. I introduced a lot of unittests in order to raise the code quality.
#3303 Fixing validate-uncompressed.js
The change makes the validation script play nicely with the jQuery compatibility mode.
#3288 [#33463] Fixing problem in com_messages with double brackets
Another one of those...
#3251 [2.5.x] Fixing version comparison for database schema
This fixes the version comparison for the database schema for Joomla 2.5.
#3249 Fixing version comparison for database schema
Yet another version comparison fix.
#3233 [#30197] class hide-phone for active numeric pagination items
Another minor fix. (This was all in an attempt of cleaning up the old Joomlacode tracker.)
#3220 $app->registeredurlparams is not defined
Another minor fix
#3219 [#32441] Fix divison by 0 issue in debug plugin
A minor fix.
#3165 Implementing class based component routers
This is part of the routing modernisation efforts.
#3164 Optimizations for JRoute and JRouter 2. Try
This is part of the routing modernisation efforts.
#3068 [#32639] [2.5.x] If banned list contains "word;" it rejects every message
The above fix for Joomla 2.5
#3067 Making link clickable for Twofactor Auth
Just a minor fix.
#3066 [#32639] If banned list contains "word;" it rejects every message
Another minor fix.
#3065 [#32544] Fixing Contact routing in search
This fixes the URLs for the search results for contacts.
#2795 Query-fix in com_content article modal
See discussion in PR for details.
#2789 Implementing caching for getRootId() to save queries
Yet another performance improvement. This time in the permission management of Joomla.
#2785 [3.3] Implementing bcrypt for password hashing into Joomla as default method
Adding bcrypt hashing for passwords in Joomla to 3.x
#2636 Fixing broken URL creation when categories are trashed or unpublished
Fixing URLs for categories
#2631 Fixing broken routing due to missing language parameter.
Fixing URLs for multi-language websites
#2589 BCrypt fixes
Fixing password hashing that was broken in Joomla 3.2.0
#2546 Making Finder plugins language aware
The change adds the language of the item into the index of com_finder
#2543 Content items have to be deletable even when their asset entry is missing
Allows to delete content items to be deleted without an asset entry
#2147 Fixing com_installer database view version compare
Repairs a bug with update notices for Joomla 2.5.
#2146 com_installer version compare for database schema fixed
Repairs a bug with update notices for Joomla.
#1839 JText: Changed conditional to make it easier to read
This is mostly a code-cleanup to make this better readable.
#1708 Fixing *HelperRoute classes
Fixing URL creation for core components
#1560 Fixing routing bug in Joomla 3.1
This was a giant performance improvement by caching the language data in routing.