¿Cuáles son las diferencias en el rol entre el ingeniero de software principal y el arquitecto frente al ingeniero de software senior? ¿Cuál es la posición más alta?

En mi casi una década en Apple, nunca tuvimos el título de “ingeniero principal”.

Dado el trabajo que hice y la definición de Drew Eckhardt, me habría calificado allí. Estaba un paso por debajo de “Ingeniero Distinguido”, y me dijeron que estaba siendo considerado para eso por parte del trabajo que había hecho.

Apple tenía títulos en el directorio de Apple. Podrías desenterrarlos. Eran sobre todo cosas de recursos humanos.

Por un tiempo pasé por “Senior Software Engineer” allí. Había pasado por ese título la mayoría de los lugares anteriormente. Dirían “elige un título”, y esa es usualmente la que yo elegí.

Fui “Ing. Banda de Ingeniería” de Recursos Humanos en IBM, que es un paso de pago por debajo de “Ingeniero Distinguido”. También me ofrecieron el golpe de título allí, si hubiera aceptado un trabajo ofrecido en Almaden Labs. También fui por “Senior Software Engineer”.

En Apple, cuando me fui, mis tarjetas de presentación decían que mi título de trabajo era “Teoría de la conspiración”. Otras personas dijeron “Ingeniero de Software Senior”. Conozco a una persona que se hizo caballero en sus tarjetas de visita. Un chico tenía “Rey de Mineternia”.


Los títulos realmente no significan tanto como algunas personas que:

  • sentirse más cómodo en una jerarquía estricta
  • Desea conocer su propio lugar en una estricta jerarquía.
  • Deseo tener el poder de decirle a otras personas qué hacer
  • cree que la “insubordinación” es algo que alguien debería poder ser despedido por hacer
  • en general, hubiera sido más feliz viviendo en un sistema de castas o con una carrera militar

… piensan que deberían significar.

Lo correcto es que ellos saquen el palo de donde se ubican esos palos por lo general, y basen sus respuestas en los méritos de una idea, en lugar de en qué lugar de la jerarquía proviene la idea.


Mire, mi prueba de fuego en un buen pasante es tener un ingeniero de software senior con un problema, y ​​luego pedirles que le pregunten al pasante que menos respetan.

La forma en que se les pedía que lo hicieran era explicar qué hacía el código que tenía el error.

Para el interno que menos respetaban.

Sin ser gruñón, y sin ser grosero, y callar cuando el interno estaba hablando. Deje que el pasante haga todas las preguntas que sean necesarias hasta que comprendan el código.

9 de cada 10 veces, en el proceso de explicar al pasante, descubrirían su error.

Alternativamente, cuando eso no sucediera, el interno señalaba algo y decía “¿Por qué haces eso allí ?”, Y ese sería el error.


Si te importa mucho el título, probablemente no serás un buen jugador de equipo.

En cambio, vas a esperar ser dictado por aquellos que están por encima de ti y ser un pequeño Hitler correcto para los que están debajo de ti.

Probablemente no me gustaría trabajar contigo.

La vida no es un DAG ( Dirigido Acyclic Graph ). No esperes que sea.

Un ingeniero de software principal envía software complejo de gran tamaño, se autodirige según los objetivos del negocio, mejora la productividad del equipo y tiene un impacto a nivel de división.

Un arquitecto es responsable del diseño de software de alto nivel. Por lo general, es un rol, no un título ni un nivel: las escalas de ingeniería en Amazon, Microsoft y Google no usan el término. El título tiene connotaciones negativas porque algunos son más hábiles para escribir libros blancos que para diseñar software. El término implica una sola persona, mientras que la arquitectura en proyectos contemporáneos generalmente se diseña conjuntamente.

Un ingeniero senior de software puede manejar proyectos moderadamente complejos sin ayuda. El título no es muy importante y requiere entre 5 y 7 años de experiencia. La mayoría de los ingenieros se estancan en este nivel y disfrutan de su trabajo durante décadas.

Por lo general, progresando más allá del ingeniero superior, usted pasa menos tiempo escribiendo códigos y más haciendo diferentes cosas como mejorar el proceso, la supervisión arquitectónica, asesorar a los ingenieros más nuevos e interactuar con otras unidades de negocios.

Algunas compañías tienen una inflación de títulos donde los ingenieros con 7 años de experiencia hacen el mismo trabajo por el mismo salario que lo harían como ingenieros superiores en otros lugares pero tienen títulos de Ingeniero Principal.

Las empresas más grandes necesitan niveles adicionales debido al tamaño. Un ingeniero distinguido en Google con un gran impacto en la compañía cubre muchos más productos con ingresos de $ 20B / trimestre que uno en una empresa emergente que devuelve $ 20M / año. Las diferencias entre los niveles más altos y los Ingenieros Senior aumentan con el tamaño de la empresa.

Sin la inflación de títulos, los Ingenieros Principales son como los Directores en términos de impacto, autonomía, a quién reportan y compensación. Los ingenieros distinguidos son como los vicepresidentes.

Principle SW engineer vs Senior SW engineer pasan su tiempo programando, son extensiones de trabajos de ingeniero SW. Los arquitectos usualmente pasan menos tiempo codificando y diseñando más sistemas.

Los títulos y la antigüedad de ellos dependen del empleador, y rara vez significan algo fuera de ese contexto. Conocí a un programador que tenía el título AVP porque su grado de pago era el de un AVP. Cuando dejó la compañía, se le otorgó un título algo menos prestigioso (pero con un salario similar), porque los AVP de la “nueva” empresa no escribieron software.