Alcance y autonomía. Los ingenieros superiores generalmente no son líderes, y rara vez lideran grupos más grandes que unas pocas personas con la baja sobrecarga que eso implica.
La ingeniería de software es un oficio con la progresión de aprendiz, a oficial, luego a maestro artesano con tal vez el 10% de los ingenieros avanzando más allá de ese punto. Las promociones están en trámite, y los ingenieros reciben el título y el aumento una vez que actúan en el siguiente nivel.
Los aprendices aprenden las cuerdas del desarrollo de software comercial: trabajar en equipo, desarrollar el código existente y el proceso formal del software. Con orientación directa y supervisión cercana, manejan problemas de alcance limitado: correcciones de errores, funciones pequeñas, tareas de 1 a 5 días según la respuesta de Nicolas Spiegelberg a ¿Cuáles son los diferentes niveles de ingenieros de software en Facebook? Amazon SDE1, Microsoft SDE1 nivel 59/60, Google Software Engineer II nivel T3, Facebook nivel interno E3. La mayoría de las pequeñas empresas los llaman “ingenieros de software”.
- ¿Ahora el trabajo de defensa tiene que ver con el trabajo seguro y la vida media alta?
- Después de mucho trabajo duro, completé mi ingeniería. Finalmente conseguí un trabajo en TI, aunque estoy especializado en ENTC, pero mi pasión ha sido el cricket. La vida en TI es monótona y es tarde para pensar en el cricket como una carrera. Quiero hacer algo cercano al cricket. ¿Qué tengo que hacer? ¿Debo dejar mi trabajo?
- ¿Qué debo hacer ahora si quiero mudarme a Japón dentro de diez años? Ahora estoy aprendiendo japonés y espero poder conseguir un trabajo en Japón. No necesariamente como profesor o traductor, sino solo un trabajo.
- ¿Cuáles son algunos trabajos de clase A en India?
- ¿Cuándo se saturará el campo de la medicina como el campo de la ley?
Los nuevos graduados comienzan como aprendices.
Muchas pequeñas empresas evitan contratar aprendices porque hay demasiadas cosas que no pueden hacer y su experiencia limitada hace que las predicciones de rendimiento sean menos precisas que las que tienen para los nuevos empleados con más experiencia. En 20 años, mis únicas sorpresas vinieron de un par de aprendices que eran inteligentes y sabían lo que debían de obtener sus títulos de CS, pero no podían hacer la transición a trabajar como ingenieros. Hice que mi último ingeniero junior agregara soporte de partición usando libgparted a libntfs3g después de darle el caso de prueba, describiendo cómo debían cambiar sus estructuras de datos y señalando las funciones específicas.
Los ingenieros competentes son promovidos a oficiales en dos años. Si no se hace esa transición, es necesario que se gestione, tal vez en otros roles, como ingeniero de ventas o el soporte técnico final, antes de enviar los problemas a los ingenieros de software del producto.
Los jornaleros han aprendido a trabajar en el software existente en un entorno comercial y completar tareas intermedias con supervisión limitada: características medianas, pequeños programas, proyectos de 1 a 4 semanas por Nicolas. Mientras investigan sus problemas asignados y diseñan soluciones, alguien más es responsable de las API entre componentes y cierra la sesión antes de implementarlas. Siguen el proceso dictado por otras personas. Amazon SDE2, Microsoft SDE2 nivel 61/62, Google Software Engineer III nivel T4, Facebook E4. Algunas pequeñas empresas los denominan “Ingeniero de Software” como aprendices, algunos son generosos y otorgan un título de Ingeniero de Software Senior, aunque todavía no lo son.
Me gusta contratar jornaleros para su segundo trabajo porque hay muchas tareas que son un poco exageradas para ellos, lo que es atractivo y conduce a un buen rendimiento, con el entrenamiento puede hacer cosas más grandes convirtiéndolos en ingenieros superiores en un par de años, son abundantes, y probablemente sean menos costosos que los aprendices porque su salario ligeramente más alto se ve compensado por menores gastos generales de administración y menores probabilidades de mishire. Si no tuviera poco personal en mi último inicio, habría asignado una restauración de copia de seguridad de subárbol de los sistemas de archivos NTFS de Windows en imágenes de disco servidas por Apache httpd, lo que implicaría cambios en el código de recorrido del directorio WebDAV y descubrir cómo la copia de Apache -límite “brigada de cubos” funcionó.
Quedarse atrapado en el oficial debido a las necesidades o habilidades del negocio es un gran problema. Las grandes empresas manejan a los jornaleros que permanecen en ese nivel demasiado tiempo. Las decisiones de no contratar debido a la “falta de trayectoria” son comunes, porque los empleadores quieren personas que progresarán a ingenieros superiores.
El ascenso a ingeniero senior es posible de 2 a 3 años después de hacer un oficial (4 a 5 en total), pero depende de la disponibilidad del proyecto. Eso no es muy importante, ya que la ingeniería de software requiere aproximadamente 10 años de la experiencia adecuada para dominarse más otros 5–10 años para manejar proyectos complejos.
Los ingenieros superiores de software son maestros artesanos. Pueden manejar independientemente todos los aspectos de problemas moderadamente complejos con Nicolas sugiriendo una duración del proyecto de 3 a 6 meses. Eso significa proceso, arquitectura, diseño, implementación, prueba e ingeniería de mantenimiento. Pueden ser mentores de ingenieros junior y pueden liderar pequeños proyectos que involucran a aproximadamente 4 personas. Pueden o no tener latitud en el proceso de software. Por lo general, no trabajan directamente con otras unidades de negocios como el marketing. Su trabajo suele ser táctico, con dirección estratégica determinada en los rangos más altos. Amazon SDE3, Microsoft Senior SDE nivel 63/64, Google Senior Engineer nivel T5, Facebook E5. Los títulos de pequeñas empresas varían de ingeniero senior a ingeniero de personal.
Me gusta tener ingenieros superiores a los que pueda delegar subsistemas, como la interfaz SCSI o la pertenencia a grupos y el almacenamiento de metadatos en un dispositivo de almacenamiento de bloques escalable. Hice que un ingeniero superior creara un sistema de archivos estructurado de registro con un registro separado para el desplazamiento del archivo de árbol B + para bloquear la asignación de modo que pudiera leerse en el inicio con E / S secuencial.
Maestro artesano / ingeniero sénior es la promoción final para la mayoría de los ingenieros. Esto está bien: muchos ingenieros no quieren trabajar más allá de ese nivel y / o disfrutar de sus funciones como ingenieros superiores hasta que se jubilen. La posición puede pagar $ 200- $ 400K en grandes empresas públicas, que se encuentra en el 5% superior para el ingreso familiar de los EE. UU., Donde eso generalmente implica dos asalariados. Trabajar como ingeniero senior para pequeñas empresas fuera de los mercados caros aún puede pagar más de los $ 130K necesarios para llegar al 10% de los hogares.
Yendo más allá del ingeniero sénior, la mayor parte de su valor proviene del impacto comercial y su capacidad para multiplicar la producción de otros ingenieros. A menudo decides qué construir y cómo hacerlo. En mi primer papel principal de ingeniería, dirigí un equipo de 12 personas y solo pasé 1/3 de mi tiempo escribiendo software. Más recientemente, creé el diferenciador clave del mercado, que hizo que mi inicio fuera de $ 0 a un flujo de caja positivo de más de $ 10 millones en ingresos anuales, puse el proceso de ingeniería en camino para enviar el primer o segundo candidato de lanzamiento después de que el vicepresidente de ingeniería abandonó los horarios debido a la necesidad intentos de dos dígitos y proyectos proactivamente iniciados, por lo que tuvimos soluciones antes de que las cosas impidieran el negocio.
Los títulos más allá del ingeniero superior varían, y al igual que los rangos ejecutivos a menudo son relativos a la empresa en su conjunto. Un ingeniero distinguido en Google que tenga un impacto significativo en casi $ 100B por año en ingresos es muy diferente a uno en una startup que recauda $ 10M anualmente. Un ingeniero principal en Google generalmente lidera un equipo de 50 como un director, mientras que uno en una pequeña empresa puede manejar solo 10 como el director o vicepresidente de ingeniería de software.
Pueden incluir o no tareas de gestión, y algunas empresas mantienen la gestión de personas y el liderazgo técnico completamente separados. Una vez que es responsable de interactuar con otras unidades de negocios, programar y tener mucha influencia en la contratación y el despido, la gestión oficial no agrega mucho a sus deberes: negociar una compensación con nuevos empleados, revisiones de desempeño, despido personal y tal vez presupuesto.
Los títulos y los límites salariales van con puestos, no con personas. Un ex ingeniero principal puede ser contratado como ingeniero senior cuando los espacios de liderazgo están llenos y eso es lo que permite el presupuesto.
Algunas compañías grandes y pequeñas sufren de inflación de títulos, donde los Ingenieros Senior obtienen títulos más altos (como Ingeniero Principal), y personas más allá de esos títulos que no tienen sentido fuera de esa compañía (como Miembro Consultor Senior de Personal Técnico).
Por el contrario, algunas compañías como Facebook evitan los títulos públicos para ingenieros donde el objetivo es tener ideas consideradas por mérito y no por el rango de la persona que las propone. Eso no funciona cuando algunos ingenieros son promovidos a Director, aunque siguen siendo líderes técnicos prácticos, mientras que los compañeros con un impacto similar siguen siendo “Ingenieros”. Internamente todavía tienen bandas de compensación.