David Ljung Madison

Programming, Algorithm Design, VLSI / CPU Verification

Accomplishing the impossible, on a deadline

Career Summary

Accomplished problem solver who can create new solutions to finish products faster, easier and with higher quality.
Exceptional at figuring out how to break things to make them stronger.

Contact Info

Before contacting me, make sure you have an up-to-date resume.
I am currently looking for either full-time work or contract work.
I am not interested in long-term relocating from Silicon Valley.

Recruiters: Email is preferred
Home: 415.341.5555 (call between 11a-10p PST)

Work Experience

Verification Consultant Bluechip Systems May 2015 - Jan 2016 Came up with innovative solutions to verify secure communications between Android devices and an SD card running linux on a custom CPU.
Director of Verification iCelero, LLC (Previously 3Plus1 Technology) February 2007 - Dec 2013 Took over complete verification toolchain, testbenches and tests for an entire CPU verification process, under a very tight schedule, from block level to full-chip to SOC.
Invented a highly sophisticated test packer/generator for VLIW CPU
Took over stress testing a scalable server as well as writing some custom testing software.
Independent Consultant DaveSource Consulting Jul 2002 - Present Solved a wide-ranging list of problems for a number of companies, including:
  • CPU verification and formal verification tool design
  • Designed and implemented operations management algorithms. Order of magnitude improvement in runtime and savings.
  • Custom image sorting software, custom web apps.
CPU Verification Engineer Transmeta Corp Jan 2000 - Jul 2002 I was given ownership for verifying two custom CPU blocks. Invented an original formal verification technique which accomplished the unheard of, all bugs found pre-silicon.
CPU Verification Engineer SandCraft Inc. Jul 1998 - Jan 2000 On a short schedule we verified a custom MIPS CPU, I built the entire verification tool environment as well as a configurable, modular testbench for blocks/fullchip that allowed us to test whichever portions of the design were ready, I also fully tested the entire execute half of the CPU.
CPU Verification and Debug VLSI Technology Lab, Hewlett-Packard Aug 1994 - Jun 1998 Slashed our preparation time and did a complete rewrite of our entire post-silicon debug toolchain ahead of schedule, at a savings of $3M/day according to corporate calculations.
After working in post-silicon bug, transitioned to pre-silicon verification by taking over a highly complex state-of-the-art code generator to continuously improve coverage.
Shareware Programmer/Owner Marginal Hacks Aug 1991 - present I wrote many popular tools at Marginal Hacks, including the 'album' application, which is the world's #1 used command-line photo album generator.


Computer Languages Multi-linguistic: Fluent in C, Ruby, Perl, Java, Scheme, Verilog, various Assemblies, etc..
I often become the ruby/perl guru/resource wherever I work.
Experience with: Lisp, C++, C#, Python, Fortran, sed, yacc, shell scripting, system administration, etc..


CPU Electrical Verification HP Journal August 1997 (as "David J. Ljung") [local copy]
CPU Block verification using formal tools DaveSource.com October 2014 (See more success stories at DaveSource.com)
Breaking things I like to use things in new and interesting ways, this is one of the things that sets me out as a verification engineer. I have managed to break and post bugs in almost every tool I have used, such as: gcc, cpp preprocessor, HPUX CC, HPUX linker, various assemblers, perl (2 so far), various shells (tcsh, ksh, ..), verilog simulators (VCS, ESP), rccs, etc..


B.S. ECE/CS: (Double major: Electrical Computer Engineering with CPU Option and Computer Science)
1989-1994: University Of Wisconsin, Madison