Genius-like Junior and Experienced Senior
What I Felt Using Codex and Claude Code Together
These days, saying "coding with AI" is no longer special.
I also use various models in the actual service development process, and among them, Codex (gpt-5-codex high) and Claude Code (Opus) feel like two colleagues with distinctly different tendencies.
The interesting point is that if you simply compare them as "who codes better," you miss the essence.
This is closer to a difference in personality resembling developers rather than a matter of skill superiority.
Codex: Genius-like Junior Developer
When I first used Codex, the most impressive thing was its speed.
When presented with a problem, code pops up without hesitation. Its ability to turn ideas into structures is excellent.
It feels like this.
"Can't we solve it like this?"
— A junior who just joined but has a sharp mind
Especially, Codex is really strong in the following situations:
- When you want to quickly see your ideas in code form
- When creating prototypes, POCs, or experimental structures
- When the syntactic completeness of a language or framework is important
However, from the perspective of actually operating a Rails service, there are clearly some unsatisfactory points.
For example, when writing migration files, there are cases where one does not fully understand the intentions of the up/down methods and the change methods recommended by Rails (e.g., reversible migration).
Also, when it comes to deployment tools like Kamal, there are times when responses like "I know it exists but I don't understand the context" are given.
This is not so much a lack on Codex's part, but more of an impression that it resembles a developer whose time using Rails is still short.
Claude Code (Opus): Experienced Senior Who Has Used Rails for a Long Time
On the other hand, Claude Code (Opus) feels different from the beginning.
When presented with a problem, it doesn't immediately start writing code. It first organizes the context.
"In Rails, it's natural to go in this direction."
This way of speaking is already that of a senior.
The strengths of Claude Code are clear:
- Understanding of the Rails platform as a whole
- Continuity from migration to deployment to operation
- Choosing "code intended by Rails" rather than just "possible code"
Even when writing the same migration, it first suggests a form that is not just functional code but reversible and easy for the team to maintain.
Therefore, the code provided by Claude Code may not be flashy.
However, from the perspective of someone who has actually run a service, it feels like "Ah, this is the way we used to do it in the field."
I think this point is very important.
Because ultimately, the time spent on operating code is much longer than the time spent on writing code.
How I Use Both Models
So these days, I intentionally separate and use both models.
Instead of asking the same question and comparing answers, I divide the roles and work together.
Usually, when starting development, I set it up like this:
Open a Warp terminal and create two panels side by side.
- Left panel: Claude Code (Opus)
- Right panel: Codex (gpt-5-codex high)
On the left, Claude Code is always there.
Here, code is not written immediately.
First, I have Claude Code plan:
- What is the natural way to implement this feature in Rails?
- Where is a good boundary for models, controllers, and service objects?
- In what order should migrations proceed safely?
- What should be considered from deployment to operation?
At this stage, Claude Code acts almost like a technical design reviewer.
Naturally, phrases like "This is the Rails way" come out.
Next, I throw the same plan to Codex on the right.
"Check if anything is missing in this plan."
"Is there a way to simplify things here?"
Codex plays a really good role at this point.
It quickly points out structural flaws or boldly organizes unnecessarily complex parts.
Writing with Claude, Reviewing with Codex
Once the plan is organized, the actual code is written again with Claude Code.
The reason is simple.
In Rails, what is more important than "working code" is "code that lasts long."
The code written by Claude Code may be slower, but it comes out in a form that:
- Considers rollback of migrations
- Does not violate Rails conventions
- Can be understood even when I look at it again later
Once the code is somewhat complete, that's when I use Codex as a code reviewer.
- Can this logic be written more simply?
- Are there any overlooked parts in queries or loops?
- Are there any structures that are difficult to test?
Codex is really competent at this stage.
It feels like a bright junior asking questions about senior code without hesitation.
Insights from Using Both AIs Simultaneously
Using them this way made it clear.
Comparing Codex and Claude Code is not of great significance.
What's important is how you assign roles.
- Codex is strong in divergence and inspection
- Claude Code is strong in accumulation and stability
When you have these two side by side in the left and right panels of Warp, even though you are developing alone, it feels like there are two developers with different tendencies within the team.
And I am just the developer making decisions in between.