Services

Analytical, Logical, Consistent, Resilient and Inclusive Working

I take both a top-down approach to network design, based on industry best-practice and vendor certified solutions, and a bottom-up consideration of platform capabilities and the practicalities of delivering & supporting any networked system. This approach also enables early baseline solution costing.

In engineering the network solution, I either create the network configuration myself or act in an advisory role to support colleagues, whilst retaining a holistic approach to project goals.

Modular, Pattern-based Network Design

Successful network design has been taking a modular approach for many years. The art is in finding the right system arrangement for any given project that balances a number of (potentially completing) factors, including:

  • Functionality.  Enabling the right set of system/service capabilities in each part of the network.
  • Capacity.  Ensuring the network has enough of the right ports and enough traffic forwarding capacity for current and growth requirements.
  • Ease of Operation.  Keeping module functions clear and consistent with each instance implemented in the same way. This simplifies both network delivery and support.
  • Scalability.  Designing the network and each module such that it can be scaled either by adding elements to an existing module (such as more up-links or port-adapters), by deploying more module instances or by replacing a module within an existing architecture.
  • Reliability.  Building resilience and redundancy into the network to align with network service reliability requirements.
  • Security.  Supporting service reliability using traffic control elements within the network, traffic encryption, log analytics and platform hardening.
  • Cost Efficiency.  Solution designs take into account a variety of cost elements including: platform hardware & software, circuit technologies & speeds, third party support models, equipment placement, power & cooling requirements and support staffing.

Documentation and Training

Documenting networked systems involves a host of information in different forms, including:

  • Network Diagrams.  Typically created using Visio, Powerpoint or Google Drawing, these are the foundation of sharing the physical, logical and service elements of the network solution.
  • Formal Documents.  Typically written with Microsoft Word, these include: the solution architecture, high-level and low-level designs, test plans & reports and implementation notes.
  • Spreadsheets and Databases.  Used to support solution costing, Bill of Materials, IP address templates, requirements tracking and project progress. Typically using Microsoft Excel or SaaS tools such as Smartsheet for data analysis, and Access, PostgreSQL and MySQL for network analytics.
  • Presentation Slides.  Typically created using Microsoft Powerpoint, these support the verbal discussion of a network solution both as part of the development and for training.
  • Online Resources.  Solution and project documentation, progress management and collaboration tools such as SharePoint, Confluence/Jira/Trello and a project website. Detailed network documentation using tools such as NetBox.

Network Scripting and Templating

Modern network devices and systems incorporate templates, APIs and scripting languages to support their integrated operation and automation. I've never worked specifically as a software developer, however, my work in network delivery and development has often included elements of programming. A few of the scripting/programming languages I've used as part the projects I've worked on include:

  • Python.  I'm using Python to support network automation and IoT integration.
  • Visual Basic for Applications. I've been using VBA for over 20 years to support network design delivery and documentation across, principally, Microsoft Excel, Word, Access & Visio.
  • HTML5/CSS3/Javascript.  I'm using these lanaguages to support a variety of information visualisation functions. This website, for example.
  • PHP.  I'm using PHP to support dynamic information management, particularly in relation to website back-end databases.
  • Powershell.  I've used Powershell for network automation and to support scheduled tasks on Windows-based systems.
  • Platform Scripting Languages.  I've used many different network devices and their associated scripting tools. These are often used to revise configuration based on network state or report specific operational information.
  • Microsoft Excel.  In addition to VBA, Excel includes a variety of tools to retrieve, combine and present dynamic information. These include Power Query, List Objects and Pivot Tables, all of which I use to support network development project delivery.