Skip to content

Developer Tiers

The pathway to professional growth at Planet Argon is clearly laid out through our structured developer role tiers. These tiers outline the expectations, skills, and advancement opportunities associated with each role and provide a roadmap for personal and professional growth within our organization.

SkillRuby on Rails Developer IRuby on Rails Developer IIRuby on Rails Developer III
Industry Experience
0 - 3 years, which can include:2 - 5 years, which can include:5 - 7 years, which can include:
- structured education- education- education
- self-guided education- internships- internships
- internships- contribution to open-source projects- contribution to open-source projects
- contribution to Open-source projects- support engineer, QA, and other dev-adjacent industry roles- support engineer, QA, and other dev-adjacent industry roles
- support engineer, QA, and other dev-adjacent roles- junior developer roles- junior and mid-level developer roles
- team lead roles
------------
Ruby
Confidently uses the basic elements of the language, such as data structures, variables, methods, loops, and conditionalsPairs with and mentors other mid and junior level developers on Ruby fundamentalsPairs with other developers on Ruby fundamentals and more advanced Ruby design patterns, modifying gems, and custom rake tasks
Has started learning basic creational and behavioral Ruby patternsHas begun using more advanced creational and behavioral Ruby patterns in their work, such as factories, prototypes, iterators, state, and templatesUnderstands and uses more advanced creational and behavioral Ruby patterns, such as factories, prototypes, iterators, state, and templates
Understands the core concepts of object-oriented programming, such as classes, modules, objects, and inheritanceUnderstands the Ruby behind some common Rails tools, such as Active Record and autoloadingExplains the Ruby behind common Rails tools to more junior developers in pairing and mentoring sessions
Understands the basics of data persistenceCoordinates with tech lead or senior developers to fork and modify gems to serve app requirementsForks and modifies gems to satisfy app requirements
Creates simple rake tasks to automate specific actionsCreates custom rake tasks to automate specific actions
------------
Rails
Understands the MVC paradigm and can place business logic, actions, and views in the appropriate layer in existing code with minimal guidanceUnderstands the MVC paradigm and can place business logic, actions, and views in the appropriate layer in new and existing code with no guidanceUnderstands the MVC paradigm and designs layer architecture for refactors or new feature development
---Uses the Rails CLI to generate new code, start the Rails console or server, and create or update the database/schemaUses the Rails CLI to generate new code, start the Rails console or server, and create or update the database/schemaUses advanced Rails CLI commands to generate or destory code, manipulate the console or server, manage and precompile assets, manage the database/schemas, track down routing problems, and create and run custom rake tasks
---Understands and uses basic Rails RESTful actions: index, show, new, edit, create, update, and destroyUnderstands and uses basic Rails RESTful actions: index, show, new, edit, create, update, and destroyUses advanced understanding of Rails RESTful actions to design the routing system and controller actions of new Rails development and refactoring efforts
---Uses Active Record for basic ORM actions: reading and writing data, validating data, and migrating databasesUses Active Record for basic ORM actions and creating and querying more advanced associations; takes advantage of optional column names to add additional features to Active Record instancesUses advanced Active Record queries for complex associations, joins, and aggregations
------Understands and adheres to Active Record naming and schema conventionsAdvocates for adherence to Active Record naming and schema conventions when reviewing PRs and pairing with other developers
------Uses Action Mailer to create, edit, and call mailers and mailer viewsUses Action Mailer to create, edit, and call mailers and mailer views
------Can create custom routing, particularly for authentication and authorizationKnows when and how to organize groups of controllers under a namespace; understands and uses singular, multiple, and nested resources; knows how to avoid deep resource nesting; knows when and how to use routing concerns
Databases
---Leverages basic knowledge of SQL logs to identify general database activities and behaviors when utilizing ActiveRecord, with a focus on recognizing simple query patterns and potential errorsAnalyzes SQL logs adeptly to gain a nuanced understanding of the database operations occurring through ActiveRecord use, including the ability to optimize queries, diagnose issues, and propose solutions to enhance performance and securityExpertly reads and interprets SQL logs to uncover deep insights into database functioning under ActiveRecord operations, demonstrating the capacity to fine-tune system performance, strategize database scaling, and mentor junior developers in SQL log analysis and ActiveRecord optimization techniques
---Has foundational skills in utilizing PostgreSQL or MySQL for basic database management tasks, including creating, reading, updating, and deleting data entriesExhibits proficiency in managing databases through PostgreSQL or MySQL, demonstrating abilities such as optimizing database structures, implementing security measures, and tuning performance to support robust application functionalitiesMasters the advanced functionalities of PostgreSQL or MySQL to architect highly optimized and secure database systems, along with showcasing an expertise in complex tasks like database replication, partitioning, and developing strategies for high availability and disaster recovery
------------
Frontend
---Uses CSS to style Rails viewsUses CSS or SCSS to style Rails viewsUses CSS, SCSS, or SASS to style Rails views; can use SASS libraries to enhance app styling
---Knows fundamental HTML elements and how they work with ERBHas a strong understanding of HTML and how to use ERB to create views templatesIs fluent in both HTML and ERB; takes advantage of views templates to modularize Rails applications
---Understands the basics of JavaScript, especially how similar Ruby concepts such as conditionals, loops, objects, and methods are syntactically differentUnderstands the basics of JavaScript, especially how similar Ruby concepts such as conditionals, loops, objects, and methods are syntactically differentHas a strong grasp of JavaScript, the similarities and differences between it and Ruby, and event-driven JavaScript patterns
------Understands event-driven JavaScript patterns and their associated HTML event attributesIs familiar with a few front-end JavaScript frameworks, such as React or Angular, and knows how they integrate with Rails
Git
Understands and applies common git commands to effectively branch, commit, and push code changes, ensuring a fundamental level of version control and collaboration with the teamConfidently utilizes a variety of git commands not only to branch, commit, and push changes, but also to manage merge conflicts, stash work, and review logs, promoting code integrity and streamlined collaboration in a mid-level development environmentDemonstrates mastery over git with the ability to leverage advanced commands and workflows, including rebasing and cherry-picking, to efficiently manage code versions and collaborate at a high level, while also guiding less experienced team members in best practices for git usage
Adheres to established git and PA best practices by following guidance on branch naming conventions, maintaining regular commit frequencies, and understanding the basics of PR workflows to facilitate smooth collaboration and code managementProactively follows and contributes to the enhancement of git and PA best practices, showcasing aptitude in branch naming, optimal commit frequency, and streamlined PR workflows, while playing an active role in code reviews to maintain high standards in code qualityLeads in the formulation and optimization of git and PA best practices, setting standards for branch naming, commit frequency, and PR workflows, and fostering a culture of knowledge sharing and mentorship, while ensuring the highest level of code quality and collaborative efficiency
Assists other mid and junior level developers with fixing branching and merging errorsAssists more junior developers with fixing branching and merging errors
------------
Collaboration
Pairing - responsibilities and expectationsPairs with all level developers using Llewellyn’s strong-style method (both as driver and navigator)Pairs with all level developers using Llewellyn’s strong-style method (both as driver and navigator)Pairs with all level developers using Llewellyn’s strong-style method (both as driver and navigator);
Asks more senior developers to pair on project-specific issues when blockedAsks more senior developers to pair on project-specific issues when blockedPairs with more junior developers to unblock them on project-specific issues
Allows junior developers to shadow them during regular project workAllows junior and mid-level developers to shadow them during regular project work
Pull requests and code reviewsSubmits PRs for review and approval by tech lead or senior developerSubmits PRs for review and approval by tech lead or senior developerSubmits PRs for review and approval before merging code into staging or production
Completes all sections of PR template or provides context for missing sectionsCompletes all sections of PR template or provides context for missing sectionsCompletes all sections of PR template or provides context for missing sections
Follows project-specific merge workflowsFollows project-specific merge workflowsMentors more junior developers in project-specific merge workflows
Reviews PRs by junior and mid-level devs and provides specific, actionable feedbackReviews PRs by more junior developers and provides specific, actionable feedback; pairs on suggested changes when necessary
Breaking down tasksFollows PA issue estimation best practices to know when a task may need to be broken into smaller subtasksFollows PA issue estimation best practices to know when a task may need to be broken into smaller subtasksFollows PA issue estimation best practices to know when a task may need to be broken into smaller subtasks
Meets with PM or tech lead to break larger stories into smaller tasks or subtasksProvides PM or tech lead reasoning for breaking down larger stories into smaller tasks and description of new tasks; gets approval on new tasks before beginning workHelps more junior developers break down larger stories into smaller tasks
Estimating tasksFollows PA best practices to provide story point and hours estimates to issues before beginning workFollows PA best practices to provide story point and hours estimates to issues before beginning workFollows PA best practices to provide story point and hours estimates to issues before beginning work
Meets with manager weekly to review issue estimates and document causes of significant overagesReviews estimates during work and alerts PM of potential overages; explains why issue will require more work and provides estimates for additional effort to completeReviews estimates during work and alerts PM of potential overages; explains why issue will require more work and provides estimates for additional effort to complete
Reviews estimates after submitting a PR or closing an issue and documents causes of significant overagesReviews estimates after submitting a PR or closing an issue and documents causes of significant overages
Assists more junior developers in estimating issues during work planning meetings
Technical debtBeginning to cultivate the skill of identifying potential technical debt in a codebase, including recognizing excessive comments, slow tests, and other basic issues, and learning how to tag them appropriately for future referenceProficient in scrutinizing the codebase for signs of technical debt such as overuse of comments, slow but passing tests, and missing tests, and is capable of tagging these effectively, along with identifying deprecation warnings and opportunities for DRY refactoring to enhance code maintainabilityExpert at meticulously navigating through codebases to spot and tag all forms of technical debt including the overuse of comments, slow tests, absence of tests, and deprecation warnings, and proactively seeking out DRY refactor opportunities, thereby acting as a steward of code quality and guiding the team towards maintaining a healthy and efficient codebase
Uses knowledge of Ruby design patterns to suggest refactors to an app’s architecture in order to improve performance, developer experience, app maintainability, and adherence to best practices
DocumentationAlerts PM of inaccuracies or outdated information in app setup documentationUpdates missing, inaccurate, or outdated information in app documentation and submits PR to tech leadUpdates missing, inaccurate, or outdated information in app documentation; informs team of change when docs are updated
Alerts manager of inaccuracies or outdated information in internal PA documentationUpdates missing, inaccurate, or outdated information in internal PA documentation and submits PR to managerUpdates missing, inaccurate, or outdated information in internal PA documentation and submits PR to manager
Reviews PRs containing documentation updates submitted by other developers and confirms accuracy of updates
Testing
Familiarizes themselves with a TDD approach, learning to create basic tests for new code using tools such as RSpec, and gradually building a foundation in developing through a test-driven methodologyEffectively implements a TDD approach in their development workflow, crafting comprehensive tests using RSpec or other testing tools, and consistently ensuring that newly written code is robust and reliable through diligent testingExemplifies mastery in a TDD approach to development, not only creating exhaustive tests using advanced features of testing tools like RSpec but also fostering a culture of quality assurance by mentoring others in adopting TDD best practices, and contributing to the evolution of testing strategies within the team
Adds tests to legacy code as that code is encountered or refactoredAdvocates for TDD amongst peers by ensuring PRs include appropriate tests
Uses code and test coverage tools to evaluate the existing coverage and identify parts of the code base that need testsAdds tests to legacy code as that code is encountered or refactored
Follows PA code and test coverage best practices to design testing strategy for applications
Interprets code and test coverage reports in the context of the client’s business goals and updates testing strategy accordingly
------------
Debugging
Gains experience in debugging by identifying errors within the code base and begins to test fixes on a local environment to ensure basic functionality and stabilityDemonstrates proficiency in debugging complex errors originating in the code base, utilizing a range of techniques and tools to test and validate fixes locally, ensuring a higher degree of reliability and efficiency in the solutions deployedShowcases expertise in pinpointing and rectifying intricate errors in the code base, leveraging deep knowledge and experience to test fixes locally through rigorous validation processes, often foreseeing and mitigating potential issues proactively, and serving as a mentor in debugging best practices to junior team members
Begins to understand how to diagnose and debug fundamental errors in the application infrastructure including simple DNS discrepancies, basic server misconfigurations, integration glitches, and straightforward database issues, relying on more experienced team members for guidanceProficiently debugs a variety of errors stemming from the application infrastructure such as DNS, server, and database issues, and is adept at identifying and resolving integration anomalies, utilizing a well-rounded skill set to maintain the stability and performance of the applicationExhibits mastery in debugging critical errors within the application infrastructure encompassing DNS, server, integration, and database spheres, leveraging deep technical knowledge to devise innovative solutions and optimize system performance, while mentoring junior developers and leading initiatives to preemptively address potential infrastructure issues
Documents and communicates cause and solution of error to other devs, PM, and clientDocuments and communicates cause and solution of error to other devs, PM, and client
Coordinates with PM to determine priority and assignment of newly reported bugs
Sets up new client applications in appropriate bug reporting or monitoring tools, such as Bugsnag or Pingdom
------------
Deployment/DevOps
DeploymentFollows documented steps to run client- and tech lead-approved deploymentsFollows documented steps to run client- and tech lead-approved deploymentsTakes lead on deployments, including planning deployments with client or implementing CD strategy; updates documentation when deployment steps change
Assists teammates with deploying applicationsAssists teammates with deploying applications
Coordinates with tech lead or senior developer to set up deployments for applicationsManages deployment privileges for applications
CI/CDReads failure messages in CI/CD workflows to determine cause of build failures; pairs with tech lead or more senior developer to implement fixReads failure messages in CI/CD workflows to determine cause of build failures; when necessary, gets input from tech lead, SRE, or senior devs on how to fixDebugs build failures in CI/CD pipelines
Coordinates with tech lead or senior developer to design and build or improve existing CI/CD pipelinesDesigns and builds or improves existing CI/CD pipelines
Mentors juniors and mid-level devs in troubleshooting build failures and fixes
------------
Technical Strategy
Evaluating 3rd party platformsPairs with a more experienced developer to pick gems, packages, and appropriate 3rd party integrationsPicks gems, packages, and 3rd party integrations with little to no direction from tech leadChooses gems, packages, and 3rd party integrations as part of a broader system design effort
Creates sandbox branches on which to experiment with new gems and integrationsAssists more junior developers with choosing appropriate gems, packages, and integrations
Reviews sandbox code with senior developer or tech lead before submitting PR or mergingCreates roll-back plans for their own and other devs’ new gems and integrations
Refactoring existing codeRefactors overly complex or improperly placed code following tech lead guidance or general Rails best practicesRefactors overly complex or improperly placed code following general Rails best practicesRefactors overly complex or improperly placed code following general Rails best practices
Tags code snippets in codebase for possible refactoring, including explanation of how/why it should be refactoredTags code snippets in codebase for possible refactoring, including explanation of how/why it should be refactored
Refactors smaller instances of technical debt as they go
Designs technical solutions to problems or requests that minimize the creation of new technical debt
------------
Client Communication & Interaction
Asks clarifying questions to the client on Slack and in Jira commentsAsks clarifying questions to the client on Slack and in Jira commentsAsks clarifying questions to the client on Slack and in Jira comments
Restricts Jira comments to PA Staff-only when appropriateRestricts Jira comments to PA Staff-only when appropriateRestricts Jira comments to PA Staff-only when appropriate
Provides technical opinion to clients on proposed featuresDesigns technical solutions to client problems and communicates them clearly to the client
Suggests version upgrades, code refactoring, security and performance improvements, and other maintenance tasks to the client in a way that demonstrates their value to the client’s business
Leads technical conversations in client meetings
Provides SWAG estimates to clients, PMs, and sales for new clients and proposed features for existing clients
------------
*coming soon!*
*coming soon!*