John Hedges, Developer in Monmouth, United Kingdom
John is available for hire
Hire John

John Hedges

Verified Expert  in Engineering

Software Developer

Location
Monmouth, United Kingdom
Toptal Member Since
June 3, 2021

John是一位热情的开发人员,对分布式应用程序和网络协议有着深刻的理解. He has a strong and wide-ranging set of skills, including the traditional languages, C and C++, languages of the internet such as Python and JavaScript, and the more modern Rust and Go. 无论是作为团队的一员还是独自完成一个项目, John will strive to produce clean, ergonomic, and reliable code.

Portfolio

Outreal Interactive Entertainment Ltd.
Rust, WebSockets, C++, HTTPS, SSL, Windows, Git, GitHub...
Spotify
Go, Kubernetes, Google Cloud, BigQuery, Cloud Dataflow, Elixir, Grafana...
Growth Lab Inc.
Go, Git, GitHub, Slack, Blockchain

Experience

Availability

Full-time

Preferred Environment

Git, Linux, Go, Rust, C, JavaScript

The most amazing...

...project I've worked on was a network assurance product, 由一家大约40名员工的小公司开发,并被Orange和乐天等电信公司使用.

Work Experience

Senior Software Engineer

2023 - 2023
Outreal Interactive Entertainment Ltd.
  • 改编了一个开源的ALVR游戏流项目,运行在WebSockets上.
  • 为一家寻求种子资金的游戏初创公司开发了一款MVP.
  • 预置的AWS实例具有GPU功能,可在云中运行计算密集型应用程序.
  • 使用Rust和WASM进行视频和音频的前端渲染.
Technologies: Rust, WebSockets, C++, HTTPS, SSL, Windows, Git, GitHub, Amazon Web Services (AWS), NVIDIA Codec SDK, HTTP, Video Encoding, WebGL, WASM, Web Audio, Video Processing, Streaming

Senior Software Engineer

2021 - 2023
Spotify
  • 领导将Elixir预测应用程序转换为Go的工作, 包括多种功能和效率的改进, documentation, unit and integration tests, and infrastructure as code.
  • 使用Jira将必要的工作划分为票和冲刺.
  • 创建了集成测试,以生成侦听器数据,并使用Docker Compose设置测试预测的位置.
  • 创建了一个Jenkins构建和测试脚本来补充构建.
  • 实现了产品的持续交付,为每个合并的pull请求创建一个新版本.
  • 在良好的编码实践中指导团队成员,并在我们的构建管道中建立了筛选器的使用.
  • 是否有建设性的代码审查和结对编程来与其他团队成员交流想法.
  • 提交了开源过滤器golangci-lint所需的修复.
Technologies: Go, Kubernetes, Google Cloud, BigQuery, Cloud Dataflow, Elixir, Grafana, Prometheus, Jira, Docker, Docker Compose, Git, GitHub, Jenkins, Kustomize, Druid.io, PostgreSQL, SQL, Google BigQuery, Cloud Storage, JUCE, Cloud Architecture, System Design, Bash, Bash Script, APIs, HTTP

Senior Software Engineer

2022 - 2022
Growth Lab Inc.
  • 在Go中开发了一个加密哈希模块,使用种子对二进制数据进行哈希.
  • 编写了Go模块并进行了全面的测试,确保了可靠性和正确性.
  • 与使用Slack的分布式加密专家团队合作.
Technologies: Go, Git, GitHub, Slack, Blockchain

Senior Software Engineer

2021 - 2021
Arctoris
  • Worked as a senior developer to help improve the engineering delivery for Arctoris's robotic drug discovery laboratory; diagnosed and made recommendations to remove bottlenecks in the adopted development process.
  • Integrated SMILES chemical compound SVG images into PDF/LaTeX report generation in Rust; upgraded existing Rust software from Tokio v0.2 to Tokio v1.3.
  • 在一个五人的分布式团队中工作,使用Jira进行问题跟踪.
  • 研究构建脚本从Rust原生到Nix的迁移.
Technologies: Rust, LaTeX, PDF, SVG, Open Babel, Git, NixOS, Microservices, Software Architecture, Back-end, ASCII, UTF-8, Robotics, Bash, Bash Script

Staff Software Engineer

