A well-rounded embedded engineer? Discussion of Engineering and Software areas of study

andydrinkell

On Vacation
Original poster
Nov 7, 2021
18
5
United States
Inspired by posts asking about electrical engineering vs computer/software engineering in embedded systems, I've assembled a list of topics from each field that I think are relevant to embedded systems generally. Many of these are more relevant to specific types of systems, but I think this is a good discussion starter. Is this list biased toward a particular field? Are there any glaring holes? (edited to add commenter contributions)
Off the top of my head, this is how I would break down the major topics. There's a bonus "well-rounded engineer" list at the end.
Abstract, electrical engineering
  • Digital logic
  • Analog Design
  • Control Systems, Systems Theory, Feedback
  • Communications
  • Protocols
  • Yield, Reliability
  • Modeling & Simulation
  • RF, EMF, Thermal, Optical
  • Power electronics
  • Microprocessors, microcontrollers, DSP, GPU
Practical Engineering
  • Design, Manufacturing, Test, Quality Assurance
  • Integrated circuits
  • PCB, EMC, EMF, ESD
  • Discrete Electronics & Components
  • Resistors, capacitors, transistors
  • Operational Amplifiers
  • Power - amplifiers, drivers, high frequency, electrical grid
  • FPGA, PLA, CLPD design
  • Memory - SRAM, DRAM, Non-volatile (flash, eeprom, FRAM, MRAM, battery-backed)
  • Storage - HDD, SSD
  • Circuit protection
  • Sensors, Actuators
Computer architecture (not deconflicted with other groups)
  • basic architecture (vNeuman cycle, Harvard, 1/multi busses, switch fabric)
  • applied digital logic: busses, encoders, decoders, muxes, adder, multiplier, memory
  • SRAM, DRAM, FLASH, refreshing, muxed busses, latency versus throughput
  • rotating memory (disks), access time, throughput, caching, elevator algorithm
  • ISA categories (CISC, RISC, VLIW)
  • instruction-level parallelism (SISD, SIMD, MIMD, MISD, etc.)
  • ISA / assembler principles (0,1,2,3 operands, addressing modes, auto in/dec, ...)
  • pipe-lining, hazards, interlocks, stalls, delay slots, branch prediction
  • virtual memory, address translation
  • caches, cache hierarchies, data locality, prefetching, performance impact, coherency, write-through/delayed write
  • implementation paralellism, CISC->RISC decoding, execution units
  • user / OS mode, mode switching, hartbeat vulnerability
  • task switching, threads versus processes, stackless versus stackfull
  • the troubles of bench-marking complex systems
  • CPU / GPU
Network architecture
  • ISO layers, internet equivalents
  • shannon, bit rate, baud rate
  • self-clocked / separate clock
  • keeping the O open
  • delay, throughput, round-trip
  • channel sharing (time, frequency, color, etc.)
  • transmission: electrical, optical, wireless, baseband, wide spectrum
  • speed versus power versus distance, link budget
  • multi-access, collision, slots, CSMA/CD
  • practical examples: CAN, UART/RS232, USB, TCP, UDP, IP, internet/WWW, WiFi, BL, BLE, LoRa, packet radio
  • routing, packet switching, circuit switching
  • multiplexing/de-multiplexing
  • in-band/out-band signaling, bit/byte stuffing
  • encoding, encryption, compression
  • 2-armies problem
  • internet vulnerabilities
Software and Computer topics
  • Data Structures & Algorithms
  • Software Patterns
Practical Software and Computer topics
  • Operating Systems - Windows, Linux/Unix, real-time (RTOS), light-weight
  • Networks and Network Components
  • Compilers, languages
Math, engineering
  • Calculus, differential equations
  • Frequency/Phase analysis - Bode plots
  • Signal processing, complex math
  • DSP implementations
Math, software
  • Big O, computational complexity
  • Linear Algebra
  • Set Theory
  • Network Theory
  • AI and ML, Neural Networks
  • DSP Algorithms - Fourier transforms, DFT
  • Information Theory
  • Probability, Statistics, Combinatorics
  • Graph Theory
  • Discrete mathematics
A Well-Rounded Engineer (IMHO)
  • Systems Engineering
  • Process, Standards, Documentation
  • Project Management
  • Psychology, Team Dynamics
  • Legal framework - laws & process, compliance, regulations
  • Communicating and Presenting - technical, non-technical, teaching
 
Inspired by posts asking about electrical engineering vs computer/software engineering in embedded systems, I've assembled a list of topics from each field that I think are relevant to embedded systems generally. Many of these are more relevant to specific types of systems, but I think this is a good discussion starter. Is this list biased toward a particular field? Are there any glaring holes? (edited to add commenter contributions)
Off the top of my head, this is how I would break down the major topics. There's a bonus "well-rounded engineer" list at the end.
Abstract, electrical engineering
  • Digital logic
  • Analog Design
  • Control Systems, Systems Theory, Feedback
  • Communications
  • Protocols
  • Yield, Reliability
  • Modeling & Simulation
  • RF, EMF, Thermal, Optical
  • Power electronics
  • Microprocessors, microcontrollers, DSP, GPU
Practical Engineering
  • Design, Manufacturing, Test, Quality Assurance
  • Integrated circuits
  • PCB, EMC, EMF, ESD
  • Discrete Electronics & Components
  • Resistors, capacitors, transistors
  • Operational Amplifiers
  • Power - amplifiers, drivers, high frequency, electrical grid
  • FPGA, PLA, CLPD design
  • Memory - SRAM, DRAM, Non-volatile (flash, eeprom, FRAM, MRAM, battery-backed)
  • Storage - HDD, SSD
  • Circuit protection
  • Sensors, Actuators
