Curriculum Vitae

SimonCowen.ToString();

/// Experienced C# developer with over 5 years experience writing code and designing systems in the .NET ecosystem.
/// Blog: SimonCowen.GetHashCode();
/// Code: Bitbucket
/// Code: GitHub
/// Mail: simon.cowen@cantab.net
/// Mail: simon@littlebobbytables.co.uk

Experience

  • primary language: C#
  • .NET 4.5+, WPF, Linq, WebAPI, WCF, async/await, Code Contracts,
  • nUnit, Moq, Dapper, Caliburn.Micro, SQL CLR, SSDT
  • experience with: T-SQL, F#, C, VBA, Python, Objective-C, JavaScript, PHP

Major Projects

“ALICE” | WebAPI, WPF, SSDT

  • shell/framework for hosting a suite of tools
  • proof of concept for a major overhaul to the team’s standard architecture and processes
  • designed to allow developers to rapidly produce and deploy LOB applications
  • providing feature flags, token-based authentication, claims-based authorisation, CI, CD, and other components

Investment “Data Service” | WCF, COM

  • provides all access to investment databases, acting as an authenticated and authorised proxy for stored procedure execution
  • written in response to my discovery of serious security flaws in existing web service
  • custom compression and encoding, deep knowledge of expected data shapes allowing for reduction data size by up to 90%
  • client-side .NET library, enabling many optimisations without increased complexity for users
  • COM accessible library for accessing web services from non .NET applications, particularly Excel

“Task Event Logging” | SQL

  • zero-configuration fluent library, backed by WCF web service
  • handling millions of events and tens-of-millions of metadata points per week
  • integrated notification system for alerting of critical errors
  • architecture and database design for handling and storage of logs

“Infrastructure Monitor” | WPF, WCF, MEF, SignalR

  • monitors multiple measures across ~50 servers, mainly WMI
  • architectured for agent or agent-less monitoring
  • plug-in architecture with isolation for inputs and outputs
  • highly concurrent due to various slow, blocking measures
  • display application to allow team to check system state at a glance

Statistical calculation library | SQL CLR

  • replaced numerous disparate routines written in SQL, VBA, Matlab and C#
  • ensured that all new code was fast, tested, reliable, maintainable, and reusable
  • numerically stable, incremental, parallelisable algorithms for common moments
  • efficient algorithm for order statistics based on Hoare’s algorithm
  • all calculations exposed through .NET, COM, and SQL CLR

Matlab conversion | Matlab

  • multi-stage process of converting Matlab calculations to C#
  • Matlab-array-like types built for initial translation – allowing slicing, itemwise operations, &c
  • strongly-indexed array library created for avoiding easy-to-make dimension-based bugs
  • significant performance and maintainability improvements delivered

DifferNET | Linq Expressions, OSS

  • automatic differentiation library using operator overloading
  • compilation of expressions and derivatives using System.Linq.Expressions
  • extremely fast non-approximation n-th derivatives of arbitrary functions

FlagNET | OSS

  • multi-purpose strongly-typed flag library

CassowaryNET + LayoutNET | C#, WPF, OSS

  • multi-purpose strongly-typed flag library

Platter | Objective-C, LAMP

Employment

Towers Watson (Developer, Jan 2010 – Present)

  • worked hard to become respected innovator within the team and company, both for my knowledge and drive
  • small team has led to exposure to a wide range of roles within the development process
  • architecture design, writing/maintaining code, research and teaching
  • working to improve team processes and abilities, and to lighten technical debt burden
  • building tools for improving productivity of other developers

Other non-technical roles

  • Lloyds Banking Group (Cashier, Jul 2006 – Oct 2009)
  • Country Table (Waiter / KP / assistant-chef, Apr 2001 – Sep 2006)
    • Funded myself through sixth form and university

Education

University of Cambridge (2006 – 2009)

  • MA Mathematics (69 / 2.1)
  • > 90% for computational projects (CATAM) using C and Emacs both 2nd and 3rd years, accounting for ~25% of my final grade

Other

  • CFA Level 1
  • STEP: { “III” : 1, “II” : 2 }
  • A-levels: { “A” : [“Maths”, “Further Maths”, “Physics”, “Fine Art”] }
  • GCSEs: { “A*” : 6 , “A” : 3 , “B” : 1 }

&c

  • Cooking
  • Photography
  • Hockey

Leave a Reply