My Stack
Daniel SiegelOperating Systems
I use Linux (Debian, Unix), Windows, and macOS for various projects, as well as embedded ARM-based systems.
Design Tools
- 3D CAD & Modeling: SOLIDWORKS, Fusion 360, Onshape, Blender
- PCB Design: KiCAD, EasyEDA
- Graphic & Video Design: Adobe Illustrator, Photoshop, Premiere Pro, After Effects
Programming Languages
- General Purpose: Python, C, C++
- Web Development: JavaScript, HTML/CSS, Node.js, React, Next.js
- Scripting: Terminal/Bash Scripts, Assembly (ARM, x86)
Python Libraries and Frameworks
- Scientific & Data: NumPy, Matplotlib, Jupyter
- AI/ML: PyTorch, MediaPipe Hands (for hand-tracking), model training for CV
- Web & Backend: Django
- USB/Serial: PyUSB, PySerial, Pylink
Reverse Engineering & Debugging Tools
- Disassemblers/Decompilers: Cutter (with Rizin backend), Ghidra
- Debuggers: GDB, J-Link GDB Server
- Debug Tools: OpenOCD
- Hex Editors & Binary Analysis: Bless, HxD, Binwalk
- Protocol Analysis: Signal Analyzers (Saleae Logic Pro 8), USB protocol analyzers (e.g., USBPcap, Wireshark), serial terminal tools (screen, minicom), logic analyzers (Saleae Logic)
Cybersecurity & Firmware Analysis
- Cryptography debugging using symmetric encryption libraries (e.g., ChaCha20-Poly1305)
- Firmware extraction, patching, and analysis tools
- Memory inspection with GDB (using watchpoints and breakpoints)
IDEs and Development Tools
- Visual Studio Code
- Arduino IDE
- Build Systems: Make, CMake, Docker, Nix
- Terminal Utilities: screen, minicom, xxd
Hardware Platforms
- Microcontrollers & Dev Boards: ARM Cortex-M devices (e.g., MAX78000), ESP32, Arduino
- Single-Board Computers: Raspberry Pi
- Debug/Programming Interfaces: JTAG/SWD (J-Link)
- External Memory & Communication: QSPI Flash, UART, USB, SPI