Principles

These are some of the principles I strive to apply constantly in my work :

  1. Talk, talk, talk
    I constantly communicate with my clients. For example, before I say yes or no to a job, I want to talk about the project’s goals, restrictions, limitations and peculiarities.  I want to talk about your company’s best coding practices. I want to know what your expectations are regarding my services. When I’m working on something, you’ll receive periodic updates on my progress. And after I deliver the goods, I’ll always ask you for feedback and suggestions. Communication is always good.
  2. The customer is NOT always right.
    When you hire me, you hire me to do a job to the best of my abilities. As such, if I can think of a better way to accomplish a task than the one you presented to me, I will politely suggest it to you. The final call is, of course, yours.
  3. You don’t pay me for writing code
    Anyone can learn to write code. Writing code is irrelevant. What is relevant is the logic behind the code, how well that logic does its job and how easy that logic is to understand. That’s what you really pay me for: good logic that does what it’s supposed to do and is easy to understand.
  4. Plan for the worst case scenario
    During software development, a lot of things can go wrong. From unwanted delays to hardware problems, things may not always go according to plan. Because of this, I have multiple computers I can work on (to prevent hardware-related problems), I make periodic backups of my work and all my time-related estimates are at least 20-30% higher than what it will likely take me to finish the job. All these things insure that the only surprises you’ll get from me are pleasant ones, like finishing a project ahead of schedule.
  5. I’m looking for a long term relationship
    Even if we’re talking about an one-off project, I like to believe that we will meet again in the future. As such, I always strive to build a long-lasting relationship with my clients. I won’t disappear off the map the next day after the project is over. Feel free to get in touch with me one week, one month or one year after a project is over. I’ll still be here.
  6. Have fun while working
    I want to have fun while I work on my projects. This is of immense value both to my customers and to me, as things always turn out better if you enjoy doing them. That being said, I will usually turn down hopeless, frustrating projects (ex: write a Google-killer search engine) or projects that are a real chore (ex: maintenance work for poorly-written Visual Basic code), regardless of how much it pays.