[doc] [pdf] [ps] [txt] [tex]

self photo

Todd has a bachelors degree in computer science and a masters degree in electrical engineering from the Rose-Hulman Institute of Technology. He has done graduate level work in adaptive and statistical DSP, research in audio and image processing, and has experience in software development.


Rose-Hulman Institute of Technology
Howard High


Johns Hopkins University Applied Physics Laboratory


Employer Quotes
Coworker Quotes
Real Estate

I was a member of the National Honor Society (NHS) in high school. In college, I was a member of the honors fraternity, Alpha Lambda Delta. I have done volunteer work at the Howard County Library and participated in volunteer work and other activities with the service fraternity, Alpha Phi Omega. Recently, I have been volunteering at Habitat for Humanity.

Work experience (detailed):


  • Matlab
  • C++ in Visual Studio 2005
  • Dot Net, WTL/ATL Com, Direct Show
  • Intel IPP libraries
  • Deblocking (POCS, Wavelets, MPEG4, and other methods)
  • Multi-frame deblocking
  • Color space models
  • GIMP, RMagick
  • IP Cameras
  • Wireshark
  • Subversion
  • Audio/Speech research
  • Lucky/Speckle Imaging
  • Polyspectra methods
  • Autofocus


  • Slackware Linux/Windows XP
  • C
  • Python/Jython
  • Asterisk PBX (and module development)
  • Debugging open source.
  • Developed Octave tool for detecting resampling or change of bit rate.
  • Developed Linux Daemon.
  • Cisco 79xx phones
  • Sox
  • Dia
  • XML
  • SAX
  • Regular Expressions
  • TCP/IP
  • Threading
  • IPC memory queues
  • MySQL/SQL Server
  • Unit and Functional Testing of framework.
  • Wrote special utility in Snd with Guile and Gtk.
  • Developed Fast AGI server
    • about 10000 lines of C, Python, documentation, and tests
    • runs on/with Windows, Linux, Python, Jython, ODBC, JDBC, MySQLdb without changes
    • multiple simultaneous interfaces - console, web, TCP client


  • Redhat Linux
  • Java
  • Apache/Tomcat
  • Servlets
  • JSP
  • RMI
  • JDBC
  • TCP/IP
  • HTTP
  • HTML
  • PostgreSQL
  • Setup/administered e-mail, FTP servers
  • Built file server in Java.
  • Built heartbeat server (pair programming).


  • Java
  • C
  • Solaris
  • Windows NT
  • Excel
  • Visual Studio
  • Emacs
  • Gnuplot
  • Shell scripting
  • Numerical recipes
  • Swiss-Prot/TrEMBL protein databases
  • SVM type algorithms
  • Lexical analysis/parsing


  • DSP theory
    • Beamforming, Time-delay estimation
    • Acoustic Echo Cancellation
    • Fractional sample delay
    • Double Talk Detection
    • Matlab, simulation, mex files
    • Researching journal articles
    • Algorithms: Geigel, Variation Impulse Response, Cheap Normalized Cross-Correlation, Least Mean Squares, Recursive Least Squares, Affine Projections, Fast Transversal Filters, Fast Affine Projections using FTF, Gauss-Seidel Iterations, and the frequency domain, blocked version
  • Real-Time C Implementation
    • RTDX, DMA, AIC10
    • TMS320C6711/13
    • Code Composer
    • optimized routines
    • setting compiler flags and structuring code for c67 optimizations
    • built/interfaced microphone array with DSP
    • soldering, debugging electronics, electronics equipment
    • reducing electronic (coax, filtering) and acoustic noise
    • handling memory/caching
  • OrCAD
  • Latex
  • Solaris/Windows XP
  • Liberal use of professors to get the help and resources I need :-)


Among jobs, internships, and graduate student experience, I have about 4 years of work experience. I have written code in the following languages: C, C++, Qbasic, Java, Python, Ruby, SQL, Matlab, Maple, Elisp, Scheme, Pascal, Tcl, Ocaml, Verilog, some shells, and a number of assembly languages. About three or four are used regularly. I've written software on the order of 10s of lines, 100s of lines, and 1000s of lines of code. (In case you're of the KLOC persuasion, keep in mind, writing a few hundred lines of numerical code is difficult. Implementing a few-hundred line, complicated numerical algorithm that runs in real-time and is optimized for a given architecture is orders of magnitude more difficult than writing a few hundred lines of code in Python to parse some XML.) I'm familiar with some of the Matlab tool boxes. I've implemented some of functions myself and could probably implement many more with less than a week of research. I've also done a few projects involving audio and image compression. (Terms like ADPCM, LPC, Vector Quantization, Discrete Fourier/Cosine/Wavelet Transform are all familiar to me.)

Ideal Job:

After being asked this a number of times, I've thought about it and decided to get it in writing. Ideally, I'd like to be learning, implementing, testing, tweaking new algorithms. It can be simulation or real time (if that's appropriate). It will probably involve signal processing, communications, image processing, or non-numerical algorithms. There will probably be at least some level of math involved. I like working in Matlab. I also like architecting software. This should give you a decent idea.