Programmer



  1. Programmer Socks
  2. Programmer Course

We use the following criteria to assess the level and title of programmers of Basecamp. These criteria aren’t exhaustive, and they aren’t mere checklists. They’re a guidance to having an individualized discussion about career progression.

Noun a person who writes code for computer programs. A person who programs a machine, device, or apparatus. A person who prepares program schedules, as for radio or television.

  • PCEP – Certified Entry-Level Python Programmer. PCEP – Certified Entry-Level Python Programmer certification shows that the individual is familiar with universal computer programming concepts like data types, containers, functions, conditions, loops, as well as Python programming language syntax, semantics, and the runtime environment.
  • This book is a detailed and authoritative introduction to all aspects of Lua programming written by Lua's chief architect. Programming in Lua provides a solid base to any programmer who wants to use Lua.

It should also be noted that these criteria chiefly examine the scope of work someone is capable of tackling independently. In addition to that assessment, we also look at the quality of the execution itself. Basecamp pays in the top 10% of the industry (based on San Francisco rates), so the quality of the work itself should be commensurate with that target.

Junior Programmer

Programmer
  • Work is thoroughly reviewed with substantial back’n’forth frequently needed before merging.
  • Basic language features are mastered, but some advanced structures may still be unfamiliar.
  • Occasional issues following patterns and approaches within existing code bases.
  • Works primarily on tightly scoped, routine problems.
  • Usually less than 2 years of experience being a professional programmer in the specific domain.

Programmer

  • Work is reviewed with the occasional need for material direction or implementation changes.
  • Follows established patterns and approaches within existing code bases with ease.
  • Works mostly on clearly defined and scoped individual features or problems.
  • Usually at least 2-5 years of experience being a professional programmer in the specific domain.
Programmer

Programmer Socks

Senior Programmer

  • Work doesn’t necessarily need to be reviewed, but general approach may be.
  • Fully capable of taking substantial features from concept to shipping as the sole programmer (alongside a designer).
  • Can provide material feedback on the work of junior programmers and programmers.
  • Deep expertise within at least one programming environment.
  • Basic proficiency in at least one additional programming environment.
  • Usually at least 5-8 years of experience being a professional programmer in the specific domain.

Lead Programmer

  • Work happens completely autonomously with no regular need for review.
  • Fully capable of owning and running entire subsystems of work (Queenbee expert, Action Cable implementation).
  • Helps set and maintain professional standards for the entire organization.
  • Deep, substantial expertise in multiple programming environments.
  • Capable of running and directing small teams for substantial projects.
  • Capable of executing projects across multiple domains (say, native app that needs API backend).
  • Usually at least 8-12 years of experience being a professional programmer in the specific domain.

Examples: Javan, Pratik

Principal Programmer

  • Can set and direct an entire department, like SIP, Core Product, or Research & Fidelity.
  • Fully capable of designing, owning, and running entirely new, novel systems (design billing systems, Trix, Active Record from scratch)
  • Capable of running and directing larger teams for large, long-running projects.
  • Recognized widely in the industry for material contributions to the state of the art.
  • Invents new concepts, pushes the whole organization forward regularly.
  • Usually at least 12-15+ years of experience being a professional programmer in the specific domain.

Programmer Course

Examples: Jeremy, Sam, Jeff