Jason Bell, Digital Signal Processing Developer in Wigton, United Kingdom
Jason Bell

Digital Signal Processing Developer in Wigton, United Kingdom

Member since February 9, 2020
Having worked four years as part of a DSP group, Jason has a solid background in 2G/3G/4G wireless telecommunications, using SDR technology and software stacks written in C, C++, and assembler. Jason has looked into a wide range of languages and paradigms, but considers C++ to be one of the most versatile and high performance, and has acquired expert knowledge of C++14. As well as programming, Jason enjoys software architecture and UI design, using C++ and Qt, or JavaScript and React.
Jason is now available for hire

Portfolio

Experience

Location

Wigton, United Kingdom

Availability

Part-time

Preferred Environment

PostgreSQL, Redux, React, Express.js, YARN, Node.js, GCC, Qt Creator, Vim Text Editor, Firefox, Ubuntu

The most amazing...

...project I've completed is porting a legacy C++ cellular stack from Windows to embedded Linux, enabling a full 3G network to be run from a small circuit board.

Employment

  • Quantitative Developer

    2017 - 2017
    N. B. Dhanuka Ltd.
    • Did functional programming in Haskell within a dockerized Linux environment.
    • Created simulations of price movements for an asset based on set parameters.
    • Performed numerical optimization techniques on portfolio allocation between various assets and investment strategies.
    Technologies: Bash, Unix, Windows, Git, Linux, Functional Programming, Docker, Haskell
  • Software Engineer

    2017 - 2017
    Garrison Technology Ltd.
    • Fixed display issues in DirectX code, allowing the Android environment to be shown with pixel-perfect accuracy on a PC screen.
    • Resolved issues with the Qt application switching between high DPI screens.
    • Performed stress testing of system networking using Python.
    Technologies: GCC, Make, Scrum, Bash, Unix, Linux, Agile Software Development, Windows, Git, Cybersecurity, Qt, Yocto, Embedded Linux, Python, C++, Android, DirectX
  • Compiler Engineer

    2016 - 2016
    Maxeler Technologies Ltd.
    • Debugged and upgraded kernel driver and runtime library for the HPC system.
    • Detected and assisted in fixing regressions in the FPGA VHDL code.
    • Participated in the transition of the codebase and tooling from SVN to Git.
    • Developed ideas for new test infrastructure to be included in the Jenkins continuous integration/deployment system.
    Technologies: GCC, Make, Bash, Unix, Linux, Git, Subversion (SVN), High-performance Computing, Device Drivers, C, Embedded Linux, Microsoft HPC, Java, VHDL, FPGA
  • Senior Engineer

    2012 - 2016
    Cambridge Consultants Ltd.
    • Participated in the development of physical layer implementations for telecoms standards including GSM, cdma2000, UMTS, and LTE.
    • Led studies and laid the groundwork for enabling new platforms (e.g. Octasic) to be used within the company.
    • Wrote optimized C/ASM for various multicore/VLIW architectures, and implemented DSP algorithms such as mixed-radix FFTs.
    • Produced new tools, applications and demos for the company's Sidewinder SDR platform.
    • Completed an upgrade and full port of a legacy C++ multi-threaded telecoms stack from Windows to embedded Linux.
    • Did technical writing and protocol design to coordinate with other teams in the company.
    • Implemented new network protocols, including the development of an associated Wireshark plugin to dissect the network traffic.
    • Created on my own all the necessary components for a system to do waveform playback and capture on radio frequencies from MATLAB.
    • Integrated or updated third-party software for use in the company's products and solutions.
    Technologies: GCC, Berkeley Sockets, Vim Text Editor, Make, Procedural Programming, SQL, C#, SQLite, Bash, Unix, Linux, Visual Studio, MATLAB, Wireshark, Windows, Multithreading, Digital Signal Processing, Git, Subversion (SVN), Embedded Linux, Radio, Radio Frequency (RF) Protocol, Telecommunications, DSP, ARM, Multi-core Programming, Assembler, C++, C

Experience

  • Coq FFT Development (Development)
    https://github.com/ColonelJ/coq_fft_proof

    This is a Coq development containing a machine-checked proof that the basic radix-2 Cooley-Tukey Fast Fourier Transform (FFT) algorithm correctly implements the Discrete Fourier Transform (DFT). I did this as a non-trivial exercise in certified programming, and to test my knowledge of Coq, that I had been building out of personal interest. This development uses the axiomatization of the real numbers from the standard library to implement basic operations on complex numbers and establish the ring structure and then uses that to implement the Fourier transforms. The proof is mainly structured into a series of lemmas and induction principles, before the main body of the proof, which is rather long due to the need to write out long equations at various stages.

  • C++ Competitive Programming Library (Development)
    https://github.com/ColonelJ/algorithms-cpp

    This is a work in progress library of algorithms and other utility functions for competitive programming using the C++ programming language. I have been developing this library as I have been going through the problems from UVa Online Judge mentioned in the book "Competitive Programming 3" by Steven and Felix Halim. The library includes custom iterators/adapters, various tree structures, and a variety of algorithms useful for specific problems.

  • Tronpix Decentralized Application (Development)
    http://tronpix.com/about

    Tronpix is a decentralized application (Dapp) I built for the TRON blockchain, based on the famous Million Dollar Homepage website. The Dapp allows users to buy tokens that can be exchanged for 10x10 pixel plots on a large canvas, on which users can draw anything they want, and attach an associated link to a website URL of their choosing. Like any Dapp, it is driven by a smart contract, written in Solidity in this case, which controls the core functions of the Dapp, the rest of the Dapp being written in JavaScript, and relying on the TronLink browser extension being present to facilitate connections to the blockchain through TronWeb. The whole website was written from scratch in pure HTML, CSS, and JavaScript, including the functionality for drawing and inserting images on the canvas. Although the project didn’t attract many users, it was still a good exercise in understanding blockchain technologies.

Skills

  • Languages

    C++, C, JavaScript, HTML, Assembler, VHDL, C#, Java, Visual Basic, Python, Bash, Haskell, Solidity, Coq, XML, CSS, SQL, QML
  • Tools

    Git, Subversion (SVN), Make, Visual Studio, Vim Text Editor, GCC, MATLAB, Wireshark, Code::Blocks, Qt Creator, IntelliJ IDEA
  • Paradigms

    Procedural Programming, Radio Frequency (RF) Protocol, Functional Programming, Logic Programming, High-performance Computing, Asynchronous Programming, Continuous Integration (CI), Continuous Deployment, Agile Software Development, Scrum
  • Platforms

    Linux, Embedded Linux, Unix, Windows, Ubuntu, Firefox, Android, Docker, Eclipse, NetBeans
  • Storage

    JSON, SQLite, MySQL, PostgreSQL, MongoDB
  • Other

    Digital Signal Processing, FPGA, Device Drivers, Yocto, Multi-core Programming, ARM, DSP, Radio, Multithreading, Berkeley Sockets, RESTful APIs
  • Frameworks

    Express.js, Boost, Qt, YARN, Bootstrap, Redux
  • Libraries/APIs

    Microsoft HPC, DirectX, Node.js, jQuery, React, OpenGL
  • Industry Expertise

    Cybersecurity, Telecommunications

Education

  • Bachelor's degree in Computer Science
    2008 - 2011
    University of Cambridge - Cambridge, United Kingdom

To view more profiles

Join Toptal
Share it with others