- 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...