My vibe coding loop:
- Scope the feature with ChatGPT
- Turn the chat into a PRD
- Commit the PRD to the repo as Markdown
- Ask Claude Code to convert the PRD into a Markdown task list
- Work the list
What I love about Swift and programming in general is that it's a never-ending creative challenge. Even after 15 years of building software, I learn something new every day.
AI hasn't replaced that for me. It's accelerated it.
Don't see AI as a threat. See it as a multiplier.
This is an example of what I meant yesterday. If you use "text.document" and your app targets iOS 17 or earlier, Image(systemName:) returns nil on those older iOS versions. This also shows how important it is to test your apps on older iOS versions.
💡 Pro tip for Swift developers: Not every SF Symbol is available across all iOS versions. A Image(systemName:) call might return nil on devices running an older version of iOS. Always check availability or provide fallbacks to avoid those mysterious missing icons.
One of the mistakes I made in the past was trying to come up with an idea that hadn't been done. As an indie hacker, exploring a blue ocean is rarely a good idea. Competition is good. It means the idea and market are (most likely) already validated. Your task is to give a unique spin to your idea.
It's crazy to realize that in a few years, there will be a generation of people who don't remember a time when AI wasn't readily available, like at their fingertips.
I don't envy those people, though. In many/most countries, the standard of education is steadily declining. One of the reasons is undoubtedly because people don't put in the work because they don't have to.
I see a similar trend in software development. Technologies like ChatGPT and GitHub Copilot are fantastic. The danger is that software engineers become less capable, less creative, and less competent.
A few years ago, I was asked to implement a method in Objective-C during an interview ... in a plain text editor. Xcode wasn't there to help me with its code completion magic. Have you tried writing Objective-C without code completion? Give it a try if you want to have some fun.
Code completion is one thing, but having an AI assistant write most of your code can be problematic in the long term, especially if you are still learning. It is possible to use AI to speed up your learning, but most don't because they don't have to.
If you want to be at the top of your game as a software engineer, you must have the discipline to stay curious and set aside time to learn and improve your craft. It is fine to use an AI assistant, but don't make it a dependency for writing fantastic software.
In today’s world, you move backward if you don’t move forward as a developer. The tech space evolves at such a rapid pace that you need to grow and evolve constantly. That can be challenging. It is the #1 challenge for many developers.
What helps tremendously is carefully choosing the environment you work in. If you are part of a team that understands this challenge, you are halfway there. A team acknowledging that the status quo isn’t an option will create an environment that promotes your growth and supports your evolution, making reaching your goals much less daunting. Knowledge-sharing sessions, attending conferences, pair programming, or organizing local meetups can make a difference.
Avoid teams that don’t embrace this mindset. If you notice that your team underperforms consistently, cares little about code quality, or isn’t investing in a long-term vision of the project or product, then it may be time to look for other opportunities. Spending too much time in an environment that doesn’t serve your goals can be demotivating and even problematic in the long run.
Being a developer is more than writing code. You need to build a set of skills that supports you in writing code. You need to be a great communicator. You need to take ownership of your work. You may need to lead.
It is no longer sufficient just to write code, especially if you want to stand out in your next job interview. That may be overwhelming, but it shouldn’t be. Start simple and start small. Write down what frustrates you in your day-to-day work and take action. That can mean updating the project’s README to make onboarding new team members easier or rethinking the release train of the project. Involve others to increase momentum, and before you know it, you have made a significant change that benefits you and your team.
Pro tip: When you go for lunch or end your day, define your very next action when you start work again. It really helps combat procrastination. Make the action as specific as possible.
I get that systems like Getting Things Done can be overwhelming, but one very simple trick you can implement today is creating a list or note to collect your ideas. I have been using this for years and it is a lifesaver to declutter your brain.
You can use a fancy to-do app, a simple notes, or a piece of paper. Write down tasks and ideas that come to mind. 1) Revisit the list once a day so you don't forget the pending tasks. 2) Revisit ideas to refine them. An idea only gets better over time.
166 Followers 2K FollowingA simple person having creative head in technology..
Always have hunger for technical gadgets and latest technologies...
Loves iOS Development...
304 Followers 800 FollowingApple Developer Academy graduate 2020. Time warped from 6502 assembler to SwiftUI. Founded ISP in the 90s. 20 years VC Investor. Entrepreneur by heart.