[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"posts:::4:6:":3,"$fmAbo7HX1697lOJ4AVNBJl1PR7wUF0IkR_62krtbwQAE":129},{"data":4,"meta":125},[5,28,49,69,90,107],{"relatedTools":6,"_id":7,"id":8,"title":9,"alt":10,"category":11,"categorySlug":12,"date":13,"author":14,"readTime":15,"content":16,"image":17,"more":18,"extendedContent":19,"asHTML":18,"photoCredit":20,"headTitle":21,"metaDesc":22,"tags":23,"createdAt":25,"updatedAt":26,"uuid":27},[],"67de15a2e2dbbaa3bd7094a6","rethinking-quality-assurance-in-modern-web-development---another-episode-of-the-cto-show","Rethinking Quality Assurance in Modern Web Development - another episode of the CTO Show.","Shawn Shantilal","Side Project","side-project","2025-03-22T01:32:00.000Z","Michal",28,"In the latest episode of The CTO Show, I sit down with my good friend and mentee, Shawn Shantilal, an expert in Quality Assurance and Data Science, to discuss why it’s time to rethink QA in modern web development. We explore the evolving role of QA in agile teams, common pitfalls to avoid, and how AI and automation are shaping the future of software quality. Whether you’re a developer, tester, or tech leader, this episode is packed with valuable insights.","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnewsshawns_episode.jpg","true","\u003Cdiv style=\"width: 100%; min-width: 400px; max-width: 1200px; margin-top: 30px; position: relative; padding-top: 56.25%;\">\n    \u003Ciframe \n        style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" \n        src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FSsnnieJASfc?si=vsiglWXNNP7PG2Hg\" \n        title=\"YouTube video player\" \n        frameborder=\"0\" \n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" \n        referrerpolicy=\"strict-origin-when-cross-origin\" \n        allowfullscreen>\n    \u003C\u002Fiframe>\n\u003C\u002Fdiv>","CTO Show by TechVibe","Rethinking Quality Assurance in Modern Web Development | CTO Show","Join The CTO Show as QA expert Shawn Shantilal explains how AI, automation, and agile teams are reshaping quality assurance in web development.",[20,24],"Podcast","Sat Mar 22 2025 09:42:58 GMT+0800 (Singapore Standard Time)","Sat Aug 29 2026 09:28:28 GMT+0800 (Singapore Standard Time)","018625bf-17ca-4225-9d80-cba3c6cf2f54",{"relatedTools":29,"_id":30,"id":31,"title":32,"alt":33,"category":34,"categorySlug":35,"date":36,"author":14,"readTime":37,"content":38,"image":39,"more":40,"extendedContent":41,"asHTML":40,"photoCredit":14,"headTitle":42,"metaDesc":43,"tags":44,"createdAt":46,"updatedAt":47,"uuid":48},[],"67ce41b6e2dbbaa3bd6fc31f","awesome-time-at-sp","Had an awesome time at SP!","Singapore Polytechnic Campus","Fun","fun","2025-03-10T01:31:00.000Z",1,"Big thanks to one of my ex-interns for hooking me up with a tour of the robotics labs and other departments at Singapore Polytechnic. The campus is seriously impressive-not just in size, but in the sheer number of cool gadgets and high-tech toys (some very expensive ones too!).\n\nHonestly, I wouldn’t mind being a student there. Well done, SG! 👏","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnewssp.jpg","false","","My visit to Singapore Polytechnic’s","Explore the cutting-edge robotics labs and departments at Singapore Polytechnic with a behind-the-scenes tour.🤖🔬🎓 #SingaporePolytechnic  #HighTechToys",[45],"Technology","Mon Mar 10 2025 09:34:46 GMT+0800 (Singapore Standard Time)","Sat Aug 29 2026 09:29:12 GMT+0800 (Singapore Standard Time)","14cfd1dd-71dc-4547-b1a6-a3c59d9754aa",{"_id":50,"id":51,"title":52,"alt":53,"category":34,"categorySlug":35,"date":54,"author":14,"readTime":55,"content":56,"image":57,"more":18,"extendedContent":58,"asHTML":18,"photoCredit":59,"headTitle":60,"metaDesc":61,"tags":62,"createdAt":65,"updatedAt":66,"uuid":67,"relatedTools":68},"679991ad6d0f94a2e37efeed","when-host-becomes-a-guest","When host becomes a guest. ","Mai Ngo & Michal","2025-01-29T02:18:00.000Z",30,"The tables have turned! On the latest episode of The CTO Show, I swap my usual role as host for the hot seat as a guest - grilled, I mean, interviewed by the amazing Mai Ngo. Turns out, answering questions is way harder than asking them! We dive into tech, leadership, and the chaos of switching roles. Check it out and see if I survived the experience! ","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fhost-guest.jpg","\u003Cdiv style=\"width: 100%; min-width: 400px; max-width: 1200px; margin-top: 30px; position: relative; padding-top: 56.25%;\">\n    \u003Ciframe \n        style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" \n        src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FdVozw_yhEnE?si=YrrDv6M_HzYJix6n\" \n        title=\"YouTube video player\" \n        frameborder=\"0\" \n        allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" \n        referrerpolicy=\"strict-origin-when-cross-origin\" \n        allowfullscreen>\n    \u003C\u002Fiframe>\n\u003C\u002Fdiv>","YouTube","Michal as a guest in CTO Show","The CTO Show: The Episode Where Michal Becomes the Gues",[63,24,20,64],"CTO work","Vietnam","Wed Jan 29 2025 10:25:49 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 16:50:09 GMT+0800 (Singapore Standard Time)","43f571a2-8109-4a72-bcbd-de2b0dd400a1",[],{"relatedTools":70,"_id":71,"id":72,"title":73,"alt":74,"category":75,"categorySlug":76,"date":77,"author":14,"readTime":78,"content":79,"image":80,"more":18,"extendedContent":81,"asHTML":18,"photoCredit":82,"headTitle":83,"metaDesc":84,"tags":85,"createdAt":87,"updatedAt":88,"uuid":89},[],"67300a200770b76729c7ad68","clean-database-architecture-it-will-outlast-your-apps","Clean database architecture. It will outlast your apps!","Roots over block representing data","Thought","thought","2024-11-10T01:01:00.000Z",5,"Have you ever wondered why some applications stand the test of time while others seem to vanish into obscurity? The secret often lies within the database architecture that supports those applications. A clean database structure is not just a technical necessity but a foundation that can sustain the evolution of your app over the years. Let's dive into the essential aspects of clean database architecture and understand how it can outlast your apps!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Froots_over_data.jpg","\u003Ch2 id=\"2\">Understanding the Fundamentals of Clean Database Architecture\u003C\u002Fh2>\u003Cp>To build a sturdy app, you need to have a solid understanding of what clean database architecture entails. At its core, clean architecture allows for efficient data organization and retrieval, which is crucial as your application scales. This architecture is built on several principles that prioritize maintainability, scalability, and performance.\u003C\u002Fp>\u003Cp>One of the primary components is the separation of concerns. This entails dividing your database into different areas, each responsible for specific functionalities. For example, user data, transactional data, and logs should all reside in separate tables. This improves clarity and allows developers to make changes to one area without inadvertently affecting others.\u003C\u002Fp>\u003Cp>Another essential aspect is data integrity. When your database architecture is clean, it facilitates validation at various data entry points, ensuring that only relevant and accurate information is stored. This reduces the overhead of data cleanup, letting you focus on developing your application’s features instead of fixing data errors.\u003C\u002Fp>\u003Cp>Additionally, employing normalization techniques can significantly enhance the efficiency of your database. Normalization involves organizing the data in such a way that reduces redundancy and dependency. By breaking down tables into smaller, related tables, you can streamline data management and improve query performance. For instance, instead of having a single table with repeated information across multiple entries, you can create distinct tables for users, products, and orders, linking them through foreign keys. This not only optimizes storage but also simplifies updates and deletions, as changes need to be made in only one place.\u003C\u002Fp>\u003Cp>Moreover, indexing plays a pivotal role in clean database architecture. By creating indexes on frequently queried columns, you can drastically improve the speed of data retrieval. However, it's essential to strike a balance, as excessive indexing can lead to performance degradation during write operations. Understanding your application's access patterns can guide you in making informed decisions about where to apply indexes, ensuring that your database remains responsive even as the volume of data grows.\u003C\u002Fp>\u003Ch2 id=\"3\">The Role of Normalization in Database Design\u003C\u002Fh2>\u003Cp>Normalization is a design principle that helps in organizing database structures by reducing redundancy. This means that each piece of data is stored only once, which not only saves storage space but also simplifies data maintenance. By ensuring that data is stored in a structured manner, normalization helps in maintaining data integrity and accuracy, which are crucial for any application that relies on consistent information.\u003C\u002Fp>\u003Cp>The normalization process involves dividing large tables into smaller, related tables and defining relationships between them. Normally, databases are normalized into several forms, with the Third Normal Form (3NF) being a common goal for many applications. Achieving 3NF may reduce the risk of inconsistent data, and it makes your queries more efficient by minimizing the amount of data processed. Each normalization form has specific rules and guidelines that help in structuring data effectively, and understanding these forms can empower database designers to make informed decisions about their data architecture.\u003C\u002Fp>\u003Cp>However, while normalization has its advantages, it’s essential to know when to stop normalizing. Overly complex database designs can lead to poor performance. Striking a balance between normalization and practicality is key. Remember, while normalization helps in eliminating redundancy, denormalization can improve performance for read-heavy applications by reducing the number of joins required in queries. In scenarios where data retrieval speed is critical, such as in reporting systems or data warehousing, denormalization can be a strategic choice, allowing for faster access to aggregated data without the overhead of multiple table joins.\u003C\u002Fp>\u003Cp>Moreover, the choice of normalization level can also depend on the specific use case of the database. For instance, transactional systems that require high levels of data integrity and consistency may benefit from a more normalized structure, while analytical systems that prioritize read performance might lean towards a denormalized approach. Understanding the unique requirements of your application can guide you in making the right decisions about normalization, ensuring that your database design aligns with both performance and data integrity needs.\u003C\u002Fp>\u003Ch2 id=\"4\">Common Pitfalls in Database Design and How to Avoid Them\u003C\u002Fh2>\u003Cp>Even seasoned developers can stumble upon database design pitfalls. Being aware of these common mistakes can save you significant time and resources in the long run.\u003C\u002Fp>\u003Cul> \u003Cli>\u003Cstrong>Neglecting to Plan:\u003C\u002Fstrong> Skipping the planning phase is like building a house without a blueprint. Take time to outline your data model and understand how it will scale.\u003C\u002Fli> \u003Cli>\u003Cstrong>Ignoring Future Changes:\u003C\u002Fstrong> The needs of your application may evolve, so flexibility is key. A rigid structure may cause headaches down the road when trying to modify your database.\u003C\u002Fli> \u003Cli>\u003Cstrong>Over-Indexing:\u003C\u002Fstrong> While indexing can drastically improve retrieval times, too many indexes can slow down write operations. Know when to index, and be strategic about it.\u003C\u002Fli>\u003Cli>\u003Cstrong>Over-reliance on Automated Database Design Tools:\u003C\u002Fstrong> Some tools or platforms promise to handle database design “magically” in the background, focusing on rapid product delivery rather than a well-architected, future-proof solution. While these tools can speed up initial development, they may lead to design issues that compromise scalability, performance, and maintainability in the long term. Relying on these tools without understanding or overseeing the underlying schema can create technical debt that’s challenging to address later.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Another common pitfall is \u003Cstrong>underestimating normalization:\u003C\u002Fstrong> While it’s tempting to keep everything in one table for simplicity, this can lead to data redundancy and inconsistency. Proper normalization helps to eliminate duplicate data and ensures that your database remains efficient and easy to maintain. However, it's essential to strike a balance; overly normalized databases can complicate queries and degrade performance. Understanding the right level of normalization for your specific application is crucial.\u003C\u002Fp>\u003Cp>Additionally, \u003Cstrong>failing to implement proper security measures\u003C\u002Fstrong> can expose your database to vulnerabilities. As data breaches become increasingly common, ensuring that your database is secure should be a top priority. This includes implementing user authentication, using encryption for sensitive data, and regularly updating your software to patch any security flaws. By prioritizing security during the design phase, you can protect your data and maintain user trust.\u003C\u002Fp>\u003Cp>By keeping these pitfalls in mind, you can create a more robust and adaptable database that supports your app as it grows.\u003C\u002Fp>\u003Ch2 id=\"5\">Strategies for Maintaining Data Integrity Over Time\u003C\u002Fh2>\u003Cp>Maintaining data integrity is essential for ensuring your application’s consistent performance. Here are a few strategies that can help ensure your database remains reliable:\u003C\u002Fp>\u003Col> \u003Cli>\u003Cstrong>Implement Strong Validation Rules:\u003C\u002Fstrong> This includes constraints, triggers, and stored procedures. By validating data at various levels before it enters the database, you can significantly reduce the chances of storing bad data.\u003C\u002Fli> \u003Cli>\u003Cstrong>Regularly Back Up Your Data:\u003C\u002Fstrong> Regular backups protect your data against loss and corruption. Ensure these backups are stored securely and can be restored quickly to minimize downtime.\u003C\u002Fli> \u003Cli>\u003Cstrong>Conduct Regular Audits:\u003C\u002Fstrong> Regular database audits can help identify anomalies or areas that need optimization. This proactive approach can save you from larger issues down the line.\u003C\u002Fli>\u003C\u002Fol>\u003Cp>In addition to these strategies, it is crucial to establish a robust access control system. By implementing role-based access controls, you can ensure that only authorized personnel have the ability to modify or delete data. This not only protects against accidental data loss but also mitigates the risk of malicious attacks. Furthermore, employing encryption for sensitive data both at rest and in transit can add an additional layer of security, making it much harder for unauthorized users to access or tamper with your information.\u003C\u002Fp>\u003Cp>Another key aspect of maintaining data integrity is fostering a culture of data stewardship within your organization. Educating team members about the importance of data accuracy and integrity can lead to more conscientious data entry practices. Regular training sessions can help reinforce the significance of following established protocols and utilizing the validation tools at their disposal. By creating a shared sense of responsibility for data quality, you can enhance the overall reliability of your application and ensure that all team members are aligned in their efforts to maintain data integrity.\u003C\u002Fp>\u003Ch2 id=\"6\">Key Principles for Designing a Resilient Database\u003C\u002Fh2>\u003Cp>Designing a resilient database means building one that can withstand changes and disruptions while still delivering performance. Here are some foundational principles to incorporate in your design:\u003C\u002Fp>\u003Cul> \u003Cli>\u003Cstrong>Keep It Simple:\u003C\u002Fstrong> Complex designs can become unwieldy and difficult to manage. Aim for simplicity for clarity and maintainability.\u003C\u002Fli> \u003Cli>\u003Cstrong>Emphasize Performance:\u003C\u002Fstrong> Understand the read-write patterns of your application and optimize your database accordingly. Whether it’s through indexing, caching, or other techniques, make sure you prioritize how data is accessed.\u003C\u002Fli> \u003Cli>\u003Cstrong>Plan for Scale:\u003C\u002Fstrong> Predict how your application might grow. Choose database technologies that suit not just your current requirements but also your future needs.\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Resilient databases lay the groundwork for applications that are not only powerful but also sustainable and adaptable to future changes. A well-designed database can significantly reduce downtime and improve user experience, as it allows for seamless updates and maintenance without affecting the overall functionality of the application. This is particularly important in today’s fast-paced digital environment, where user expectations are high, and even minor disruptions can lead to dissatisfaction.\u003C\u002Fp>\u003Cp>Moreover, incorporating redundancy into your database design can further enhance resilience. By implementing strategies such as data replication and backup solutions, you can ensure that your data remains safe and accessible even in the event of hardware failures or other unforeseen incidents. This not only protects your data but also instills confidence in your users, knowing that their information is secure and that your application is built to handle potential challenges.\u003C\u002Fp>\u003Chr>\u003Cp>In conclusion, clean database architecture is crucial for any application you build. With a solid understanding of these foundational principles, the role of normalization, awareness of common pitfalls, strategies for data integrity, and a focus on resilience, you’ll ensure that your database will outlast your apps. Remember that data may be consumed in parallel by other tools, such as Business Analytics (BA) systems. Investing the time and resources into a clean database upfront will save you countless headaches in the future!\u003C\u002Fp>\u003C\u002Fp>","Midjourney","Why clean database architecture is so important.","Discover the key to building long-lasting applications - clean database architecture. Learn how a solid foundation can ensure your app's success over time.",[63,45,86],"Database","Sun Nov 10 2024 09:19:28 GMT+0800 (Singapore Standard Time)","Sun Nov 10 2024 09:35:07 GMT+0800 (Singapore Standard Time)","ac5d56bf-b43e-41e8-a546-62c566845fe2",{"_id":91,"tags":92,"id":93,"title":94,"alt":95,"category":11,"categorySlug":12,"date":96,"author":14,"readTime":55,"content":97,"image":98,"more":18,"extendedContent":99,"asHTML":18,"headTitle":100,"metaDesc":101,"photoCredit":102,"createdAt":103,"updatedAt":104,"uuid":105,"relatedTools":106},"66d7acbf4dd49115f4a20baa",[45,20,64],"cto-show-podcast-a-growing-success-story","CTO Show Podcast: A Growing Success Story","CTO Show main banner","2024-09-04T00:35:00.000Z","In just under a month since our first release, the CTO Show has gained over 2,000 subscribers, and each episode is attracting more than 1,000 views. Beyond the numbers, the feedback has been overwhelmingly positive, with messages of support coming not only from friends but also from people I’ve never met before. Thank you to everyone who has tuned in and shared their thoughts. The journey has just begun, and I’m excited for what’s next!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fctoshow_banner.jpg","\u003Cdiv style=\"width: 100%; min-width: 400px; max-width: 1200px; margin-top:30px\">\n\u003Cdiv style=\"position: relative; width: 100%; overflow: hidden; padding-top: 56.25%;\">\n\u003Cp>\u003Ciframe style=\"position: absolute; top: 0; left: 0; right: 0; width: 100%; height: 100%; border: none;\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FRJwcgcus8Tw?si=u5daQEZH4tYb4sKn\" title=\"YouTube video player\" allowfullscreen=\"allowfullscreen\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fp>\n\u003C\u002Fdiv>\u003C\u002Fdiv>\n\n","CTO Show by TechVibe after one month from first release","Join the CTO Show's growing community with over 2,000 subscribers and 1,000 views per episode. Positive feedback is pouring in - thank you for your support!","CTO Show","Wed Sep 04 2024 08:41:35 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 16:49:50 GMT+0800 (Singapore Standard Time)","10824a84-7da2-4041-a047-54478e6a20a7",[],{"_id":108,"tags":109,"id":111,"title":112,"alt":113,"category":34,"categorySlug":35,"date":114,"author":14,"readTime":37,"content":115,"image":116,"more":18,"extendedContent":117,"asHTML":18,"uuid":118,"headTitle":119,"metaDesc":120,"photoCredit":121,"createdAt":122,"updatedAt":123,"relatedTools":124},"66989efd340ce29256a6fa65",[110,20,64],"New Projects","cto-show-","The CTO Show by TechVibe ","Mai Ngo and Michal","2024-07-18T04:45:00.000Z","Hey everyone! It’s been 75 days since my last post, and it’s not because nothing was happening—quite the opposite! I’ve been incredibly busy with exciting developments and projects.\n\nThe most public activity is my new role as a podcast host for the CTO Show by TechVibe. I’m thrilled to share that our first episode will be online soon! Stay tuned for more updates and behind-the-scenes insights.\n\nThank you for your patience and continued support!","https:\u002F\u002Fmsatbsx.sgp1.digitaloceanspaces.com\u002Fnews\u002Fctoshow.jpg","\u003Cdiv style=\"width: 100%; min-width: 400px; max-width: 1200px; margin-top:30px\">\n\u003Cdiv style=\"position: relative; width: 100%; overflow: hidden; padding-top: 56.25%;\">\n\u003Cp>\u003Ciframe style=\"position: absolute; top: 0; left: 0; right: 0; width: 100%; height: 100%; border: none;\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002F5Kt2cV_7V2M?si=5hESc6yb9dzegW6b\" title=\"YouTube video player\" allowfullscreen=\"allowfullscreen\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fp>\n\u003C\u002Fdiv>\u003C\u002Fdiv>","2bdde5f6-8a07-42a1-a987-2756885d143f","My role as a host of the CTO Show by TechVibe ","Stay tuned for exciting updates and behind-the-scenes insights on my new role as a podcast host for the CTO Show by TechVibe. ","CTO SHOW team","Thu Jul 18 2024 12:50:05 GMT+0800 (Singapore Standard Time)","Fri Sep 04 2026 16:49:35 GMT+0800 (Singapore Standard Time)",[],{"totalnoOfPosts":126,"page":127,"perPage":128,"noOfPostOnCurrentPage":128},82,4,6,{"enabled":130},true]