James Markle, Optimization Developer in Waterloo, ON, Canada
James Markle

Optimization Developer in Waterloo, ON, Canada

Member since January 7, 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.
James is now available for hire

Portfolio

Experience

Location

Waterloo, ON, Canada

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.

Employment

  • 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, AWS, 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

Experience

  • Swarm Real-time Bidding System (Development)
    https://www.juicemobile.com/swarm/

    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 (Development)
    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 (Development)
    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 (Development)
    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 (Development)
    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 (Development)
    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 (Development)
    https://github.com/jrmarkle/cache

    Thread-safe cache for Go with expiration times.

Skills

  • Languages

    Go, C++, C++11, C
  • Frameworks

    gRPC, Boost
  • Libraries/APIs

    Protobuf
  • Tools

    GoLand, Make, Makefile, Git
  • Paradigms

    Unit Testing, Testing
  • Platforms

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

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

    PostgreSQL, Redis

Education

  • Bachelor of Applied Science degree in Computer Engineering
    2000 - 2005
    University of Waterloo - Waterloo, Ontario, Canada

To view more profiles

Join Toptal
Share it with others