Tools and Technologies¶
Summary
- Programming languages: Python, Javascript, C++, bash
- Development: Git, CI/CD, Docker, documentation (Sphinx, mkdocs), testing (pytest)
- Data science: Jupyter, SciPy stack, pandas, scikit-learn, SymPy, Matplotlib, Seaborn, Plotly, Streamlit
- Web development: Python (FastAPI, Pydantic), Javascript (Vue), HTML, CSS, SQLAlchemy
- Robotics: ROS stack; various microcontrollers, boards, sensors, and actuators
- Hardware: Raspberry Pi, ESP8266, Arduino, mbed; MicroPython, CircuitPython, C++, C
- Mechanical: Solidworks, Autodesk Inventor, OpenSCAD; design, analysis, simulation, and manufacturing
- Electrical: PCB design and manufacturing, soldering, wiring, crimping, cable management
- Other: ChatGPT and other LLMs; Gimp, Inkscape; Linux, macOS, Windows; various office suites
In the course of my work, I've had the opportunity to use a wide array of tools and technologies that support efficient and effective software development, project management, and team collaboration. While the extent of my experience with each tool varies, they have all played a role in my projects and professional tasks.
Software engineering¶
Python¶
- Testing: pytest
- Documentation: Sphynx, mkdocs
- Environment: Poetry, pip, venv, Pyenv, Pipenv, DevPI
Data science¶
- Data science: Jupyter, SciPy stack, pandas, scikit-learn, SymPy
- Visualization: Matplotlib, Seaborn, Plotly, Streamlit
Interfaces¶
- TUIs: argparse, typer, click, fire
- GUIs: OpenGL, PyQT, PySide, Tkinter
Web development¶
- Languages: Python, Javascript, HTML, CSS
- Frameworks: FastAPI, Flask, Django, Vue
- Packages: Pydantic, Jinja2, Bootstrap, Axios
- Databases: SQLAlchemy, SQLite, redis
- Distributed systems: Docker, Kafka, Kubernetes, AWS
General development¶
- Version control: Git, Github, Gitlab
- CI/CD: Github Actions, Gitlab CI, Travis, Jenkins
- Collaboration tools: Jira, Confluence, Trello
- Other development tools: Tox, Nox, Makefile, CMake
Other languages¶
- Text: Markdown, reStructuredText, LaTeX
- Scientific programming: Matlab (with Simulink), LabVIEW, Maple, Mathcad, Mathematica
- Familiar with: Bash, C, Rust, C++ ('11 and later), Java, Kotlin, Haskell, Perl, C#, VBA
Physical interfacing¶
Robotics¶
- Languages: Python, C, C++ (up to '03)
- Packages: ROS, Gazebo, rviz, OpenCV
- Hardware: Allen Bradley PLCs, Kinova robotic arms, Dynamixel, Maxon, PhotonFocus
- Products: LEGO Mindstorms, AR.Drone
- Motion capture: Optitrack
- Familiar with: Matlab (with Simulink), RSLogix
Mechanical engineering¶
- CAD Tools: Solidworks, Autodesk Inventor, AutoCAD, Sketchup, Pro/E, CATIA, Unigraphics, FreeCAD, OpenSCAD
- Analysis and simulation: Solidworks, Adams View, ANSYS
- Production: Machine shop practices, metalworking, woodworking
Electrical engineering¶
- Platforms: Raspberry Pi, ESP8266, Arduino, mbed, PIC, AVR, Altera DE2 FPGA
- Programming: MicroPython, CircuitPython, C++, C, VHDL
- PCB Design: Altium, PSpice, Eagle, KiCAD, Wonderware
- Production: Soldering, wiring, crimping, cable management
Other¶
- Digital logic: Digital logic, Pneumatic, and Hydraulic circuit design
Other tools¶
- AI Tools: ChatGPT, Claude, Bard, Stable Diffusion, some Langchain and HuggingFace
- Graphic design: Gimp, Inkscape, diagrams.net (draw.io), Visio
- Office suites: LibreOffice, Microsoft Office, Google Suite
- Project management: Microsoft Project, Primavera
- Operating systems: Linux (including Arch, Fedora, and Ubuntu), macOS, Windows
- IDEs and text editors: PyCharm, VSCode, Vim, Spacemacs