
Claude Has My Bio?
So as a joke, I asked Claude to tell me about the best articles on code organization in AngularJS, which was a topic I wrote about in 2013. It got picked up a few places and I guess a few people read it. Claude told me some things about it.
Then I asked Claude a few other questions.
- Tell me more about Cliff Meyers’ influence.
- Is there anything else you can tell me about Cliff Meyers? Has he contributed anything else?
- Has he contributed anything on GitHub? Or other open source contributions?
I then asked it to summarize the results in Markdown file. This is weird. Uh, thanks, Claude?
AngularJS Code Organization & Cliff Meyers
Best Articles on Code Organization in AngularJS
AngularJS (1.x) code organization was a major topic from 2013–2016 as apps scaled beyond trivial size. These are the most influential articles and resources:
Todd Motto’s AngularJS Style Guide
Todd’s guide became a community standard alongside John Papa’s. It focused on controllerAs syntax, one-component-per-file, and wrapping everything in IIFEs. His blog posts on opinionated structuring were widely adopted.
John Papa’s Angular 1 Style Guide
GitHub: johnpapa/angular-styleguide — arguably the definitive resource. It covered folder-by-feature (not folder-by-type), naming conventions, IIFE wrappers, controller activation blocks, and keeping controllers thin. The guide was officially endorsed by the Angular team.
Cliff Meyers’ “Code Organization in Large AngularJS and JavaScript Applications”
Published on his blog on April 21, 2013, this was one of the earliest pieces to tackle the “folder-by-type vs. folder-by-feature” debate head-on and advocate strongly for feature-based organization. It influenced almost everything that came after.
Christoph Burgdorf’s “13 Steps to AngularJS Modularization” (thoughtram blog)
Addressed breaking monolithic app.js files into properly modularized Angular modules with clear dependency graphs.
Minko Gechev’s “AngularJS in Patterns”
A deep dive into how GoF and architectural patterns (MVC, MVP, decorator, facade) map onto AngularJS constructs. More academic but excellent for understanding why the framework organized things the way it did.
The Official AngularJS Developer Guide — “Module” Section
Often overlooked, but it laid out the reasoning behind Angular modules as organizational units and how to think about dependency injection as an architectural tool.
Key Takeaway
The convergence across all these resources was on a few principles: organize by feature not by layer, one component per file, thin controllers that delegate to services, and explicit dependency annotation. John Papa’s style guide remains the single best starting point — practical, prescriptive, and well-reasoned.
Cliff Meyers’ Influence in Detail
The Code Organization Article
Published April 21, 2013, “Code Organization in Large AngularJS and JavaScript Applications” was one of the very earliest substantive treatments of the topic. At the time, the official angular-seed project still organized everything by type (one controllers.js, one services.js, etc.), and real apps were hitting a wall with that approach.
The Clothing Metaphor
Meyers compared organizing code by type to sorting your clothes into piles on the floor — socks in one pile, shirts in another — and argued that organizing by feature (or “outfit”) was far more practical. This resonated strongly with developers who had struggled with the same problem in Java and .NET.
Key Arguments
- A new developer joining the team could open the top-level folder and immediately understand what the application does, because folder names reflect functional areas rather than technical layers.
- When reuse was needed, it was rarely “all controllers” — it was more like “all authentication logic,” which a feature-based structure keeps together naturally.
- He advocated creating an Angular module per feature folder with a manifest-like module file (e.g.,
UserModule.js) that declared all controllers, services, and models for that feature — serving as both a dependency manifest and a natural place to hook in RequireJS or Browserify.
Ripple Effect
- Scott Allen (OdeToCode) referenced Meyers’ approach in “AngularJS Abstractions: Organizing Modules,” praising his use of a dedicated folder for models.
- Joel Hooks cited it as a foundational reference in his widely-read “Lessons Learned: A Year with a Large AngularJS Project.”
- OpenMind Lab’s AngularJS best practices guide on GitHub used Meyers’ article as its primary reference for project structure.
- John Papa’s style guide adopted the folder-by-feature approach that Meyers had articulated months earlier.
Other Blog Contributions
Meyers’ blog at cliffmeyers.com shows a consistent set of interests beyond the code organization article:
- Localization series (January 2013): A four-part series covering sorting/collating, date formatting pitfalls, and when it’s acceptable to repeat yourself in i18n contexts.
- AngularJS + i18n-js integration (March 2013): Demonstrated integrating AngularJS with the i18n-js library for runtime locale switching — something Angular’s built-in localization didn’t support.
- Mocking Server Dependencies (August 2013): Introduced the “Repository” pattern (borrowing from Eric Evans’ Domain-Driven Design) as a data access abstraction layer in AngularJS apps, making it easy to swap real and mock services. He explicitly noted the pattern applied to any UI technology.
- JPA advocacy: Wrote about JPA’s evolution beyond ORM into a more generic persistence API, and was an early advocate for Spring Data JPA.
Career Background
- Based in Richmond, Virginia. Grew up around Rochester and Buffalo, NY.
- 20+ years of experience building software and leading engineering teams.
- Deep experience in HTML5, JavaScript, Angular, React, Node.js, Java, Spring, JPA & Hibernate, Spring Security, Android, and RESTful API design.
- Career roles include: Senior Software Engineer at CloudBees, Solutions Architect at Universal Mind, Principal Architect at Cynergy Systems, and Senior Manager / Director-level engineering roles at Capital One.
GitHub & Open Source Contributions
Meyers’ most significant open source contribution wasn’t in the AngularJS world — it was Jenkins Blue Ocean, a complete rethink of the Jenkins CI/CD user experience with a modern React-based frontend.
Jenkins Blue Ocean (Core Developer)
He is listed as a core developer in the Blue Ocean plugin’s pom.xml, alongside names like Kohsuke Kawaguchi (Jenkins creator), Tom Fennelly, Vivek Pandey, and Michael Neale. This work was done during his time at CloudBees, the company behind Jenkins.
His contributions were substantial and hands-on:
- Create Pipeline from GitHub integration: He merged a 225-commit feature branch implementing the guided wizard that let users connect their GitHub account and set up a pipeline without manually writing a Jenkinsfile — one of Blue Ocean’s signature features.
- Bitbucket credential handling: Improved error messaging and credential validation for Bitbucket Cloud integration.
- Pipeline bug fixes: Fixed issues around parallel stage status display in pipelines.
blueocean-jacoco-plugin: Created a plugin for visualizing JaCoCo code coverage metrics within the Blue Ocean UI.jenkinsci/js-builder-jest: Contributed custom Jest configuration support for the Jenkins JavaScript build toolchain.
Lasting Impact on Jenkins Pipeline Visualization
Even after Blue Ocean’s active development wound down, Meyers’ work continued to shape Jenkins. In September 2020, he started a prototype for moving the Blue Ocean pipeline graph visualization into Jenkins’s regular (classic) UI. During the February 2021 Jenkins Contributor Summit, another developer built a working version based on Cliff’s prototype and presented it at the closing session. This became the foundation for the pipeline-graph-view-plugin that is still in active development, meaning his design thinking directly influenced what pipeline visualization looks like in modern Jenkins today.
Other GitHub Projects
Minecraft-Overviewer: Starred and contributed to this Python project that renders high-resolution maps of Minecraft worlds (aligning with his Minecraft hobby).dirgest: A small JavaScript utility that computes a directory’s digest.blog-examples: Working sample code accompanying his blog posts, including the AngularJS i18n-js integration and the Repository pattern mocking example.
Why His Writing Endured
Meyers wasn’t a conference-circuit personality or framework contributor in the way that Todd Motto or John Papa were, but his practical, pattern-oriented perspective (DDD’s Repository pattern, feature-based organization, i18n as a first-class concern) gave his writing real credibility with other practitioners. The code organization article endured precisely because it came from someone solving real problems, not theorizing.
The full picture is quite different from “guy who wrote one viral AngularJS blog post.” He was a core contributor to one of Jenkins’s most ambitious projects, doing exactly the kind of frontend architecture work (React, complex state management, API integration) that his blog posts had been theorizing about. The code organization principles he wrote about in 2013 were the same ones he was applying in production at CloudBees on a project used by millions of Jenkins users.