¿Cuáles son las expectativas para un ingeniero de software senior que tiene un salario anual de 200k?

Alguien que gana tanto dinero como ingeniero de software generalmente se espera que sea un maestro político. La codificación pura generalmente puede ser realizada por alguien que gana mucho menos dinero (¡Hola, outsourcing!), Pero necesita a alguien con habilidades políticas extremadamente buenas para mantener el proyecto en marcha y los equipos productivos.

Aparte de eso, alguien que es muy superior esperaría tener buenas habilidades de arquitectura y algunas habilidades de gestión de proyectos. Cuando alguien dice que puede desarrollar un nuevo sistema de información en 1 mes, es el líder de tecnología senior el que dice: 1) te llevará 5 años y 2) no es realmente necesario porque podemos crear un sistema que sea igual de bueno en tres meses, mezclando la parte A con la parte B.

El valor de un técnico superior es que pueden hacer preguntas como “¿necesitamos un nuevo núcleo” y, en caso afirmativo, “aquí está la estructura básica básica para el núcleo”. Si te equivocas en la base, entonces podrías gastar decenas de millones de dólares y no hacer NADA.

También necesitan buenas habilidades tecnológicas para obtener el respeto del equipo. Una de las funciones de los ingenieros de software senior es interactuar entre la gente de tecnología y los gerentes no tecnológicos (más política) y si no tienes “credibilidad callejera”, entonces no vas a obtener el respeto de la gente de tecnología. . Por el contrario, si puede escribir un sistema de archivos en una semana, la gente de tecnología escuchará sus órdenes.

(Decirle a la alta gerencia que el sistema que quieren hacer en un mes llevará cinco años … Bueno, ahí es donde entra la política. Y en las compañías de software en funcionamiento, las personas se dan cuenta de que vale la pena tener a alguien capaz de hacer este tipo de cosas una tonelada de dinero)

La velocidad no es necesariamente lo que estás buscando, en ese nivel salarial. Estás buscando a alguien que pueda ofrecer consistencia y calidad al más alto nivel. Los errores básicos no son aceptables. Los errores intermedios deberían ser raros. El software que escriben tiene que estar bien escrito, probado, bien documentado y estandarizado, y también deberían ayudar al resto del equipo de cualquier manera que sea necesaria.

Esperaría que estén pensando y resolviendo problemas técnicamente difíciles que otros en la empresa no tienen la experiencia o la capacidad para enfrentar. Entonces, sí, cosas en la línea de GFS, o sistemas de alta transacción sin espacio para el tiempo de inactividad o pérdida de datos, o algoritmos masivamente complejos.

Hay un hilo interesante que veo que atraviesa los círculos de programación y dice así: “todo el software debe estar escrito de manera tan simple que cualquier otro programador pueda entenderlo”. Eso lo lleva a un cierto punto, pero prácticamente deja de lado todo el software complejo que requiere pensamiento matemático o de alto nivel. Claro, puedes escribirlo bien y correctamente, pero no, no todos podrán entenderlo. Las personas que pueden escribirlo y comprenderlo son las que ganan ese tipo de salario (y más).

Como dijo Tony, probablemente también deberían ser un líder técnico, a menos que estén en el área de Silicon Valley.

Esperaría que alguien con ese salario sea un líder técnico. Esperaría que fueran la piedra angular técnica del proyecto, escriban especificaciones de arquitectura y diseño y hagan más codificación que cualquier otra persona en el equipo.

Debería agregar valor a la empresa aplicando sus habilidades y esto debería generar ingresos para la empresa que es más de 200 mil años.

¿Qué compañía es esta? Me encantaría renunciar a mi rol de PM y comenzar de nuevo como SSE aquí …

Extremadamente alto para decirlo suavemente. Esa persona no solo debería ser capaz de codificar cualquier cosa extremadamente rápido con pocos o ningún error.