Logo for MacKenty Software Services MacKenty Software Services
Edmund R. MacKenty, Proprietor

Home Clients Resume Software Contact


These are the primary kinds of services I perform for clients:

Scalable and Extensible System Architectures
Does your software grow with your business? Systems written for a specific purpose today often require extensive reworking to meet your needs a year or two out, unless they are specifically designed to be expanded later on. I have a great deal of experience in creating platforms for future growth. The keys to this are scalability and extensibility, and I always incorporate these principles into my designs.

Scalable systems help you handle more data with the same software, to serve a growing customer base for example. Extensible systems let you add new features within an established design framework, making the new features cheaper to develop and less likely to introduce problems in the existing system. A good design incorporates both principles, increasing the value of the resulting system by reducing its future deployment costs.

Software Audits
Have you spent lots of money developing software only to find that it is buggy and unwieldy? Are you ready to throw it out and start over? I may be able to save your investment in that software. I am adept at spotting programming errors by reading the code, and in correcting design problems late in the game. Software often evolves away from its original design as features are added, and this increases the likelihood of unintentional interactions causing problems.

Such problems are seldom corrected, even though it is not very hard to do so, for two reasons. First, no one wants to go back and redo things when there are new features to be added to the product. Second, the people who wrote the code are overly-familier with it and unlikely to see the problems. It's like an author trying to proof-read their own book. I can solve both problems by auditing your software. Any software system with a life-span of over a year will tend to evolve away from its design, and needs to have periodic software audits.

Technology Planning
How do you select the technologies you need for your business? What criteria do you use to choose between Sun or Microsoft, JSP or PHP, integrating existing products or creating your own? I know these technologies: how they work, their advantages and disadvantages in various contexts, and some about how they will evolve in the future. I can help you select the right set of technologies to meet both your current and future needs.

Application Development
What kind of person does it take to design and develop robust applications? Good software requires the melding of several different disciplines: user interfaces, data structures, networking, workflow analysis, and more. Having a high level of expertise in all these areas allows me to create systems that solve your problems, not just some isolated portion of them. I have developed systems that have been the foundation of product lines with life-spans of a decade.

In the past few years, many people have been learning how to create "network-aware" applications. I've never done it any other way. For 20 years I've worked on systems designed to use the network transparently, communicating with other programs regardless of physical location. Designing for networking is intrinsic to the way I think about software.

UNIX Systems Programming
How do you know if you're hiring a true UNIX Guru for your important project? Lots of people know UNIX pretty well, but only a few of us really understand how the entire system works. I have been both developing on and administering UNIX systems for two decades, and know them inside and out. I was first declared a guru by my co-workers (you can't just declare yourself to be one) around 1986, when they realized that I had become the person to ask about all things UNIX. I have owned and operated my own UNIX system for about a decade, and it's been a peer node on the Internet for most of that time.

Because of my deep knowledge and experience, I can do just about anything on any level with UNIX. I wish I could be more specific here, but I just can't. If you need something done on a UNIX system, I can do it.

Website Development
Description coming soon...

Home  |  Clients  |  Resume  |  Software  |  Contact