Tell me a little bit about yourself and how you got into development
I’ve been fascinated with complex systems for as long as I can remember. I was already building and experimenting with computers from a young age, so when I was introduced to Linux/Unix systems, my curiosity exploded.
I got my first freelance work with technology while I was in high school and it led me to a career in systems engineering and development. Along the way I’ve had several side projects and ventures, allowing me to work with blossoming technologies and further build upon my full-stack experience.
Currently I maintain a handful of open source projects and have recently partnered with a friend to start Vektorlab, a platform development shop focused on product scaling and automation.
How did you come up with the idea for your awesome website?
My natural environment at my desk is the terminal, so relaying that same experience on my website just made sense. I’ve always viewed technology and code as a utility foremost, so I’m a proponent of minimal, text-based interfaces.
Tell me about ctop. Why did you develop it?
ctop is a text-based user interface(TUI) for monitoring resource usage metrics across many Docker and runC containers. It provides both real-time and trailing metric views through a variety of simple graph and chart widgets.
Most simply, I started developing it because I didn’t find the level of detail or features I wanted from existing tools. The ability to easily interpret large amounts of data is an important part of my work, so this project was a perfect match. Conveying densely packed information in user interfaces (without being overwhelming) definitely takes practice and some experimentation, but you can tell an entire story in 120 columns.
What are some other cool things you’re working on?
Improving the way people interact with and benefit from technology is always on my mind, and my recent focus has been everything navigation and maps. The project is still very early-stage, but our goal is to combine simple maps with dozens of customizable data sources to make it easier to explore your surroundings according to your own interests. I’ve also been experimenting with some augmented reality features in the same realm, which is super exciting.
I have a couple other command line tools in the pipeline for this year as well; both clients for popular chat platforms with some unique “scriptable” features.
What do you like most/least about programming?
Programming provides me the tools to build and accomplish things with real-world impact. To that extent, the possibilities are limitless.
What technology do you currently find exciting?
I’ve been writing Go for a few years; the growth of the language and community has been remarkable. I’m excited to see how it continues to grow in the future
What advice would you have for new developers, or wisdom to impart to other developers?
The most frequent advice I give is to always be learning and act with purpose. It’s easy to get caught up in different frameworks/abstraction layers and lose sight of the problem you’re trying to solve. Investing time into a project and having very little value to show for it can be demotivating for anyone, and this is especially true when working lower in the stack. Maintaining documentation, benchmarks, or even just diagrams is crucial in communicating the goal and value of your project to others and, most importantly, to yourself.