2020 - 2021
Juniper Networks
  • 作为团队的一员,将网络测试和保证产品集成到瞻博网络的路由器和无线设备中. 这涉及到对Juniper运行时、Junos配置和libvirt虚拟化的深入研究.
  • 在NFX-150系列路由器上改编现有的网络保障设备映像,使其作为VNF可用.
  • 为C网络保证软件增加了下载插件支持. 这使得许多保证实例的远程编排成为可能.
  • 致力于Go微服务的实现,提供可下载的插件.
  • 与两个团队合作,每个团队约6人,使用Scrum和Jira进行问题跟踪.
  • 获得测试代理的创新软件体系结构专利:用于网络性能测量的名称空间感知测试代理. http://patents.justia.com/patent/11546244.
Technologies: C++, Go, Agile, Virtualization, Jira, Git, OpenAPI, Python, TCP/IP, Junos OS, Scrum, Microservices, C, Back-end, Google Cloud Platform (GCP), Cloud Architecture, System Design, Embedded Linux, Embedded Systems, WebSockets, APIs, Bash, Bash Script, Linux, HTTP

Consultant | Senior Software Engineer

2018 - 2020
Netrounds
  • 为Netrounds提供网络测试和保障产品的后端咨询服务. 后端是用Go和Python构建的,测试探针使用C/ c++和Python.
  • 实现了一个Go微服务,通过WebSocket接收来自测试探测器的Protobuf消息,并将其发布到Kafka.
  • 用C语言实现了一个HTTP保证产品,可以重复下载内容并在失败时触发警报.
  • 与Python/Django前端一起集成新模型.
  • 增加多线程支持的c++ UDP网络监控软件.
  • 编写了一个FFI适配器,将核心C库合并到Python项目中.
  • 查找并修复C/ c++、Go、Python和Bash脚本中的错误. 使用Jira Test Case Management软件在每个发布周期中测试产品.
  • 参与了两个使用Scrum方法的5 - 6人团队.
Technologies: C, Python, Go, Docker, Git, Jira, Confluence, Slack, Bash, Linux, Protobuf, Apache Kafka, C++, REST, Quick EMUlator (QEMU), GitHub, Shell, Slack App, Amazon Web Services (AWS), Scrum, Scrum Master, Amazon S3 (AWS S3), Amazon EC2, Amazon EC2 API, Confd, Microservices, Software Architecture, Django, PostgreSQL, Back-end, Google Cloud Platform (GCP), Embedded Linux, Embedded Systems, WebSockets, APIs, Bash Script, HTTP

Consultant | Software Developer

2016 - 2018
Ribose, Inc.
  • 被Ribose聘为软件开发顾问,在他们屡获殊荣的安全协作平台上工作.
  • Designed and implemented Riffol, an open-source minimal init system in Rust, 用于管理少量进程,并针对Docker容器.
  • 在Rust中设计并实现了Nereon/Nereond(一个开源配置库)和配置实用程序.
  • 致力于Retrace,一个用于测试ELF二进制文件的开源实用程序. 它使用LD_PRELOAD技术来拦截对标准库的C调用.
  • 在GitHub上使用Travis和Jenkins CI/CD维护项目.
Technologies: Rust, Git, Jenkins, C, Travis CI, Linux, Open Source, Docker, GitHub, Software Architecture, Software Design, System Design

Consultant | Software Engineer

2014 - 2018
Croesyceiliog School
  • 为Croesyciliog学校制定成绩总结报告,为每个年级组的年级提供年度报告.
  • 使用JavaScript和React前端上传学生成绩的Excel电子表格并下载相应的PDF报告.
  • 用Haskell写了一个后端,将Excel电子表格转换为CSV, calculate the statistics required, and generate graphical reports using PDFLatex.
  • Hosted, maintained, 并管理了一个docker实例和Nginx代理服务器,使学校管理部门可以使用该系统来生成报告.
Technologies: JavaScript, Haskell, LaTeX, PDF, CSS, Docker, Excel 365, CSV, Shell, Bash, Debian Packaging, Linux, DevOps, NGINX, React, Software Architecture, Requirements, Software Design, Front-end, Back-end, Full-stack

Freelance Consultant | Full-stack Software Engineer

