Apparently, Being Good at School Was Not a Job
A sarcastic but honest reflection on academic success, job-market rejection, impostor syndrome, and how failing to follow the expected path pushed me to launch Uncreative Projects and start building with data, AI, OpenRouter, and Paperclip AI.

For most of my academic life, I was what adults politely call a strong student.
This is a flattering way of saying I became very good at understanding what was expected of me, doing it on time, and occasionally using unnecessarily complicated vocabulary to prove I had read the material.
The system was simple.
Study.
Work hard.
Get good results.
Graduate.
Find a job.
A perfectly reasonable sequence.
Unfortunately, somewhere between “graduate” and “find a job,” the instructions appear to have been lost.
I followed the tutorial
I did well academically.
I completed the assignments, survived the group projects, passed the exams, learned technical concepts, and developed the useful ability to stare at a problem for several hours before realizing I had misspelled a variable.
I was motivated.
More importantly, I genuinely enjoyed the work.
I liked building things.
I liked taking a vague problem, breaking it into smaller ones, and slowly turning confusion into something that worked.
I liked learning new technologies, understanding systems, debugging strange behavior, working with data, and discovering that the solution was sometimes embarrassingly simple.
There were moments when I could spend hours working on a project without noticing the time.
Not because I was forced to.
Not because there was a grade attached.
Because I was happy doing it.
Naturally, I assumed this enthusiasm, combined with a degree and evidence that I could learn, would be at least mildly useful in the job market.
An adorable assumption.
The market has reviewed my application
To be fair, my profile did interest people.
I was not sending applications into complete silence.
I received calls.
I had interviews.
Sometimes several rounds.
Recruiters told me my profile was interesting. Hiring managers asked thoughtful questions. Technical discussions went well. I regularly reached the stage where employment began to feel less like a theoretical concept and more like something that might actually happen.
Then came the final message.
They liked my profile.
They appreciated my motivation.
They enjoyed the conversation.
They were impressed by my academic background.
But they had decided to move forward with another candidate.
Usually one with more experience.
This happened often enough that “more experienced candidate” started to feel less like a person and more like a recurring character in my professional life.
I have never met him.
He is apparently everywhere.
He applies to every junior position, has already used the company’s exact stack in production, understands the business domain, requires no onboarding, and is presumably available immediately.
An extraordinary man.
I hope he is doing well.
The frustrating part was not that nobody saw potential in me.
They did.
They just repeatedly found someone who represented less risk.
I was interesting enough to interview, but not experienced enough to select.
Qualified enough to enter the room.
Not qualified enough to leave with the badge.
The almost-job
There is a particular kind of disappointment that comes from getting close.
A rejection after an application is unpleasant, but abstract.
A rejection after several interviews is more personal.
By then, you have researched the company.
You have imagined the work.
You have prepared examples.
You have met members of the team.
You may even have started mentally organizing your future commute, which is an excellent way to become emotionally attached to a job you do not have.
Then you receive a carefully written email explaining that the decision was difficult.
The message is usually positive enough to confirm that you did well, but negative enough to confirm that doing well was not sufficient.
That is a confusing result for someone who spent years being taught that strong performance tends to produce strong outcomes.
Apparently, I had unlocked a new grade:
Very good, but not hired.
The fraud paradox

This creates an interesting contradiction.
Academically, I have evidence that I am capable.
I learned difficult things.
I completed projects.
I worked consistently.
People evaluated my work and generally concluded that I knew what I was doing.
Professionally, the evidence is more complicated.
My profile generates interest.
I pass initial screenings.
I reach interviews.
People seem to believe I could do the work.
Then the role goes to someone who has already done it.
Eventually, the brain performs a perfectly rational calculation:
If I keep reaching the final stages but never getting selected, perhaps everyone is discovering the same hidden defect.
Maybe I interview well enough to delay the realization.
Maybe my degree is an elaborate administrative misunderstanding.
Maybe I did not learn engineering.
Maybe I learned how to pass engineering exams while maintaining convincing eye contact.
Maybe the university forgot to add a small footnote:
Results may not apply outside controlled academic conditions.
This is where impostor syndrome becomes strangely efficient.
It takes every success from the past, labels it “probably luck,” then treats every rejection as peer-reviewed evidence.
The positive feedback becomes politeness.
The interview invitations become administrative accidents.
The fact that several companies saw potential somehow becomes less convincing than the fact that one more experienced candidate existed.
Experience: required to obtain experience
The problem is not difficult to understand.
Employers have work that needs to be done.
Hiring is expensive.
Training takes time.
A candidate with direct professional experience is usually a safer decision than a graduate who may be capable but still needs to prove it.
From the company’s perspective, this is reasonable.
From the graduate’s perspective, it creates a very elegant loop.
You need experience to get the job.
You need the job to gain experience.
Please return when the prerequisite has been completed.
Junior roles are especially interesting in this regard.
Some of them ask for two or three years of professional experience, which raises the philosophical question of what exactly “junior” means.
Perhaps it refers not to experience, but to salary.
The strange part is that I was not always losing to candidates who were better suited in every possible way.
Sometimes the feedback was explicitly that I was good, motivated, and technically credible.
The other person simply had more experience.
That distinction matters.
It means the conclusion is not necessarily:
You are not capable.
It may simply be:
Someone else already had the proof we would need you to build here.
That is a much less dramatic interpretation.
My brain naturally prefers the dramatic one.
School had rules
Academic success happens inside a relatively structured environment.
There are objectives.
There are deadlines.
There are evaluation criteria.
There is feedback.
You generally know what problem you are trying to solve.
If you perform well, the result usually reflects that.
The job market is less considerate.
You can perform well in every interview and still lose to someone with a stronger match.
You can have the right technical background but not enough commercial experience.
You can make a good impression and still be the second choice.
You can be told that the team liked you, the discussion was strong, and the decision was close.
Unfortunately, there is no silver medal position with dental coverage.
The job market is not an exam.
Unfortunately, I spent years becoming extremely good at exams.
But I actually liked working

