Lakshya

Software Engineering

Embedded & Systems Engineer

Core · small and durable

The least substitutable skill set in this field. Small demand, very little competition, and knowledge that does not expire.

The least substitutable skill set in this field. Small demand, very little competition, and knowledge that does not expire.

A day that is actually representative

TimeWhat you are actually doing
08:30A bug that reproduces once every few hours, which means instrumentation rather than debugging.
10:00Reading a datasheet properly, because the answer is usually in it and usually in a footnote.
13:00Memory work — no allocator, fixed budgets, and a failure mode that is corruption rather than an exception.
15:00Timing analysis with a logic analyser on the actual hardware, since simulation only gets you so far.
16:30A firmware update path conversation, because bricking a fielded device is unrecoverable in a way software rarely is.

The decisive round

“It fails once every few hours. Debug it.”

Interviewer: “An intermittent fault appears roughly every four hours in the field and never on the bench. How do you approach it?”

A weak answer. “I'd add extensive logging and try to reproduce it under load, then use a debugger to step through when it happens.” A debugger is often unusable for intermittent timing faults — attaching changes the timing and the fault disappears. And 'extensive logging' on a constrained device can itself change the behaviour.

A strong answer. “The timing is the clue. A consistent interval points at something accumulating or something periodic, not at a code path — code bugs usually fail on an input rather than on a clock.

So my candidates are: a counter or buffer wrapping, a slow memory leak reaching a threshold, a periodic task colliding with another, thermal drift, or an external event on that cadence.

Method rather than debugger. I'd add minimally intrusive instrumentation — a ring buffer in RAM I can dump after the fault, or toggling a GPIO I can watch on a logic analyser, because both cost almost nothing in timing. Print-based logging over a serial line changes timing enough to hide the fault, which is why the bench never reproduces it.

Then bisect: instrument at coarse boundaries first, narrow on the next occurrence. With a four-hour period I get few attempts, so each one has to be designed rather than exploratory.

And I'd check the boring causes first — power supply ripple, a marginal connection, temperature. In my experience a meaningful share of 'intermittent firmware bugs' are electrical, and no amount of code reading finds them.”

Reasoning from the timing signature, choosing instrumentation that does not perturb the system, and being willing to suspect hardware. That last one is what separates embedded experience from software experience applied to embedded.

What to build or bring

  • An intermittent fault you found, and the instrumentation you chose.
  • Something you fixed that turned out to be hardware, or a datasheet detail.
  • Memory work under a fixed budget — no allocator, no exceptions.
  • A firmware update mechanism you designed or hardened, because bricking is the unrecoverable failure.

Compensation

MarketBandNotes
United States$130k – $230k baseSpecialised areas — safety-critical, RF, silicon-adjacent — run well above
India₹12L – ₹45L totalSmaller market, concentrated in product engineering and semiconductor companies

The book for this field

Software Engineering

What postings now ask for, system design at the level actually assessed, product sense for engineers, code and review, debugging and the coding round, what changes from mid to staff, the loop round by round, and choosing a track.

CHAPTER 21Which language, and what the interview actually tests in eachWhat 659 job descriptions actually name, why the usual percentages are wrong, and the trap each language sets in an interview.READ THE CHAPTER →CHAPTER 5Debugging, and the coding roundWhat the coding interview actually measures, and the method that transfers to production.READ THE CHAPTER →CHAPTER 2System design, at the level actually askedThe round that decides most senior loops. Not a memorised architecture — a sequence of defensible trade-offs.READ THE CHAPTER →

All 31 chapters in Software Engineering →

Cross-cutting

Skills every archetype tests

These are shared across every field on this site — the same question asked in different vocabulary — so preparation here compounds rather than being spent once. The book above is specific to your field.

Design under constraintThe decisive round for SRE, AI Platform, Infrastructure — and the reason strong engineers fail it.READ THE CHAPTER →Failure and incident narrativeEvery archetype asks for this story. The outage is the setting; the decisions are the content.READ THE CHAPTER →

Practice the 10 Engineering questions →  ·  Back to Software Engineering →