The Tech Diaries
The Tech Diaries
Ep 5. ChatGPT & The App Development Process. Answering Your Questions Pt 2.
Are You Worried About ChatGPT as a software developer? In today's episode, the tech diaries podcast is flipping the script and putting you, the audience, in the spotlight. The host Sahil deeply delves into your burning technical questions and provides insights, solutions, and expert advice.
The key points from Questions & Answers are:
Segment 1: Decoding ChatGPT in Software Development
The episode dives into your questions about ChatGPT's role in software development. Is it a game-changer or a potential challenge? Let's unravel the AI-powered mystery together.
Segment 2: Frontend Course
Sahil shares his passion for teaching and outlines the upcoming Frontend Development course he is working on.
Segment 3: Choosing the Right Tool for the Right Job
Strapi, WordPress, or headless CMS? Your content management questions will be clarified as Sahil discusses the pros, cons, and ideal use cases for various CMS platforms.
Segment 4: App Development Process
Ever wondered how to get started with app development? Sahil with his years of experience in developing Apps for various Startups is sharing his process about app creation, development tools, and the app deployment process
And that's not all – stick around until the end for a special surprise. There is a nugget of wisdom that could be the missing piece in your tech journey puzzle.
So, grab your favourite pair of headphones and tune in to Tech Diaries Podcast. It's time for your tech questions to take centre stage! Hit that subscribe button and never miss an episode of insightful answers and tech exploration. If you like the episode please rate the show and leave a comment.
The episode covers
(00:00) Introduction
(00:47) My Life Update - Work & Travels
(02:15) ChatGPT and Its Impact on Development?
(06:06) Frontend Development Course
(08:08) Choosing the Right Tool for the Right Job
(12:08) App Development Process
(18:54) Summary & Key Takeaways
Useful Links:
ChatGPT: https://chat.openai.com/
Strapi CMS: https://strapi.io/
Contentful CMS: https://www.contentful.com/
Ghost CMS: https://ghost.org/
Prismic CMS: https://prismic.io/
Book: The Lean Startup: https://theleanstartup.com/
Connect With Sahil
Personal Website (sahildavid.dev)
Instagram (@sahildavid.dev)
LinkedIn
Linktree
If you know a developer or tech professional you would like to listen to on the show, please let me know via email sahil@sahildavid.dev
If you liked the episode please leave a review. Let Sahil know what you think about the episode.
Hello and welcome to this another special episode of the Tech Diaries podcast. This is the final episode of the 2 part series where I am answering your technical questions.
My name is Sahil David, and I am a Data Science Engineer based in the UK. Welcome to my podcast - The Tech Diaries where we explore stories and ideas that inspire our technical minds.
First of all, I want to thank all of you for supporting this podcast. Your feedback has helped me to grow and bring more technical content to you. If you are new to this podcast, Welcome to the show, please don’t forget to like and subscribe and leave a review so I can keep growing.
Life Update:
As an update from my side, life is going through a very interesting phase. The application for my startup is about to launch, super excited about that. I will give you more details about the app in the upcoming episodes. One of the biggest updates from my side is that I have moved to Valencia Spain for a month. I am actually recording this episode from Valencia. It’s very warm here, but I am loving it. It has allowed me to focus on myself and work on my self-development.
Recently, I have been busy with travelling, as I often say in order to stay motivated as a developer we need to take care of our energy. We need to disconnect to reconnect. I had a long weekend away in Mallorca, Mallorca was beautiful. Highly recommend if you are looking for a holiday destination. I also visited my family in India after a long time. Much needed a break as it refreshed my mind. Absolutely loved my trip to India. Let me know in the comments what are you doing to stay motivated as a developer. I would love to hear from you.
A Quick recap: In Episode 2 of the podcast I answered 4 questions asked by you, where we touched on various topics such as Imposter Syndrome, How to stay motivated as a Developer, and Frontend Development Roadmap. If you missed the episode please check it out.
For today’s episode, I have 4 more questions to answer, questions sent by you. As I said before, please note that these are not the perfect responses, but these are my experiences which have worked for me in my journey as a developer. If I miss something, please let me know. So without further ado, let’s get started.
So today’s first question is.
Q1. I am learning development for the last 1.5 years but I am now confused because of ChatGPT. What are your thoughts on that?
Such an interesting question. ChatGPT has been the most discussed topic lately in the software community. Before diving into the question, I want to take a minute and congratulate you for learning development for the last 1.5 years. It's totally natural to feel confused about new technologies and advancements in the development field. First of all, if anyone is listening to this podcast and hasn’t heard about ChatGPT, here’s a quick overview.
ChatGPT is an advanced language model developed by a company called OpenAI. It is based on the transformer architecture, specifically the GPT series, which stands for "Generative Pre-trained Transformer." GPT models are known for their ability to generate human-like text based on given prompts and are designed to understand natural language. Now the interesting point is that ChatGPT understands programming languages through its training process on a diverse and extensive dataset, that includes a wide range of programming-related text from the internet. So as you can imagine it raises concerns for the developer community.
In my opinion, I am really excited about the technology. I wouldn’t worry about losing a job because an AI model can write code. There are still many factors that determine whether the code is fit for production. The biggest challenge with ChatGPT is we cannot be 100% sure if the code output is correct and doesn’t have security leaks. I mean don’t get me wrong, the model is only going to improve from now on. Personally, I wouldn’t just take the code from ChatGPT and put it in my live application for my startup. I need to know the code written is of quality and cover all basis. Moreover, if you have a skill and you become a domain expert, there will always be demand for you. So I would advise you to keep learning and keep growing.
Having said that, ChatGPT can be a valuable tool for developers in various ways, it can help with our workflows, productivity and coding challenges. Here are some examples I use ChatGPT for:
Brainstorming Ideas: ChatGPT helps me with brainstorming ideas for new projects, features, or solutions. By describing the problem or requirements, ChatGPT offers me suggestions and insights that might inspire new directions.
One of the other scenarios I use ChatGPT for is to generate Test Cases. Sometimes it provides me with scenarios which I often haven’t considered.
Lastly, where ChatGPT is bringing productivity to my development process by helping me with Debugging and Troubleshooting. When faced with a bug or issue, I can describe the problem to ChatGPT, and it may offer insights into potential causes or debugging strategies. Usually, it’s not the solution I am looking for, but it can spark ideas that lead to solutions.
I hope this answer helps you in putting things in perspective. Like any other tool, ChatGPT is a tool available for us to write better code. And yes, don’t use it to take shortcuts. Don’t compromise learning technical concepts or knowing your programming language in detail. Don’t become dependent on it. Learn & know your programming language inside out. Strengthen your foundations. Don’t worry about AI taking your job, I read somewhere very interesting that “Humans are the new programming Language”, There is no substitute for human creativity and the energies that flow within us. Become a good conscious person, and keep chasing your dreams.
Let’s move on to the next question,
Q2. You mentioned in your last episode that you like teaching. Do you offer coding classes? When will you launch your course?
The timing of this question is so right. Yes, I love teaching, and I love to contribute to other developers with my experiences. Regarding the course, I am working on developing my own series of web development courses. Next month I will be launching a Frontend Development Course called “Frontend Mastery”. I am still working on the specific details, but since you asked the question here is the high-level overview. The course will be around 6-8 weeks course covering topics such as HTML, CSS, and JavaScript. Once the basics are covered we will be moving to advance JavaScript and Vue.js Framework. The course is divided into small modules and each module has a practical example, where we work towards a coding challenge together, so you can see the code in action. There are sessions for live Q&A, should you have any questions throughout or after the course.
But the most interesting part is, the course will focus on developing a live project which we will build together from scratch and deploy to the server. My vision is to give you the skills so you can start your career in Frontend Development but most importantly build your own projects, and apps, and bring your ideas to life. Recently, I posted a quote on my Instagram saying. Code, Create, Collaborate, and Leave a legacy. The idea behind the courses and my content is to empower you with the skills so you can develop your ideas and shape them into startups.
Soon I will be sharing the details on my social media. So if you are interested please follow me on my Instagram for regular updates. My username is @sahildavid.dev. Also, join my weekly newsletter on my website sahildavid.dev.
Thank you for asking the question, and see you there in the course.
The next question is actually a good friend of my mine - Andrea Lopez. She is a developer based in Valencia Spain. Andrea asked,
Q3. I loved the episodes so far! What do you think about Strapi creating a headless CMS? Better options?
Thank you Andrea for all your love and support. If you are listening, Can I please invite you to the podcast so we can have a conversation and discover your developer story?
Regarding your question about better options for choosing Strapi and headless CMS, I would say this is a bigger conversation which depends on what are we trying to accomplish. Here’s my thinking.
Let’s talk about a principle called “Right tool for the Right Job”. I don’t think there is a better option, the point is which option is better for you for the task at hand. Pick a technology where you can leverage the strengths of your team and skillset.
Since you mentioned Strapi let’s talk about it. I tried it a few months ago, and I have to say it can be used for some very interesting developer-friendly use cases. For anyone listening, if you don’t know what Strapi is. Strapi is a popular open-source headless CMS. What is a headless CMS? Simply put it’s a Content Management System which separates the content layer from the presentation layer, offering super flexibility for developers to create complex, dynamic and content-rich applications.
When evaluating whether Strapi is the right choice for creating a headless CMS, I think it's important to consider its features, benefits, and how it compares to other options. Let’s look at some factors together. Here are some of the Pros of using Strapi.
It is an open-source software, which means we can modify it according to our needs. From my experience I know that Strapi offers a highly customizable environment, allowing us to define content structures, API endpoints, and data relationships based on your specific requirements. Also, Strapi follows an API-first approach, making it suitable for building decoupled applications where content is consumed by various frontend frameworks. Moreover, it has a user-friendly admin panel and supports a wide range of plugins. So could be a strong case for many applications. However, there are some considerations as well.
If you are new to Headless CMS, there could be a learning curve, and if you have multiple Junior developers in the team, I would evaluate the time it needs to use the platform efficiently Personally I don’t have the experience or know how well it will scale and perform for large & commercial level projects. One last consideration for me would be that while Strapi has an active community, the level of support and documentation it provides, as compared to more established CMS platforms.
Just to give you more ideas, I will look into other options as well such as Contentful, Ghost, Prismic, and also WordPress (with headless setup). I am very much interested in that. I will mention all the links in the podcast notes.
Wish I could tell your straight away which option to go for, but ultimately, the choice between Strapi and other headless CMS options depends on your specific project requirements, your familiarity with the technology stack, and the level of customization you need. It's a good idea to evaluate different platforms, consider your long-term goals, and possibly even experiment with a few options to determine which one best fits your needs.
I hope these points help you. Let me know, which option you go for and what you discovered along the way. Good luck!
Now here’s the last question for this episode
Q4. Can you talk about some of the apps you created? Is there any process you follow?
Okay, that’s a big question. Let’s take it in two parts.
First - the apps I have developed. I will mention two apps that are running live for Startups as we speak.
The first one is called ADIMS - Advanced Diary Integration Management System. ADIMS is an application built for Driving Schools in the UK. It helps Driving Instructors and businesses manage their driving lessons booking, payments & students all under one umbrella. It started off as a project for my uncle who is a Driving Instructor himself. Here’s a lesson for you, For every problem you see around you that needs a better solution that there already is potential for an app and startup. Started as a personal project, and soon we realised the scope and value it can bring to the market. At this point, we rewrote the whole app for commercial use. The application is running live and is used by Driving Instructors all over the UK. The project is still in its initial stage with huge potential.
The second app I am currently working on is called Gurukul Solutions. It’s an Education Management System which is about to launch in India next month. Our vision is to bring technical advancements to the field of education. After comprehensive market research, we have identified a gap in the market. Currently, we are working on developing the MVP. The startup is called Kiinara Interactive Solutions, with our office based in Chandigarh. We have a team of amazing individuals. We all lift each other. As a unit, we are working constantly to bring our ideas to the app in a user-friendly manner. There are lots of interesting architectural challenges I am working on right now. I will share a complete case study once the app is launched. Stay tuned!
Now regarding the second part of the question. The process I follow to develop apps.
Wow, such a big question. This is my ongoing adventure. I have formulated a process over the years learning from the companies I have worked with, but I am still refining each and every stage. I believe there are many areas where I can work more efficiently. Here’s the high-level overview of the process, it might be difficult to follow on the podcast, but we can try:
The process focuses on a user-centric design approach and iterative development. By involving stakeholders and users at multiple stages, the idea is to ensure that the final products id well-tailored to deliver a positive user experience. At the core of the process lies the commitment to quality and the willingness to adapt based on feedback. Most of my points are derived from reading books such as “The Lean Startup”. If you are starting a business I highly recommend the read, link in the podcast notes. Anyway, the high-level steps that I follow while developing the app are:
Discovery Phase: This is where I focus on market research, brainstorming ideas and gathering requirements. The main purpose of the discovery phase is to work out the feature set that can provide maximum value to the users.
After the discovery phase, I move to Initial Prototyping or Proof of Concept. I am still evaluating if this is the right place to include the prototyping, but for now, that’s what I do. In this step, I focus on creating an initial version of the app to demonstrate core functionality. This helps users and the team to visualize the direction of the project. Also, I feel this step is very important to remove any unknowns and catch hidden monsters. Initial Prototyping provides Clarity which is super important for a smooth app development experience
The next step is to move to Sketching & Design Phase. This is my favourite step. I am not a designer but I have to say I envy all the designers. I love a good clean UI design. Thank you to all the designers out there for making our web and life a well-structured and beautiful place. Shoutout to all the designers. If I have to do life again I would become a designer. Anyway, based on the project budget I either hire a freelancer or design the initial UI myself based on my research.
At this point, things get serious for me. Now I will be moving into Architecting the application. There is a big difference between building an application and building an enterprise or commercial application. I read this amazing quote once, “A well-designed software architecture is not just code—it's a testament to the power of imagination and engineering.” Every decision made during this phase, whether choosing the infrastructure, modules & libraries, or tech stack all have a big factor to play in the successful journey of your app. I have a ritual that I do here, I think about various architectural patterns, read books, listen to talks, and keep thinking about them all the time. Think about problems and potential solutions on my drives, walks, and literally everywhere. I like to believe solution comes to you in the most unexpected times. But that’s the beauty of Software Development. Also, I am not an expert in cloud infrastructure, so I would always discuss it with my colleagues, friends and experts. Always good to review your thinking before making big decisions.
After I have an idea laid out for Architecture comes the most important aspect. “Code by hand”. I tried to put down all the major logic and flows on pen and paper. That gives me a clear vision, all set to start developing the MVP. I highly recommend reading “The Lean Startup” book a game changer for me.
After the MVP is developed, the beta version is shared with users and the initial team. The process is then very iterative. With small sprints and regular updates, the project moves to Alpha & Stable Releases. All set to hit the market.
Honestly, having the right process and approach can make all the difference. This process works for me. I would suggest you take the ideas and find what works best for you. If you already have a process, please let me know in the comments I would love to make changes wherever I can. Also, on a side note, I am thinking about a name for this process, if you have bright ideas let me know.
Conclusion
That brings us to the end of all questions. Wow, that was a lot to cover but we got there in the end. A big Thank you for sending all your queries, I love answering your questions. I hope this episode provides you with the value that you can implement in your coding journey. If you didn’t get the opportunity to submit your question, you can always contact me on my Instagram.
Here’s something extra for you for listening all the way to the end. Follow these 3 steps to be successful. Show up, Play 100% and finish what you start. Let me repeat that, show up to work with intent, Give it your absolute best and stay consistent, finish what you start and you will be unstoppable.
Thank you so much for listening. If you loved the episode please leave a review, it really inspires me and helps the show grow. If you want to follow me behind the scenes, you can find me on Instagram @sahildavid.dev. Don’t forget to hit subscribe so you don’t miss an update. I drop a new episode every month. Come join me on this journey on the tech diaries podcast where we explore the exciting world of software engineering. This is me - Sahil David signing off. Lots of love and light to you. Stay motivated and don’t forget to celebrate the small wins in life.