Contact Information
This email address is being protected from spambots. You need JavaScript enabled to view it.
Symmetric Designs
P.O. Box 1313
State College, PA 16804-1313

Symmetric Designs logo Symmetric Designs, a sole proprietorship, is currently concentrating on the development of iOS applications, Joomla! extensions, and website tools.  Current products include Calendar Filter, an iOS application that filters and display users calendar events; gCalMarkup, a Joomla! extension to filter and display calendar events on Joomla! hosted web sites; and sdMacros, a Joomla! extension used to encapsulate commonly used blocks of HTML and Javascript into simple commands usable by authors without coding knowledge;

 

History

Symmetric Designs was started in 1998 to develop a product called "Live Components" that was used to display live mathematical equations on web sites.  The tool automatically creates Java applets to solve math equations specified by an associated MathML (Xml) file.  The technology was patented and sold in 2006.  Symmetric Designs also developed DaysUntil.com, a website containing world wide events and their dates on various calendars including Hebrew, Islamic, Chinese, Gregorian, etc.

 

Design Philosophy

The primary design philosophy at Symmetric Designs, as can probably be guessed from the name, is symmetry.  Symmetry is everywhere, and applies to almost everything in some way... and hardware and software design are no exception.

Creating an elegant design is like carving a beautiful sculpture. As sculptors sometimes say, it’s all about releasing the object inside by removing the material that doesn't belong.  In technical design, it’s all about figuring out the inherent symmetries and asymmetries as you code, and shaping the code to match the logic inherent in the system you are creating. When hardware and software match the inherent system logic, you have an elegant design…a finished sculpture.

Where possible you need to plan and understand your design up front, it saves much time in the long run. But, except for simple designs, this is often not possible. A large part of designing a complex system is learning about it. Figuring out what the inherent logic is and matching it. You have to be willing to rewrite, redesign, throw away, start over on those pieces that you had the most to learn about. These are the parts that are difficult or impossible to schedule, but if you want elegant, symmetric design, it is necessary. Practicality comes into play here. In the corporate world making real products (and money) is the goal, not necessarily designing elegant software, although the two have a relationship.