I'm describing below 10 use cases where ChatGPT will make your work easier and/or better as a Software Engineer.
You can steal the prompts and use them in you day-to-day work.
Happy coding👇
1/ Generate boiler plate code
To build a new project from scratch, I ask ChatGPT to create a skeleton of the app I need, using the technologies, frameworks and versions I choose.
I can even make it part of my team's documentation. It saves at least an hour or so each time
2/ Research and compare
Many times there are different ways to implement something. So my usual approach is to build a rough PoC of two competing approaches and compare.
ChatGPT can do it for me:
- React vs Vue
- Algorithm A or B
- etc
This saves half day of work, easily.
3/ Explain code
How many times our work is simply to understand a code base that wasn't built by us? Spaghetti code, with no comments. We die a little bit line by line.
Now we can ask ChatGPT to explain what the code does, and we save a bunch of time.
4/ Comment code
We can extend the point 3 above by adding line by line comments to that code base we didn't build.
But we can also make our own code properly commented before shipping, by asking ChatGPT to add comments.
No more uncommented code in PRs.
5/ Write test cases
Ask ChatGPT to generate test cases for a list of scenarios. Even tell which framework, version etc you want to be used. Boom, it will do it for you.
No more untested PRs.
6/ Write documentation
You can ask ChatGPT to write documentation on things like:
- How to spin up a certain code base,
- The packages required for it to run
- What the code does,
- What are the know limitations.
- Etc.
It might not be perfect, but the 80/20 rule applies.
7/ Generate regexes
Regexes are one of those specific syntaxes we don't use from time to time. We need to Google, look up syntax and spend significant time every time we need one.
Not anymore, we can just ask ChatGPT to generate it.
8/ Rewrite code using correct style
I just wrote down some code conventions from one of my teams and added it to the prompt, along with some spaghetti code.
Very useful when merging code from different repos/teams, that would need to be refactored before merging.
9/ Find bugs in your code
When you know what you want, but the code doesn't do what you want. Instead of adding console.logs all over the place, you can ask ChatGPT to spot the bug for you.
This works best on function level bugs, not repo level. Still, a massive improvement.
10/ Leetcode type algorithms
If you need a specific isolated function, to run on optimal complexity. ChatGPT can get you a very fast start.
An obvious use case for this is coding interviews. But sometimes it's useful in the day to day work too.
When I made a renovation in my current house, 5 years ago, I built an office space out of a corner of the living room.
It's the place where I spend most of my working hours. And I don't impact my wife and kids, even when I work at american times.
Now that I'm building a new house to move later this year. It has 2 offices for deep work (one for me, and one for my wife), and has a few "social" areas that we can use for creative work or simply stretch our legs.
The biggest drawback I felt was becoming isolated into a role with high pressure to deliver, with a tight budget, at a time where my network was still small.
Joining roundtables with other CTOs was a game changer for me.
I remember in my first roundtable:
Moderator: "What's unique about you?"
Me: "I feel tremendous impostor syndrome. I feel that I'm failing and not keeping up with expectations"
Moderator: "Well, I' don't think that's unique of you"
Everyone: "Yes!" (all nodding in agreement)
Sharing experiences and vulnerabilities with like minded people was very important to me.
Suddenly I:
- Realised others have similar vulnerabilities.
- Learned how they handle them.
- Realised I'm actually doing ok.
I can only recommend people to join such "discussion forums".
Should Software Engineers be afraid of AI taking their jobs?
TL;DR: Not as much as you might think. They should be more excited than afraid, actually.
A short 🧵
With tools like ChatGPT and Github Copilot maturing in the open market, it's now clear that AI tools will have a very important part to play in the future of software development.
Eg: See how ChatGPT solves code interview challenges:
As a Fractional CTO, these are my 5 most common assignments:
1/ Transitioning from outsourcing to an in-house team:
- Many startups begin with a low budget, hiring dev shops or freelancers to build an MVP. With funding, they need help to hire the right in-house team.
2/ Making key tech decisions:
- As a Fractional CTO, I help startups decide on tech stack, select vendors, lead integrations with clients, and define underlying processes to professionalize tech operations.
3/ Defining scalable hiring processes:
- In the hyper-growth phase, I help startups define positions to be hired, source candidates, and create scalable interview and onboarding processes.