The Endearing Grumblings: Reflecting on Year Six in Software Development
Everyone can code! It is not the only thing that you have to master on it. AI Guesses, We Understand!
Before I changed it, the title was “The Grizzled Grumblings: Reflecting on Year Two in Corporate Life”. But I agree with you on that I am not a grizzled guy who can give you any advice about your career. Despite that I’d say that I am a grizzled(!) smoky who hated of corporate life and talked like “developing software in corporate life is like bullshit” but …
Do not think that I am writing while I am smoky. Guys, I really love my job :)
While discussing with my friends, most of them are thinking that AI is coming to kick our ass. Do not worry! It is just a tool to boost your productivity.
In two weeks, I am going to do a presentation about “Being a software developer in the era of AI” to young software developer candidates from a university. Before to do that, I was trying to gather my notes for making a slide. I wanted to share my thoughts. And Mr. Fu really got me excited…
Of course you can improve yourself in any environment until you want to do it. But for now this is out of our scope. I planned to write in order to a designed plan but after I watched the video below, I got excited and just wanted to share my thoughts without following a plan.
I am going to tell you about
- Keynotes from Mr. Fu
- Foundations are the essentials
- How I changed my software development processes
- How I feel multilingual development
- Why I prefer to improve myself in horizontal instead of vertical
Keynotes from Mr. Fu
- Think of AI as a brilliant junior developer in your team
- Defining the vision, validating the results and ensuring for the outcomes
- A person can handle tasks that needs different roles
- Engineers are becomes the orchestrators
- How to break complex problems into steps, thinking logically and critically, and harnessing the digital tools to build solutions really matter are important as much as writing code
- Think about the system like an architect
- Go full-stack across disciplines
- The future software engineers are full-stack engineers
- Get into the other disciplines like design, product, data, project management and be prepared to wear multiple hats
- Learn to work with people
- Use AI as a creative partner. Discuss your projects with AI
- Stay adaptable. Tools change, principles last
- Learning how to learn
Foundations are the essentials
Yes, AI is fast. Yes, it writes code. Yes, it sometimes sounds like it knows more than us.
But guess what? It doesn’t understand what it’s doing — we do.
We’re the ones who still need to know how things actually work behind the scenes. I’m talking about the boring but essential stuff — the stuff you might’ve skipped while trying to build your first SaaS MVP or while grinding for interviews.
- How does a browser talk to a server?
- What’s going on under the hood in a
POSTrequest? - Why does Docker even work?
- What’s the point of load balancers or reverse proxies?
These aren’t just trivia questions. They’re the real building blocks of our systems. And if you don’t hold those blocks tightly, you’ll always be at the mercy of whatever tool you’re using — including AI.
Let me tell you what changed for me:
When I started working with AI tools, I was like,
“Whoa, this thing just wrote me a Python service with a Flask API, Redis cache, Docker setup and even healthchecks!”
Cool right?
But then something weird happened: I looked at it… and I couldn’t feel the code. Like, it was syntactically correct — sure. But was it efficient? Scalable? Secure? That’s when I realized — if I didn’t remember my fundamentals, I’d just become a prompt monkey.
So I started going back to the roots:
- Networking models (OSI / TCP-IP, yes really)
- Server-client architectures
- Communication patterns (sync vs async, queues, retries, etc.)
- DevOps basics (containers, CI/CD, observability)
- System design principles
These aren’t optional anymore. They’re your mental frameworks. Even if you don’t use them every day, they live in your subconscious. They guide your judgment when AI gives you an answer.
You don’t have to master everything right now. But you do have to know what you don’t know — and stay curious enough to explore it when the time comes.
Foundations make you the leader of AI — not its follower. And believe me, it feels so damn good to correct ChatGPT when it’s wrong.
How I changed my software development processes
Let me tell you something that completely flipped the way I work: AI is not just for coding — it’s for thinking.
I used to open my editor and just start writing code. You know, the classic:
“Let’s see where this goes…”
Now? I don’t even touch the keyboard before I ask myself:
- What am I building?
- Who is it for?
- What are the constraints?
- What will I probably need in 6 months?
I Start with Defining
Before any line of code, I open up ChatGPT and say:
“Hey, I need to build X. These are my needs. These are the edge cases. Let’s break it down.”
Together — yeah, me and the bot — we:
- Define features
- List out edge cases
- Identify external dependencies
- Predict scalability issues
It’s like having a brainstorming partner who doesn’t get tired. And you know what? This forces me to think sharper. Because AI only works well when you ask good questions.
Then I Move into Architecture
This is where it gets exciting.
I started using AI to help me design full system architectures: From small client-side flows to backend services, API gateways, queue systems, serverless options… you name it.
I don’t just write specs anymore.
I ask AI to draw diagrams using MermaidJS:
- My server architectures
- My clients’ frontend-backend workflows
- Cloud resource maps
- Even CI/CD pipelines
It’s like having a diagram guy in your team who works 24/7 and never complains.
And believe me, when you visualize everything, your blind spots become so clear.
And I Document Everything (Seriously, Everything)
This was a big shift for me.
I used to hate writing docs. Now I delegate it to AI.
- I drop a code snippet and say:
“Write a technical doc for this module, include input/output, edge cases, and business context.”
- I upload an OpenAPI schema and ask:
“Generate markdown docs for my frontend team.”
- I define business rules and say:
“Turn this into a human-readable checklist for QA.”
The result?
Everyone on the team stays aligned. Including future me who’ll return to this project in 6 months and forget everything.
So yeah, I still code. But before that, I design, think, plan, and document — with AI helping at every step.
And honestly?
It made me faster, calmer, and much more confident in what I build.
How I feel multilingual development
I’m a backend developer.
At least, that’s what my LinkedIn says.
But in reality? I’ve been cheating on Python for years.
Thanks to knowing my foundations, I’ve shipped full frontend projects from scratch — even though my main weapon of choice has always been Python.
Why? Because when you understand:
- How the client talks to the server
- How data flows through layers
- How events are handled and rendered
…then switching languages feels less like learning French from zero and more like ordering coffee in a new country. You already know what you want, you’re just learning the words.
Handling Multi-Language Client Work
My clients don’t care if the code is in Python, JS, Java, C#, or even Go.
They care if it works, scales, and doesn’t set their servers on fire.
I’ve:
- Written Svelte apps from scratch.
- Picked up Java for a project that required Spring Boot.
- Tinkered in C# for a Unity tool.
- Built microservices in Go just because it was the right fit.
And you know why I can do that without losing my mind?
Because the algorithm is language-agnostic.
If you understand the problem, the solution’s shape is already in your head — you’re just translating it.
My Python → Java Shift
This one’s worth mentioning.
I had to switch from Python to Java for a client project.
Sounds scary? Not really.
Here’s how I made the shift painless:
- Compare syntax directly — I literally wrote small functions in both languages side-by-side.
- Understand the build system — in Java’s case, Maven/Gradle was my new friend.
- Map the equivalents — Python dicts vs Java Maps, Python exceptions vs Java exceptions, etc.
- Keep the mental model intact — the logic didn’t change, only the tools did.
Once you think of languages as just different costumes on the same actor, it stops being intimidating.
So yeah — I’m still a Python developer.
But if tomorrow someone drops a TypeScript or Rust task on my desk, I’ll roll up my sleeves.
Because at the end of the day, it’s not “Can I code in X?” — it’s “Do I understand the problem well enough to solve it in X?”
Why I prefer to improve myself in horizontal instead of vertical scale
People love telling you:
“Pick one thing and go deep.”
And sure, depth is great… if you want to be the best in the world at one single slice of the pie.
But me? I like owning the whole damn pie.
My Philosophy
I believe in learning the foundations across multiple domains:
- DevOps
- Backend (Python, Go, Java)
- Frontend (React, Vue, plain JS)
- AI & automation
- Frameworks (Django, Spring Boot, ASP.NET)
- CI/CD pipelines
- Containers & orchestration
- Monitoring & observability
Why?
Because every new skill is another tool in my independence kit.
When you understand the core ideas across disciplines, you don’t get stuck waiting for “the right person” to solve a problem. You can take initiative. You can ship. And that applies whether you’re freelancing, running your own product, or sitting in a corporate office.
Being a Solopreneur Inside a Company
You don’t need to quit your job to be independent.
You can be a solopreneur inside a corporate.
Here’s the trick:
- If you know DevOps, you don’t wait 3 days for someone to set up a pipeline — you just do it.
- If you know frontend basics, you can prototype the UI yourself.
- If you understand AI tooling, you can automate the boring stuff without asking for permission.
The more problems you can solve yourself, the braver you become.
Braver to pitch ideas.
Braver to take ownership.
Braver to say, “I’ll handle it” — and actually mean it.
The Horizontal Advantage
For me, horizontal growth is about:
- Connecting dots across fields
- Spotting opportunities others miss
- Being comfortable wearing multiple hats
And in the era of AI, this is more powerful than ever.
Because AI is great at executing within a field — but it still needs a human to connect fields together.
So no, I’m not just a Python backend guy.
I’m a DevOps-frontend-backend-AI-system-design kind of guy. And that’s exactly what keeps me independent — and dangerous.
Finally
I’d say, “Don’t beat me, I already regret saying this!” — but you know what? I’m still going to say it.
Developing software in ungainly environments is… well, let’s call it “character building.”
Others might call it bullshit. Tomato, tomahto.
And it’s not about corporate vs startup. I’ve seen both sides of the fence, and trust me — the grass is equally patchy.
The real truth?
We live in a time where all of us can take an idea from our heads, build it, and share it with the world — often without asking for permission, and sometimes without even leaving our desk.
So hug AI. Seriously, give it a warm embrace. Let it autocomplete your dreams.
Treat it like that weird but brilliant coworker who sometimes makes mistakes, but still helps you get promoted.
And hey, full disclosure — I even got help from AI to write this very article. So if there’s a line you loved, it was definitely me.
If there’s a bad joke? Yeah, that was the AI.
Because the era of AI isn’t coming — it’s already here. And you can either complain about it like your uncle complains about TikTok… or ride it like a surfer who just found the perfect wave.
Kind regards,
