Tim Varley Logo
Tim Varley Systems Engineer

Tim
Varley

Principal Systems Engineer & Technical Lead specializing in distributed systems, AI-driven development, and high-performance infrastructure.

Featured Projects

AI-Native IoT Platform Architecture
2016 - Present Technical Lead / Principal Engineer

AI-Native IoT Platform

AI-native IoT platform optimizing water and energy consumption with distributed sensor networks, built entirely using advanced LLM agents.

AI-Native Next.js Node.js IoT
B2B E-commerce Marketplace Architecture
2014 - 2016 Lead Software Engineer

B2B E-commerce Marketplace

Cloud-native B2B e-commerce platform disrupting the promotional products industry with extreme scalability and 20% cost optimization.

Node.js E-commerce Microservices Cost Optimization
Enterprise SaaS Migration Architecture
2012 - 2014 Enterprise Architect

Enterprise SaaS Migration

Transformed legacy monolithic software into cloud-native microservices architecture, achieving 170% performance boost and 99.9% uptime.

Architecture Migration C# Node.js
High-Frequency Financial Infrastructure Architecture
2009 - 2012 Senior Technical Lead

High-Frequency Financial Infrastructure

Mission-critical financial data infrastructure delivering embargoed government economic releases to trading systems in under 15 milliseconds.

FinTech C++ Low Latency Linux
FinTech Patent Solution Architecture
Patent Granted Inventor

FinTech Patent Solution

Pioneering multi-channel banking system architecture that earned a US patent and Smithsonian Innovation Award for bridging legacy and digital banking.

FinTech Patent Banking Innovation
AI-Native Portfolio & Blog Architecture
2024 - Present Principal Engineer / AI Architect

AI-Native Portfolio & Blog

A high-performance personal platform built 100% via autonomous AI agents, directed by senior engineering architectural patterns. Demonstrates the power of experience-driven agentic workflows.

AI-Native Autonomous Agents Recursive Prompting Astro
AI-Generated Euler Solutions Architecture
Ongoing Principal Engineer / AI Architect

AI-Generated Euler Solutions

A repository of 50+ mathematical algorithm solutions generated entirely by AI agents. Showcases how deep engineering expertise guides AI to produce optimal, mathematically rigorous code.

Chain-of-Thought Algorithm Optimization Polyglot Architecture C++

Recent Solutions

View All →
#060 hard

Prime pair sets

The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property. Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime.

cpp go java
#059 medium

XOR Decryption

Each character on a computer is assigned a unique code and the preferred standard is ASCII (American Standard Code for Information Interchange). For example, uppercase A = 65, asterisk (*) = 42, and lowercase k = 107. A modern encryption method is to take a text file, convert the bytes to ASCII, then XOR each byte with a given value, taken from a secret key. The advantage with the XOR function is that using the same encryption key on the cipher text, restores the plain text; for example, 65 XOR 42 = 107, then 107 XOR 42 = 65. For unbreakable encryption, the key is the same length as the plain text message, and the key is made up of random bytes. The user would keep the encrypted message and the encryption key in different locations, and without both "halves", it is impossible to decrypt the message. Unfortunately, this method is impractical for most users, so the modified method is to use a password as a key. If the password is shorter than the message, which is likely, the key is repeated cyclically throughout the message. The balance for this method is using a sufficiently long password key for security, but short enough to be memorable. Your task has been made easy, as the encryption key consists of three lower case characters. Using [p059_cipher.txt](https://projecteuler.net/project/resources/p059_cipher.txt), a file containing the encrypted ASCII codes, and the knowledge that the plain text must contain common English words, decrypt the message and find the sum of the ASCII values in the original text.

cpp go java
#058 medium

Spiral primes

Starting with 1 and spiralling anticlockwise in the following way, a square spiral with side length 7 is formed. It is interesting to note that the odd squares lie along the bottom right diagonal, but what is more interesting is that 8 out of the 13 numbers lying along both diagonals are prime; that is, a ratio of 8/13 ≈ 62%. If one complete new layer is wrapped around the spiral above, a square spiral with side length 9 will be formed. If this process is continued, what is the side length of the square spiral for which the ratio of primes along both diagonals first falls below 10%?

cpp go java
#057 medium

Square root convergents

It is possible to show that the square root of two can be expressed as an infinite continued fraction. $\sqrt 2 =1+ \frac 1 {2+ \frac 1 {2 +\frac 1 {2+ \dots}}}$ By expanding this for the first four iterations, we get: $1 + \frac 1 2 = \frac 32 = 1.5$ $1 + \frac 1 {2 + \frac 1 2} = \frac 7 5 = 1.4$ $1 + \frac 1 {2 + \frac 1 {2+\frac 1 2}} = \frac {17}{12} = 1.41666 \dots$ $1 + \frac 1 {2 + \frac 1 {2+\frac 1 {2+\frac 1 2}}} = \frac {41}{29} = 1.41379 \dots$ The next three expansions are $\frac {99}{70}$, $\frac {239}{169}$, and $\frac {577}{408}$, but the eighth expansion, $\frac {1393}{985}$, is the first example where the number of digits in the numerator exceeds the number of digits in the denominator. In the first one-thousand expansions, how many fractions contain a numerator with more digits than the denominator?

cpp go java
#056 medium

Powerful digit sum

A googol (10^100) is a massive number: one followed by one-hundred zeros; 100^100 is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1. Considering natural numbers of the form, a^b, where a, b < 100, what is the maximum digital sum?

cpp go java
#055 medium

Lychrel numbers

If we take 47, reverse and add, 47 + 74 = 121, which is palindromic. Not all numbers produce palindromes so quickly. For example, 349 took three iterations to arrive at a palindrome. Although no one has proved it yet, it is thought that some numbers, like 196, never produce a palindrome. A number that never forms a palindrome through the reverse and add process is called a Lychrel number. How many Lychrel numbers are there below ten-thousand?

cpp go java