Kotlin Hackathon: How to Win and Not Burn Out

Online Python Trainer for Beginners

Learn Python easily without overwhelming theory. Solve practical tasks with automatic checking, get hints in Russian, and write code directly in your browser — no installation required.

Start Course

Kotlin at a Hackathon: Your Ticket to the Top Three



Hackathons are adrenaline, sleepless nights, tons of coffee, and the magic when raw code turns into a working prototype in 48 hours. But if you're still dragging Python or Java to a hackathon, you're missing a trump card. Kotlin is a language that gives you a superpower: write less, do more, and not go crazy from bugs in the early morning.



Why is Kotlin ideal for a hackathon? It's concise, null-safe, supports coroutines (asynchronous without pain) and works everywhere: from Android to backend on Ktor. In this article, I'll share real tips on how to prepare for a Kotlin hackathon and show project examples with code that you can adapt to your idea. Let's go!



Phase 1: Preparation — 80% of Success



A hackathon doesn't start when the theme is announced, but a week before. Here's what you need to do to avoid writing code from scratch.



1. Gather a "Gentleman's Kit" of Libraries



Don't waste time choosing tools. Determine your MVP stack in advance:



  • Backend: Ktor (lightweight, fast, asynchronous) + Exposed (ORM for DB) + H2 or PostgreSQL.
  • Frontend (if needed): Kotlin/JS or Compose Multiplatform — one language for all screens.
  • Asynchrony: Kotlin Coroutines + Flow.
  • Serialization: kotlinx.serialization — JSON without pain.
  • Testing: Built-in kotlin.test — enough for quick checks.


2. Prepare a Project Template



Create a repository with a basic structure: Ktor setup, database connection, simple CRUD. This will save 2-3 hours on the first day of the hackathon. Example starter file Application.kt:



import io.ktor.server.engine.*import io.ktor.server.netty.*import io.ktor.server.routing.*import io.ktor.server.response.*import io.ktor.server.request.*import io.ktor.http.*

fun main() { embeddedServer(Netty, port = 8080) { routing { get("/") { call.respondText("Hello, Hackathon!", ContentType.Text.Plain) } get("/api/health") { call.respond(mapOf("status" to "ok")) } } }.start(wait = true)}


Phase 2: Choosing an Idea — Don't Overcomplicate



At a hackathon, the winners are not the most complex projects, but those that work and solve a specific pain point. Forget about neural networks and blockchain if you don't have a ready-made model. It's better to make a simple but complete product.



Example 1: Telegram Bot for Collecting Feedback in Kotlin



We use Kotlin + TelegramBots (library for bots). The bot collects anonymous feedback from employees and sends it to Google Sheets.



Key features: receiving messages, validation, writing to a table.



import org.telegram.telegrambots.bots.TelegramLongPollingBotimport org.telegram.telegrambots.meta.api.methods.send.SendMessageimport org.telegram.telegrambots.meta.api.objects.Update

class FeedbackBot(token: String) : TelegramLongPollingBot(token) {

override fun onUpdateReceived(update: Update) { val message = update.message.text val chatId = update.message.chatId.toString()

if (message.startsWith("/feedback")) { val feedbackText = message.removePrefix("/feedback ").trim() if (feedbackText.isNotEmpty()) { // Save to DB or send to Google Sheets saveFeedback(feedbackText) sendMessage(chatId, "Thank you! Your feedback has been received.") } else { sendMessage(chatId, "Please write text after /feedback")

Blogs

Book Recommendations