1637320978716_edited.png

Dan O'Connor
.NET Developer
Belfast, UK

  • LinkedIn
  • StackOverflow

Education

  • 1995-1999:  1st class honours Master's Degree (Civil Engineering), University of Exeter, UK.

 

Career

  • 1999 - 2006:  Graduate Engineer

  • 2006 - 2008:  Chartered Civil Engineer MICE 2006.

  • 2008 - 2012:  Accredited Project Management Practitioner (APM 2008).

  • 2012 - Present : Software Developer.  .NET and Azure Cloud applications in the Civil Engineering industry.

Software Developer Experience

Azure cloud applications (FaaS):

3 years' experience of Azure Function Apps (Serverless FaaS), Azure Table Storage (Blob, Table, Queue), Azure Signal-R, Azure Cosmos DB.  Re-design of our in-house web-app “DynamicObjects” to run entirely on the Azure serverless platform.

Rhino.Compute / Autodesk Forge API:  

3 years' experience with setup /maintenance of Rhino.Compute server on-premises and with using Autodesk’s Forge cloud for the purpose of manipulating parametric geometry files and for boolean union, subtraction, intersection of parts from each other.

CI/CD / Azure DevOps:

5 years' experience of Azure DevOps including creating of CI/CD yaml pipelines for continuous deployment of Azure Function Apps from DevOps repos and publishing artefacts to NPM or to private Azure feed.

Agile:

5 years' daily practice of Agile principles including daily stand-ups, bi-weekly sprint planning (shippable increments and effort), and sprint reviews.

VMs / Server Management / IIS:

5 years' experience with remote admin of Windows Server 2016 VMs (2 webservers, 4 backend workhorses) and setup of DEV, STAGING, PROD servers and installation of services in conjunction with IIS.  Including URL rewrite rules to forward traffic to OWIN self-hosted processes.

C# / .NET:  

10 years' daily developing in C# for the Windows .NET environment.  Familiar with NET Framework, NET Core and NET Standard, WinForms, WPF, LINQ, Windows Services, event-driven pattern, object-oriented principles and software design principles (KISS, YAGNI, SOLID etc).

Async-Await Pattern / Multithreading:  

Extensive experience with the async-await pattern in C# and familiar with some of the common issues (race conditions, object locking etc).  In addition, have experience of rewriting a single-threaded app to run on multiple specified dedicated threads, managing thread start and thread completion manually rather than using tasks run on the threadpool).

VBA:  

10 years' coding in Visual Basic for Applications (VBA) and before that other platform BASICs (Atari, Acorn, BBC), before embracing C#.

RESTful API:

Experience extending our existing asp.NET web to include a RESTful api to permit other applications to interact with our app.

JavaScript / html:  

Ad-hoc experience of simple JS scripts and html pages mostly in the context of embedding simple webpages within a Windows Form. E.g.to embed an orbitable threeJS 3D model preview pane.

SQL:  

Ad-hoc experience in writing SQL queries mainly in the context of writing MS Access (JET) database backend scripts (2006-2010) and more recently with queries sent to the Azure Cosmos DB.  Familiar with general SQL principals such as left / right joins etc.

Plugins / Automation:

10+ years' experience of automating MS Excel, Autodesk Inventor and Autodesk Civil3D from external processes using COM and using in-process automation via plugins.

3D Geometry:  

10 year's familiarity with 3D geometry concepts and software from working in the domain of 3D geometry and automating various CAD applications.  Including working with nurbs and non-nurbs geometry and working with the underlying breps, meshes, faces, edges, and vertices directly in code.  Also have many hours experience creating 3D models ‘manually’ using Blender for mesh-based models for use in Unity gaming applications, and using Inventor and Rhino for solid-based models for use in infrastructure civil-engineering applications.

Unity:  

5 years' ad-hoc personal interest in 3D game development outside of work with using the Unity Engine to develop 2D sprite-based games and 3D games.   Most recent project includes procedural generation of infinite scrolling low-poly terrain tiles based on perlin-noise mapped to elevation. This raised am interesting challenge where adjacent mesh tiles of differing level of mesh detail left gaps at the seams. 

Team leadership:

Experience of leading small team between 2 - 4 developers over many years.  Prior to that, experience as Principal Civil Engineer / Project Manager with similar number or direct reports.