The frustrating part is not that I am trying to avoid work.
It is almost the opposite.
During internships, technical projects, and personal experiments, I was happy to have real problems to solve.
I liked being useful.
I liked contributing to something that existed beyond a grade.
I liked discussing decisions with other people, improving what I had built, and seeing work move from an idea to something concrete.
Even when the work was difficult, it felt meaningful.
There is a particular satisfaction in fixing something that was broken, especially when you were also the person who broke it.
That joy is difficult to communicate through a CV.
“Enthusiastically spent six hours debugging a configuration issue caused by himself” is apparently not considered a core competency.
Still, those experiences mattered to me.
They showed me that I did not only enjoy learning about software.
I enjoyed doing the work.
That is part of what made the repeated near-misses difficult.
I was not trying to enter a field because it seemed respectable or stable.
I genuinely wanted to participate.
I wanted the ordinary parts too.
The code reviews.
The confusing tickets.
The existing codebase with decisions made by people who had left the company three years earlier.
The meeting that could have been an email.
All of it.
I was ready to be useful.
The market was politely asking whether I could first return after already having been useful somewhere else.
A gap is not a fraud
There is a real difference between academic ability and professional readiness.
Work asks for things school cannot fully simulate:
- understanding an unfamiliar codebase;
- dealing with unclear requirements;
- communicating with different personalities;
- prioritizing imperfect solutions;
- making trade-offs;
- knowing when to ask for help;
- shipping something useful before it feels complete;
- operating within systems that already existed before you arrived.
I still have things to learn in all of those areas.
That does not make my previous achievements fake.
It means being competent in one environment does not automatically make you experienced in another.
A gap is not fraud.
It is simply an area where experience has not been built yet.
The companies that interviewed me were not necessarily exposing me as an impostor.
In many cases, they were confirming that I had potential while choosing someone whose potential had already been tested in a similar context.
That can still be disappointing.
But it is not the same as being incapable.
This sounds obvious when written down.
My brain remains unconvinced.
Building evidence outside school
Part of the reason I started building personal projects and writing about them is to create a different kind of proof.
A grade can show that I understood a subject.
A project can show how I approach uncertainty.
An article can show how I explain an idea.
A technical note can show how I react when something breaks.
A case study can show the decisions, compromises, and mistakes behind the final result.
Not every project needs to become a product.
Not every experiment needs to succeed.
Some of them will remain half-finished, which is fortunate because that keeps the branding consistent.
But they allow me to keep working while looking for work.
They give me problems to solve, things to learn, and evidence that my curiosity did not disappear simply because another candidate had spent two more years in production.
They cannot perfectly reproduce professional experience.
But they can demonstrate initiative, judgment, curiosity, and the ability to move without a syllabus.
They are my attempt to narrow the distance between:
This person seems capable.
and:
This person has already shown what they can do.
Failure was unexpectedly productive