2014 - 2016
Drystone
  • Worked on Ella for BMAT using Python and C. Ella是一个类似于shazam的系统,用于检测哪些歌曲正在播放,然后收集并将录音权转发给相应的艺术家.
  • Scripted Blender, a 3D modeling system, 使用Python和Blender为在线游戏生成一系列图像.
  • 在Haskell中用rdash-ui为仪表板创建了一个HTML模板系统,用Haskell组合子代替自定义标记创建了一个MJML风格的响应式电子邮件.
  • 实现了一个系统,将收到的电子邮件排队,并在特定时间将它们转发到不同的电子邮件地址. 这是使用Haskell、shell脚本和Exim完成的.
  • 为系统概览仪表板创建了各种监控插件, collecting various metrics from MongoDB, Node.js, Conntrack, ActiveMQ, and RabbitMQ. The plugins were written in Lua.
  • 写了一个C程序,通过RS232从SATEK太阳能控制器使用树莓派收集指标.
技术:Python, C, Blender, Haskell, JavaScript, HTML, Shell, Exim4, Node.js, MongoDB, RabbitMQ, ActiveMQ, Lua, Raspberry Pi, Requirements, Software Architecture, Software Design, CSS

Consultant | Full-stack Developer

2000 - 2015
Taskworthy
  • 曾在Taskworthy担任IT顾问和开发人员, 高端定制室内细木工制造公司.
  • 设计和构建定制的衣柜设计软件与JavaScript和Ajax在前端和Python, XML, and XSLT on the back end. 客户可以设计衣柜,并以PDF格式生成精确的裁剪清单和车间时间表.
  • 设计并实施Taskworthy网站的至少三个版本, including an admin facility to upload images. 它使用Python、XML、XSLT和XML- fo来生成PDF.
  • 在Debian Linux上使用Apache, Nginx和Exim4托管网站和电子邮件.
Technologies: Perl, Apache, CGI, NGINX, XML, XSLT, PDF, HTML, JavaScript, Ajax, Python, DevOps, CSS, Back-end, Front-end, Full-stack, ASCII, UTF-8

Consultant | Back-end Developer

2013 - 2014
Blurrt
  • 帮助开发了一种算法来衡量社交网络帖子中的情绪.
  • 编写了一个C程序,使用Twitter的API根据简单的搜索词从Twitter的“火龙”推文中收集情感.
  • 帮助定义了这个初创公司使用的技术栈.
Technologies: C, Twitter SDK, Back-end, Big Data

Consultant | Full-stack Developer

2008 - 2013
Percol Coffee
  • 使用静态XHTML模板、XML数据和XSLT样式表重新设计Percol的网站.
  • 为网站的交互部分创建了一个Python CGI后端.
  • Maintained, monitored, and hosted the Percol.co.uk website using Nginx on Debian Linux.
Technologies: JavaScript, XML, HTML, NGINX, DevOps, XHTML, XSLT, CSS, Linux, Front-end, Back-end, Full-stack

Consultant | Full-stack Developer

