Martin Gallagher Martin Gallagher

About

Freelance / consultant software developer based in Uppermill, Saddleworth near Manchester in the North West of England, UK — specializing in Google Go (Golang), data mining / acquisition, search engine and big data systems.

Computer programming is my vocation. Along with tinkering with code I'm an armchair naturalist with a keen interest in the natural sciences and luring people in to "debates" on our place in the universe.

Skills

I have a diverse set of skills and expertise in both frontend and backend development. Full-stack developer isn't my favourite term but it might best describe my skill-set. I do however have a strong bias towards the development of scalable big data systems / distributed systems, web crawlers, data acquisition, data analytics / analysis, microservices, REST API design & development and other areas of backend development.

Development Platforms & Tools

Programming Languages

The Google Go (Golang) Gopher I'm a proponent of "KISS" — a key reason I'm a fan of Google's Go programming language. "Golang" strikes an excellent balance between developer productivity, safety, performance and the enforcement simple, explicit & maintainable code and a fantastic standard library.

The Rust Language Logo Rust is another language that has recently piqued my interest due to its performance & security in the absence of a runtime and garbage collection - this allows FFI without the context switching penalties that come with using C in Google Go.

Serialization & Encoding Formats

Databases, Data Stores & Big Data

I've worked with big data sets and understand the constraints & considerations depending on the data store, from traditional RDBMS to NoSQL platforms and the limitations of CAP theorem. As component of data mining I have experience in data extraction and normalization (ETL).

Web Design

I understand web design principles — including responsive web design, UI / UX and accessibility considerations. I also have experience in website profiling and content delivery optimizations using tools like Google PageSpeed Insights.

Experience

  1. de Poel

    Lead Google Go / Golang Contractor, October 2015 - Present, Knutsford, Cheshire, UK — Providing consultancy services on the development of the new version of the company's staffing platform, from a monolithic to horizontally scalable microservice architecture. Specific responsibilities include the implementation of financial service implementation and providing Google Go expertise and support to the team.

    • Google Go (Golang)
    • REST APIs
    • Docker
    • ELK stack
    • Consul
    • Microservices
    • AWS
    • Finance
    • Agile
  2. Praegressus Limited

    Owner, April 2014 - Present, Manchester, UK — Search engine SaaS and bespoke software development — primarily in Google Go (Golang) — for big data, distributed and cloud computing systems. Provides affordable search-as-a-service with many advanced features and near-linear scalability making large datasets searchable.

    • Google Go (Golang)
    • C/C++
    • Java
    • PostgreSQL
    • Big Data
    • Cassandra
    • NoSQL
    • RabbitMQ
    • AMQP
    • Algorithms
    • Distributed Systems
    • Data Mining
    • SaaS
    • Search Engines
  3. Parkour Method, Inc.

    Freelance, June 2015 - August 2015, Washington, D.C., US — Microservice API development providing geolocation search for places near a latitude / longitude coordinate using PostGIS queries. Implemented in Google Go resulting in a configurable, high performance and low resource service. Several EC2 instances deployed behind an elastic load balancer for performance and availability. Backed by AWS RDS PostgreSQL database instances.

    • Google Go (Golang)
    • REST APIs
    • PostgreSQL RDS
    • PostGIS
    • GIS
    • Spatial Databases
    • JSON
    • AWS
    • Cloud Computing
  4. Bark.com

    Contract, Senior Developer, June 2015 - August 2015, London, UK — Working across the full technology stack to develop a platform to find local service professionals. Work includes the integration of Google Apps for Work API, AB testing tools and Stripe payments API.

    • PHP
    • MySQL
    • AWS
    • AWS RDS
    • Bootstrap
    • HTML / HTML5
    • CSS / CSS3
    • JavaScript / jQuery
    • Responsive Design
    • Stripe Payments API
    • Facebook API
    • Twitter API
    • Twig Templates
  5. Synthesio

    Developer, 2011 - June 2015, Paris, France — Developed high capacity crawlers to collect data from social networks & traditional media sources across the web including exotic social networks such as Vkontakte, Sina Weibo, Tencent Weibo, WeChat and Renren and sources such as the Twitter firehose, Facebook API, Moreover, Google+, YouTube, LinkedIn, DataSift, Socialgist, Gnip and Hottolink. Improved Unicode support for multi-lingual search and developed a myriad of system tools, microservices & APIs.

    • PHP
    • Agile
    • MySQL Galera
    • Big Data
    • Sphinx
    • Unicode
    • Silex
    • Gnip
    • Twitter Firehose
    • Crawling
    • Data Mining
    • Full-Text Search
    • Jenkins CI
    • CI
    • Bootstrap
    • JavaScript

    During his time at Synthesio, Martin developed a massive amount of connectors to help us collect data from virtually every social network and third-party provider in the market. Martin is a gifted developer who can master any API in a matter of hours and build a POC on top of it in little less, while producing elegant code and clear documentation. Did I mention that you can also hold quite fascinating discussions on Darwinism with him as well?

    Thibault Hanin Thibault Hanin, CPO & Co-founder of Synthesio

  6. One iota

    Technology Developer, 2010 - 2011, Rossendale, UK — Helped develop a RESTful API for a multi-channel e-commerce platform, a brand awareness system implemented in Java which performed rudimentary NLP, Facebook applications and HTML5 mobile websites including the first iteration of FootAsylum's responsive website optimized for mobile browsers. Integrated Facebook & Twitter APIs and PayPal & Sage Pay payment gateway APIs.

    • HTML / HTML5
    • CSS / CSS3
    • JavaScript / jQuery
    • Responsive Design
    • Twitter API
    • Facebook API
    • NLP
    • Java
    • PHP
    • MySQL
    • E-Commerce
    • PayPal
    • Sage Pay
    • Payment Gateways
    • REST APIs
    • Agile
  7. Speeple

    Owner, 2005 - 2011, Manchester, UK — FeedsFarm.com and Speeple News were search engines for aggregated news content. Over 100,000 high quality RSS / Atom feeds fed into a MySQL database by an highly concurrent crawler implemented in Java. The collective audience surpassed 50,000 unique visitors per day.

    • Linux
    • C/C++
    • Java
    • MySQL
    • PHP
    • Sphinx
    • Full-Text Search
    • RSS
    • Atom
    • XML
    • Data Feeds
    • Data Aggregation
    • FeedsFarm

