Small games, and the code behind them.
Codesarray makes calm mobile games for Android, and short videos and articles that show how code works, one idea at a time.
Games
Open, play a round, put the phone down. No accounts, and every game plays offline.
-
Blockfall
A calm 8x8 block puzzle with a daily challenge and a Play Games leaderboard.
-
Paws & Perils
A cute paper cut-out roguelike with an idle RPG underneath: pick a hero, walk the trail, choose your path at every fork.
Coming to Google Play About Paws & Perils -
Synapsy
A calm daily memory game: pairs, sequences, grids and spot the change, with a three-minute Daily Workout.
Coming to Google Play About Synapsy
Videos
Coding, algorithms and data structures, one language at a time. Every example on screen is real code with its real output. Python comes first.
-
Video2 min 54 s
Hello, Python: install Python 3.14 and write your first program
Install it, run code two ways, and learn the one rule that makes Python look different from every other language.
-
Video3 min 17 s
Variables and types: the five basic types and how to convert them
int, float, str, bool and None, how to ask Python what type a value is, and why "3" + 4 is an error until you convert.
-
Video3 min 33 s
Control flow: if, elif, else, for, while, break and continue
How a program decides and repeats, with a chained comparison, range(), and the else a loop can have.
-
Video4 min 24 s
Strings: indexing, slicing, methods and f-strings
Index and slice a string, why strings never change, the methods that clean text up, and f-strings, with a glance at 3.14 t-strings.
-
Video3 min 47 s
Lists: index, slice, append, pop, sort and what each costs
Build a list, grow and shrink it, sort it, and see why b = a is not a copy.
-
Video2 min 56 s
Tuples and sets: unpacking, swapping and removing duplicates
Make a tuple, unpack it, swap two variables in one line, and see why in is O(1) on a set.
-
Video2 min 49 s
Dictionaries: keys, values, get, items and counting
Store values by key, look them up, avoid a KeyError with get, loop with items, and count words.
-
Video3 min 1 s
Functions: def, return, default arguments and *args
Write your own functions with def, return a result, use defaults and keyword arguments, and collect extra arguments with *args.
-
Video3 min 11 s
Comprehensions: lists, dicts, sets, if, any and all
Build lists, dictionaries and sets in one line, filter with if, test with any and all, and know when a plain loop is clearer.
-
Video2 min 57 s
Errors and exceptions: try, except, else, finally and raise
Catch an error instead of crashing, run cleanup with finally, raise your own errors, and read a traceback from the bottom up.
-
Video2 min 31 s
Files and JSON: open, with, pathlib, json.dump and json.load
Read and write files safely, build paths that work on every system, and save a dictionary as JSON so it outlives your program.
-
Video2 min 34 s
Modules and uv: import, the standard library, packages and pyproject.toml
Import code other people wrote, set up a project with uv, and keep it tidy with a pyproject file and ruff.
-
Video2 min 37 s
Classes: class, __init__, self, methods and @dataclass
Build your own type with data and behaviour, print it clearly with __repr__, and meet the dataclass shortcut.
-
Video2 min 33 s
Build a to-do app: lists, dictionaries, JSON and try/except
The beginner capstone: keep tasks in a list of dictionaries, save them to a JSON file, and load them back even on the first run.
-
Video3 min 12 s
Big O in Python: timeit, growth curves and what list, dict and set cost
Measure how code slows as data grows, name the five curves, and see a list lookup grow while a set lookup stays flat.
-
Video3 min 23 s
Iterators and generators in Python: yield, next and itertools
What a for loop really does, how yield pauses a function, and why a generator uses 208 bytes where a list uses megabytes.
-
Video3 min 0 s
Closures and scope in Python: LEGB, nonlocal and late binding
Where Python looks for a name, how a function remembers the variables around it, and why lambdas in a loop all return the last value.
-
Video3 min 15 s
Python decorators explained: @wraps, arguments and lru_cache
What the at sign really does, how functools.wraps keeps a function's name, how to give a decorator arguments, and how lru_cache makes recursive Fibonacci instant.
-
Video3 min 3 s
Python classes explained: dunder methods, property and super
How a class prints itself with dunder methods, reads a method like an attribute with @property, builds objects with @classmethod, and extends a parent with super().
-
Video2 min 33 s
Python type hints explained: str, list[int] and int | None
How to annotate a function, describe a list with list[int], mark a value that might be None with int | None, and what a type checker does with the hints.
-
Video1 min 59 s
Python stacks and queues: list, deque and why pop(0) is slow
A stack is last in, first out and a list does it. A queue is first in, first out and a deque does it, because pop(0) on a list shifts every item.
-
Video2 min 2 s
Python linked lists from scratch: Node class and head
A node holds a value and a link to the next node. Chain them from a head to None, walk the chain, and see why adding at the front is O(1) but finding an item is not.
Articles
The same lessons, written down, with code you can copy.
-
PythonIntermediate
Python linked lists from scratch: Node class and head
How a linked list works in Python: a Node class that holds a value and a link, the head, the None that ends the chain, how to walk it, and why adding at the front is O(1).
-
PythonIntermediate
Python stacks and queues: list, deque and why pop(0) is slow
What a stack and a queue are, how to build a stack from a list and a queue from a deque, and why pop(0) costs O(n) while popleft does not.
-
PythonIntermediate
Python type hints explained: str, list[int] and int | None
How to annotate a function, describe a list with list[int], mark a value that might be None with int | None, and what a type checker like mypy does with the hints.
Work
Codesarray is created by Anand Rathore, a software developer. The day job, for more than five years, has been payment systems.
Payment gateways, settlement and reconciliation: software where every write is audited and a wrong number is somebody's money. That work covers the whole path, from gathering requirements and designing the system to building, deploying and running it.
Open to freelance and contract projects, to full-time roles, and to collaborations and sponsorship on the YouTube channel. Remote only.
- Experience
- 5+ years in fintech
- Backend
- Python, Java, Django, Spring Boot, Node.js
- Data
- PostgreSQL, MySQL, MongoDB, Kafka
- Frontend
- React, TypeScript, Tailwind CSS
- Also
- Android games in Kotlin
- Where
- India, working remotely