Hi! I'm Ben, a full stack backend and web developer.
These days, I predominantly use Rust for my projects, however I was originally a Python/JS developer.
Some of my passions are byte-level file parsing, networking/packet design, and competing-consumers-style pipelines.
A few things I have worked with are...
-
Rust
- Axum (Web framework)
- Proj4rs (pure rust reimplementation of proj4)
- Serde (Serialisation/Deserialization Library)
- Tokio (Async Runtime, for multithreading and data-flow)
- Tracing (Logging library)
-
Python
- FastAPI
- Flask
- Asyncio
- Mongoengine & SQLAlchemy
- Py-Serde (A lib for structuring and safely parsing JSON) ^ Contributed.
- Pika @ RabbitMQ for AMQP
-
Javascript
- Typescript
- UI Frameworks (React, Svelte, Vue3)
- jQuery (creating dynamic effects that are tedious in DOM api)
- Node w/ Vite on Electron
-
Markup/Config Languages
- JSON, TOML, YAML
- HTML, CSS, SCSS
-
APIs:
- Square, Etsy, Shopify, Ebay, WooCommerce
- Wordpress
- Google (Sheets & Docs)
- Plesk
- Google Cloud Platform
-
Systems Administration
- GCP App Engine / Compute Engine
- Docker + Docker Compose
- Linux (Arch, Fedora, Ubuntu)
- Networking & Configuration (iwd, network-manager, wpa_supplicant)
- Plesk & CPanel
Since attending university, I have also completed the following modules.
- 1st Year
- Computing Foundations (Databasing with SQL)
- Computing Systems (Sigma16 Assembly & Basic Logic)
- Electronics Engineering 1X + 1Y (MBED Microcontroller Programming, RC Filters, OpAmps)
- Maths 1G+1C (Calculus, Matrices, and Linear Algebra)
- 2nd Year
- Algorithmic Foundations (Discrete Mathematics & Probability)
- Networks & Operating Systems (CPU Architecture, Protocol specifics, OSI Model)
- Digital Electronics (VHDL, Programming FPGAs, Interpreting data-sheets)
- Electrical Circuits (Transient Analysis by hand, Sinusoidal representation of AC signals, Solving for Phase/Impedance)
- Intro to Object Oriented Programming (Java Programming)
- Electronic Design Project (Team project, design and build, and report on an electronic heart rate monitor using PPG)
- Algorithms & Data Structures
- Analogue Electronics
- Object Oriented Software Engineering (Java Design Patterns, Project Managament)
- Embedded Processors (Microcontroller Programming)
- Physics 2T, Programming under Linux (Covers basic C development & toolchain)
- 3rd Year
- Completed:
- Algorithmics 1 (Regex, Finite State Automata, NP Completeness/Computability)
- Human Computer System Design (Ergonomics, Usability, and Formal Study Methods)
- IN PROGRESS:
- Database Systems - (SQL, Normalisation, Optimisation, and analytics)
- Professional Software Development - (Team/Project Management Techniques)
- Cyber Security Fundamentals - (Basic Cryptography, Formalisation of Security, Real-World Concerns)
- Programming Languages (Representing Contextual Grammars (EBNF), Abstract Syntax Trees, Compilers (extend one!))
- Data Fundamentals - (Tensors, Optimisation Problems, Numpy, Matplotlib)
- Networked Systems - (TCP/UDP/QUIC, real world concerns, Congestion Control/Slow-Start)
- Systems Programming - (C, Pointers & Memory Access, Manual Allocation, implemented various ADTs)
- Team Project - (Design and implement a REAL PRODUCT for a REAL CUSTOMER in teams of 5, randomly selected)
- Working for THALES UK, to produce GeoQuery, a tool which takes a directory full of map files, and allows this directory to be searched by a region, to find all files which contain data about the query region.
- Along the way I have improved my proficiency in Rust, and become comfortable with Axum, Tokio, and Serde.
- I have also gained proficiency in React, as well as frontend development as a whole.
- Working with my team has been a pleasure, our current implementation meets all the initial requirements and then some.
- See GeoQuery
- Completed: