Competitive programming

Reduce. Prove. Execute.

The contest clock taught me to strip away the story, find the invariant, choose the right data structure, and still leave time for the edge case that breaks the obvious solution.

Programming workspace
C++ is the contest language.Correctness is the actual skill.
Code Jam2014 qualifier
Plinth ’15inter-university contest
26 repospublic GitHub profile
C++primary contest language
The method

A repeatable way through unfamiliar problems.

The transferable skill is not memorizing solutions. It is learning how to create one under constraint.

01

Reduce the problem

Translate narrative into inputs, outputs, invariants, constraints, and the smallest version that still contains the difficulty.

02

Choose and prove

Map the structure to graphs, dynamic programming, greedy logic, search, sorting, or number theory—and understand why it works.

03

Implement and attack

Write clean C++, test boundaries and counterexamples, then measure the real complexity against the limits.

Algorithm toolkit

Patterns I reach for.

Data structures

Arrays & stringsStacks & queuesHash mapsHeapsTreesGraphsDisjoint sets

Techniques

Binary searchTwo pointersSliding windowDFS / BFSShortest pathsDynamic programmingGreedyBacktracking

Contest discipline

Complexity analysisEdge casesFast implementationDebugging under pressurePost-contest learning
Competitive programmer Gennady Korotkevich, an inspiration
Why it still matters
Contest thinking follows me into debugging, performance work, incident response, and architecture reviews.

Different environment. Same habit: reduce uncertainty, identify the bottleneck, and test the assumption.

Practice archive

Code in the open.

The “My-code” and “techiedelight” repositories on GitHub preserve part of the algorithm and C++ practice trail.

Browse repositories ↗

Need this kind of reasoning on a product problem?

See how competitive programming translates into full-stack delivery and production ownership.