Skip to content
My curriculum vitae.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md

README.md

Ben Hinman

Homepage | Medium | GitHub

About Me

I am a passionate, loyal and hard-working Software Architect/Engineer that specialises in designing and building innovative, elegant and efficient applications. I design software that stands the test of time, write clean code and keep up to date with new patterns, practices and technologies.

Core Skills

  • Clojure
  • C#
  • Swift
  • SQL/T-SQL
  • JavaScript/TypeScript
  • CSS
  • HTML
  • .NET
  • ASP.NET
  • Cocoa Touch
  • SQL Server

In addition to these core skills, I also have knowledge of and experience with a wide range of other technologies including Node.js, Elasticsearch and Redis.

Tools

  • Atom
  • Visual Studio
  • Visual Studio Code
  • SQL Server Management Studio
  • Xcode
  • Git (standalone, GitHub and Bitbucket)
  • Team Foundation Version Control
  • TeamCity
  • Octopus Deploy

Methodologies

  • Agile (Scrum, using JIRA)

Experience

2007-Current - Marval Software Ltd.

  • Software Architect (2014-Current)
  • Senior Developer (2010-2014)
  • Developer (2008-2010)
  • Graduate Developer (2007-2008)

Summary

I started working at Marval Software Ltd. in 2007 as a Graduate Developer. I have been promoted 3 times since then, most recently to the position of Software Architect. I lead a team of developers on MSM - a web-based service desk tool that allows companies to manage their IT Infrastructure.

Roles & Responsibilities

  • Design and implementation of new features in conjunction with key stakeholders
  • Identification and reduction of technical debt
  • Mentoring junior developers
  • Third line technical support

Key Achievements

My current roles and responsibilities have allowed me to lead, design and implement the following:

  • A framework that bridged ASP.NET Web Forms and JavaScript, resulting in exceptional client-side performance. This also involved re-engineering the largest page of the application, after which customers noted vastly improved performance (up to 8x), usability and stability.

  • A .NET business rules engine to replace hard-coded logic throughout the application. This allowed us to provide customers with maximum flexibility and reduce our codebase.

  • A fast, cross-browser grid control built on the aforementioned ASP.NET/JavaScript framework. It featured the ability to add, remove, move and re-size grid columns, with preferences saved automatically by Ajax.

  • A denormalisation engine that materialised entities from a complex view into a table. This allowed us to deliver considerably faster grids and reports to our customers.

  • A plugin framework based on the emerging Web Component standards. This allowed third party developers to create plugins that could appear on, interact with and extend almost any page within the application.

  • A RESTful web service based on the ASP.NET Web API framework and the Avalon+JSON media type. It made extensive use of HTTP (including content negotiation) and its responses included affordances that allowed us to drive RESTful web clients.

  • An iOS version of our main user interface. The functionality was driven entirely by the aforementioned RESTful web service. Additional functionality could be added to the application without (necessarily) needing to update it.

  • Underlying storage agnostic data access libraries written in Clojure including an Event Store, Document Store (with a custom SQL-like query DSL and full-text search) and Key-value Store. An initial JDBC implementation was provided for each store. This facilitated simple on-premise deployments using existing data storage technologies, whilst allowing us to use dedicated and more cost effective alternatives in the cloud.

In addition, I led our adoption of Agile working practices. This involved coaching the development team on the Scrum framework, switching our project management tool to JIRA and switching our source control to Git. This also involved specifying and contributing to the automation of our entire build and release process, which allowed us to deliver the application faster than ever before.

I also delivered internal training courses on topics such as Representational State Transfer (REST), the SOLID principles of object-orientated design and functional programming. In addition, I introduced the development team to concepts such as Domain Driven Design (DDD), Command Query Responsibility Segregation (CQRS) and Event Sourcing (ES).

Education

  • BSc Computer Science (2:1 Hons) - University of Nottingham - 2006
  • A Levels in Maths (B), Design & Technology (B) and Geography (A) - Wellingborough School - 2003

Projects

  • Avalon+JSON - a pragmatic hypermedia specification designed to enable task-based user interfaces whilst preserving traditional web API entity response models.

Reading

I love programming and have been writing code from an early age. I am always reading about and experimenting with new techniques and technologies. I have been heavily influenced by the following books and presentations:

Books

Presentations

You can’t perform that action at this time.