¿Qué problemas técnicos fascinantes resolveré como ingeniero de firmware?

La clave del software es que necesita hardware para ejecutarse, sin el hardware el software no puede ejecutarse. La mayoría del desarrollo de aplicaciones de software comienza en hardware informático generalizado, como una PC de escritorio o un servidor o incluso en la nube. En la mayoría de los casos para pequeñas tareas simples, esto funciona bien, pero eventualmente si una aplicación necesita ejecutarse más rápido, con menor potencia o más ancho de banda, una computadora más grande o más instancias en la nube pueden no funcionar, o en el caso de baja potencia definitivamente no funcionará.

Esto es cuando entra en juego la ingeniería de hardware y firmware. Un ingeniero de firmware haría que el software se ejecute en una paz de hardware enfocada. Por lo general, por razones de rendimiento / potencia / memoria / costo, el software incorporado (o firmware) debe ejecutarse de una manera particular para que ocurran estas ganancias. Uno no puede simplemente transferir una solución de software típica y hacer que sea el producto final. El software incorporado deberá aprovechar el hardware como sea posible. Esto podría estar usando un DMA y otros periféricos especializados, así como también ir con un RTOS en lugar de un sistema operativo completo, o incluso aplicaciones reales de metal desnudo. Comprender la arquitectura del hardware es importante para que el firmware se ejecute de la mejor manera. El trabajo de los ingenieros de firmware es hacer que el software funcione lo mejor posible en el hardware.

Hay muchos problemas técnicos fascinantes que enfrentará un ingeniero de software integrado. Los más interesantes serán aquellos que resuelvan problemas reales en el mundo físico. El software de alto nivel generalmente procesará los datos sin procesar recopilados por un sistema integrado de algún tipo. El firmware es crítico para convertir eventos físicos al dominio digital donde se puede convertir en datos útiles.

En términos de lo que encontrarán los ingenieros de firmware, lo cual es inspirador, dependerá del campo. Al observar la tecnología emergente de IoT, habrá una tonelada de nuevos productos que serán desarrollados por ingenieros de firmware, y las aplicaciones de este campo solo serán casi infinitas. La tendencia para IoT será mover más y más sensores al mundo real, los sensores IoT no se pueden hacer a través de la programación de software de alto nivel, simplemente usarán demasiada energía, usarán demasiados recursos, etc. Todavía se necesitará software de alto nivel fusionar todos estos datos del sensor en algo más grande, pero los sensores en sí son hardware y firmware. Hacer un sensor que funciona en una celda de monedas durante muchos años requiere un conjunto especial de habilidades y un pensamiento no típico para que funcione correctamente.

Mirando su ejemplo para el Proyecto Tango, para que este proyecto incluso despegue, se tuvo que hacer una paz de hardware personalizada. Para sincronizar todos estos sensores en este teléfono y ahora en una tableta, se necesitan muchos bloques de firmware que se ejecutan en muchos microcontroladores diferentes incluso antes de que llegue al procesador principal. Al trasladar más y más aplicaciones al hardware, la solución general se vuelve más rápida, de menor potencia y de menor costo, todo lo necesario para un producto real.

Desde el punto de vista de la innovación y de dónde viene, realmente proviene de las secciones transversales de hardware / firmware / software y de ver cómo encajan todos en la imagen más amplia del sistema. Una buena ingeniería de firmware necesitará conocer el hardware y el software y sabrá mejor qué se ejecuta dónde. Esto a su vez convertirá una idea en algo real.

En resumen, los problemas técnicos más fascinantes que encontraría son los desafíos de convertir el mundo físico en el mundo digital con las limitaciones del mundo físico.

Mi amigo es un ingeniero de firmware que trabaja en una empresa de Silicon Valley que fabrica tarjetas de E / S de red, i, e Ethernet y otros tipos.
Otras personas que conozco escriben código para controladores de motores paso a paso en sistemas electromecánicos.
Una persona conoce DSP y escribe código para controladores de robótica para asistentes quirúrgicos de robots.
Un amigo escribe firmware para receptores GPS, en Trimble.
Hay personas que conozco escriben firmware en Tesla para sistemas de automóviles. De hecho, vehicular / automotriz es un gran semillero de escritores de firmware. Incluso un sensor de presión de neumáticos simple tiene un micro que se comunica con el monitor central.
Otras personas están escribiendo firmware para instrumentos de prueba de todo tipo.
Los trabajos están disponibles, las tareas de firmware varían, pero algunas son lo suficientemente complejas como para no ser triviales e interesantes.

El firmware puede ser tan aburrido como un enrutador de Internet o un televisor, pero no tiene por qué serlo. ¿Cómo te sentirías si hubieras programado este dispositivo?

¿O este?

Incluso si solo está programando un montacargas automático, ese hardware puede matar a alguien; Es una responsabilidad increíble.

O tal vez no quieres ser tan real. Hay una baliza de radioaficionados que utilizan personas de todo el país para verificar las condiciones de recepción. Escribí el firmware para eso.