Jay Wu · Chieh-Neng Wu
Hardware & embedded systems engineer
6+ years across RTL design, SoC-to-FPGA prototyping, post-silicon bring-up,
embedded Linux, and edge ML. My RTL has gone into fabricated respin silicon;
I then owned the bring-up that proved that silicon worked, and wrote the
drivers and features that ran on top. The connective tissue is cross-layer
debugging — problems that could live in the RTL, the constraints, the firmware,
the power rail, or the kernel config.
Ottawa, Canada ·
jay@chiehnengwu.dev ·
github.com/From2050
RTL → FPGA prototyping → post-silicon bring-up → embedded Linux → drivers → edge ML
- ~20% of marginally-failing silicon units recovered by a DDR-sweep tool I built
- 4K@30fps validated on the MIPI path of a camera ASIC I brought up solo
- 1 respin ASIC in working silicon carrying an RTL module I designed
- 33-subject statistical validation of an INT8 edge-ML model on ESP32-S3
Experience
2023 – 2026
Taoyuan, Taiwan
Senior Logic Engineer — Ultracker
Camera ASIC (UX720V6 / Aleta S3): designed an image-composition RTL module that
went into the respin silicon, then solo-owned post-silicon bring-up — test planning,
validation-board revision, MIPI/DDR tuning tools, and a register-level control driver
verified to images landing in DDR. Also owned an embedded Linux board bring-up on a
partner product line, wrote an IMU driver with an end-to-end EIS feature, and enabled
an edge-AI pipeline on RK3588.
2021 – 2026
Hsinchu, Taiwan
M.S. Electrical & Control Engineering — NYCU
Thesis: a 32-channel pressure-sensing system for non-contact heart-rate and
respiration monitoring — hardware through embedded acquisition, ML pipeline, and
INT8 edge deployment on ESP32-S3, validated with leave-one-subject-out
cross-validation across 33 subjects. Earlier research: multi-modal EEG/EMG/insole
sensing, where I resolved an ESP32 throughput bottleneck with a dual-bridge data path.
2019 – 2021
Hsinchu, Taiwan
FPGA Integration Engineer — MediaTek
SoC-to-FPGA prototyping for the Dimensity 700 5G smartphone SoC on Synopsys
HAPS-80/100: adapted SoC RTL partitions for the FPGA target across CPU, memory, and
multimedia subsystems, handled clock/reset and timing constraints, and debugged
mismatches between firmware expectations and hardware behavior. Built Perl automation
that kept RTL register maps in sync with SoC CSVs — saving 1–2 weeks of cross-team
debugging per project cycle.
2017 – 2019
Taoyuan, Taiwan
Logic Design Engineer — Ultracker
Block-level RTL for the Aleta S2C 360° camera platform on Xilinx FPGAs: ISP blocks
(RGB binning, WDR/HDR), DMA against an internal DDR controller, CDC handling, DDR3
auto-refresh for low-power transitions, five-lens synchronization — and an H.264
pipeline extension from 240×180 to 4K.
2012 – 2016
Chiayi, Taiwan
B.S. Electrical Engineering — National Chiayi University
Co-authored undergraduate research on a turbidity-meter voltage-to-frequency
converter chip, published in the IEEE Sensors Journal.
Selected work
Proprietary details are abstracted; scope and ownership are stated as they actually were.
Post-silicon bring-up of a camera ASIC — from untested silicon to images in DDR solo ownership
Respin silicon for the UX720V6 (Aleta S3) camera ASIC came back from the fab — hundreds
of engineering units that had never been powered on. I owned the whole chain: test
planning, revising the validation board, a voltage-aware MIPI delay-scan utility (Python)
to find stable operating points, and a DDR sweep utility (C) integrated into the boot and
mode-switching sequence to find per-unit optimal timing dynamically. Delivered a
register-level control driver on top of the ASIC's hardware control block.
- ~20% of marginally-failing units recovered by the DDR sweep
- 4K@30+fps stable on the 4-lane configurable MIPI TX/RX path
- Verified end-to-end: captured images landing in DDR — the full loop, not half of it
An image-composition RTL module in respin silicon
After the first UX720V6 tape-out failed, the company respun the mask. I designed and
added an image-composition RTL module into the respin — the re-fabricated chips came
back, were brought up, and ran. Not "taped out": my RTL is in working physical silicon.
Dimensity 700 on HAPS: prototyping a production SoC for firmware teams
At MediaTek, adapted SoC RTL partitions to FPGA targets through platform generations —
early CPU/SRAM/MMU porting to full multimedia integration. Down-clocked clock domains,
partitioned critical modules, managed the CDC/RDC risks the adaptation itself introduces,
and cleaned constraint sets so the timing tools worked real paths instead of false ones
(ProtoCompiler, SpyGlass, Vivado).
Embedded Linux bring-up: our ASIC on a third-party SoC, to first image
On a partner product line, integrated our camera ASIC onto an Anyka SoC — from the vendor
BSP up through SPI-based ASIC control and the MIPI data path back to the CPU, to the
first captured image. Vendor BSP as the base; the integration and bring-up were mine.
IMU driver + electronic image stabilization, raw data to coordinates
Wrote the IMU driver and owned the EIS feature end-to-end: IMU raw data through the
stabilization algorithm to output coordinates, mapped onto the platform's existing PTZ
coordinate system, delivered as a working feature. Separately enabled an edge-AI
image-recognition pipeline on RK3588 and handed it off to the Linux team.
Edge ML with statistics behind it: 32-channel sensing on ESP32-S3
Built a 32-channel pressure-sensing system end-to-end for non-contact heart-rate and
respiration monitoring: hardware, embedded acquisition, CNN/Transformer models, and INT8
ONNX quantization deployed on ESP32-S3. Validated with leave-one-subject-out
cross-validation across 33 subjects; a Wilcoxon signed-rank test confirmed quantization
preserved accuracy. Firmware, ML code, and data are
open-sourced.
Debug stories
Three bugs that didn't live where they seemed to — told the way they happened.
The corruption that only appeared in sunlight
- Symptom
- After extending a decade-old H.264 module from 240×180 to 4K — simulation clean, FPGA tests clean — the field reported random image corruption. Outdoors. And the brighter the scene, the sooner it broke.
- Investigation
- Brightness-correlated failure smells data-dependent. I captured the offending images, replayed them in simulation, and traced the pipeline.
- Root cause
- A register accumulating pixel data overflowed at high luminance. Normal-case simulation could never hit it; real 4K sunlight did. Widened the register — fixed.
- Lesson
- Video pipelines must be simulated at worst-case data patterns, not just typical frames. "Passed sim" is a statement about your stimulus, not your design.
Not an RTL bug. Not a firmware bug.
- Symptom
- Firmware reported the FPGA prototype misbehaving. RTL simulation said the design was fine; the designer agreed.
- Investigation
- Added internal logic-analyzer probes — hardware matched the RTL exactly. So I pulled the RTL designer, the firmware owner, and the prototype view into one room and diffed assumptions instead of code.
- Root cause
- A hardware configuration had changed in the latest version; the firmware's header still described the old one. A version mismatch living between two teams' correct code.
- Lesson
- I extended our Perl header-generation flow with an automatic cross-check so the mismatch class gets caught at generation time — turning one debug into a permanent fix.
The DDR bug that lived in the power rail
- Symptom
- Post-silicon, intermittent failures that looked exactly like DDR instability — the kind of symptom that invites weeks of retraining timing parameters.
- Investigation
- We refused to lock onto the first plausible suspect: checked DDR config, clocks and PLLs, then put a scope on the power tree.
- Root cause
- Abnormal ripple on a PMIC output. The root cause was power configuration and behavior — the DDR datapath was innocent.
- Lesson
- Classify the problem and collect evidence across layers before committing to the obvious one. Intermittent ≠ random; it means you haven't found the variable yet.
Skills
- RTL & FPGA
- Verilog · block-level RTL (ISP, DMA, H.264, image composition) · SoC-to-FPGA partition adaptation · timing closure & SDC constraints · CDC/RDC · Synopsys HAPS-80/100 · ProtoCompiler · SpyGlass · Vivado
- Silicon validation & bring-up
- Post-silicon bring-up · validation-board revision · MIPI TX/RX (multi-lane) · DDR training & sweep tooling · PMIC / power integrity · oscilloscope-driven diagnosis · register-level control drivers · boot-sequence integration
- Embedded software
- C / C++ · embedded Linux board bring-up · vendor BSP integration · device tree · SPI / I2C / UART · sensor drivers (IMU) · ESP32 / FreeRTOS · real-time data paths & throughput debugging
- Edge ML & tooling
- Python · Perl / Tcl automation · CNN & Transformer models · INT8 ONNX quantization · edge deployment (ESP32-S3, RK3588) · LOSO cross-validation · statistical testing (Wilcoxon) · signal processing
Publication — co-author, turbidity-meter voltage-to-frequency converter chip, IEEE Sensors Journal.