Consulting

If you have found this blog interesting and you have a project that you believe I would be able to help with, please let me know. I am available for short- to medium-term consulting engagements on specific projects that align with my interests and skillset.

Projects

Projects that interest me include:

  • Analyzing and improving the performance of a distributed system or an algorithm
  • Hyper-optimizing algorithms and computer systems for a specific application or deployment
  • Accelerating algorithms with FPGAs, SIMD instructions, and application-specific processors
  • Building performance-focused applications for embedded and server systems

Some examples of my past projects are:

  • Helping a team of epidemiologists optimize a disease model used to simulate vaccine programs
  • Creating a reference implementation for a compression algorithm on an IoT device
  • Designing FPGA cores for mining “ASIC-resistant” cryptocurrencies

Quick Resume

My past work experience includes:

  • Designing high-performance storage systems for a FAANG
  • Building FPGA hardware for high-frequency trading companies
  • Designing ASICs for bitcoin mining

My specific expertise includes:

  • Performance analysis and performance optimization of systems
  • FPGA system design and software/hardware co-design
  • User-space I/O and high-performance Linux I/O
  • Micro-optimization for specific hardware (both server and embedded)
  • Knowledge of common L1-L4 network protocols
  • Bare metal and Linux systems

Programming Languages:

  • I prefer to design and verify hardware in Systemverilog and Verilog
  • I use Python, AWK, and bash for scripting
  • I am most comfortable writing software in C, C++, and assembly languages
  • I am also familiar with Rust and Go
  • I am a beginner at HTML, JavaScript, and CSS
  • I prefer Mathematica for numerical programming, but I can also use Python

I have the following domain-specific skills:

  • Numerical methods and DSP algorithms
  • Phaselocking, time synchronization, and mixed-signal systems
  • Knowledge of financial instruments and exchanges
  • A casual understanding of concurrent data structures and TLA+

Final Thoughts

At this time, I am only open to projects that align with my interests. If I don’t believe that we are a good fit, I am happy to help you find a suitable replacement who can help. To prevent spam, please send a short description of your project (or an explanation as to why you need an NDA) as well as your favorite vegetable. At this time, I am also not interested in working for consulting or freelance agencies. If you have a project to discuss, my inbox at [email protected] is open, and I am excited to hear from you.