Stack
Software Development
Programming Languages
- Simple Scripts (e.g. checking logs, running commands, etc.): Bash
- Building Software Projects: Python
- Web Development: JavaScript
Project Development
Python Development
Project Components
- Enviroment Management: conda
- Package Management: poetry
- Unit tests framework: pytest
- Managing and Maintaining pre-commit hooks: pre-commit
- Interactive Notebooks: Jupyter
Software Engineering Tools
- Code Formatter: black
- Static Type Checker: mypy
- Remove unused imports: pycln
- Sort imports: isort
- Configuration Management: pydantic
- Rich text and beautiful formatting: rich
- Logging framework: loguru
Machine Leanring and Artificial Intelligence
- Matrix Operations: NumPy
- Image Manipulation: OpenCV, Pillow, and torchvision
- Visualization: matplotlib and seaborn
- Tabular Data Manipulation and Analysis: pandas
- Machine Learning Frameworks: sklearn
- Deep Learning Frameworks: PyTorch ❤️🔥 and HuggingFace 🤗
- Training Procedure Wrapper: PyTorch Lightning
- Experiment Tracking and Reporting: W&B
- Models and Dataset Versioning: HuggingFace Hub for Deep Learning and DVC for Machine Learning
- Deployment: Gradio for demoing ML/DL models and Streamlit for more general apps
Programs that I use
General
- Cloud File Storage Service: Google Drive
- Calendar: Google Calendar for setting up expected schedule for the week and morgen for daily planning and execution
- Browser: Chrome
- Bookmarker, Project Management, and General Writing: Notion
- Knowledge Management: Obsidian
- LaTeX Writing: Overleaf
Software Engineering
- Text-editor: VS Code
- Text-editor within Terminal: Vim
- Terminal: terminator
Research
- Research Paper Manager: Zotero
- Paper Tracking: Notion
- Note-Taking on iPad: OneNote for annotating on PDF and GoodNotes for writing notes from scratch