Peter J. Hanson - Establishing Ability and Credibility
Seeking Chief Architect & Senior Software Developer Opportunities

I'm technical and easy to work with.
Resume
|
906-281-1178 |
Peter@pkhanson.com
Introduction:
I'm interested in helping you navigate technical complexity to solve your problems and see your ideas evolve into working solutions. I have over a decade of experience in designing and rolling out custom enterprise and web-based solutions for start-up, design, communications, entertainment, healthcare, professional services, newspaper, manufacturing, engineering, retail, and government organizations.
My specific areas of expertise include systems analysis and design, interface design, rapid application development, infrastructure analysis and maintenance, implementation rollout and support, systems administration, and database design and administration. I have worked in these capacities for many organizations across the United States.
What follows introduces my years of experience at-a-glance, testimonials and letters of recommendation, previous work, code samples, technical skills, letters of recommendation, information you may find relevant, personal information, and my final thoughts. If you find that I've not written about something that you'd like to see, I hope you please let me know, and I'll get it to you right away.
Years of Experience, Core Strengths, & Education At-a-Glance:
- Technical Solution Design: I have been working with customer teams since 1995 to deliver technical solutions. I focus on systems using PHP, SQL, AJAX, and Apache (LAMP stack development). (I have peers and know others who can manage .NET, Ruby, RIA (Flash, Silverlight, etc), C++, & Java solution design and development. Please email me, and I'll put you in touch.)
- Software Development Team Management & Leadership: Since 2001, I've led a development team within Up and Running.
- Software Development Experience:
- Programming: Since 1994
- SQL & Database Design: Since 1997
- PHP: Extensively since 2001
- JavaScript and XML: Extensively since 2003 (NOTE: AJAX stands for Asynchronous JavaScript and XML; thus, I've been using the building blocks of AJAX since 2003.)
- Apache & Linux: Since 2001
- Core Non-technical Strengths: Translating business requirements into working systems that add value, understanding the importance of communication, believing in the balance of pragmatism and perfectionism in programming, and taking a personal interest in your success.
- Education:
Most of my software development and management knowledge has been through self-learning via experience
through application and reading online and print materials. However, I do have a B.S. degree in
Management of Information Systems from Michigan Technological University
(MTU). I also nearly have the credits to have a Mechanical Engineering degree as well. It's a
well-known university in the engineering community, and such technical companies as Google, Microsoft,
and IBM recruit MTU graduates. GE, GM, Ford, Dow Chemical, Boeing, and many other multinationals
recruit MTU graduates as well.
Return to top
Testimonials and Letters of Recommendation:
Communicating Success from Previous Clients' Perspectives: here are several letters of recommendation from clients of systems where I served as Chief Architect and led the Development Team. With the following, I'd like to focus on some of the intangibles that Up and Running offers in terms of how we do the work and how we build relationships with our customers. Here are the summaries and links to the full letters:
-
Portage Health's Letter of Recommendation
-
This relationship has resulted in a beautiful website (Portage Health
)
and an equally beautiful architecture that drives Intranet and Internet operations using the same data. Karin Van Dyke, Vice President of Portage Health, said some kind
things about us in this letter, including, "What impressed me most about Up and Running's approach to our project was their vision and leadership, commitment to the customer,
insistence on setting realistic goals with succinct timelines, organization and project management, education and coaching."
-
Paragon Business Solutions' Letter of Recommendation
-
Karen Hamilton runs a service organization called
Paragon Business Solutions, Inc
that helps companies improve their quality and achieve/maintain quality certifications such as ISO 9001, ISO 14001, and BSI 18001. Since Karen has a high standard for
quality in processes, I'm very pleased to have received her recommendation. Her letter notes that, "We have been working with Up and Running for almost two years. During
that time they have shown to be extremely competent professionally, and, just as important very customer focused." She also cites an example of where we go beyond the scope
of work to troubleshoot and correct a problem with the end customer's IT infrastructure that was impacting the project's success.
-
Advancia Corporation's Letter of Recommendation
-
I believe this project highlights our customer commitment and mentality to do what it takes to ensure the customer is successful. We were asked to help support them onsite
from a software perspective, and we ended up helping them in many other areas outside the scope of our duties, including printing batch runs into the early morning,
configuring and supporting a LAN and wireless network, and providing direct customer support to our customer's customers (event goers).
-
Rotary's Letter of Recommendation
-
We served three of the districts in one of the largest service organizations in the world, Rotary. This sentence says a lot, "The product was great, but I think it's the
dependable service, flexibility, and cooperativeness that really sets Ian and Up and Running apart." (Ian McKilligan is my business partner, and manages the operations of
the company. I led all the development for this project.)
-
Physician's Insight's Letter of Recommendation
-
I'm proud of this solution because we were the third software provider David and Carol contracted with for this work, and we accomplished much more and at a lower cost
than the preceding companies did. Through our work I think we reestablished their trust in the software development community, which is another accomplishment because
I dislike when others tarnish our industry's reputation. Also, it's gratifying to read their comments that we delivered a system that works how they want it to. This is
extremely pleasing to read given that we were under budget and on time, making this project a big success in the customer's and our eyes. I attribute this to our agile,
personal style of developing software, and I believe it's resulted in a relationship where we're a trusted partner with Physician's Insight.
Return to top
Previous Work: sites I've personally developed, managed, and implemented:
Public sites:
Here are some quick links to sites I've implemented or helped with:
- http://portagehealth.org/
(Lead Developer, back-end and front-end work; no graphics design) - http://artsopolis.com
(Contributing Senior Developer, back-end and AJAX work) - http://oilandgasinvestor.com/
(Contributing Senior Developer, back-end work only) - http://voices.com/
(Lead Developer, back-end and front-end work; no graphics design) - http://remedylife.com/
(Contributing Senior Developer, back-end work only)
Most of my work is the programming on Intranet sites or administrative features of public websites. As an example of the latter, I've made a framework that has all the features as described in the PDF document titled, "Up and Running -- Complete Listing of UAR ABLE System Features.pdf"
. This framework supports over 30
customer websites currently. This is our largest effort to date, and includes over 14,000 man hours of work.
It handles administrative operations, provides database transparency, manages data relationships,
administers user management, and facilitates code reuse. It's usable in nearly any business for Intranet,
Extranet, or Intranet activities.
Here are some other examples:
- One is at GS Engineering
. They use my product to
manage all their projects, track all billable time, manage payroll, and more. - Another is at Physician's Insight. I developed a radiology management website that allows for easy communication between physicians and radiologists.
- The internal workings of Portage Health are notable.
- I developed a website using Perl to manage Little Caesars Amateur Hockey League's
teams, statistics, and scheduling. This is the largest amateur hockey league in the world.
Return to top
Code Samples: most are php-based; I can get you others if you'd like:
PHP Code Samples:
- account.php ( source code - text file ): This is a data model class that holds information on a project or charge account. It also has accessors for its child data that uses the lazy load pattern.
- conditionbase.php ( source code - text file ): This is an abstract base class for the condition component of an alert. An actual test extends this and provides the data that the base methods run against.
- entityrelationship.php ( source code - text file ): This provides a generic association model for any two entities in one of the systems I developed. An example usage is associating a person/contact record to a system user record or an address record.
- file.php ( source code - text file ): This is a file abstraction that represents a file on the file system. It provides convenient methods for accessing various properties and can tie into other parts of the framework.
- objectparser.php ( source code - text file ): This is a recursive parsing routine that uses reflection to analyze an object to generate a list of values from that object that can then be indexed through my search engine.
- persongroup.php ( source code - text file ): This is a sample datasource used to abstract out data persistence of the data model layer. It handles all SQL queries for this type of entity.
- single.php ( source code - text file ): This is a component called a displayer that takes a particular model and is designed to display it in some way. The models are assembled by the controller component of the framework and in the view is where the displayer is specified. It's then hooked into a certain point in a website's template.
- followup-model.php ( source code - text file ): This is a primary object model of the system. It provides properties to hold data about a follow-up and any methods that describe actions on the follow-up. A datasource that implements the follow-up interface can be set to the model for persistence handling. This datasource (please see "followup-datasource.php") could be tied to a database, an RSS feed, another application, a SOAP interface, etc.
- followup-datasource.php ( source code - text file ): This class provides methods for retrieving follow-up data and persisting it to a database that's configured through the ADODB abstraction layer. It conforms to an interface that the follow-up model and follow-up list models look for in their datasources.
- processfollowup.php ( source code - text file ): This is a sample command in the command controller system for processing follow-up data from some form of HTTP GET/POST submission. This is usually the last stage in data processing, after validation and taint testing commands have cleaned up the data.
JavaScript Code Samples:
- protopopup.js ( source code - text file ): This JavaScript class allows for the creation of a flexible popup layer for showing additional information on any element or action in any project. The setup is easy: you define the ID of an element that triggers the popup, the source of the popup's content, which can be an ID of an element or a URL that is fetched by AJAX, and an options hash for additional settings. It makes use of Prototype and Script.aculo.us for various opening and closing effects.
- admincalendar.js ( source code - text file ): This JavaScript class drives an admin interface for a calendar. Most of the calendar is dynamic and operates through JavaScript, and this file manages those operations. The logic makes use of Prototype and Script.aculo.us.
- notifications.js and showonload.js ( source code - text files: notifications.js.txt or showonload.js.txt ): These are used to drive a simple message handling system. The HTML layout in which these are used will have a hidden DIV tag with an id of status. The DIV is designed so that PHP writes its messages there, and then loads the showonload.js file if there are messages to display, which causes the layer to flash nicely after the page is finished loading. Once the page is loaded, JavaScript can also write to the DIV for any need. This system uses Prototype and Script.aculo.us.
Return to top
Programming & Other Technical Skills:
- PHP 4/5.x
- I've been using PHP since 2001, and it's my primary language. I can support any LAMP-stack development effort.
- OOP: most of the code I write is object oriented with a focus on reusability and resiliency to change. When I decide not to write OO code, it's for a specific reason.
- Libraries I commonly use: Apache, Bzip2, cURL, FTP, GD Graphics Library, IMAP, LDAP, Mcrypt, Mhash, MySQL, OpenSSL, PayFlow Pro, PDF, PostgreSQL, Pspell, Regular expressions, SMTP, SimpleXML, XML, and ZIP
- Other experience: IMagick and memcache
- Projects:
- Event management framework that Rotary and the U.S. Army used
- Team management system for tracking player and team data for a hockey and soccer league
- UAR ABLE (
full list of features
): an ERP solution that handles a variety of business functions, oriented towards
service-based organizations - VeriSign's Payflow Pro API
- A job manager/job application system for Portage Health (hospital system) and a local non-profit to promote professional jobs
- Calendar components similar to Google Calendars
- Please see the attached file, "
Up and Running -- Complete Listing of UAR ABLE System Features.pdf
", for a full list
of features that the UAR ABLE framework supports, all written in PHP 5
- Databases: two of my core strengths are database design and database management:
- I currently manage ~20 different databases in MySQL/PostgreSQL, with the largest being ~200 tables, which is responsible for a number of sites' data (UAR ABLE framework). I have been using databases and SQL since 1997.
- I've modified existing open source databases to perform better by adding or extending features.
- I've created systems with shared database access among different applications, running on different platforms.
- I am well versed in advanced database operations, such as transition management, triggers, views, complicated queries, and stored procedures.
- I have extensive experience writing SQL and know every nearly every nuance of the SQL 99 standard (basic queries, types of joins, utilizing sub queries, views, temp tables, transactional processing, etc.), including a number of proprietary features like stored procedures and VBA scripting in Access.
- I've also used a number of abstraction layers for database communication, including ADO, ADOdb (PHP), DB (PHP), and NpgSQL (more of a driver than abstraction). Features utilized in these layers on past projects include: stored procedure execution, caching and performance enhancers, record set selectors, and performance monitoring.
- Most of my applications that involve a database are built with a datasource layer between the main system objects and the actual SQL queries that manipulate the database, accomplished using the Domain Object Model and the Data Mapper pattern. I've also written applications that use the Active Record pattern.
- SQL
- In all of my programming work, I've used SQL for database operations.
- I've written queries for accessing data directly and routines that assemble SQL on the fly.
- I've worked with existing SQL statements, both using them as is, and optimizing them if needed
- JavaScript/AJAX
- I've used JavaScript in nearly all of Up and Running's web-based applications.
- I use Prototype, Mootools, Ext JS, YUI, and Script.aculo.us regularly.
- At Up and Running, XML supports configuration settings and AJAX output on various web applications.
- I wrote extended and custom JavaScript objects to accomplish a particular difficult set of functionality that wouldn't be handled well otherwise by older client/server cycles.
- I know how to use XML and JSON for AJAX requests.
- I built shopping cart-style systems out of AJAX.
- XML
- I use XML at Up and Running and have used it at PCI.
- At Up and Running, XML supports configuration settings and AJAX output on various web applications.
- At PCI, XML served as a storage mechanism for quality data. XLST allowed for various presentations of that data on the Intranet.
- I designed and deployed SOAP interfaces.
- I used DTD's to generate custom API's.
- I can syndicate any content for use in mashups, portal pages, RSS readers, and more.
- HTML/CSS
- I've built web-based systems for several companies I've worked with.
- Most systems were created to manage business functions for a select group of users and uses, though there have been a number of public websites too.
- I generally design and write XHTML or DIV style layouts for sites, utilizing CSS for markup. I can work with the older table layout method as well.
- I've worked with templating engines before and wrote one for the UAR ABLE framework as well, which integrates into a custom CMS system.
- Perl
- For an Up and Running customer, the largest amateur hockey league in the world, I wrote a team management system that ran a 900+ team hockey league that had over 10,000 user accounts.
- I currently use Perl for maintenance tasks and one-liners in command line chained commands.
- C#
- I've used C# to write an online backup tool.
- I also used this to write a client-based application to work with my web-based framework for entering time easily.
- Interfaces
- I know the methods with which applications can talk, and the abstract pros/cons of each approach. In my career I've worked with numerous API's, interfaces, and code to make different tools work together well.
- I can configure any SOAP interface needed to make a system work with other systems, or design and deploy a specific API for interaction with a third-party application.
- Examples of interfaces I've worked with:
- Google APIs
- Paypal's interfaces
- Various shopping carts
- VeriSign's Payflow Pro API
- Intuit's QuickBooks Interface
- CMS
- I've developed my own CMS within a framework that supports many features beyond strictly CMS features. Please see the document titled, "Up and Running -- Complete Listing of UAR ABLE System Features.pdf" for more information on these features.
- I've used and evaluated several open source CMS packages and frameworks, and have extended them using custom code.
- My CMS handles dynamic page and navigation creation, along with version-controlled content. I can also create inline editing features as needed.
- I've done CMS conversions, both from static sites and CMS-driven sites.
- CodeIgniter: open source PHP Framework
- I added CMS functionality and a drag-and-drop layout system within an application that uses CodeIgniter.
- I wrote a basic ActiveRecord base object that supports the pattern better than the built-in active record system.
- CakePHP: open source PHP Framework
- I used a built-in active record system to construct order management and fulfillment processes.
- I integrated mootools ("a super lightweight web2.0 javascript framework") into the framework.
- I developed a small, rich text controls helper, providing autocomplete and date picker functionality.
- Zend: open source PHP Framework
- A major project I was involved with used Zend to connect one customer with all of its customers so it could provide value-added services to them automatically. The system was developed so it could be applied to other sectors the primary customer serves with no retooling.
- I used Zend to create a delivery management system, including the front-end customer interface and a fully-functional back-end system for managing the business logic.
- I used components, including Zend_Forms, the Zend database tables ORM layer, and custom-written functional classes, for the model interaction.
- I tied in jQuery to provide rich, AJAX-driven features on the front-end side.
- WordPress: PHP CMS or Publishing Platform
- We wrote a REST API handler and several plugins for a WordPress implementation for a site that consistently remains in the top 100 Alexa ranked sites in the United States.
- I can implement any theme, plugin, or customization that's needed. Of course, it'll be easier if we select components that work well together from the start, but I can write new functionality to replicate or extend any features you wish.
- E-commerce
- I've worked with open source, hosted, and custom-built shopping carts.
- I've worked with payment and accounting interfaces.
- I view E-commerce workflows as a subset of business workflows. There are two components in my opinion related to E-commerce:
- End-user presentation with calls to actions, generally to purchase or encourage more research internal to the site, and procedures to encourage more spending and loyalty.
- Back-office operations for allowing more to get done with fewer resources, and, in fact, encouraging and allowing end users to perform as much of these as possible.
- Mac/PC Use Experience
- Mac:
- I have programmed web services to ensure they work in Safari (though Safari usually handles compliancy well).
- I know Linux, which is based on Unix, and Mac O/S is based on BSD. Though I don't use the MAC O/S often, my Linux knowledge along with my general knowledge of technology allows me to navigate it and find answers quickly if I don't know how to do something right away.
- PC:
- I have programmed web services to ensure they work on the most popular PC-based web browsers.
- I've supported or managed the support of PC's and server environments since 1995.
- Mac:
- Linux/Apache
- I've managed Apache and sendmail processes since 2001 at Up and Running.
- I maintain a virtualized machine that hosts redundant firewalls, production, test, database, and staging machines.
- I would rate my systems administration skills in the Linux community as advanced.
- I use memcache, which "is a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load." (Source: http://www.danga.com/memcached/)
- I have used apache mod_rewrite to protect a web accessible folder and modify the requested url to call a wrapper script that can use a web application's security system to access the file. This is beneficial in that standard FTP and HTTP file operations on the webserver continue to work as defined, and are enforced by the web application.
- Most web applications I've written also use email communication, and I've written a set of routines to handle these tasks for us in PHP.
- Distributions I've used:
- Gentoo
- Red Hat
- Debian
- Cent OS
- RHEL
- Ubuntu
- Slackware
- Knoppix
- FreeBSD
- SuSE
- Experience in using and interpreting web standards (browsers, accessibility, and validity)
- I develop according to W3C standards, and write code to enable browsers that do not always conform to W3C standards.
- I stick to the standards as much as possible and when I can't do that, I use industry wide/supported alternatives to achieve the functionality I'm after.
- I use transitional HTML 4.0 or transitional XHTML 1.0 doc types for my pages. This limits the occurrences of "quirks mode" being enabled, reducing most of the display discrepancies experienced between browser platforms.
- I also design my pages in a DIV/CSS style layout, making it very easy to present the page differently using alternate style sheets. This same design enables me to write for screen readers or brail readers just as easily. I can also format pages to display on handhelds.
- My framework can also support alternate configurations of the data for different viewing mechanisms. For instance, I can provide a full Web 2.0 interface for regular browsers, and, with the same data, have a complete set of alternate views for use with a PDA or screen reader, which typically cannot handle JavaScript.
- Systems Architect Experience
- I have been the lead Systems Architect at Up and Running for Technology solutions since its beginning in 1995. I have served in this role for many Up and Running clients and for previous employers.
- I know both worlds. I have technical skills at the micro and macro levels, and I can move between specialist and generalist-level thinking quickly as needed. In summary, I can implement and architect, which I believe allows me to produce more in either area.
- I believe the ability to organize a system arrives after understanding the processes and components of that system, in this case the system that enables the development, deployment, and maintenance of software. There are the technical aspects (hardware and software), the process aspects (methodologies for software development and communication, systems architecture, managing people, managing projects, client interaction, and more), and finally and most importantly, the ability to assemble a good team and create the environment that enables and promotes success. All of these must be done while balancing scope, money, and resources. Each project offers its own challenges and rewards as each project requires its own mixture of these elements.
- I know how to research options for all aspects of a software project and present these options to stakeholders intelligently. I know that each stakeholder has his or her decision factors, and that it's important that they be able to assess options easily and quickly. I also understand that I should give my recommendation if it's applicable and state pros and cons of a particular decision as it relates to the software development teams' effectiveness.
- ORM Experience: I would like to demonstrate my knowledge of this advanced pattern by describing how it works and how I've used it:
- This is a technique that allows the translation between relational data structures and object data structures. Generally, you see this used when you have an object model system that defines your domain knowledge and you're storing the persistent data in a relational database. The two don't always map correctly so this layer provides translation.
- There are a number of packages that can do a lot of this automatically for you through some basic configuration, but the most complete solution is usually achieved by writing a custom ORM system for the specific domain problem faced.
- I've written a custom ORM between the UAR ABLE framework's model system and the datasources that track and query persistent data.
- MVC Experience: I would like to demonstrate my knowledge of this advanced pattern by describing how it works and how I've used it:
- This is a pattern for developing applications that makes use of reusable UI interfaces and object models. The controller glues the view and the model together by defining what parts of the model show up in the view. The view takes input, which goes through the controller for translation to the model.
- The model can then update the view through an observer pattern.
- I've used a variant of this (Model 2) in the UAR ABLE framework. The controller defines the combination of functionality that takes place for a page and feeds the view the necessary models that are needed to make it display. I've also started developing more of a standard MVC pattern in the UAR ABLE framework, using JavaScript and the Prototype library to provide real-time updates on the client-side page.
- Besides designing my own framework, I've used the CakePHP, CodeIgnitor, and ZEND frameworks, which use this pattern. (My experience with each of these is presented in more detail in this online resume.) I hope you please read how I respond when people ask me if I have experience in tools I have not applied for customers yet.
- Graphics Design
- I have studied UI design, and have been applying it for years; I believe I've helped improve navigation and usability for many websites.
- I have basic graphics development skills (Adobe products & GIMP), though I prefer to seek design help for graphics, content and the more aesthetic aspects of website creation. I enjoy more and believe I contribute most to working on the engine of the software system.
- I do understand design in the sense that I know it's challenging, is complex, and requires the mastery of several arts, similar to software development. I have enough knowledge to communicate well with designers and graphics development teams. I have served as the software development contact for Design businesses and Communications departments. When our arts are combined, I think great things happen.
- SEO/SEM: I have working knowledge of this. However, to do this extremely well, depending on the site, this could easily be a full-time position in and of itself.
- Pear: I've used several packages from it, including the debug framework, phpUnit, and phpDocumentor. We also use the class naming structure that the PEAR libraries follow.
- Tools: These are the tools I use to organize work, and get work done faster. I've used many, and can adapt to what your preferences are.
- Version Control System or Source Configuration Management (SCM): I use Subversion (SVN) to manage my codebase. I also use Concurrent Versions System (CVS) for some of my customer projects.
- Collaborative Software: wikis, SharePoint, Google Sites, Basecamp, Exchange, and custom Intranets
- Communication: email, VOIP on an internal Asterisk solution, Treo with Jawbone headset, and Pidgin with most IM accounts
- Desktop Sharing: Ultra VNC and CrossLoop
- Bug Tracking: Mantis and FogBugz. I have used Bugzilla, RT, and Flyspray.
- Project Management: spreadsheets (I believe Excel or Google Docs can accomplish most PM needs; people and processes are more important than the tool.), Microsoft Project, SharePoint, BaseCamp, and custom systems
- Browser Testing: Firefox's Web Developer Toolbar and Firebug and IE's Web Developer Toolbar. I also run VMware on my Gentoo computer to QA systems on various browser versions: Windows XP Pro with IE7, Windows 2000 with IE6, Ubuntu with Opera and Konqueror, and another Gentoo environment for a clean development environment.
- Editors and/or Integrated Development Environments (IDE): Gvim/Vim, Eclipse, Visual Studio, and the Linux Command Line
- Advanced Search Solutions: I've written a few full-text index search systems that index content information in MySQL and PostgreSQL. The most complicated search system I've written is within my custom framework; it can take a system object, use reflection to process its getter methods and child relationships to generate an index list, and store that in a generic search table. A system-level search then allows those object items to be pulled up off of keywords, and directs the user to correct views that render that object's data. It's fast, flexible, and allows for any model data to be searched for and displayed.
- Technologies that I'm not an expert at and that I'm often asked about: Here's how I usually answer when asked if I know a tool based on programming languages I know: understanding the primary underlying technologies (PHP & SQL, for example) is the key. My learning curve is more of a flat line at this point in my career when it comes to using most tools. Another way to present this is: I have theory and experience across many tools, languages, and processes that I can apply regardless of the new widget, tool, or methodology. I'm not claiming to be an expert at everything, rather a highly-adaptable professional when it comes to any tool related to web services.
Return to top
Other Relevant Information:
- Usability: I subscribe to Jakob Nielson's, one of the industry's noted experts on user interface design, alerts, and have studied user interface design. My primary concerns are usability and flexibility when creating a UI. I have read these books so that I can work better with copywriters and designers, and design better myself:
- "The Design of Everyday Things"
Amazon link
- "The Inmates Are Running the Asylum"
Amazon link
- "Homepage Usability: 50 Websites Deconstructed" (by Jakob Nielson)
Amazon link
- "The Design of Sites: Patterns for Creating Winning Web Sites (2nd Edition)"
Amazon link
- "Waiting for Your Cat to Bark?: Persuading Customers When They Ignore Marketing"
Amazon link
- "Call to Action: Secret Formulas to Improve Online Results"
Amazon link
- "Persuasive Online Copywriting: How to Take Your Words to the Bank"
Amazon link
- "The Design of Everyday Things"
Amazon link
- Agile Development
- Up and Running, the company I founded, believes in the Agile methodology for development and deployment of software because of its focus on the customer and the customer's feedback.
- I've used more standard forms of development life (waterfall) cycles. I recognize the importance of following the customer's preferred means of doing work, and am able to adapt to any software development methodology.
- I believe this methodology is responsible for Up and Running being able to deliver products that customers use and like.
- Testing:
- I believe in using a test process that involves all stakeholders: primary programmers, peer programmers, quality assurance specialists, project managers, and, most importantly, the customer.
- I believe developers should use these tools and methods to test their work: Peer Reviews, Unit Testing, Automatic Build Testing, Test Cases, User Story Confirmations, User Interface and Navigation Checklists, and Development Completion Checklists.
- I think project managers and quality assurance specialists should use these tools and methods to check a developer's work: Test Cases, User Story Confirmations, and User Interface and Navigation Checklists.
- I use tracer bullet development (Hunt, Andrew and David Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison Wesley, 1999.) on larger scale systems to retrieve faster feedback from customers on UI designs and system workflows.
Amazon link
- Besides the book mentioned above, I have read these books on the subject:
- "Agile Retrospectives: Making Good Teams Great"
Amazon link
- "Practices of an Agile Developer: Working in the Real World"
Amazon link
- "Release It!: Design and Deploy Production-Ready Software" (Less Agile, but applicable.)
Amazon link
- "Ship it! A Practical Guide to Successful Software Projects" (Less Agile, but applicable.)
Amazon link
- Besides the above, I have read books on estimation, managing software developers, and the requirements gathering process.
- "Agile Retrospectives: Making Good Teams Great"
Amazon link
- Leadership
- I have helped grow Up and Running from a single person in 1995 to an organization that that has 14 employees, and serves customers across the nation.
- I recognize that leadership is setting the direction, and that management is ensuring that direction is fulfilled efficiently.
- I know the relationship between Vision, Mission, Values, and Strategic Goals.
- At the start of software projects, I like to ensure that the vision and mission of the project is in direct alignment with the organization's vision and mission.
- I think it's important that people and projects have their own organization-focused vision, mission, and goals.
- I have read books by Jim Collins, Peter Drucker, Stephen Covey, and Tom Peters on leadership and management topics.
- Management
- I believe a manager needs to set the stage for success, and do whatever is needed to help team members achieve success.
- I have learned how to assess potential team members, as well as ways to quickly learn if someone is capable.
- I have hired and fired people; though I don't enjoy the latter at all, I view it as a responsibility if the person is not improving after being given the opportunity to do so once given objective, constructive feedback.
- I have led, coached, and mentored other team members, and enjoy learning from my team members, my team lead, and all other peers.
- I have read materials on how Microsoft ("How Would You Move Mount Fuji?" (
Amazon link
)) and Google (online) hires, and have created two interviews to test for developer aptitude.
- I've written template job descriptions and responsibilities for organization webmasters.
- The Agile books I've read allow me to be a better manager operationally.
- Team Work
- The foundation of a project's success is its people and the relationship between those people. It's important for the team members to have a shared goal, the tools to do their job, the knowledge to do their job, and respect and trust for one another.
- I have been working with customer teams since 1995 to deliver technical solutions.
- I have experience working with remote contractors and developers using various tools to manage projects, time, and collaboration.
- I have led, coached, and mentored other team members, and enjoy learning from my team members, my team lead, and all other peers.
- I am one of the owners in a company with the other owners living in Michigan and California; I'm used to working remotely, and can deliver results doing so.
- Interpersonal and Oral/written Communication Skills: I hope the letters of recommendation attest to my abilities in these areas. English is my primary language.
- Analytical Abilities:
It's hard for me to demonstrate these in writing, but I'll attempt to. I have taken personality type tests before for previous employers, and those always result in labeling me an ENTJ. I think it's mostly accurate. "The[y] are assertive, innovative, long-range thinkers with an excellent ability to translate theories and possibilities into solid plans of action."
http://www.personalitypage.com/ENTJ.html
(I think I've addressed the potential weaknesses of this personality type through awareness.)
- Customer Focus:
- I work closely with the client stakeholder team to understand requirements, system specifications, and design. This is standard operating procedure, and something I believe is very important for the success of a project.
- For our requirements gathering sessions, I generally approach them using a workflow-based framework as defined in this document,
"Up and Running -- Workflow Analysis Introduction.pdf"
.
This is part of our overall solution design methodology, as defined in,
"Up and Running -- Solution Design Methodology.pdf"
.
- I also maintain the perspective that it's my responsibility to ensure the system does what the end users want. I don't believe it's easy to define requirements, and this is why the Agile programming methodology is so appealing to me; it allows the customer to see how the system is progressing and to offer feedback at every iteration. The end result is a very nice product because it does what the users want and how they want it, meaning that the system will actually get used and not sit on a shelf.
- Business and Technical Communications:
My degree in Management of Information Systems gives me a unique perspective in that I understand business operations and software development operations. This allows me to bridge the two worlds well, meaning I'm very helpful at translating end user or business line requirements into functional or software development requirements. In other words, I can talk business and "geek". Examples:
- Since 1995, I've worked with several hundred clients across the nation, helping them translate business needs into technical or functional requirements, depending on the type of technology solution needed.
- At one client's, I wrote and implemented an entire Manufacturing ERP to manage their manufacturing processes.
- At another, I implemented a system to lend more transparency to their project workflows in addition to streamlining payroll and customer invoicing processes.
- At another, I developed software to improve the quality of product delivery throughout all post-order operations management.
Return to top
Some Personal Information:
- Short History
- I grew up in Hancock, MI, which is in the Upper Peninsula (U.P.) of Michigan. It's known for its snow and
Yoopers
.
- I met and married my lovely wife, Kate Hanson, there, and she brought me to Missouri soon after, where she's pursing her career as a teacher.
- Erik Odin Hanson joined the family on 4/29/08 at 8:05am.
- My brother lives in Arizona, and the rest of my immediate family still lives in the U.P.
- We reside in Webb City, MO, and I don't miss the snow. (I can travel for work.)
- I grew up in Hancock, MI, which is in the Upper Peninsula (U.P.) of Michigan. It's known for its snow and
Yoopers
- Hobbies
- Woodworking and, in general, fixing things.
- Cooking and experimenting in the kitchen.
- Playing card games, board games, RTS games, first-person shooters, and puzzle games.
- Working with and experimenting with computers and software, mainly in open source technologies.
- Reading, mainly fiction, but also computer manuals and information on new technologies or subject matter on the projects I'm working on.
- Miscellaneous
- My friends call me "Smiling Pete".
- I work with people throughout the country with my
4 monitors, and 80 inches of diagonal viewing area
run from my Gentoo, VMware system. (Scott Adams, author of Dilbert, states in one of his books, "An engineer who is surrounded by machines is never lonely and never judged by appearance. These are friends.")
- I use an IBM Model M Keyboard. : )
(wiki)
- I own nearly every Dilbert book.
- I have a Black Belt in Tae Kwon Do, and currently actively practice Tai Chi.
- My ride is a Jeep Wrangler, and it's usable on and off road.
Return to top
Final Thoughts:
I would be honored to be able to work with you to accomplish your web-based goals.
If you have questions or would like to talk about anything, I hope you'll please call me at anytime
(Cell: 906-281-1178). Thank you for taking the time to read about the opportunities I've been given to help
others and the technologies learned along the way. I hope I'll be given the chance to prove myself to you.
Respectfully yours,
Pete Hanson
906-281-1178
Peter@pkhanson.com
Respectfully yours,
Pete Hanson
906-281-1178
Peter@pkhanson.com
Software should yield returns and be accepted by the end users, and I believe
the recipe for success starts first with people, process next, and technology last.
I'd be pleased to help you navigate this complexity.
the recipe for success starts first with people, process next, and technology last.
I'd be pleased to help you navigate this complexity.
