Skip to content
Codefest · Coding competitions

Competitive coding platform with hardware-fair grading

A global coding competition platform that grades on algorithmic merit regardless of the contestant's machine. Contestants are judged on the time and space complexity of what they write, so a phone, a laptop and a workstation compete on equal terms.

Submission gradedalgorithmic merit
Graded
sorted.jssample submission
function containsDuplicate(nums) {  const sorted = [...nums].sort((a, b) => a - b);  for (let i = 1; i < sorted.length; i++) {    if (sorted[i] === sorted[i - 1]) return true;  }  return false;}
Time complexityO(n log n)
Space complexityO(n)
Same grade · any devicedevice-agnostic
Mobile phoneO(n log n) · O(n)
LaptopO(n log n) · O(n)
WorkstationO(n log n) · O(n)
Client
Codefest
Industry
Education
Region
Global
Year
2023
The problem

A stopwatch grades the hardware.

Online coding competitions have a fairness problem nobody talks about: a contestant on a fast machine finishes execution sooner than one on a phone, and naive timing-based grading rewards hardware rather than skill.

That quietly excludes exactly the people global competitions are supposed to reach.

Switch the leaderboard from timing to complexity and watch who moves. That switch is the product.

Leaderboard · “Contains duplicate”
Same four entries. Two ways to rank them.
  1. 1Entrant A Workstation· nested.js
  2. 3Entrant B Phone· hashed.js
  3. 2Entrant C Laptop· sorted.js
  4. 4Entrant D Phone· sorted.js

Timing rewards the machine. A workstation running the slowest algorithm takes first. C and D wrote the same code and finish two places apart, because D entered from a phone.

Illustrative entries and timings. Ordered here by time complexity, then space.

01 Grade on complexity

The grade is what the algorithm is, not how fast it ran.

Grading algorithms assess submissions on time and space complexity rather than raw wall-clock execution on the contestant's device.

  • Time complexity: how the work grows as the input grows. Nested loops square it; a sort costs n log n; a single pass is linear.
  • Space complexity: the memory the answer needs on top of its input. The fastest answer here pays for its speed with a set as large as the input.
  • Neither depends on the device. An O(n²) answer is O(n²) on a workstation and on a phone, which is exactly why it can be graded fairly.
Sample problem
Contains duplicate

Given an array of numbers, return true if any value appears at least twice.

function containsDuplicate(nums) {  for (let i = 0; i < nums.length; i++) {    for (let j = i + 1; j < nums.length; j++) {      if (nums[i] === nums[j]) return true;    }  }  return false;}
Grader
TimeO(n²)
SpaceO(1)

Every element is compared with every later one. No extra memory, but the work squares with the input.

  • O(n²)1.0 × 10⁸
  • O(n log n)1.3 × 10⁵
  • O(n)1.0 × 10⁴

Roughly how many basic steps each class implies at this size, on a log scale. The same on any machine: that is the point.

02 Run anywhere

Enter from whatever you own.

The platform works across device classes — mobile phone, laptop or workstation — so entry does not depend on equipment.

Mobile phoneLaptopWorkstation

A slower machine still takes longer to finish, and nobody pretends otherwise. It simply stops mattering: the finishing time is not the grade.

Submission
Mobile phoneready
graded on finish
Laptopready
graded on finish
Workstationready
graded on finish

Press run: the same code goes to all three devices at once.

Race lengths are illustrative, not benchmarks.

03 Compete globally

A competition with no venue.

Competitions, learning material and a leaderboard run virtually, opening participation beyond any single location. If the contest is fair on any device, it can be open to anyone, anywhere.

Competitions

Contests run virtually, so entering needs a connection and a device, not a ticket.

Learning

Learning material sits beside the contests, for preparing as well as competing.

Leaderboards

Standings built on complexity grades, so a place on the board reflects the code.

Codefest landing page: an Enter Contest bar with the upcoming competition, navigation to Explore, Learn and Community, and a Register Now call to action.
01Competition platform landing and registration
Codefest mission section, describing the platform as a place to learn, compete and sharpen coding skills.
02Learning and community sections
What we built

One platform, three commitments.

01

A competition platform grading contestants on algorithmic time and space complexity.

02

Device-agnostic participation across phones, laptops and workstations.

03

Virtual global competitions with learning resources and leaderboards.

Built with
Next.jsReactNode.jsDockerCloud
Outcome

What changed.

Contestants judged on merit rather than machine specification

Participation opened to any device class

Delivered as official technology and consulting partner

Next

Related work.

Nexus — The business card that never goes out of date
Flagship

Nexus

NexusEnterpriseGlobal

The business card that never goes out of date

An NFC and digital business card platform that runs a whole company's cards from one console, in five languages, across the UK, Europe and the Gulf.

Next.js 16React 19TypeScript
Read case studySee Nexus live
Tamo Scrubs — Multi-market Shopify commerce for a medical scrubs brand

Tamo Scrubs

Tamo ScrubsE-CommerceJordan

Multi-market Shopify commerce for a medical scrubs brand

A Shopify storefront selling medical scrubs and lab coats across nine markets, with multi-currency checkout and a deep fit and fabric matrix.

ShopifyLiquidJavaScript
Read case studySee Tamo Scrubs live
SCORA — Security assessments that end in proof, not a PDF
Flagship

SCORA

SCORAEnterpriseGlobal

Security assessments that end in proof, not a PDF

A security assessment and remediation platform: nine frameworks, every gap routed to an owner, evidence checked and read by AI, and an auditor-ready closure record — in English and Arabic.

Next.jsTypeScriptPostgreSQL
Read case studySee SCORA live