Hunter Middleton

Gear, Software and Philosophy

An overview of the tools I use daily

Software

Here's a rundown of the essential software that keeps my workflow smooth and efficient.

Development Tools

Productivity Utilities

Random + Languages

Beyond the tools and software that keep me productive, there are a few personal passions and interests that play a significant role in my life.

One of my favorite pastimes is game hacking. There's something incredibly satisfying about diving into the internals of a game, understanding its mechanics, and finding ways to bend the rules to my will. It's a blend of creativity and technical skill that keeps me constantly challenged and engaged. Alongside game hacking, I have a deep love for first-person shooter (FPS) games and rhythm games.

Music digging and DJing is another significant interest of mine. Spinning music allows me to express emotions and ideas in a way that words alone can't capture. The journey from transitioning and blending tracks is incredibly rewarding and offers a perfect balance to my activities.

When it comes to programming languages, I have a few favorites that I turn to regularly. C holds a special place for me due to its power and efficiency. It's a language that demands a deep understanding of the hardware and provides unparalleled control, which is both challenging and immensely satisfying. Rust is another language I enjoy working with. Its focus on safety and concurrency makes it ideal for building robust and efficient systems. Rust's modern syntax and powerful features make it a joy to write in, and it has quickly become a go-to for many project ideas. Lastly, Go is a language that I appreciate for its simplicity and performance. It's excellent for network programming and web services, which aligns well with many of my development needs.

Note-taking

Another aspect of my day is organizing and taking notes with Notion. This powerful tool has revolutionized the way I manage information, ideas, and projects. With its robust linking and graph visualization capabilities, Notion allows me to create a dynamic and interconnected web of knowledge that evolves as I do.

Taking notes in Notion is more than just scribbling down information; it's about capturing thoughts in a way that makes them easily accessible and usable in the future. The ability to link notes together means that related ideas are never far apart, and I can see how different concepts interconnect and influence each other. This has been particularly useful for tracking complex projects and for personal growth, as it provides a visual representation of my thoughts and their development over time.

I love the flexibility that Notion offers. Whether I'm working on a new startup, planning a project, or brainstorming posts for this website, Notion adapts to my needs. I can create detailed outlines, embed relevant files, and even use Markdown to keep my notes clean and readable. This level of customization ensures that my note-taking system is as unique as my workflow.

One of my favorite features is the graph view, which transforms my notes into a web of interconnected nodes. This visual representation helps me see the bigger picture and how different pieces of information relate to one another. It's like having a map of my mind, where I can quickly navigate through my thoughts and ideas.

Organizing with Notion isn't just about keeping track of information; it's about creating a personal knowledge base that grows and evolves with me. It helps me stay on top of my tasks, remember important details, and see the connections between different areas of my life and work. Whether I'm diving deep into a technical problem, outlining a new music mix, or simply reflecting on my day, Notion is my trusted companion, making sure that nothing slips through the cracks.

Approach to Programming

My approach to programming is mixed with curiosity, structure, and continuous learning. Programming, to me, is not just about writing code. It's about solving problems, building systems, and constantly pushing the boundaries of what's possible.

At the core of my programming philosophy is a strong emphasis on understanding the fundamentals. Whether I'm working in Rust, C, React, C#, TypeScript, or Go, I believe in deeply understanding the underlying principles and mechanics of the language. This foundation allows me to write efficient, maintainable, and robust code, regardless of the complexity of the project.

My programming workflow is highly organized and methodical. I start by thoroughly understanding the problem and breaking it down into manageable components. I then design the architecture and write detailed specifications before diving into code. This structured approach helps me stay focused and ensures that I build scalable and maintainable solutions.

Testing is an integral part of my process. I believe in writing comprehensive tests to catch issues early and to ensure that my code behaves as expected. Automated testing frameworks and continuous integration pipelines are invaluable tools that help maintain code quality and reduce the risk of introducing bugs.

Ultimately, my approach to programming is driven by a passion for problem-solving and a desire to create elegant, efficient solutions. It's a continuous improvement process, where every challenge is an opportunity to learn and grow.

Life Philosophy

Philosophy is a profound influence in my life, shaping how I approach challenges, creativity, and even day-to-day decisions. I am deeply inspired by the ideas of self-overcoming, the will to power, and the creation of one's own values.

Nietzsche's concept of the Übermensch, or Overman, is particularly compelling to me. It embodies the idea of transcending conventional boundaries and limitations to achieve a higher state of being. This philosophy encourages me to constantly push beyond my comfort zone, to question the status quo, and to strive for continuous self-improvement.

Another Nietzschean principle that guides me is the eternal recurrence. This thought experiment, which asks us to live our lives as if we would have to repeat them endlessly, challenges me to live with intention and purpose. It pushes me to make choices that I would be proud of, knowing that every moment could be repeated infinitely. This idea instills a sense of urgency and importance in my actions, driving me to live authentically and meaningfully.

While Nietzsche provides a strong foundation, I am also open to other philosophical perspectives. For instance, Stoicism offers valuable insights into resilience and emotional control. The Stoic practice of focusing on what is within our control and accepting what is not aligns well with my approach to problem-solving and handling adversity. It teaches me to maintain calm and composure in the face of challenges and to view obstacles as opportunities for growth.

Existentialism, particularly the works of Jean-Paul Sartre and Albert Camus, also influences my thinking. The existentialist emphasis on personal freedom and responsibility resonates with my belief in creating one's own meaning and purpose in life. Camus' idea of embracing the absurdity of existence and finding joy in the struggle itself is a powerful reminder to find beauty and fulfillment in the journey, regardless of the destination.

Eastern philosophies such as Zen Buddhism and Taoism offer additional layers of understanding. Zen's focus on mindfulness and living in the present moment helps me stay grounded and fully engaged with whatever I'm doing. Taoism's principles of harmony and balance remind me to stay flexible and adaptable, flowing with the natural rhythms of life rather than resisting them.

Incorporating these diverse philosophical insights enriches my perspective and provides a well-rounded approach to life's complexities. While Nietzschean philosophy forms the core of my worldview, the complementary ideas from other philosophies help me navigate the various dimensions of existence. Together, they inspire me to live a life of purpose, creativity, and continuous self-discovery.