About GetUp
An independent Java engineering blog, written from real implementation work
Our Story
GetUp started with a straightforward problem: most programming tutorials stop exactly where things get interesting. They show you the API call, not the data structure underneath it. They show you the fix, not why the bug happened. Working through a chess engine in Java made that gap impossible to ignore — almost every hard part was either undocumented or explained in a paper written for people who already understood it.
Started in 2025 and based in Bangalore, India, GetUp is a single-author blog. It covers the parts of Java engineering that reward going deeper: chess engine internals, bitboard representation, move generation, search algorithms, and the JVM exceptions that trip up nearly everyone who writes Java for long enough.
Nothing here is written from a summary of someone else's work. Every article comes out of code that was actually written, run, and debugged — including the benchmarks, the perft counts, and the bugs that took an afternoon to find.
Our Mission & Vision
Our Mission
To explain the hard parts of Java engineering properly — the data structures, the algorithms, and the failure modes — at the depth the topic actually needs, without hype or filler.
Our Vision
To become a reference engineers actually return to when they need to understand how something works underneath — not just how to call it.
What We Cover
Two connected series, both grounded in working Java code:
Board Representation & Move Generation
How a chess position fits in 64-bit integers, why magic bitboards work, generating sliding-piece moves, and getting en passant, castling rights, and the 50-move rule right — verified with perft.
Search & Evaluation
Moving from minimax to alpha-beta with measured node counts, and building an evaluation function from material, piece-square tables, and mobility.
Java Exceptions & JVM Behaviour
Reading Java 21's helpful NullPointerException messages, and why modifying a collection inside a for-loop throws — or worse, silently skips elements.
Protocols & Deployment
Implementing the UCI protocol in plain Java with no frameworks, and what actually broke when deploying a bot against the Lichess streaming API.
By the Numbers
Fewer articles, each one longer and more thoroughly worked through:
Our Editorial Standards
Every article on GetUp is produced under a clear set of standards:
- ✔ Verified — Facts are checked against primary sources before publishing
- ✔ Original — All content is written by our team, not copied or scraped
- ✔ Transparent — Affiliate relationships and sponsored content are clearly disclosed
- ✔ Updated — Articles are revised when the underlying information changes
- ✔ Accessible — Everything we publish is free, with no paywall
For full details on how we create and review content, see our Editorial Policy.
Our Values
The best technical writing is honest about what worked, what didn't, and what is still unresolved. Approaches that turned out to be dead ends are described as dead ends. Where a number is quoted — a node count, a perft result, a benchmark — it came from a run that actually happened, not from another article.
Depth over frequency. An article gets published when the underlying code works and the explanation holds up, not on a content calendar. That means fewer posts than a typical blog, and considerably more detail in each one.
Meet the Author
Vijay
Founder & Writer, GetUp
I'm Vijay, a developer based in Bangalore, India. I started GetUp while building a chess engine in Java, because the explanations I needed either didn't exist or assumed I already understood the thing I was trying to learn.
Every article on this site is written by me, from my own implementation work. The bitboard, move generation, search, and evaluation posts describe code I wrote and debugged; the perft results and node counts come from runs on my own machine. The Java exception posts come from behaviour I hit in real code and then went and confirmed against the OpenJDK source. Where something is untested or I'm unsure, I say so in the article rather than smoothing over it.
Want to Connect?
Have a correction, a story tip, a collaboration idea, or just a question? We read every email we receive.
Contact Us