The agency side of the business is split into pools of engineers and project managers, alongside the other branches of the company. The agency is split into ad-hoc project teams, which consist of project managers (generally one per project) and engineers (generally with one lead engineer, who is a senior engineer). The lead engineer on a team is responsible for making the call on larger architectural decisions, and is responsible to the project manager for technical decisions. These structures are temporary for the length of a project, and are specifically for the delivery of that project.
Separately, the engineering team has a reporting structure, with engineers reporting to Engineering Managers. Engineering Managers then report to the CTO (Joe). This is a permanent structure, and is intended to provide for personal and professional development and support.
The Engineering Manager structure is still in the trial stages, and is in the process of being rolled out. Engineers without an Engineering Manager report directly to the CTO (Joe) instead.
Engineering roles at HM are generally divided into three levels of seniority: Engineers, Senior Engineers, and Principal Engineers.
Alongside the engineers, the Engineering Director (Ryan) is in charge of setting the direction for the engineers, and implementing this direction. Practically speaking, this involves setting standards, providing tools and support, and acting as a force multiplier for the rest of the engineers. This also involves making decisions where needed.
The CTO (Joe) has ultimate authority over engineering, and is also responsible for other branches of the company, including hosting and other technical products. Engineering Managers also report to the CTO. As a partner, Joe is also responsible for HR and business decisions around engineering efforts and engineers.