We assist our customers mainly with Python, C, PHP, (POSIX) Shell development; but also with Java, C#, Go, and JS (javascript) occasionally. Software development is the backbone of modern technology. While hardware has become increasingly standardized and modularized, we still need software to adapt said hardware to the specific use case. We can help you customize your software at multiple levels, with Python, C, and various other languages.
We favor an empirical, pragmatic approach; over dogmatic, rigid development processes. Such approach, while not a methodology in itself, lends itself very well to agile development methodologies.
More of a philosophy than an actual method, akin to the very famous “UNIX Philosophy”, our approach has shares most of its traits with it. We however, deem a few extraneous aspects to be as important as those of the UNIX Philosophy:
Our approach to computing is about data. We believe that making computing about itself, while sometimes tempting, is not only redundant, but also invites dangerous excesses, such as over-abstraction, which can be detrimental to both performance and maintainability. It is in that spirit that we follow Rob Pike’s fifth rule on complexity, from his Notes on programming (1989):
“Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.”
Another important point of our approach, which can seem counter-intuitive or counter-productive at first, is to re-use code, but not systematically so. We have found over the years that a systematic reuse of code can introduce unnecessary dependencies, complexity, and even vulnerabilities. Before re-using code, we ponder what to re-use, and what for. If it turns out that a simple, partial implementation contained in, or besides, the project, is likely beneficial, we tend to prefer it. As John Carmack said during his UMKC Honorary Degree acceptance speech:
“So, in many areas it’s almost received wisdom that you shoudln’t reinvent the wheel. But I would urge you to occasionally try anyways. You’ll be better for the effort, and this is how eventually we get better wheels. By people just going ahead and trying.”
If you believe in our approach, and wish to collaborate with us, just get in touch with us!