CareerInternshipTravelFrontend

From FAYM Co to Travel LYKKE, what production taught me

Path

FAYM Co → Travel LYKKE

Role

Software Developer

Duration

April 2025 to Present

Stack

Next.js · Material UI · TanStack Query · Django

This picks up after my internship at FAYM Co. The next stretch was with Travel LYKKE. By then I had already felt what a small team and real users mean. Travel LYKKE pushed that into a longer arc: bigger surface area, more integrations, and the difference between a project that demos and a product that stays up.

When I joined, the company already had a website and a CRM. The CRM did its job, more or less, but the site did not look like something you would trust at first glance. I had doubts. As I learned how the business worked, those doubts shrank.

The company sits in international travel, not a tiny niche. A strong sales team was already bringing in enough revenue to run an org of about sixty to seventy people. On the engineering side, though, it was lean: one CTO, a part-time frontend developer with solid experience, and then I came in. So three of us to start, with the expectation that we would revamp the website.

For the first couple of months, the work was not glamorous in the way revamp sounds in a job post. We touched Django templates, SQL and queries, APIs, and small bug fixes. Then we moved properly into the full website: designs came through Figma, responsive layouts, token-level thinking, and we turned those screens into code. That phase matched what I already knew coming in. What came after is what stretched me.

School websites vs production

Under the part-time developer, I started to see what best practice actually means on the frontend: how to optimize, when to talk before you build, and what the corporate pace feels like when the workload is saturated. I learned, in practice, how people stay steady without burning out, and that engineering is not only features, it is also how you keep your head straight.

Testing took on a new weight. Components do not sort of work. You test them properly, and it costs time. Failures in dev are not the same as failures in prod. Things surface in production that you might never have imagined locally.

APIs, contracts, and cross-team friction

Working with backend in coordination meant real API integration, and real friction around the contract. A single API shape can speed everyone up and, at the same time, make change expensive when the contract is wrong or vague. We also looked at SSR vs CSR in anger, peeked at competitor-level integrations, and compared how others handled APIs next to what we were doing.

Later I moved to full time, often owning the repo end to end. The impact of AI on how teams work also showed up: design headcount was tightened, and more UI decisions became on the fly. The next wave of work was more B2B and internal tooling facing, which changed the rhythm again. I still prefer writing my own code. I have tried vibe coding with prompts; by the time review or PR rolls around, I usually end up refactoring the whole thing back toward patterns I trust.

What you only get at a shop like Travel LYKKE

The upside of a real travel company is integrations you do not get on personal projects:

  • Bokun for group booking flows
  • Travclan for flight scenarios
  • Permissions for who can access the site and revoking that access when needed
  • Auth tokens wired through real constraints
  • TanStack libraries when the UI has to stay honest under load

There is also the quiet pride of a component that does real work. I am still fond of a Carousel I built at Travel LYKKE with a small class-level like abstraction: variants for pagination, image versions, or a dots indicator, without copy-pasting three implementations.

Small lessons that compound

As you ship, you notice nuances. A few that stuck:

  • Maps in state for unpredictable UI, so you can reason about keyed data instead of nested flags
  • Backend contracts as live facts: one rename on the server can break the frontend, and you defend on the edge you control
  • React Hook Form showing how messy a good form can get, and why I avoid only watching changed fields on a huge form API in favor of small helpers that check dirty state or shape

TanStack Query still feels worth the hype. Caching, flexibility, infinite scroll, paging, and search patterns would take ages to hand-roll correctly.

Animation and polish were part of the job too, and they stayed fun even when deadlines were loud.

Learning after college

I did not expect to enjoy video-based learning after college, but high-quality material with rich context pulls you back in. Revisiting fundamentals on the frontend, with a production job in the background, changed how I hear every sentence. You know what the lecturer means because you have already burned yourself on the naive version.

TypeScript is not magic bulletproofing. Tests are not proof your function is perfect, only that it has not failed the cases you wrote yet. Storybook I picked up more seriously recently. If your components have multiple variants, Storybook is an easy recommendation.

This arc is still ongoing. If you are early in your career, the website quality on day one is not the whole story. Look at the business, the team, and whether you will get touched by production. FAYM Co gave me the first taste; Travel LYKKE is where the syllabus ended and the job kept going.