At eighteen, my interest in programming was no longer limited to writing code. I became more interested in what happens behind the scenes: How are systems built? How are large projects organized? And what makes one framework flexible and easy to use, while another leaves the developer a prisoner of its rules?
From there, I started thinking about designing my own tools, and one of the most prominent results was RiserBob, a framework for building web applications with Bun and TypeScript, born from an unusual mix of my interest in software engineering and my love for the SpongeBob cartoon.
The Beginning
My story with programming began during the summer break, when the interface of a website caught my attention and I wondered how something similar could be created. That question led me to introductory videos about web development, and there I discovered HTML and CSS. With every new concept, I began to see websites as systems that could be understood and built.
Then I moved from Syria to Türkiye, and my academic studies stopped because of the move. I found myself in an unclear phase, but I decided to give programming a real chance and treat it as a path to build my experience and professional future, even without the traditional road.
Learning and Facing Real Problems
I first tried a path to learn Python, but I wasn't comfortable with a learning system tied to a fixed timeframe, because I wanted to learn and practice at my own pace. Then I moved to front-end development, and after that to JavaScript.
I discovered that the real challenge isn't memorizing commands, but solving problems that don't solve easily. In a notes app I built with React, deleting or editing one note affected another. After getting help from my mentors, I understood the importance of giving each note a unique identifier. The solution seemed simple, but it taught me that the problem is sometimes not in the wrong line, but in how data handling was designed from the start.
Over time, my interest expanded to the back end: data management, authentication, permissions, real-time communication, and organizing code responsibilities.
Bigger Projects
- Nexora A chat app built with React, TypeScript, Express, MongoDB, and Bun, through which I got to know real-time applications.
- Graduation Project An app inspired by Pinterest, which I rebuilt five times before submitting it. It required error handling and non-ideal use cases, such as preventing duplicate accounts and showing changes without refreshing the page, and it passed the evaluation successfully.
- Dental Clinic Management App (Freelance) For managing appointments and invoices, built with React, Express, Bun, and Socket.IO. It was a system serving real needs, which broadened my view of software as integrated systems rather than separate features.
RiserBob
With my experience in back-end systems, I started caring about the decisions behind the design of frameworks themselves, so I wanted a framework that gives developers the freedom to choose their style, with a clear structure that helps them organize and expand their application. The idea of RiserBob came from my desire to explore a middle ground between the simplicity and flexibility of Express and the organization of frameworks like NestJS. The framework provides a foundation for organizing routes and middleware, while working on authentication and error handling.
Why Should Errors Always Be Boring?
My love for SpongeBob inspired the idea of playful error messages
inspired by Bikini Bottom instead of Not Found and
Internal Server Error, while keeping the correct HTTP
status codes, so 404 and 500 stay clear, and the accompanying text
gives the experience a different personality.
Freedom Without Chaos, Structure Without Constraints
I want a framework that is flexible without turning into a lack of organization, and a clear structure that doesn't turn into rules that hold the developer back. This balance is hard, but it makes the project a practical experience for understanding how to design good APIs and deciding what the framework handles and what remains the application's responsibility.
Building a framework is different from using one, so I have to think about details like matching static and dynamic routes, registering the same route twice, how middleware works, and handling errors. Every decision opens new questions, and a solution may need redesigning when a new use case appears. That doesn't mean its problems are solved; its continuous development and testing in real applications is part of its maturity.
Why Back-End Engineering?
What attracts me is understanding the systems behind the interfaces: organizing responsibilities, data flow, authentication and permissions, and building scalable applications whose maintenance doesn't become a burden. I aspire to go deeper into building complex back-end systems, and I don't see my young age as proof that I've reached a certain level; I see a wide space ahead of me for learning.
A Journey That Continues
- In the beginning: How do I build a website like this?
- Then: How do I build a complete application?
- And today: How do I build the tools that help developers build their applications in a better way?
Perhaps my journey can't be summed up in a language I learned or a project I completed. What matters most is the gradual shift from consuming technology to understanding it, and from using ready-made solutions to designing my own. RiserBob remains one of the stops that reflect this shift, and the beginning of a new chapter in my journey.