There is one problem with calling this period a failure.
It has been annoyingly productive.
If everything had gone according to plan, I might have graduated, found a comfortable job immediately, and continued along a perfectly respectable path.
Which sounds nice.
It also means I might never have launched Uncreative Projects.
I might never have started building new things simply because I had the time, frustration, and curiosity to try.
I might never have asked myself what I could create without waiting for someone to give me permission, a title, or access to a company repository.
Failure, it turns out, is excellent at clearing your calendar.
That empty space pushed me toward projects I probably would have postponed indefinitely.
I launched Uncreative Projects.
I kept experimenting with websites, digital products, automation, local AI, and the slightly dangerous question:
What happens if I try to build this myself?
I completed the Google Advanced Data Analytics and AI certifications.
I created an OpenRouter account, initially with the innocent intention of testing a few models.
Naturally, this escalated.
Soon I was comparing models, thinking about local versus cloud inference, experimenting with agentic workflows, and using Paperclip AI to explore what an AI-assisted company could actually look like.
This was not the carefully planned professional roadmap of a highly organized graduate.
It was closer to opening one technical door, finding seven more behind it, and deciding that sleep was temporarily optional.
None of this replaces professional experience.
A certification is not a job.
A personal project is not a production team.
An AI agent confidently completing half a task is not yet a reliable employee, although it is already remarkably good at sounding like one.
But these experiments gave me something the job search was not giving me:
Momentum.
They gave me reasons to stay curious.
They gave me new technical questions.
They gave me work I was genuinely excited to wake up and continue.
Most importantly, they reminded me that I was not passionate about software only when someone was evaluating me.
I was building because I wanted to build.
The alternative timeline
Sometimes I imagine the version of me who found a job immediately after graduating.
He is probably doing fine.
He has onboarding meetings.
He has access to Jira.
He has strong opinions about an internal tool nobody outside the company has ever heard of.
But maybe he never launches Uncreative Projects.
Maybe he never explores agentic AI.
Maybe he never spends far too long figuring out why a local model refuses to use the GPU.
Maybe he never opens an OpenRouter account and accidentally turns “testing a few models” into an ongoing investigation of cloud inference, local infrastructure, and AI agents.
Maybe he never starts documenting unfinished ideas under the name Notfinal.
That version of the story is more stable.
I am not yet convinced it would have been more interesting.
This does not mean rejection is secretly wonderful.
It is still rejection.
It still affects confidence.
It is especially frustrating when the feedback is positive.
Being told that you were impressive but not quite as experienced as the selected candidate is the professional equivalent of receiving a very thoughtful participation trophy.
But it also forced me to move without external validation.
To build before being hired.
To learn without a syllabus.
To create work before anyone assigned it.
I would still prefer employment to character development.
Unfortunately, character development appears to be the package I received.
The temptation to prepare forever
There is an obvious response to repeatedly losing to experience:
Attempt to manufacture experience alone.
Take another course.
Earn another certificate.
Learn another framework.
Rewrite the portfolio.
Build one more project before applying.
Then another.
Eventually, you can become so committed to preparing for employment that you no longer have time to seek employment.
This is especially appealing to academically successful people because learning feels safe.
There are lessons.
There is progress.
There is usually a completion badge.
Applying is different.
Applying means allowing someone else to decide whether you are ready.
It means presenting work that could be better.
It means reaching another final interview while knowing that somewhere, the More Experienced Candidate may already be updating his calendar.
The challenge is learning without turning learning into a waiting room.
The certifications helped.
The projects helped.
The experiments helped.
But eventually, they also have to become things I am willing to show before they feel complete.
Which is inconvenient, because “complete” remains one of my favorite fictional concepts.
Still available, apparently
I do not have a triumphant ending for this article.
There is no paragraph where I reveal that after one final interview, a visionary company recognized my hidden potential, rejected the More Experienced Candidate, and immediately offered me a position with excellent benefits.
I am still looking.
I am still interviewing.
I am still reaching rooms where people seem genuinely interested in what I can do.
I am still sometimes losing to candidates who have already had the opportunity I am trying to obtain.
But I am also still building.
Still writing.
Still learning.
Still running experiments that began with “this should be simple” and ended with several containers, three models, and a completely different project.
Still getting irrationally excited when a system finally behaves the way I intended.
The lack of an offer does not erase the happiness I felt while working.
It does not erase the projects I completed, the problems I solved, or the effort it took to get here.
The interviews matter too.
They are evidence that my profile is not invisible.
That people see value in it.
That I am not standing entirely outside the market, shouting through a closed window.
I am getting close.
Repeatedly, inconveniently close.
And strangely, the failure to follow the expected path created another one.
Uncreative Projects exists because the original plan did not work.
My experiments with data, AI, OpenRouter, agentic systems, and Paperclip AI grew inside the space left behind by rejection.
Maybe I am not a fraud.
Maybe I am simply a young graduate attempting to enter a difficult market with an impressive academic record, several promising interviews, several candidates with more experience, and the professional visibility of a web page that is finally beginning to get indexed.
Not final.
Just currently returning a 404 — and building the fallback.