2000 - 2011
The Real Adventure
  • 共同创建q点,一个网络和IVR销售创新方案由黑马金融采购. Salespeople earned virtual Q points, 他们可以在系统上赌博,然后用高街代金券兑换.
  • 在Perl后端工作,每天导入数十万条财务记录供q点玩家兑换. 该系统还承载了奖励性赌博游戏的博弈逻辑. It ran on Linux with an Apache webserver.`.
  • 在Windows上开发了一个完整的c++拖拽式IVR(电话)系统,通过电话游戏(如点球大战和21点)来管理语音呼叫,) buy vouchers, order statements, and so on.
  • 使用JavaScript, Java applet和Flash为游戏编写多个web前端.
  • 维护和管理q点系统多年, monitoring logs, fixing bugs, and dealing with customer support requests.
Technologies: C++, Perl, Apache, HTML, Flash, Java, JavaScript, Microsoft Foundation Class Library (MFC), Berkeley DB, Integrated Services Digital Network (ISDN), DevOps, Software Analysis, Software Architecture, Software Design, Front-end, Back-end, Full-stack, CSS

IT Consultant

2003 - 2009
Watts of Westminster
  • Worked as a contractor for Watts, a textile company.
  • 维护Mac、Linux和Windows电脑的混合网络.
  • 重新设计他们的网站,并将其与公司的电子邮件一起托管在Linux、Apache和Exim上.
Technologies: HTML, CSS, Exim4, Apache, DevOps, Linux

Consultant | Software Developer

1987 - 2000
Freelance
  • Co-founded Renwah, a consulting startup, after college. 项目包括北安普顿Target Furniture的生产调度软件,使用BBC basic和C语言.
  • 在Computasoft工作,负责他们的金融产品系列, 主要是将他们的Noteware数据库系统从BASIC语言转换成C语言和x86汇编语言. 最值得注意的是,我编写了一个新的磁盘排序算法,将它们的排序速度提高了10倍.
  • Wrote, for Cinteract Systems, 使用现已过时的B-tree和R-tree库的C语言体育中心会员数据库系统.
  • Developed several websites, 包括合同车辆租赁系统和在线书店(遗憾的是不是亚马逊)!) Both use HTML templating and Perl CGI back ends.
  • Contributed to the implementation of Homework High, 这是英国电影学院奖获奖网站,由英国第四频道委托制作, using mainly Perl and HTML templates.
技术:c++, C, Visual Basic, MS-DOS, Perl, HTML, Assembler x86, Basic, RISC Assembly

Production Scheduling for CNC Furniture Manufacturer

使用JavaScript和Ajax前端,后端使用Python和XSLT, 我开发了一个网站,可以从一组组件中拖放衣柜设计, sizes, and styles. 设计被渲染并转换成一个完整的切割清单和生产计划,为工厂车间做好准备.

Patented Technology for Juniper Networks

http://patents.justia.com/patent/11546244
In general, the disclosure describes a method that includes partitioning resources of a computing device into a first namespace comprising a first physical network interface and a second namespace comprising a second physical network interface; creating, 由测试代理作为进程在第二个名称空间中执行, a test agent child in the second namespace; migrating the test agent to execute as a process in the first namespace; communicating, 由测试代理子程序通过第二物理网络接口, test packets; obtaining, by the test agent, network performance measurement data that is based at least on the test packets; and outputting, 在第一个名称空间中作为进程执行时由测试代理执行, 网络性能测量数据的指示.

Languages

C, Rust, JavaScript, HTML, Bash, Go, Python, C++, XSLT, XML, SQL, Haskell, Java, Lua, Visual Basic, Perl, Assembler x86, BASIC, XHTML, CSS, Elixir, Bash Script, WASM

Libraries/APIs

Protobuf, OpenAPI, Node.js, Twitter SDK, Microsoft Foundation Class Library (MFC), jQuery, React, Amazon EC2 API, WebGL, Web Audio

Tools

Git, Jenkins, LaTeX, Vim Text Editor, Jira, Confluence, Slack, Travis CI, Blender, Shell, Exim4, RabbitMQ, ActiveMQ, GitHub, NGINX, Apache, Flash, Confd, BigQuery, Cloud Dataflow, Grafana, Docker Compose, Cgroups

Platforms

Linux, Docker, Raspberry Pi, Debian, Debian Linux, Apache Kafka, MS-DOS, Quick EMUlator (QEMU), Amazon Web Services (AWS), Amazon EC2, Google Cloud Platform (GCP), Kubernetes, Embedded Linux, Windows, Blockchain

Other

TCP/IP, Open Source, Back-end, System Design, CI/CD Pipelines, Networking, Software Development, Software Design, Virtualization, PDF, SVG, Open Babel, NixOS, Ajax, RISC Assembly, Slack App, Integrated Services Digital Network (ISDN), Junos OS, CGI, Scrum Master, Excel 365, CSV, Debian Packaging, Software Architecture, Requirements, Software Analysis, Front-end, Full-stack, Big Data, Prometheus, Kustomize, Google BigQuery, Cloud Storage, Cloud Architecture, ASCII, UTF-8, Robotics, Embedded Systems, WebSockets, HTTPS, SSL, NVIDIA Codec SDK, HTTP, Video Encoding, APIs, Containers, Video Processing, Streaming

Paradigms

REST, Agile, DevOps, Scrum, Microservices

Frameworks

Django, JUCE

Storage

MongoDB, Berkeley DB, Amazon S3 (AWS S3), PostgreSQL, Google Cloud, Druid.io

2000 - 2010

Bachelor's Degree in Computer Science

Open University - Milton Keynes, UK