A concise answer is, “I innovate.” More specifically, I am driven by a passion to search for new ways to solve problems, build solutions to those problems, and deliver those solutions where they are most needed (and most valued). In this pursuit, I wear many hats: entrepreneur, visionary, instructor, student, but mostly, software guy. EntrepreneurI find innovation itself to be deeply satisfying, but to make a living, it must also generate an income. To this end, I am an entrepreneur. I have been a founder of several companies; raised venture capital; managed shareholders, employee, and contractors; established joint ventures; worked with software dealers and distributors; negotiated technology licenses with Fortune-500 companies; negotiated numerous royalty agreements, and sold three businesses. VisionaryA new product or service begins as nothing more than an idea. For it to become reality, others must understand and believe the vision. My role as visionary is to clearly articulate the details of a specific problem, why and to whom a solution is of value, and how a solution can be achieved. InstructorEffective teaching is an important skill for bringing a new innovation to life. I enjoy speaking to groups, especially when conveying new ideas. I have taught college courses and seminars; spoken at conferences and at business and professional associations; written for trade journals; trained sales forces; and trained engineers. StudentI devote a great deal of time to studying new things. I believe it is important to learn as much as possible. Occasionally, what must be studied is clear. More often, the value of learning something new cannot be known in advance. Innovation most often emerges from simultaneously knowing many things, asking many questions, and discovering new ways to combine ideas. Innovation has no roadmap, but one can prepare to innovate. Software GuyI never know whether to say “programmer”, “software engineer”, “software architect”, “software developer”, etc. Everybody understands “software guy” so I tend to use that term most often. I have written millions of lines of code in C, C++, Java, JavaScript, FORTRAN, Forth, Pascal, Algol, Modula-2, Lisp, Basic, BCPL, PL/I, various assembly languages, APL and a slew of other odd languages. Driven, at first, by my own desire to create software at an ever faster pace, I began creating tools to accelerate the process of writing software. I’ve created compilers, decompilers, parsers, code generators, version control systems, editors, repositories, reengineering tools, and various other development tools. While specializing in development tools for much of the past twenty years, I’ve also created software for many other problem domains, including: home automation, embedded systems, CAD/CAM, 3-D modeling, real-time systems, communications and networking, encryption/decryption, data compression, security, Medicaid billing, e-mailing, computer graphics, printing, advertising, and others. When it comes to software, I can design it, code it, debug it, port it, reengineer it, and maintain it. In short, I get it. |