Computer architecture (not deconflicted with other groups)
  • basic architecture (vNeuman cycle, Harvard, 1/multi busses, switch fabric)
  • applied digital logic: busses, encoders, decoders, muxes, adder, multiplier, memory
  • SRAM, DRAM, FLASH, refreshing, muxed busses, latency versus throughput
  • rotating memory (disks), access time, throughput, caching, elevator algorithm
  • ISA categories (CISC, RISC, VLIW)
  • instruction-level parallelism (SISD, SIMD, MIMD, MISD, etc.)
  • ISA / assembler principles (0,1,2,3 operands, addressing modes, auto in/dec, ...)
  • pipe-lining, hazards, interlocks, stalls, delay slots, branch prediction
  • virtual memory, address translation
  • caches, cache hierarchies, data locality, prefetching, performance impact, coherency, write-through/delayed write
  • implementation paralellism, CISC->RISC decoding, execution units
  • user / OS mode, mode switching, hartbeat vulnerability
  • task switching, threads versus processes, stackless versus stackfull
  • the troubles of bench-marking complex systems
  • CPU / GPU
Network architecture
  • ISO layers, internet equivalents
  • shannon, bit rate, baud rate
  • self-clocked / separate clock
  • keeping the O open
  • delay, throughput, round-trip
  • channel sharing (time, frequency, color, etc.)
  • transmission: electrical, optical, wireless, baseband, wide spectrum
  • speed versus power versus distance, link budget
  • multi-access, collision, slots, CSMA/CD
  • practical examples: CAN, UART/RS232, USB, TCP, UDP, IP, internet/WWW, WiFi, BL, BLE, LoRa, packet radio
  • routing, packet switching, circuit switching
  • multiplexing/de-multiplexing
  • in-band/out-band signaling, bit/byte stuffing
  • encoding, encryption, compression
  • 2-armies problem
  • internet vulnerabilities
Software and Computer topics Embedded Engineering
  • Data Structures & Algorithms
  • Software Patterns
Practical Software and Computer topics
  • Operating Systems - Windows, Linux/Unix, real-time (RTOS), light-weight
  • Networks and Network Components
  • Compilers, languages
Math, engineering
  • Calculus, differential equations
  • Frequency/Phase analysis - Bode plots
  • Signal processing, complex math
  • DSP implementations
Math, software
  • Big O, computational complexity
  • Linear Algebra
  • Set Theory
  • Network Theory
  • AI and ML, Neural Networks
  • DSP Algorithms - Fourier transforms, DFT
  • Information Theory
  • Probability, Statistics, Combinatorics
  • Graph Theory
  • Discrete mathematics
A Well-Rounded Engineer (IMHO)
  • Systems Engineering
  • Process, Standards, Documentation
  • Project Management
  • Psychology, Team Dynamics
  • Legal framework - laws & process, compliance, regulations
  • Communicating and Presenting - technical, non-technical, teaching
thanks for your time and feedback
 
I have been trying to wrap my head around a response for several hours without success. The p r oblem is that the picture you paint is very broad. I see areas you mention as essential where an engineer in a subfield wouldn't need to know or care. At the same time I see a few holes that any firmware person should be aware of.

I retired 3 years ago from a 45 year career. During that time I had positions in hardware, software and systems, all close to the hw/sw interface. I worked on I ndustrial computers, electronic instruments, distributed sensor networks and aerospace components. Each
Had a different s7et of vital skills.

I don't see thermodynamics listed, yet thermal profiling is necessary from several angles. It affects reliability and safety.

You mention standards, but in safety critical fields such as aerospace and medical that will break down into dozens of subfield. Mostly to show compliance, certification, safety, reliability, etc.

It is an interesting topic, but I don't think one can do it justice with a topic list
 
  • Like
Reactions: TheKrell and Foxbat
Engineers can't reasonably cover the entire product cycle so I'm not sure there's a lot of value in becoming learned in absolutely every aspect of product development and delivery. You don't need to know the nitty gritty mathematics underpinning a formula (such as Finite Element Analysis) to use a computer program that will do that part of the task for you.

What employers are looking for first and foremost is people who can communicate effectively and work with others. By "others", I mean not only colleagues but also vendors and customers.

As with many disciplines, having some exposure rather than a deep background prevents someone from bringing along any "bad habits" (this includes outside IP).
 
  • Like
Reactions: jayn_j and Foxbat
So the poor confused slob goes to the computer store where he recently bought a PC. He had a few questions and the salesperson kept answering him with jargon. Frustrated, he asked for Joe, the guy who sold him the PC.

“Oh. You mean the user accessible liveware? He’s off today.”
 
  • Haha
Reactions: TheKrell
I'm exactly like jayn_j. I saw this post when it first came out. It gave me Tourette's so I decided to turn the squelch way up.
The older professor-from-back to the future looking dude at dock b at Grills in Cocoa Beach. I found out he was one of the NASA originals. A brilliant engineer locked in a slide rule era. NASA kept him on as a consultant because it was revealed that he knew a lot of secrets of the business. Brilliant guy!
Reverse engineering. Especially in this day and age. It used to tickle me to the max to get flown to a distant city to look at machinery for a prospective purchase. And to find the on site tech's entire locker of manuals and theory and schematics that I didn't have access to. Or develop a good working relationship with field techs who asked for me to keep an eye on their laptop while they took a lunch. With the entire tech manual opened up. Hmmm.
White hat hacking. Yeah. Safe crackers working for the good of manufacturers with uncrackable safes.
You get it.
Hospitals and other industries stuck with Windows XP for as long as absolutely possible. The controlled peripherals weren't connected to anything that would invite viruses. The just made things do things.
Well I'm an engineer. Heard that all too often. Some deserved the title. The closed minded ones, meh.
Yeah. Tourettes.
 
***

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)

Who Read This Thread (Total Members: 1)