The Go Interview Practice
CategoryWebsites
SubcategoryGuided Learning
Stars2,489
A GitHub repository offering coding challenges for Go technical interview preparation
About The Go Interview Practice
This large README is shown as a plain-text preview. Read the full README at the source
# Go Interview Practice
<div align="center">
[](https://github.com/RezaSi/go-interview-practice/stargazers)
[](https://golang.org/)
[](https://github.com/RezaSi/go-interview-practice)
<!-- [](https://discord.gg/G2DH2qpF) -->
<a href="https://trendshift.io/repositories/14255" target="_blank">
<img src="https://trendshift.io/api/badge/repositories/14255" alt="RezaSi%2Fgo-interview-practice | Trendshift" style="width: 250px;" width="250"/>
</a>
**β Star the repo if itβs useful to you**
<br/>
<br/>
</div>
Welcome to the **Go Interview Practice** repository! Master Go programming and ace your technical interviews with our interactive coding challenges.
<!-- <a href="https://prodpath.dev" target="_blank">
<p align="center">
<img src="images/prodpath-banner.png" alt="Go Interview Practice Banner" width="100%">
</p>
</a> -->
<!--
**Go Interview Practice is now part of [ProdPath](https://prodpath.dev)** β the complete platform for becoming a production-ready developer with Cloud Labs, System Design, and AI mentorship.
-->
Our interactive platform is live at **[app.gointerview.dev](https://app.gointerview.dev/)** π Explore challenges, track your progress, and elevate your Go skills with AI-powered mentorship.
<div align="center">
<a href="https://app.gointerview.dev/" target="_blank">
<img src="https://img.shields.io/badge/Start%20Practicing-Now-blue?style=for-the-badge&logo=go" alt="Start Practicing Now">
</a>
</div>
---
## Visual Overview
### Interactive Challenge Platform
Our comprehensive web interface provides everything you need to practice and master Go programming:
<div align="center">
<video src="https://github.com/user-attachments/assets/23468aab-a032-4326-9d05-84de86c9128c" controls width="90%"></video>
<p><em>A brief introduction to the project</em></p>
</div>
---
### Code & Test Experience
<div align="center">
<img src="./images/challenge.png" alt="Go Interview Practice Web UI - challenge" width="48%" style="margin-right: 2%;">
<img src="./images/result.png" alt="Go Interview Practice Web UI - result" width="48%">
</div>
<div align="center">
<table>
<tr>
<td align="center" width="48%">
<strong>Interactive Code Editor</strong><br>
<em>Write, edit, and test your Go solutions<br>with syntax highlighting and real-time feedback</em>
</td>
<td width="4%"></td>
<td align="center" width="48%">
<strong>Instant Results & Analytics</strong><br>
<em>Get immediate test results, performance metrics,<br>and detailed execution analysis</em>
</td>
</tr>
</table>
</div>
---
### Competitive Leaderboard
<div align="center">
<img src="./images/scoreboard.png" alt="Go Interview Practice - Main Leaderboard" width="90%">
<p><em>Beautiful leaderboard showcasing top developers with challenge completion indicators, rankings, and achievements</em></p>
</div>
---
## π Top 10 Leaderboard
Our most accomplished Go developers, ranked by number of challenges completed:
> **Note**: The data below is automatically updated by GitHub Actions when challenge scoreboards change.
| π
| Developer | Solved | Rate | Achievement | Progress |
|:---:|:---:|:---:|:---:|:---:|:---|
| π₯ | <img src="https://github.com/PolinaSvet.png" width="24" height="24" style="border-radius: 50%;"><br/>**[PolinaSvet](https://github.com/PolinaSvet)** | **30**/30 | **100.0%** | Master | β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| π₯ | <img src="https://github.com/PopovMarko.png" width="24" height="24" style="border-radius: 50%;"><br/>**[PopovMarko](https://github.com/PopovMarko)** | **30**/30 | **100.0%** | Master | β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| π₯ | <img src="https://github.com/mvsouza.png" width="24" height="24" style="border-radius: 50%;"><br/>**[mvsouza](https://github.com/mvsouza)** | **30**/30 | **100.0%** | Master | β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| 4 | <img src="https://github.com/nzamulov.png" width="24" height="24" style="border-radius: 50%;"><br/>**[nzamulov](https://github.com/nzamulov)** | **30**/30 | **100.0%** | Master | β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| 5 | <img src="https://github.com/odelbos.png" width="24" height="24" style="border-radius: 50%;"><br/>**[odelbos](https://github.com/odelbos)** | **29**/30 | **96.7%** | Master | β
β¬β
β
β
β
β
β
β
β
β
β
β
β
β
<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| 6 | <img src="https://github.com/IvanDamNation.png" width="24" height="24" style="border-radius: 50%;"><br/>**[IvanDamNation](https://github.com/IvanDamNation)** | **28**/30 | **93.3%** | Master | β¬β
β
β
β
β
β
β
β
β
β
β
β
β
β¬<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| 7 | <img src="https://github.com/imankhodadi.png" width="24" height="24" style="border-radius: 50%;"><br/>**[imankhodadi](https://github.com/imankhodadi)** | **28**/30 | **93.3%** | Master | β
β
β
β
β
β
β
β
β
β
β
β¬β
β¬β
<br/>β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
|
| 8 | <img src="https://github.com/atplay90.png" width="24" height="24" style="border-radius: 50%;"><br/>**[atplay90](https://github.com/atplay90)** | **25**/30 | **83.3%** | Master | β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
<br/>β
β
β
β
β
β
β
β
β¬β¬β¬β
β¬β¬β
|
| 9 | <img src="https://github.com/mick4711.png" width="24" height="24" style="border-radius: 50%;"><br/>**[mick4711](https://github.com/mick4711)** | **23**/30 | **76.7%** | Master | β
β
β
β
β
β
β
β
β
β
β¬β¬β
β
β¬<br/>β
β
β
β
β
β
β
β
β¬β¬β
β
β¬β¬β
|
| 10 | <img src="https://github.com/evassilyev.png" width="24" height="24" style="border-radius: 50%;"><br/>**[evassilyev](https://github.com/evassilyev)** | **22**/30 | **73.3%** | Master | β
β
β
β
β
β
β
β¬β¬β
β¬β¬β
β
β¬<br/>β
β
β
β
β
β
β
β
β
β
β¬β
β¬β¬β
|
<div align="center">
β
Completed β’ β¬ Not Completed
*All 30 challenges shown in two rows*
</div>
*Updated automatically based on 30 available challenges*
### Challenge Progress Overview
- **Total Challenges Available**: 30
- **Active Developers**: 397
- **Most Challenges Solved**: 30 by PolinaSvet
<!-- END_CLASSIC_LEADERBOARD -->
## π Package Challenges Leaderboard
Master Go packages through hands-on challenges! Each package offers a structured learning path with real-world scenarios.
> **Note**: The data below is automatically updated by GitHub Actions when package challenge scoreboards change.
| π
| Developer | Total Solved | Packages | Achievement | Challenge Distribution |
|:---:|:---:|:---:|:---:|:---:|:---|
| π₯ | <img src="https://github.com/odelbos.png" width="24" height="24" style="border-radius: 50%;"><br/>**[odelbos](https://github.com/odelbos)** | **17** | **4** pkgs | π₯ Package Master | **cobra**: 4 β’ **fiber**: 4 β’ **gin**: 4 β’ **gorm**: 5 |
| π₯ | <img src="https://github.com/PolinaSvet.png" width="24" height="24" style="border-radius: 50%;"><br/>**[PolinaSvet](https://github.com/PolinaSvet)** | **8** | **2** pkgs | πͺ Package Advanced | **cobra**: 4 β’ **gin**: 4 |
| π₯ | <img src="https://github.com/PopovMarko.png" width="24" height="24" style="border-radius: 50%;"><br/>**[PopovMarko](https://github.com/PopovMarko)** | **8** | **3** pkgs | πͺ Package Advanced | **cobra**: 3 β’ **gin**: 4 β’ **gorm**: 1 |
| 4 | <img src="https://github.com/RezaSi.png" width="24" height="24" style="border-radius: 50%;"><br/>**[RezaSi](https://github.com/RezaSi)** | **7** | **6** pkgs | πͺ Package Advanced | **cobra**: 1 β’ **echo**: 1 β’ **fiber**: 1 β’ **gin**: 1 β’ **gorm**: 1 β’ **mongodb**: 2 |
| 5 | <img src="https://github.com/imankhodadi.png" width="24" height="24" style="border-radius: 50%;"><br/>**[imankhodadi](https://github.com/imankhodadi)** | **7** | **2** pkgs | πͺ Package Advanced | **gin**: 4 β’ **gorm**: 3 |
| 6 | <img src="https://github.com/22-7-co.png" width="24" height="24" style="border-radius: 50%;"><br/>**[22-7-co](https://github.com/22-7-co)** | **5** | **2** pkgs | πͺ Package Advanced | **gin**: 4 β’ **gorm**: 1 |
| 7 | <img src="https://github.com/Mxn-ptr.png" width="24" height="24" style="border-radius: 50%;"><br/>**[Mxn-ptr](https://github.com/Mxn-ptr)** | **5** | **2** pkgs | πͺ Package Advanced | **gin**: 4 β’ **gorm**: 1 |
| 8 | <img src="https://github.com/Onkar-25.png" width="24" height="24" style="border-radius: 50%;"><br/>**[Onkar-25](https://github.com/Onkar-25)** | **5** | **3** pkgs | πͺ Package Advanced | **gin**: 2 β’ **gorm**: 2 β’ **mongodb**: 1 |
| 9 | <img src="https://github.com/Sylinsic.png" width="24" height="24" style="border-radius: 50%;"><br/>**[Sylinsic](https://github.com/Sylinsic)** | **5** | **2** pkgs | πͺ Package Advanced | **gin**: 2 β’ **gorm**: 3 |
| 10 | <img src="https://github.com/ItalloMangueBoy.png" width="24" height="24" style="border-radius: 50%;"><br/>**[ItalloMangueBoy](https://github.com/ItalloMangueBoy)** | **4** | **1** pkg | π Package Intermediate | **gin**: 4 |
<div align="center">
π **Package Challenges** - Learn Go packages through practical, real-world scenarios
</div>
### π¦ Per-Package Progress
#### Cobra Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| π₯ | **[PolinaSvet](https://github.com/PolinaSvet)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| π₯ | **[odelbos](https://github.com/odelbos)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| π₯ | **[PopovMarko](https://github.com/PopovMarko)** | 3/4 | π©π©π©π©π©π©π©β¬β¬β¬ 75% |
| 4 | **[ashwinipatankar](https://github.com/ashwinipatankar)** | 3/4 | π©π©π©π©π©π©π©β¬β¬β¬ 75% |
| 5 | **[RezaSi](https://github.com/RezaSi)** | 1/4 | π©π©β¬β¬β¬β¬β¬β¬β¬β¬ 25% |
#### Echo Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| π₯ | **[RezaSi](https://github.com/RezaSi)** | 1/4 | π©π©β¬β¬β¬β¬β¬β¬β¬β¬ 25% |
#### Fiber Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| π₯ | **[odelbos](https://github.com/odelbos)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| π₯ | **[0xSangeet](https://github.com/0xSangeet)** | 1/4 | π©π©β¬β¬β¬β¬β¬β¬β¬β¬ 25% |
| π₯ | **[RezaSi](https://github.com/RezaSi)** | 1/4 | π©π©β¬β¬β¬β¬β¬β¬β¬β¬ 25% |
#### Gin Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| π₯ | **[22-7-co](https://github.com/22-7-co)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| π₯ | **[ItalloMangueBoy](https://github.com/ItalloMangueBoy)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| π₯ | **[Mxn-ptr](https://github.com/Mxn-ptr)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| 4 | **[PolinaSvet](https://github.com/PolinaSvet)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
| 5 | **[PopovMarko](https://github.com/PopovMarko)** | 4/4 | π©π©π©π©π©π©π©π©π©π© 100% |
#### Gorm Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| π₯ | **[odelbos](https://github.com/odelbos)** | 5/5 | π©π©π©π©π©π©π©π©π©π© 100% |
| π₯ | **[Sylinsic](https://github.com/Sylinsic)** | 3/5 | π©π©π©π©π©π©β¬β¬β¬β¬ 60% |
| π₯ | **[aswinsreeraj](https://github.com/aswinsreeraj)** | 3/5 | π©π©π©π©π©π©β¬β¬β¬β¬ 60% |
| 4 | **[imankhodadi](https://github.com/imankhodadi)** | 3/5 | π©π©π©π©π©π©β¬β¬β¬β¬ 60% |
| 5 | **[Onkar-25](https://github.com/Onkar-25)** | 2/5 | π©π©π©π©β¬β¬β¬β¬β¬β¬ 40% |
#### Mongodb Package
| Rank | Developer | Completed | Progress |
|:---:|:---:|:---:|:---|
| π₯ | **[RezaSi](https://github.com/RezaSi)** | 2/5 | π©π©π©π©β¬β¬β¬β¬β¬β¬ 40% |
| π₯ | **[Onkar-25](https://github.com/Onkar-25)** | 1/5 | π©π©β¬β¬β¬β¬β¬β¬β¬β¬ 20% |
| π₯ | **[maket12](https://github.com/maket12)** | 1/5 | π©π©β¬β¬β¬β¬β¬β¬β¬β¬ 20% |
### π Package Challenge Statistics
- **Total Package Challenges Available**: 26
- **Active Package Learners**: 57
- **Available Packages**: 6 (cobra, echo, fiber, gin, gorm, mongodb)
- **Most Package Challenges Solved**: 17 by odelbos
<!-- END_PACKAGE_LEADERBOARD -->
## Key Features
- **Interactive Web UI** - Code, test, and submit solutions in your browser
- **Automated Testing** - Get immediate feedback on your solutions
- **Automated Scoreboards** - Solutions are automatically scored and ranked
- **Profile Badges** - Beautiful auto-updating badges for GitHub profiles, LinkedIn, and portfolios
- **Performance Analytics** - Track execution time and memory usage for your solutions
- **Comprehensive Learning** - Each challenge includes detailed explanations and resources
- **Progressive Difficulty** - From beginner to advanced Go concepts
- **AI Interview Simulation** - Practice with AI-powered code review and interviewer questions
## AI Interview Simulation
Transform your coding practice into realistic interview scenarios with our AI-powered features:
**Real-Time Code Review** - Get instant feedback on code quality, complexity analysis, and improvement suggestions
**Dynamic Interview Questions** - AI generates follow-up questions based on your solution approach
**Progressive Hints** - 4-level hint system from subtle nudges to detailed explanations
**Multi-LLM Support** - Works with Gemini (recommended), OpenAI, or Claude
Simply add your API key to experience interview-style feedback that adapts to your code and challenges you with realistic technical questions.
### AI Interview Experience
<div align="center">
<img src="./images/interview-code-review.png" alt="AI Code Review - Real-time feedback and analysis" width="48%" style="margin-right: 2%;">
<img src="./images/interview-questions.png" alt="AI Interview Questions - Dynamic follow-up questions" width="48%">
</div>
<div align="center">
<table>
<tr>
<td align="center" width="48%">
<strong>AI Code Review</strong><br>
<em>Get instant feedback on code quality, complexity analysis,<br>and improvement suggestions from AI</em>
</td>
<td align="center" width="48%">
<strong>Dynamic Interview Questions</strong><br>
<em>AI generates follow-up questions based on your<br>solution approach and coding patterns</em>
</td>
</tr>
</table>
</div>
---
## Quick Start
> **Important**: You must fork this repository first before cloning, otherwise you won't be able to push your solutions or create pull requests!
### Option 1: Web UI (Recommended)
```bash
# 1. First, fork this repository on GitHub
# Go to https://github.com/RezaSi/go-interview-practice
# Click the "Fork" button in the top-right corner
# 2. Clone your forked repository (replace 'yourusername' with your GitHub username)
git clone https://github.com/yourusername/go-interview-practice.git
cd go-interview-practice
# 3. Start the web interface
cd web-ui
go run main.go
# 4. Open http://localhost:8080 in your browser
# 5. Optional: Enable AI Features (Recommended) π€
# Add your free Gemini API key to enable AI interview simulation
echo "AI_PROVIDER=gemini" > web-ui/.env
echo "GEMINI_API_KEY=your_actual_api_key_here" >> web-ui/.env
# Get your free API key: https://makersuite.google.com/app/apikey
# Note: .env files are automatically ignored by git for security
```
**After solving challenges and submitting solutions:**
- Your solutions will be automatically saved to your local repository
- Follow the provided Git commands to commit and push your changes
- Create a pull request to contribute your solutions back to the main project
### Option 2: GitHub Codespaces (Cloud Development + Web UI)
Want to get started instantly without setting up anything locally? Use GitHub Codespaces!
1. **Fork this repository** (if you haven't already)
2. **Open in Codespaces**: Click the green "Code" button on your forked repository, then select "Codespaces" tab
3. **Create Codespace**: Click "Create codespace on main"
4. **Start the Web UI**: Once the codespace loads, open a terminal and run:
```bash
cd web-ui
go run main.go
```
5. **Optional: Enable AI Features**: Add your Gemini API key:
```bash
echo "AI_PROVIDER=gemini" > .env
echo "GEMINI_API_KEY=your_actual_api_key_here" >> .env
```
6. **Access the Web UI**: Click on the "Ports" tab in the bottom panel, then click the "Open in Browser" button next to port 8080
**Benefits of using Codespaces:**
- No local setup required
- Pre-configured Go environment
- Full VS Code experience in the browser
- Automatic port forwarding for the web UI
- All dependencies pre-installed
- Works on any device with a browser
<!--
### Option 3: Railway Deployment (One-Click Cloud Hosting)
Deploy your own instance of the platform to the cloud with Railway!
[](https://railway.com/deploy/go-interview-practice?referralCode=F6emx6&utm_medium=integration&utm_source=template&utm_campaign=generic)
**Perfect for:**
- **Teams & Organizations**: Private instance for internal use
- **Educators**: Custom environment for students
- **Customization**: Fork and modify for specific needs
- **Always Available**: 24/7 cloud hosting with automatic scaling
**Setup Steps:**
1. **Click Deploy Button** above
2. **Configure AI Features** (optional but recommended):
- Choose AI provider: `gemini` (recommended - free tier)
- Add API key: [Get free Gemini key](https://makersuite.google.com/app/apikey)
3. **Access Your Platform**: Railway provides instant public URL
4. **Start Using**: Full platform with all challenges immediately available
-->
### Option 3: Command Line
```bash
# 1. Fork the repository first (see step 1 above)
# 2. Clone your fork and set up a challenge workspace
git clone https://github.com/yourusername/go-interview-practice.git
cd go-interview-practice
./create_submission.sh 1 # For challenge #1
# 3. Implement your solution in the editor of your choice
# 4. Run tests
cd challenge-1
./run_tests.sh
```
## Profile Badges for Contributors
Showcase your Go programming achievements with auto-updating profile badges for GitHub profiles, portfolios, and personal websites.
### Examples
[](https://github.com/RezaSi/go-interview-practice)
[](https://github.com/RezaSi/go-interview-practice)
### Quick Usage
```markdown
[](https://github.com/RezaSi/go-interview-practice)
```
After contributing solutions, your badges are automatically generated in [`badges/YOUR_USERNAME_badges.md`](badges/) with multiple formats ready to use.
**[Complete Badge Guide & Examples β](docs/profile-badges-guide.md)**
## Challenge Categories
### Beginner
Perfect for those new to Go or brushing up on fundamentals
- **[Challenge 1](./challenge-1)**: Sum of Two Numbers
- **[Challenge 2](./challenge-2)**: Reverse a String
- **[Challenge 3](./challenge-3)**: Employee Data Management
- **[Challenge 6](./challenge-6)**: Word Frequency Counter
- **[Challenge 18](./challenge-18)**: Temperature Converter
- **[Challenge 21](./challenge-21)**: Binary Search Implementation
- **[Challenge 22](./challenge-22)**: Greedy Coin Change
### Intermediate
For developers familiar with Go who want to deepen their knowledge
- **[Challenge 4](./challenge-4)**: Concurrent Graph BFS Queries
- **[Challenge 5](./challenge-5)**: HTTP Authentication Middleware
- **[Challenge 7](./challenge-7)**: Bank Account with Error Handling
- **[Challenge 10](./challenge-10)**: Polymorphic Shape Calculator
- **[Challenge 13](./challenge-13)**: SQL Database Operations
- **[Challenge 14](./challenge-14)**: Microservices with gRPC
- **[Challenge 16](./challenge-16)**: Performance Optimization
- **[Challenge 17](./challenge-17)**: Interactive Debugging Tutorial
- **[Challenge 19](./challenge-19)**: Slice Operations
- **[Challenge 20](./challenge-20)**: Circuit Breaker Pattern
- **[Challenge 23](./challenge-23)**: String Pattern Matching
- **[Challenge 27](./challenge-27)**: Go Generics Data StructuresFrequently Asked Questions
What is The Go Interview Practice?
The Go Interview Practice is a Websites library for the Go programming language. A GitHub repository offering coding challenges for Go technical interview preparation
How many GitHub stars does The Go Interview Practice have?
The Go Interview Practice has 2,489 GitHub stars in the directory's latest synchronization.
How do I install The Go Interview Practice?
Install The Go Interview Practice with the Go module system using `go get RezaSi/go-interview-practice`. Check the repository for the current installation instructions.
What category does The Go Interview Practice belong to?
The Go Interview Practice is listed under Websites, specifically Guided Learning.