Merce

Unix and Linux

The greatest OS ever

  • We, at Merce Technologies, would not be what we are without Unix. Unix has taught us to relate to computers and software in a certain way which goes so deep that it has impacted everything we have designed or built.

  • Approach Unix has taught us the following basic ideas:

    • It's logical. A computer's behaviour should be open to logical analysis. If it misbehaves, you should be able to arrive at its cause by a process of logical deduction. The cure to a problem should not be "reboot it". This is perhaps the most important debt we at Merce Technologies owe to Unix. This is also perhaps the biggest difference between attitudes of programmers brought up on Unix versus those brought up on Microsoft or MacOS environments.
    • Building blocks. Build small generic pieces and put them together. Do not design a special-purpose monolith.
    • Concepts are reusable. It is extremely rare to encounter something conceptually new in the world of computers. Apparently complex and impressive things are aggregations of a few simple and familiar concepts executed well.
    • Build iteratively. Build something with only part of the features you think you need. Use it. Then add new features after your usage teaches you what you really need.
    • Depth. No amount of tools, fireworks, or Powerpoint presentations can replace fundamental understanding. Therefore, do not hesitate to ask stupid questions.

    These are not textbook ideas for us. They have entered the core of our thinking. More than any technical knowledge, these principles have built in us a bedrock of confidence which completely transforms how we tackle technical problems. We are not aware of any other software services team which has, on occasion, fired up tcpdump to debug anomalous behaviour in a browser based application. Unix has given us the confidence to go down to the fundamentals, and the assurance that computer behaviour has logical explanations.

  • Track record Some of our founding team members, including our CEO, have worked with AT&T SVR4, OSF/1 Unix, and SunOS 4 before this company was founded. In our company, we have executed projects on IBM AIX on P-series, Solaris on SPARC, HP-UX on PA-RISC architectures, in addition to Linux.

    More importantly, our entire company runs on Linux servers. Our CEO and Executive Director run Linux on their laptops, firing up VirtualBox VMs with MS Windows when they need to edit a Microsoft PowerPoint presentation. Official documents, including each and every invoice and perhaps 95% of all proposals, are created using LaTeX. Non-programmers use LaTeX. All servers run Linux. Programmers play computer games on Linux systems. One portion of our office is designated as a "lab area" where engineers routinely take apart desktop computers, replace components, install random versions of Linux without any official approval process, try out new versions of software, etc. We now have servers with spare capacity of CPU power, RAM, and storage space, loaded with virtualisation hypervisors. Virtual machines on these servers are the new "lab computers".

    Our CEO and all our seniormost engineers have experience in downloading Linux kernels from kernel.org and configuring them device driver by device driver to run on their laptops or desktops.

    In our eyes, TCP/IP and friends are an inseparable part of the Unix environment. We are familiar with tcpdump and often use it to get to the bottom of networking issues. We have been using raw telnet to connect to IMAP, POP3, SMTP, and HTTP ports to test and exercise servers for as long as we can remember. We do not know of any other way in which an engineer can claim familiarity with the systems around us.

  • Many engineering teams in many software companies use Linux the way people use cars. We are involved with Unix and Linux the way a good chef is involved with the dishes he prepares. And as some wise men said somewhere, you are what you eat.

RELATED READING