About Eric Hartwell

InfoDabble > About > About Eric Hartwell
Jump to: navigation, search

I'm a software/systems consultant based in Toronto, but at home anywhere with a decent IP connection.
I'm always interested in development opportunities - Contact me.



Technology is great. I'm passionate about technology - but as a tool, not as an end in itself.

Let's face it: computers don't simplify your life or get things done faster. They're just tools to help you get more done in the little time you have. If they don't, then they're not working right - probably because of bad or missing design.

I believe that:

  • The only software worth writing is software that has never been written before.
    • Re-use saves documenting, debugging, testing, and maintenance time as well as development time. Refactor where possible.
    • We have so much computer horsepower available these days that you need a really good reason to optimize code for the computer's sake.
    • Let the framework handle the details and concentrate your time on getting results.
       
  • No technology is worthwhile if it doesn't address the business problem.
    • Just because it's logically or mathematically correct doesn't mean it's correct in the real world.
    • Just because it's automated doesn't make it better.
    • Sometimes it's wiser to involve a real person than to try and code for all the 1% cases (especially if nobody understands them).
    • If your company doesn't sell software then maybe you shouldn't be writing it.
    • Essay: "Patch it until it's robust"
       
  • Try to get it right the first time.
    • Use the best tools available.
    • Let somebody else help you design, write and test.
    • Use stubs for "fill it later" rather than "fix it later".
    • Build it so it's easy to change.
    • Document before you code.
    • Document details of coding, debugging, testing. Informal notes are invaluable.
       
  • Don't rely on a single vendor, but don't count on decent support when you mix vendors.
     
  • Don't mix business and religion.
    • Just because something [comes, doesn't come] from [company, organization] doesn't mean that it's [divinely right, evil].
    • No language/methodology/operating system/supplier is "better" for every purpose. They're all tools, and you need the right tool for the job. The ** more tools you can use, the better.
    • The tools are not as important as the result, unless you're a tool maker.
    • Essay: On Error Resume Next


My Skills

  • Passionate about using technology and keeping abreast of recent trends in the market.
  • Strong decision making skills and solid sense of judgment. Business requirements must drive the technology, not vice versa. Solid technical background to enable thorough analysis of alternative solutions and appropriate recommendations.
  • Excellent analytical and problem solving skills. Equally at home with any project role, including manager, advisor, writer, architect, tester, trainer, programmer, and advisor. Superb troubleshooter with full-system expertise and perspective, literally down to the metal if required
  • Solution development relies on communication and collaboration skills (written, verbal, and listening!) to effectively coordinate ideas, actions, and plans with people at all levels. Reputation for rapport with business users (both technical and non-technical), technical staff, architects, developers and project managers. Proven customer service and interpersonal communication skills with the ability to effectively provide service to customers within and outside the organization. Preferred choice to develop and deliver sales and technical presentations, RFPs, business plans, pre- and post-sales support, installation, remote and on-site troubleshooting.

Design/Development

  • Business requirements must drive the technology, not vice versa.
  • Software Development Life Cycle, tools 15+ years: SDLC, systems development methodology, requirements, architecture, design, construction, technical specifications and documentation, source control, version control, testing, implementation, quality assurance, unit testing, defect management, integration; legacy/inherited systems, analysis, refactoring tools; implemented and deployed solutions to a test environment that are then successfully implemented in production
  • Object Oriented Design 10+ years: Sound OOD principles and design patterns, UML, MSF, process flow diagrams; design, build, test, deploy, support complex applications
  • Middleware 10+ years: Multi-tiered web applications, client server systems; Experience producing 3-tier products that needs to be customized to multiple clients; enterprise-level web applications and development environments; Service Oriented Architectures, messaging, BizTalk; writing multithreaded code; concurrency; scalability

Technologies

  • Visual Studio 10+ years: MCP certified in VS6 C++/C/MFC/COM/DCOM/COM+, expert in Visual Basic, ASP web Development, IIS, MTS, JavaScript, PHP
  • .NET 6+ years: Expert C#, VB.NET, C++, .NET framework (especially .NET 2.0), Compact Framework, .NET forms, ASP.NET, web services, mobile applications, web applications, threaded applications
  • Relational database 10+ years: MCP certified in SQL Server 6.5 design and administration; even more at home with SQL 2000, 2005. Extensive Oracle, PL/SQL in both development and production environments. Data interfaces including error handling and audit aspects, conceptual to physical database modeling, design of data dictionaries, schema, process models, stored procedures, triggers; documentation. Also ISAM, flat, inverted DB
  • Web development 10+ years: HTML, DHTML, CSS, XHTML, IIS/ASP, ASP.NET, JavaScript, VBScript, IIS, PHP
  • Web technologies 8+ years: XML/XSL parsing, formatting, messaging; web services –SOAP, WSDL, UDDI; RSS
  • Windows/Office 15+ years: Windows & Office 2000/2003/XP; FrontPage, Word, VISIO, PowerPoint, Excel Access, Outlook; macros/add-ins with xBasic, VBA, .NET; operational/application support; GUI design; Adobe Acrobat, Photoshop

Technical Soup

C, C++, Visual C, Visual C++, C#, PHP, Visual Studio, VBScript, JavaScript; Visual Basic; Java; BASIC; assorted Assembler, MASM, FORTRAN, HTA; Visual Studio; UML; use cases; object-oriented design; SQL, SQL Server, Oracle, CTree, ODBC, ADO, ADO.NET; COM, DCOM, COM+, .NET, MTS, MMS; J2EE, WSDL, SOAP; Exchange, BizTalk, Terminal Server, Citrix; HTML, CSS, XHTML, XML, XSLT, RSS; spam, antivirus, spyware; Office, Outlook, FrontPage, Word, Visio, Access, Excel, PowerPoint, Photoshop, Omnipage; Windows, Windows Mobile, Pocket PC, DOS, UNIX, Linux, VMS, AOS/VS, CP/M, emulators, Virtual PC. GPS, geocoding, Google Earth, RFID. SQL, T-SQL, stored procedures, triggers, data rules, key constraints, ODBC, ADO, ADO.NET, DDL, MSDE; Oracle, PL/SQL, Access, Jet; ISAM; flat files, data migration, VBA programming. Data interfaces, error handling, audit, database modeling, data dictionaries, schema, process models, stored procedures, triggers; documentation.

My Home Network (really, but much simplified)

Image:HomeNetwork.gif


Latest Essays, Articles, and Assorted InfoNuggets

See the Tech Notes page for details and a fuller list. See Blog Archive for old stuff.

Contact me