Uses
The hardware, software and tools I use day to day. Updated when my setup changes. Inspired by uses.tech.
Hardware
Gaming PC (ZACCESS-GPC)
Custom Windows desktop with an NVIDIA GeForce RTX 4060 and Intel CPU. My main machine for development, gaming and compute-heavy work. It runs a background Python daemon that detects the active game via five tiers: a known-games map, Steam Web API, Epic and EA App manifests, then psutil process scanning with IGDB fuzzy name matching. All streamed live to the now page.
MacBook (ZACCESS-MBK)
My portable development machine. Runs a launchd-managed Python daemon (mac-daemon.py) that writes battery level, charging state, timezone and weather to Redis every 30 seconds, powering the live status widget on the now page.
Lenovo Laptop (ZACCESS-LNV)
Windows laptop used as a secondary machine. Runs its own NSSM-managed Python daemon that feeds live battery and charging state data to the site alongside the GPC and MacBook.
The microcontroller at the heart of the avr-zac project. I use it to practise bare metal AVR C: GPIO, interrupts, PWM, ADC, UART and a nine-mode state machine, all written directly against the datasheet with no RTOS or HAL.
ESP32 and STM32
Both used in Phaemos, my predictive maintenance platform. The ESP32 handles WiFi, MQTT and sensor polling using the Arduino framework. The STM32 runs lower-level firmware for data acquisition. Two very different programming models on one project.
PlayStation 5 (ZACCESS-PS5)
My PS5. Online status, current game and last-seen time are polled every 2 minutes by a Cloudflare Worker using a custom OAuth v2 implementation against the PSN presence API - no third-party libraries. The NPSSO session cookie is exchanged for an access and refresh token on first run; the refresh token is stored in Cloudflare Workers KV and rotated automatically. Cover art is fetched from IGDB on every cron run. Status is displayed live on /now.
Development
My primary editor across nearly every project. Key extensions: Claude Code for AI-assisted development, GitLens for blame and history, Prettier for formatting and the C/C++ extension for embedded work. Most of this site was built inside VS Code.
IntelliJ IDEA for Java coursework, PyCharm for Python projects including the Phaemos FastAPI backend and system daemons and CLion for C/C++ embedded development. I switch between VS Code and JetBrains based on what the project needs.
The framework this entire site is built on. App Router, React Server Components, API routes and middleware. I use strict TypeScript throughout. Every blog post, project and skill is typed data, not markdown. The result is fast, type-safe and easy to extend.
Utility-first CSS combined with unstyled, accessible shadcn components. The design system for this site is built entirely on these two. I rarely write custom CSS. When I do it is usually for animations like the theme crossfade or skill grid layout.
Used across several distinct contexts: FastAPI for the Phaemos backend REST API, scikit-learn and pandas for the Isolation Forest anomaly detection pipeline and psutil plus pynvml for the three device daemons (Mac, Lenovo, GPC) that power the live status widget.
Bare metal microcontroller programming. No Arduino, no HAL. Direct register manipulation and datasheet-driven development. Everything in the avr-zac project is written this way: interrupts, timers, PWM, ADC and UART all configured from scratch.
Used where development speed matters more than low-level control. The ESP32 in Phaemos runs the Arduino framework for WiFi connectivity and MQTT communication with the FastAPI backend. Good tool for the right job.
Version control for everything I build. Branch protection on main, pull requests with CI checks before any merge, Dependabot for dependency updates with auto-merge on green and Gitleaks in CI to prevent secrets ever reaching the repo.
Terminal and shell
Default shell on both the GPC and Lenovo. I use it for NSSM service management, setting up Python virtual environments, running builds and general scripting. Most of the daemon setup and service registration was done in PowerShell.
Bash / zsh
Shell of choice on the MacBook and any Linux environment. zsh with a minimal setup. I do not use heavy frameworks, just a clean prompt and a few aliases.
Non-Sucking Service Manager. I use it to register Python daemon scripts as proper Windows services on the GPC and Lenovo so they start on boot, restart on crash and run in the background without a terminal window.
Services and infrastructure
Deployment platform for this site. Every pull request gets an automatic preview deployment. Production deploys on merge to main. Zero config for Next.js. It just works.
Serverless Redis that powers several live features on this site: device status from the three daemons, Spotify now-playing with progress bar, blog post reactions, Beehiiv newsletter cache and contact form rate limiting. All in one Redis instance.
DNS and CDN in front of Vercel for isaacadjei.me. Handles DDoS protection, caching and the canonical host redirect that ensures all traffic goes to the www subdomain.
Powers the currently-playing card on the now page: track title, artist, album art and a real-time progress bar. OAuth token refresh is handled server-side via a Next.js API route so the client never touches credentials.
Used to pull contribution heatmap data, commit counts, pull request counts, top languages and last push timestamp for the GitHub stats card on the lab page. GraphQL means I fetch exactly what I need in one request.
Serverless edge workers. One worker (workers/ps5-presence) polls the PSN API every 2 minutes and writes presence data to Upstash Redis, replacing the need for a daemon running on a local machine.
Newsletter platform for the isaacadjei.me newsletter. Subscription is handled via the Beehiiv API from a server action. Past issues are fetched and cached in Redis so the newsletter page loads instantly.
Bot protection on the contact form. A privacy-friendly alternative to reCAPTCHA. It validates the request server-side before the form submission is processed.
Hardware lab
Oscilloscope
Essential for embedded work. I use it to verify signal timing, debug UART and SPI communication, check PWM duty cycles and measure ADC input waveforms on the ATmega644P and ESP32 projects.
Function generator and bench power supply
Standard bench setup for electronics prototyping. The function generator is useful for feeding known signals into ADC inputs during avr-zac testing. The power supply gives clean, stable voltage rails.
Soldering station
Used for through-hole and SMD work. Most of the custom boards and sensor connections for Phaemos were hand-soldered.
My PCB design tool of choice. I use it for schematic capture, PCB layout and Gerber export for fabrication. Open source and more than capable for the complexity of boards I work with.
Circuit simulation and microcontroller firmware simulation. Useful for validating circuit behaviour and testing firmware logic before committing to hardware, especially helpful for timing-critical embedded code.
Logic analyser
A cheap USB logic analyser with PulseView. Invaluable for capturing and decoding SPI, I2C and UART protocol traces when the oscilloscope alone is not enough.
Creative and productivity
Personal workspace for notes, project planning and research. Anything that does not belong in a codebase or a blog post lives in Notion: meeting notes, research threads, project briefs and learning logs.
My second brain for long-form notes and personal knowledge management. I use it for deep technical research, learning logs for new topics and anything I want to keep in plain Markdown files I actually own. The local vault and bidirectional linking between notes makes it easy to build context over time.
UI design and wireframing before I write a line of frontend code. I used it to sketch the layout of this site before building it. Not a full design system workflow, just enough to think visually before committing.
Photoshop for photo editing, Illustrator for vector work and Premiere Pro plus After Effects for video production. I do not reach for these daily but they are the right tools when design or video output quality matters.
Quick design tool for social assets, presentations and visual content. Faster than Photoshop when the output does not need precision. Good for event flyers, mockups and branded graphics.
My main video editing and colour grading tool. Used for cutting and grading footage on the GPC. The free version is extraordinarily capable. I use it for personal projects and any video content that needs proper colour work.
API testing and development. I use it when building and debugging REST endpoints for Phaemos and this site, especially useful for testing the FastAPI backend and verifying API route behaviour before wiring up the frontend.
Used on this site to generate the downloadable CV PDF server-side. A headless browser renders the CV page and exports it to PDF via a Next.js API route. No manual PDF export needed.
Used for signal processing, Fourier analysis and control systems work at university. Most of the lab reports and coursework involving DSP were done in MATLAB.
Reference manager for academic research. I use it to collect, organise and cite sources for lab reports, project writeups and literature research at university. The browser plugin captures papers from journals automatically.
Games
Ultimate Team is the main mode. The GPC handles it well at high settings. The RTX 4060 does not break a sweat.
Chapter by chapter. The GPU monitoring daemon on the GPC was partly motivated by wanting to see actual utilisation numbers while playing this.
Warzone and multiplayer depending on the mood. High frame rate, low latency. The GPC is built for it.