2014-05-03 23_02_01-

Wayne Haythorn – Software resume
Main interests
Other Info
User interface design

>

Object oriented design

>

Training

>

Documentation

>

Languages

>

Contact

>

fadeMask

Use cases and software requirements

The key to writing good use cases is to be complete. Use cases are an accepted idea now, but a lot of them are written on the backs of napkins. In an agile project we might code from one use case, but still, the more completely that use case is described, the more surefooted the coding will be.

I think I was the first person to teach use cases in the United States:

Some of my advertising from the mid 90’s.

Usability

OK, I’m not a graphic designer. But this website does show what I care about in interface design – that users can find what they want, without getting confused or clicking the wrong button. When I make this view of the program a priority, I get a better design and better code overall.

Some notes on UI design

The UI is built around user actions

Close

Object oriented design

Design is the bridge between requirements and coding. A designer should produce specifications for code objects that will be straightforward to code and maintain. Most of the objects will represent things in the world, or things in computer world (like buttons and textboxes). But the key classes in a good design don’t really represent anything – they encapsulate sources of change.

Object oriented design doesn’t automatically lead to maintainability, reuse, and the other promised benefits. Object oriented languages give us tools that can be used to make a robust program, if we want to use them. I discussed these ideas in a paper published in the Journal of Object Oriented Programming in 1994:

What is Object Oriented Design?

Close

Technical Training

I have more than thirty years experience speaking in front of groups. I’ve taught a variety of technical subjects, done comedy and storytelling on stage, acted in award winning dramatic productions, and spoken before crowds at political rallies. My strengths are rigorous thinking, clear and simple language, humor, and attention to the audience.

Close

Documentation

Documentation is an afterthought in most software development, and it’s really hard. Even when we try, it is very difficult to describe something as dynamic as a program. Because I’ve done so much teaching, I’ve come to think of program code as a graphical object – people have to look at it, and in designing it we can ask what they see and understand.

Using graphic design principles developed by the statistician Edward Tufte, it’s possible to get a dramatic improvement in the expressive power of documentation.

The Programmer’s Picture Book

Close

Deep knowledge – C, C++, C#

I’ve programmed and taught the C family of languages for more than 30 years. Here’s some of my advertising from the early 90’s.

Journeyman knowledge

I have built programs using all of these languages, so I can program in them, but somebody who does it all the time would be faster than I am.

Web tools – including HTML, CSS, Javascript, JQuery, Ajax, XML/XSLT, JSON, PHP, WordPress, themes and plugins. When it’s relevant, my sites do well at search engine optimization. Links to a few of my websites

R and statistical analysis – Recently I’ve been working in R, writing a package which uses R and C++ to do smooth regression. Learn more about smooth regression.

SQL, data modeling – I’m good at SQL and data modeling, don’t know much about database admin issues like capacity planning, security, and so on.

Adobe web tools – Fireworks, Dreamweaver, Flash, some Premier.

Close

Wayne Haythorn
4125 SE Lincoln
Portland, OR 97214

wayne@haythorn.us

541-490-7291

Click here for a PDF of the resume.

Close