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.