Three Months of Growth: Internship, Stark & OpenAI Hackathons

Publication date not recorded

The last three months have been a journey of learning beyond tutorials: working with a real development team, contributing to production-oriented software, building ambitious hackathon projects, and winning first place at my first OpenAI hackathon in Ethiopia. Here are some experiences, challenges, and lessons that shaped my growth as a developer.

Three Months of Building, Competing, and Growing as a Developer

The last three months have been some of the busiest and most meaningful months of my journey as a software developer.

Not because everything went perfectly, or because I suddenly became an expert, but because I started experiencing things I had spent years preparing for: working with a real development team, building software under pressure, collaborating with other developers, presenting ideas, competing in hackathons, and seeing what happens when you take your skills outside your comfort zone.

I want to document this journey, not just the achievements, but also the work, uncertainty, challenges, and lessons behind them.

From learning independently to working with a real team

One of the biggest milestones in this journey was my internship at **Alyah Tech / Alyah Innovation Hub**.

For a long time, most of my development experience came from learning independently, building personal projects, reading documentation, and experimenting with technologies. I had spent a lot of time learning Laravel and modern web development, but I knew that working on an actual team project would teach me things that personal projects couldn't.

During the internship, I worked with a team of eight developers on a CRM system built with Laravel, React, TypeScript, and MySQL.

This wasn't a small CRUD application. The system involved around 60 database tables, multiple business domains, dynamic roles and permissions, authentication, and complex backend workflows.

My responsibilities included working on backend features using Laravel's controller, request, action, and resource patterns, integrating APIs, and contributing to the team's development workflow.

One particularly interesting part was working with a dynamic permission system involving more than 170 permissions across nine domains.

I also experienced something important about professional development: writing code is only one part of the job. Understanding existing architecture, respecting conventions, reviewing changes, communicating with teammates, and making sure your work integrates properly are equally important.

I was happy to receive positive feedback about the quality and cleanliness of my code. More importantly, I learned how to contribute to a shared codebase rather than treating every project as something I build alone.

That experience changed how I approach software development.

Cheretanet: Building under the pressure of a hackathon

Another major experience was participating in the **STARK Hackathon** with my teammates Lelissa and Leul.

We worked on Cheretanet, an Ethiopian digital auction and tender marketplace.

The idea was to address the challenges surrounding traditional auction and tender processes by bringing bidders and tender organizations into one digital platform.

We explored features such as:

- Digital auction and tender management. - Bidder registration and KYC verification. - AI-powered voice and chat assistance. - QR-based verification. - Approval workflows. - Reports and downloadable records. - Audit trails for transparency and accountability.

What made this experience interesting was the amount of work involved in turning an idea into a working product under a limited timeline.

We had to think about the actual users, business workflows, system functionality, and how different features would work together.

Hackathons are different from normal development. You don't have unlimited time to perfect every decision. You need to prioritize, communicate, make compromises, and keep moving.

Cheretanet taught me a lot about teamwork, product thinking, and delivering a complete solution rather than focusing on individual technical features.

My first OpenAI hackathon in Ethiopia — and first place!

Then came another exciting opportunity: **OpenAI DevDay Exchange Bahir Dar**, the first OpenAI hackathon experience in Ethiopia.

I was excited to participate because I had been following AI development and experimenting with different AI tools. But I also wanted to challenge myself to build something meaningful with these technologies.

Our initial idea went through changes. We explored LastBirr, a student-focused daily spending assistant, before shifting our direction to an AI-powered traffic management solution.

Our final project combined a React, Vite, TypeScript, and Tailwind frontend with a FastAPI-based video analysis component.

The idea was to demonstrate how AI-powered video analysis could support traffic monitoring and management.

We worked with a limited amount of time, which meant making decisions quickly, dividing responsibilities, integrating components, and preparing something we could actually demonstrate.

And the result?

**We won FIRST PLACE!**

It was an incredible moment.

Beyond the prize, what made it special was knowing that we had taken an idea, worked together under pressure, built a demonstration, and presented it successfully.

It was also my first experience winning an OpenAI hackathon in Ethiopia.

That experience reinforced something I believe strongly: AI is a powerful tool, but understanding the problem, making technical decisions, and delivering a working solution still matter.

Building my own products beyond competitions

While internships and hackathons gave me opportunities to work with others, I also continued working on ideas of my own.

One of the most important is **Makefafeya (ማከፋፈያ)**.

The idea comes from a problem I have observed in local trading and distribution: small merchants often struggle to find reliable suppliers, compare products, and coordinate transportation.

I wanted to build a platform that connects buyers, suppliers, and drivers in one place.

Over time, I moved from thinking about the idea to designing the system, developing its frontend and backend, implementing logistics workflows, and preparing an MVP.

This journey taught me that building software is not only about whether the application works. It is also about whether people actually need it, whether they trust it, and whether you can get them to use it.

That is still one of the biggest challenges I am working to solve.

I have also been developing my understanding of software architecture, documentation, maintainability, and how to turn business requirements into reliable systems.

What these months taught me

Looking back, I can identify a few lessons that I want to carry into the next stage of my journey.

**1. Real-world development is different from tutorials.**

Building something independently is valuable, but contributing to an existing codebase teaches you about architecture, collaboration, conventions, and responsibility.

**2. Clean code matters when working with other people.**

Code should not only work today. Other developers should be able to understand, maintain, and extend it tomorrow.

**3. Communication is a technical skill too.**

A good developer needs to explain decisions, understand requirements, ask questions, and collaborate with people who may approach problems differently.

**4. Hackathons teach you to execute.**

Ideas are everywhere. Turning one into a working product under pressure is a different challenge entirely.

**5. Winning is exciting, but learning is more valuable.**

I am grateful for the recognition, but every experience has something to teach me, whether I win, lose, or simply finish what I started.

What's next?

I am approaching another important stage of my life: my final year at Bahir Dar University.

There is still a lot to learn, a lot to build, and a lot to improve.

I want to become a developer who understands systems deeply, writes maintainable code, makes thoughtful architectural decisions, and builds products that solve actual problems.

I don't want to depend entirely on AI to write my code. I want to understand what I am building, use AI where it adds value, and remain responsible for the engineering decisions.

I also want to keep contributing to the developer community, collaborating with other builders, and creating opportunities for myself and others.

These three months reminded me that progress doesn't always happen in a straight line. Sometimes it comes from an internship, sometimes from a difficult integration, sometimes from a hackathon, and sometimes from simply deciding to keep building when nobody is watching.

I am grateful for every teammate, mentor, opportunity, and challenge that made this journey possible.

**This is just one chapter. There is much more to build.**