My Philosophy

I am a follower of the UNIX design philosophy: I believe something should do one thing, really well. I like this design philosophy because it is what has driven most of the great pieces of software in history: cURL, make, tmux, etc. These things are great because they do exactly what they need to and nothing more.

  • cURL:a great tool for network requests.
  • make:a universal build tool.
  • tmux:a simple, but effective multiplexer.

These examples show how, by focusing on doing one thing well, You can end up with tools that are reliable, easy to understand, and adaptable to many workflows. When I build software I try to follow this mindset, so I can try to create tools that stand the test of time and empower both myself and others to solve problems in our own way. This approach also makes software easier to maintain and extend, since each component has a clear purpose and minimal dependencies. When my tools are simple and well-documented; other can easily contribute to extend functionality ( while mainting scope ). All in all, this attributes to good software.

Another philosophy I subscribe to is the GNU philosophy on free software. I belive that software should be free ( as in freedom ). I think you should be able to modify any peice of software in any way you want. I also like GNU's view on why you should write free software: Its fun, you gain admiration, you gain professional repuation, you get a community, and you get an education.

Although I agree with much of GNU's philosophy, I disagree with some portions of it. One of which is copyleft, I belive software authors should have domion over their code ( but should be encouraged to make it free ).