James Markle, Developer in Waterloo, ON, Canada
James is available for hire
Hire James

James Markle

Verified Expert  in Engineering

Optimization Developer

Location
Waterloo, ON, Canada
Toptal Member Since
February 15, 2019

James has 14 years of professional experience creating quality software, from embedded systems to distributed cloud applications. Currently, he is doing most of his work with the Go language. He has extensive expertise with video, networking, and real-time applications. He is comfortable in a small, scrappy start-up environment or helping bootstrap new initiatives within a larger organization.

Portfolio

Juice Mobile
Amazon Web Services (AWS), Docker, PostgreSQL, Redis, Apache Kafka, OpenRTB, Go
Avvasi Incorporated
Code Composer Studio, Boost, C++11

Experience

Availability

Part-time

Preferred Environment

Linux

The most amazing...

...project I've built was a real-time transactional system from scratch that has scaled up to handle hundreds of thousands of queries per second.

Work Experience

Senior Software Developer

2015 - PRESENT
Juice Mobile
  • Developed a real-time bidding system for programmatic media buying focused on mobile advertising.
  • Continually improved performance and scalability.
  • Integrated with third-party APIs and supply systems.
  • Used machine learning for auction performance optimization.
  • Contributed to open-source projects.
Technologies: Amazon Web Services (AWS), Docker, PostgreSQL, Redis, Apache Kafka, OpenRTB, Go

Senior Design Engineer

2010 - 2015
Avvasi Incorporated
  • Developed video processing and network processing software for real-time mobile network performance monitoring and optimization.
  • Used modern C++ tools and techniques.
  • Optimized performance with real-time constraints.
Technologies: Code Composer Studio, Boost, C++11

Senior Embedded Software Developer

2006 - 2010
Magnum Semiconductor
  • Developed professional video processing software for custom ASICs.
  • Developed board support packages and completed board bring-up.
  • Developed I/O drivers for external interfaces such as PCI, I2C, SPI, SDI, ASI, etc.
  • Investigated and found software workarounds for board-level and chip-level hardware bugs.
Technologies: VxWorks, C

Swarm Real-time Bidding System

Swarm is a demand platform for buying advertising impressions in real-time auctions. It handles hundreds of thousands of queries per second and has delivered billions of impressions on behalf of brand advertising clients. James was a key member of the team that built Swarm from scratch using Go.

protoc-gen-go-template

https://github.com/jrmarkle/protoc-gen-go-template
protoc-gen-go-template is a protocol buffer code generator using go templates for general code generation based on protocol buffer definitions. James developed this small Go tool as a side project to help reduce code duplication.

Q-Vue

https://www.netscout.com/product/q-vue
Q-Vue is a platform for measuring video quality of mobile devices by monitoring mobile network traffic. It is deployed by mobile network operators within their network to provide extensive video analytics. James contributed to the video codec and streaming protocol analysis C++11 code.

ASIC Video Encoding Platform

https://www.idt.com/products/interface-connectivity/video-broadcast-software-asics
Video processing software for application-specific integrated circuits. Multi-chip and multi-core platforms that are used by national television broadcasting networks. Hardware bring-up, I/O drivers, hardware debugging.

Contributions to ffjson

https://github.com/pquerna/ffjson/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Ajrmarkle+
ffjson is a code generator for Go that allows for much fast JSON processing than the reflection-based standard library package. This contributions allow ffjson to work with go modules introduced in Go 1.11 and to support the HTML escaping flag in the same way as the standard library.

Contribution to Vowpal Wabbit

https://github.com/VowpalWabbit/vowpal_wabbit/pull/1189
Vowpal Wabbit is a fast online machine learning C++ library. This contribution makes the library easier to use in other languages such as Go.

Cache

https://github.com/jrmarkle/cache
Thread-safe cache for Go with expiration times.
2000 - 2005

Bachelor of Applied Science Degree in Computer Engineering

University of Waterloo - Waterloo, Ontario, Canada

Libraries/APIs

Protobuf

Tools

GoLand, Make, Makefile, Git

Frameworks

gRPC, Boost

Languages

Go, C++, C++11, C

Paradigms

Unit Testing, Testing

Platforms

Linux, VxWorks, Amazon Web Services (AWS), Apache Kafka, Docker

Storage

PostgreSQL, Redis

Other

Debugging, Optimization, Embedded Systems, Distributed Systems, OpenRTB, Code Composer Studio, Machine Learning, H.264, Videos, Audio/Video Transport, HTTP Live Streaming (HLS), MPEG-DASH, Performance Analysis, HTTP, Ethernet, TCP/IP

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring