Thinking about my future career

About Me I'm a software developer specializing in backend development, and I’ve been writing code professionally for about ten years now. Programming has been a passion of mine since my student days, and I’ve kept it as a long-term hobby. Besides that, I love watching anime and movies. However, over the past few years, life has been busy with marriage, home responsibilities, and raising kids, leaving me with little time for hobbies. Of course, that’s just part of life, but I do miss the freedom I once had. For example, I used to enjoy tweaking my Vim and terminal settings, but I rarely touch them now. I also don’t attend study groups or conferences as often as I used to. That being said, I’m not completely out of time. I still squeeze in some coding here and there—though at the cost of completely giving up my Netflix movie nights. At the same time, having less hobby time means I’m spending more quality time with my family. The moments I spend with my wife and kids are precious, and I genuinely enjoy them. I feel happy and fulfilled. But alongside that happiness, I also feel a growing sense of uncertainty about the future. I can’t clearly picture where I’ll be in five or ten years, or what exactly I want to pursue. At work, I want to contribute to my company and help drive projects to success. I have things I can do and things I want to do to make that happen. Even if I were to switch jobs in the future, I’d be able to explain my value, my role in a new company, and my long-term goals without hesitation. Software engineers are problem solvers through engineering. That’s why I want to find at least one problem I truly care about solving, focus on it, and turn it into a tangible project or business. I want to be known for something—to have a clear identity in my field. To achieve that, I need to stay up to date and continuously reflect on my progress. A New Programming Style: Vibe Coding Programming is one of my hobbies. While I have less time for it now, my productivity has actually increased. The reason? Vibe Coding. Vibe Coding is a new programming style where AI acts as the driver, and humans focus on design and instructions. In traditional programming, humans had to write every line of code. But now, with just a few natural language instructions, AI can generate the necessary code in seconds. AI has advanced at an incredible pace. Since the start of this year, I’ve barely written code myself. Instead, I give instructions in plain English, and within minutes, AI generates dozens or even hundreds of lines of code. This is all thanks to powerful LLM like Claude, ChatGPT, and Gemini, which continue to evolve rapidly. Thinking back, until around last November, I was still the one in the driver’s seat, coding manually. But this year, I’ve handed over that seat to AI. In other words, I’ve become the navigator. This shift in programming style is inevitable. As software engineers, our focus should now be on how to coexist with AI and how to become better navigators. We’re in the middle of a paradigm shift. By embracing new technologies and methods, we can discover opportunities and insights that weren’t visible before—ones that might even shape what we truly want to do. That’s why I see this change as a chance and want to actively explore it. I’ll keep learning this new programming style from scratch, always staying aware of what I want to achieve. And to do that, I’ll make constant learning and reflection a daily habit. Using LLM-Powered AI Coding Tools To make AI-assisted coding efficient, mastering LLM-powered AI coding tools is key. Some of the top tools available today include: Cursor, Windsurf, Cline, Claude Code, Devin, Manus Which tool to use depends on your setup and preferences. For example: Cline is great if you use VSCode. Cursor or Windsurf are solid choices for exploring next-gen AI editors. Claude Code is a good option for terminal-based workflows. The most important thing is getting used to vibe coding. The AI coding tool space is evolving rapidly, with new tools emerging constantly. Instead of trying to keep up with everything, it’s best to start with one or two tools and get comfortable with them. Right now, Claude 3.7 (or 3.5) Sonnet is the best LLM model available. Other good options include Gemini 2.0 and o3-mini. However, given the pace of AI advancement, even better tools and models will emerge soon, so I don’t think it’s necessary to stick to just one. For my own AI coding workflow, I use Aider and Goose. Aider isn’t a fully automated tool—it requires detailed instructions. But in return, it’s extremely fast and cost-efficient. Goose is a fully automated tool with MCP client capabilities. Each has its strengths and weaknesses, so I switch between them depending on the use case. Once you’re familiar with AI coding tools, it’s a good idea to set up configuration files to help AI understand your project better. For example: Goose

Mar 24, 2025 - 07:12
 0
Thinking about my future career

About Me

I'm a software developer specializing in backend development, and I’ve been writing code professionally for about ten years now. Programming has been a passion of mine since my student days, and I’ve kept it as a long-term hobby. Besides that, I love watching anime and movies.

However, over the past few years, life has been busy with marriage, home responsibilities, and raising kids, leaving me with little time for hobbies. Of course, that’s just part of life, but I do miss the freedom I once had. For example, I used to enjoy tweaking my Vim and terminal settings, but I rarely touch them now. I also don’t attend study groups or conferences as often as I used to.

That being said, I’m not completely out of time. I still squeeze in some coding here and there—though at the cost of completely giving up my Netflix movie nights.

At the same time, having less hobby time means I’m spending more quality time with my family. The moments I spend with my wife and kids are precious, and I genuinely enjoy them. I feel happy and fulfilled.

But alongside that happiness, I also feel a growing sense of uncertainty about the future. I can’t clearly picture where I’ll be in five or ten years, or what exactly I want to pursue.

At work, I want to contribute to my company and help drive projects to success. I have things I can do and things I want to do to make that happen. Even if I were to switch jobs in the future, I’d be able to explain my value, my role in a new company, and my long-term goals without hesitation.

Software engineers are problem solvers through engineering. That’s why I want to find at least one problem I truly care about solving, focus on it, and turn it into a tangible project or business. I want to be known for something—to have a clear identity in my field.

To achieve that, I need to stay up to date and continuously reflect on my progress.

A New Programming Style: Vibe Coding

Programming is one of my hobbies. While I have less time for it now, my productivity has actually increased. The reason? Vibe Coding.

Vibe Coding is a new programming style where AI acts as the driver, and humans focus on design and instructions. In traditional programming, humans had to write every line of code. But now, with just a few natural language instructions, AI can generate the necessary code in seconds.

AI has advanced at an incredible pace. Since the start of this year, I’ve barely written code myself. Instead, I give instructions in plain English, and within minutes, AI generates dozens or even hundreds of lines of code. This is all thanks to powerful LLM like Claude, ChatGPT, and Gemini, which continue to evolve rapidly.

Thinking back, until around last November, I was still the one in the driver’s seat, coding manually. But this year, I’ve handed over that seat to AI. In other words, I’ve become the navigator.

This shift in programming style is inevitable. As software engineers, our focus should now be on how to coexist with AI and how to become better navigators.

We’re in the middle of a paradigm shift. By embracing new technologies and methods, we can discover opportunities and insights that weren’t visible before—ones that might even shape what we truly want to do. That’s why I see this change as a chance and want to actively explore it.

I’ll keep learning this new programming style from scratch, always staying aware of what I want to achieve. And to do that, I’ll make constant learning and reflection a daily habit.

Using LLM-Powered AI Coding Tools

To make AI-assisted coding efficient, mastering LLM-powered AI coding tools is key. Some of the top tools available today include:

  • Cursor, Windsurf, Cline, Claude Code, Devin, Manus

Which tool to use depends on your setup and preferences. For example:

  • Cline is great if you use VSCode.
  • Cursor or Windsurf are solid choices for exploring next-gen AI editors.
  • Claude Code is a good option for terminal-based workflows.

The most important thing is getting used to vibe coding. The AI coding tool space is evolving rapidly, with new tools emerging constantly. Instead of trying to keep up with everything, it’s best to start with one or two tools and get comfortable with them.

Right now, Claude 3.7 (or 3.5) Sonnet is the best LLM model available. Other good options include Gemini 2.0 and o3-mini. However, given the pace of AI advancement, even better tools and models will emerge soon, so I don’t think it’s necessary to stick to just one.

For my own AI coding workflow, I use Aider and Goose.

  • Aider isn’t a fully automated tool—it requires detailed instructions. But in return, it’s extremely fast and cost-efficient.
  • Goose is a fully automated tool with MCP client capabilities.

Each has its strengths and weaknesses, so I switch between them depending on the use case.

Once you’re familiar with AI coding tools, it’s a good idea to set up configuration files to help AI understand your project better. For example:

  • Goose uses .goosehint
  • Aider uses CONVENTIONS.md

These files contain project guidelines, coding conventions, test strategies, and commit message formats. Providing this context significantly improves AI’s output quality. In fact, even these configuration files should be AI-generated. Start by asking AI to create a project overview, then gradually refine and update it as new tasks arise.

Essential Skills for AI-Assisted Coding

As you get used to AI coding, you’ll notice a dramatic reduction in how much you type.
Instead, architectural and abstraction skills become far more important. Here are the key skills needed in this new era:

  • Problem comprehension – Understanding and structuring requirements effectively.
  • Abstraction & simplification – Breaking down complex specifications into reusable patterns.
  • System design – Architecting systems with a high-level perspective.
  • Precise communication – Giving AI clear and structured instructions.
  • AI output review – Ensuring AI-generated code meets quality standards.

Additionally, Test-Driven Development (TDD) using mocks is now easier with AI support, making it an approach worth embracing.

Ultimately, programming remains the same at its core. Tools like Cline say, "Developers are firing themselves as programmers and becoming software architects instead." I completely agree.

What’s Next?

To wrap things up, here’s what I plan to work on:

  • Indie Develop using Vibe Coding
    • Let AI handle specification discussions, implementation, testing, documentation, and knowledge management.
    • I’m currently implementing one project and discussing specifications for two others.
  • Revisit software architecture fundamentals
  • Discover new interests
    • Keep up with Reddit, Hacker News, daily.dev, and Product Hunt for emerging tech trends.
    • Follow Bloomberg and France 24 to stay updated on global economic and financial news.
  • Write weekly reports as output
    • Summarize what I did, what’s next, and what I’m curious about to reflect on my progress.