About Me

What I Do

As a developer, consultant, educator, and researcher I work with Fortune 100, Fortune 500, and just about anybody else exploring better software development through design principles, design patterns, programming languages, and frameworks. I travel the world leading software development teams with project design and mentoring to use computer programming languages and environments to build better software, and I speak frequently on these topics.

In recent years I have focused on four prevalent environments for software applications: Java and JEE, .NET with C#, Node.js, and client-side programming in web browsers. I have senior experience is programming applications, web applications, and web services in all of these environments. I have done client-side programming web browsers since before JavaScript was released and I have extensive experience with all of the major client-side frameworks including jQuery, AngularJS, Backbone, and Ember.

While many managers focus on languages or frameworks and recruiting team members experienced in these areas, it is more important to acquire software architects who understand the core principles and patterns and how to apply them to any environment. Agile methodologies, test-driven development, and all of our other tools cannot succeed without a solid design. This is how I leverage solid principles from the core outward to specific frameworks and providers in order to build robust, secure applications:
All applications should deliver the characteristics of RAM: reliability, adaptability, and maintainability. The only way to achieve this, and be secure, is to establish a foundation supporting the fundamental principles of software design. At a minimum this means supporting Robert C. Martins SOLID principles and the DRY principle of Andy Hunt and Dave Thomas (Martin, Hunt). The popular Gang of Four Design Patterns are manifestations of these principles, so the principles are even more important than the patterns (Gamma). The principles and patterns must be applied at the software design level for all programming languages and application frameworks, and without doing that the selected environment cannot guarantee success no matter how good it may be.

With an intense curiosity and a continual desire to learn I have built a broad base of experience that covers application development in Java, .NET, and the Web, operating system development, network design and programming, relational database design, and system administration in Unix, Linux, Microsoft Windows and Apple OS X. This experience gives me valuable insight to consult on software development projects and teach software engineering appropriately using all of the technologies involved.

A snapshot of the methodologies, languages, platforms, and tools I use and can assist you with includes Scrum, Extreme Programming (XP), and Unified Process from the Agile Methodologies, the Java, Groovy, C#, JavaScript and Python programming languages, the Java, Spring, Grails, Hibernate, .NET, .NET MVC, ADO.NET Entity, WPF, WCF, Angular, Backbone, and Ember frameworks, jQuery and D3 libraries, the Unified Modeling Language (UML), Test-Driven Development (TDD), HTML5, CSS3, Bootstrap, Oracle, MS SQL, MySQL, MongoDB, NuoDB, and more.

Groups I Belong To

Institute of Electrical and Electronics Engineers
IEEE Computer Society
IEEE Communications Society
Association of Computing Machinery
Graphic Artists Guild

What I have Done

There are many, many interesting applications that I have developed and projects that I have worked on that are proprietary to one entity or another, and unfortunately I cannot talk about most of them. But, this brief list will give you some idea of the things I have accomplished:

Software projects I have designed and written

Developed a Web Portal with a Java EE web service back-end and a hybrid traditional web application and AngularJS interface. This application includes components for managing web forward facing web content, surveys, and certification exams.

Developed ASP.NET web application content-management software for political campaigns using C#.

Guided and wrote application software for the Laboratory-Office Network Experiment (LONEX) project for the United States Air Force Laboratory (formally Rome Air Development Center) using C, C++ and Unix.

Publications

“Angular Programming.” Miami: nTier Training, 2014.
“ASP.NET Web Application Development with C#.” Miami: Verizon, 2012.
“ASP.NET Web Application Development with VB.NET.” Miami: Verizon, 2012.
“ASP.NET and AJAX.” Miami: Verizon, 2012.
“Java Servlet Programming.” New York: Goldman Sachs, 1996.
“JavaScript Programming.” Miami: nTier Training, 2012.

Positions I have held

Consultant, Smallrock Internet, Coral Gables, Florida
Operating Systems Programmer at Miami-Dade County, Miami, Florida
Senior Systems Engineer at Computer Sciences Corporation, Falls Church, Virginia
Lead Software Engineer at GTE Government Systems, Westlake Village, California

No comments:

Post a Comment