Software developers

A software developer’s job is to deliver the right solution to the right problem. To do this effectively, software developers must be part of a group with a diverse combination of skills, and must understand the various roles involved. While developers’ primary focus is to write code, they also need to contribute to figuring out what code to write, and how to integrate it into the existing code base. Understanding all phases of the software development lifecycle allows developers to better understand their own role in that process.

As a software developer, my primary role has been to design and write code. But I have also been involved in vision and scope definition, gathering requirements and recommending solutions, documenting business rules, writing functional and technical documentation, creating wireframes and prototypes, product management and change management.

contributing to the successful design, implementation, delivery and maintenance of software applications. During this career, … A successful software development process requires a group with a passion for getting the product delivered, and an understanding of the various roles that work together to make that happen. It also requires a group with a diverse combination of hard and soft skills: understanding the business reasons to create a product, interviewing users, stakeholders and engineers, functional and technical design, programming, quality assurance, change management, risk management, training, documentation, and more.

If you are looking for someone who can make an immediate contribution to your software development or maintenance process, and who is passionately committed to getting the right job done right, please contact me.

This “blogfolio” contains a portfolio of my work. It also contains a blog that discusses technical topics involving JavaScript, Ruby, SQL, object-oriented design and TCP/IP.

Work Samples

Code

JavaScript: Object Creation Patterns
This code demonstrates four different patterns for creating objects in JavaScript. (View)

React/JavaScript: Tic-Tac-Toe Game
This is a tic-tac-toe game, written in JavaScript and React.  (View) (Play Game)

Ruby: Blackjack Game
This is a terminal-based version of Blackjack, written in Ruby.  (View)

Python: Port of Ruby Blackjack Game
This is a port of the Ruby blackjack game to Python.  (View)

C#: Multithreading, Using a RESTful Service
This code demonstrates the use of various features and techniques in C#.  (View)

VB.Net: Multithreading, Using a RESTful Service
This code duplicates the preceding C# sample in VB.Net.  (View)

Windows Win32 API: CBT Hooking
This code uses CBT hooking to customize the appearance of the Visual Basic message box.  (View)

T-SQL: Various Code Samples
SQL code routines to handle various database tasks.  (View)

Web Technologies
This code sample from the PPLS Tracking System application displays a modal dialog box that handles the adding of parts to or removing of parts from a particular distributor in a vendor table. All of the associated code is there, demonstrating a range of web technologies.  (View)

Documentation

HealthCompare.com: Technical Design
This is a technical design document for an enhancement to an online enrollment system application that enables the awarding of click-through commissions to linked websites.  (View)

UML: Documenting System Architecture and Behavior
This document contains a set of diagrams and other artifacts that document a software system. Taken together, the items illustrate a UML-based approach to documenting a problem domain, from a high-level overview down to details of architecture and behavior.  (View)

Diagrams
PD Manager: Property Item Wireframe
This is a wireframe sketch of a property item entry. A property item is an item that is being held by a police department in their property and evidence storage area.  (View)
Mixing BSCS: Process Barcode Scan
The Mixing Business Support Control System controls a rubber mixing machine that is part of an overall process of manufacturing tires. This diagram shows all the checks that are made to a bale of rubber in the input queue before allowing it to be introduced into the mixer.  (View)
PPLS: Process Vendor RFQs
This diagram shows the flow of work for generating Vendor RFQs (Requests for Quote) for multiple open DIBBS (Defense Logistics Agency Internet Bulletin Board System) solicitations for a single NSN (National Stock Number). (View)

Testimonials

Robert combines his excellent technical skills with highly developed interpersonal awareness and communication skills to deliver superior results. His curious, insightful and engaging personality makes Robert a valuable contributor on any team or project.

Michael Greenhouse
Founder, President and CEO at Integria Consulting Company

Robert brings a lot of experience to every challenge he takes on. That experience combined with his tenacity to get the job done is something that will benefit any organization. You take all that and put it together with his maturity in the job and steadfast desire to do the right thing and you have an exceptional employee. I highly recommend Robert to you.

Mario Soberal
Executive Director, Shift3/Health-Bitwise Industries

Robert’s attention to detail is extraordinary. He has the ability to see through the weeds and recommend improvements that lead to efficiency gains and overall process improvement. Robert’s work ethic and dedication allow him to work independently with little supervision. His knowledge of the IT industry and deep experience make him a true asset to any organization.

Nelson Allen
Vice President of Application Development at Global Indemnity

More Testimonials …

Case Studies

Western United Insurance

I began working for a company whose software development department had grown from five to 60 members over the previous five years. At the time I came in, they were handling changes pretty much the same way they did when they only had five people: walking over to each others’ desks and coordinating the change verbally, then writing it into an Excel spreadsheet.  More …

Jack Demmer Ford

A business manager at a Ford dealership had an idea for a point-of-sale software application. Ford’s rebate program is rather convoluted, and they were having difficulty figuring out in real time which rebates applied in which sales situations.

“Chargebacks,” or money charged back to the dealer by the manufacturer for improperly awarded rebates and/or incentives, were a particular problem; since it was hard to know whether a particular rebate or incentive applied, managers were often not applying them when they were available. A secondary concern was to see if we could reduce unit holding costs by having a clearer picture of inventory age during the sales process.  More …

Expander Americas

I was once asked to come in to the office of a small manufacturer of specialty parts for large construction equipment, and advise them on what they needed to handle sales leads. I came in and met with the owner. They were using a Lotus Domino application to track their inventory, and were considering using an off-the-shelf CRM package.  More …

Articles

Garbage Collection in JavaScript

Garbage collection is a process of automatically releasing memory when it is no longer in use. In lower-level languages such as C, it is often necessary to allocate and deallocate memory manually. When... READ MORE

Ruby: Scope and Closures

Scope An entity’s scope is the area of the application in which it is “visible.” For example, a variable’s scope is the area of an application that can access the variable. And an... READ MORE