Projects

  1. Encycolorpedia

    November 2012 - Present — A popular website providing insights into colours — producing complementary and related palettes for any hex, RGB / RGBA, HSL / HSLA format colour along with information and conversions to several other popular colour-spaces. Paint matching is performed in the CIELab colour space for accuracy. Colour profile pages are dynamically styled from the given hex colour. A new version developed in Rust and Golang is in active development.

    • Node.js
    • JavaScript
    • Colour Science
    • Paint Matching
    • Colour Spaces
    • PHP
    • Colour Quantization
    • MessagePack
    • Google Go (Golang)
    • Rust
  2. DomainWho.is

    October 2014 - Present — Serving as a demo of the Praegressus Limited search technology, DomainWho.is indexes over a hundred million domain names and makes them searchable via full-text and filtered search queries. Implemented using the Google Go programming language; key features include horizontal scaling, an advanced natural language query lexer, search snippet algorithm and distributable crawlers fed by task queues. Optimized responsive designed across devices, from mobile to desktop.

    • Google Go (Golang)
    • C/C++
    • Praegressus Search
    • Search Engines
    • Full-Text Search
    • PostgreSQL
    • RabbitMQ
    • Cassandra
    • REST APIs
    • Responsive Design
    • Distributed Systems
    • WHOIS
    • Domain Names

Open Source

  1. Gawp

    A simple, configurable, concurrent, file watching job execution tool implemented in Google Go.

    • Google Go (Golang)
    • YAML
    • Task Automation
    • Build Systems
    • Concurrency
  2. Routify

    An extremely simple & low feature set router package and route generation tool written in Google Go. Routes are defined in YAML and go generate is used to build the Go routes file.

    • Google Go (Golang)
    • YAML
    • REST
    • HTTP Servers
    • Routers
  3. go-jsonmp

    A Go package to facilitate JSON merge patch format and processing rules (RFC 7386).

    • Google Go (Golang)
    • JSON
    • JSON Merge Patch
    • RFC 7386
    • REST

Contact