# César Soto Valero > César Soto Valero is a computer scientist, software engineer, and content creator. He completed a PhD in Computer Science at KTH Royal Institute of Technology (Sweden, 2023) and works as a Senior Data Scientist. He helps engineers and organizations learn, build, and grow faster with AI. Topics: software engineering, software supply chain and debloating, Java, AI, career growth. Site: https://www.cesarsotovalero.net Author: César Soto Valero (https://www.cesarsotovalero.net/about-me) Full content for LLMs: https://www.cesarsotovalero.net/llms-full.txt Every blog post is also available as Markdown by replacing `.html` with `.md` in its URL. ## About - [About me](https://www.cesarsotovalero.net/about-me): Biography, career, research and interests - [Speaker bio](https://www.cesarsotovalero.net/bio): Short bio for conferences - [Awards](https://www.cesarsotovalero.net/awards): Awards and certificates ## Research and talks - [Publications](https://www.cesarsotovalero.net/publications): Academic papers - [Talks](https://www.cesarsotovalero.net/talks): Talks and presentations - [Podcasts](https://www.cesarsotovalero.net/podcasts): Podcast appearances - [Software](https://www.cesarsotovalero.net/software): Software projects and tools - [Academic service](https://www.cesarsotovalero.net/service): Reviewing and program-committee service ## Blog posts - [SDD and the Future of Software Development](https://www.cesarsotovalero.net/blog/sdd-and-the-future-of-software-development.md): AI can now generate code faster than you can humanly read it. But that is not the problem. The problem is ambiguity moving at machine speed. Spec-Driven Development (SDD) makes the specification (a.k.a, the "spec") ... - [Projections for Data-Related Roles in The AI Era](https://www.cesarsotovalero.net/blog/projections-for-data-related-roles-in-the-ai-era.md): Models are getting easier to train and easier to copy. The scarce skill is owning the whole system: data, deployment, monitoring, governance, and the business outcomes that fall out of it. - [Why Creativity Just Became the Most Practical Skill](https://www.cesarsotovalero.net/blog/creativity-just-became-the-most-practical-skill.md): In an AI-saturated world where execution is cheap, the scarce resource is original framing. This blog post explores how to treat creativity as a practical, trainable skill and how to build it with simple daily habits. - [When Answers Get Cheaper, Questions Are Gold](https://www.cesarsotovalero.net/blog/when-answers-get-cheaper-questions-are-gold.md): Knowledge is abundant now. The ability to ask insightful questions is becoming increasingly valuable. I believe that mastering the art of questioning can unlock new opportunities and get the most of the current AI lan... - [Consistently Measure Your Consistency to Beat Talent](https://www.cesarsotovalero.net/blog/consistently-measure-consistency-to-beat-talent.md): I've never considered myself particularly talented at anything. Ever.But I have consistently outworked my peers, and I believe that anyone can outperform their toughest competitors by just being consistent.So, consist... - [I'm Switching to Python and Actually Liking It](https://www.cesarsotovalero.net/blog/i-am-switching-to-python-and-actually-liking-it.md): I've started writing more Python code lately (because of... AI, you know). In this post, I share the tools, libraries, configs, and other integrations I use for building production-grade Python applications following ... - [Evaluation Metrics for Real-Time Financial Fraud Detection ML Models](https://www.cesarsotovalero.net/blog/evaluation-metrics-for-real-time-financial-fraud-detection-ml-models.md): After training a real-time financial fraud detection model, the next step is to evaluate its performance. This post provides an overview of the most common evaluation metrics and considerations for fraud detection mod... - [From Classical ML to DNNs and GNNs for Real-Time Financial Fraud Detection](https://www.cesarsotovalero.net/blog/from-classical-ml-to-dnns-and-gnns-for-real-time-financial-fraud-detection.md): Financial transaction fraud is a pervasive problem costing institutions and customers billions annually. This survey reviews the current state-of-the-art in real-time transaction fraud detection, spanning both academi... - [Building GenAI Applications Today](https://www.cesarsotovalero.net/blog/building-genai-applications-today.md): Generative AI has taken the world by storm, offering endless opportunities for innovation. But as with any new technology, there are plenty of pitfalls to avoid. In this post, I dive into the current state of AI start... - [Why GenAI Will NOT Replace Software Engineers](https://www.cesarsotovalero.net/blog/why-genai-will-not-replace-software-engineers-just-yet.md): GenAI systems are becoming more and more capable of performing complex cognitive tasks that were once thought to be uniquely human. In particular, LLMs are proven to be very good at writing code. With all the buzz aro... - [The Not-So-Strange Case of Cargo Cult in Computer Science Research](https://www.cesarsotovalero.net/blog/the-not-so-strange-case-of-cargo-cult-in-computer-science-research.md): Arguably, computers and faster communication systems have changed the world more than any other technology. Yet there have been many scientific failures along the way, some prominent, many minor, and a widening gap be... - [Some Things to Remember Before Acting Pretentiously](https://www.cesarsotovalero.net/blog/some-things-to-remember-before-acting-pretentiously.md): A few days ago, I had a conversation about my ambitions for the future. At one point, I mentioned that I would like to achieve something remarkable and gain public recognition for it. In retrospect, my answer was quit... - [The Last Paper's Myth](https://www.cesarsotovalero.net/blog/the-last-paper-myth.md): The "last paper myth" emerges once academic supervisors realize that a student is about to earn their PhD and leave. It's one last stronghold for supervisors to capitalize on the time and effort they have invested in ... - [On the Rise, Decline, and Persistence of Web Technologies](https://www.cesarsotovalero.net/blog/the-evolution-of-the-web-from-html-to-webassembly.md): The web is (arguably) the only tech platform that has been continuously transformed and evolved at a global scale over the last 30 years. How was this possible? What can we learn from the past technical mistakes and s... - [The Most Relevant Technical Skill in My Career](https://www.cesarsotovalero.net/blog/the-most-relevant-technical-skill-in-my-career.md): Have you ever wonder which is most relevant technical skill in your career? It's not necessarily a programming language or the latest framework. For me, it is Exploratory Data Analysis (EDA). Why? Because being able t... - [AI Doesn't Make Me the Same Coffee](https://www.cesarsotovalero.net/blog/ai-doesnt-make-me-the-same-coffee.md): Advancements in AI are set to transform the way we interact with the world, offering increased free time and enhanced capabilities. However, if not carefully managed, AI poses risks such as reducing human experiences ... - [Building and Leveling Up a Computer Scientist Résumé](https://www.cesarsotovalero.net/blog/building-and-leveling-up-a-computer-scientist-resume.md): Résumés have become fundamental for personal branding. They not only list qualifications but also reflect an individual's professional identity, career goals, and unique value proposition. In today's competitive job m... - [Revisiting Ken Thompson’s Reflection on Trusting Trust](https://www.cesarsotovalero.net/blog/revisiting-ken-thompson-reflection-on-trusting-trust.md): Creating software entirely from scratch is impractical today. Every component, library, and tool we use in software development relies on open source libraries and compilers. In his talk "Reflections on Trusting Trust... - [How I Peer Review Research Papers](https://www.cesarsotovalero.net/blog/how-i-peer-review-research-papers.md): In this blog post, I share my experiences and personal approach when peer-reviewing research papers in the field of software engineering. My focus is on delivering good peer reviews, fast and effectively. I give my te... - [My Ultimate Terminal Customizations for Windows](https://www.cesarsotovalero.net/blog/my-ultimate-terminal-customizations-for-windows.md): This post describes the tools I use to resemble my macOS terminal customizations on Windows. This includes the fonts that I choose for the Windows Terminal app, an enhanced PowerShell, and the installation of third-p... - [Surviving the AI Revolution as a Software Engineer](https://www.cesarsotovalero.net/blog/surviving-the-ai-revolution-as-a-software-engineer.md): The next wave of extremely powerful and specialized AI models is coming, and it will likely revolutionize software engineering as we know it. As developers, we need to get the skills to surf the wave and keep our jobs... - [A Prime on Public Key Infrastructure](https://www.cesarsotovalero.net/blog/a-prime-on-public-key-infrastructure.md): This article delves into symmetric and asymmetric encryption, as the building blocks of Public Key Infrastructure (PKI). It describes how PKI allows safeguarding the authenticity and security of digital communications... - [My PhD as a Comic](https://www.cesarsotovalero.net/blog/my-phd-as-a-comic.md): At the end of my PhD journey, I was lucky enough to be surrounded by professional software artists. Together, we created a comic to make the ideas of my PhD thesis more accessible and engaging to the non-tech audience... - [How to Give a Great Technical Presentation](https://www.cesarsotovalero.net/blog/how-to-give-a-great-technical-presentation.md): I believe that the secret to delivering a great technical presentation is feeling in control. This enables the confidence to communicate effectively and it also helps to be perceived as an expert. In this article, I s... - [Prompting is All We Need](https://www.cesarsotovalero.net/blog/prompting-is-all-we-need.md): Today's AI-powered systems can generate code cheaper and faster than developers. The new era of automated text generation has come to us developers. And with it, there comes a new batch of fresh challenges. Fortunatel... - [Let's Face It: Paper Figures Are Always Subject to Change](https://www.cesarsotovalero.net/blog/paper-figures-are-always-subject-to-change.md): As a researcher, I have learned that the process of creating figures is a journey of discovery, a process of refinement, and a crucible of critique. This article provides insights into the transformations that a parti... - [Securing a Permanent Job in Sweden Before Completing My PhD](https://www.cesarsotovalero.net/blog/securing-a-permanent-job-in-sweden-before-completing-my-phd.md): In this article, I share insights about my transitional journey when moving from academia to industry, having secured a position at a big Swedish company prior to completing my PhD in Computer Science. My goal is to p... - [Data Serialization/Deserialization in Java With Apache Avro](https://www.cesarsotovalero.net/blog/data-serialization-deserialization-in-java-with-apache-avro.md): Apache Avro stands as the go-to data serialization framework for efficient binary data streaming. In this article, I cover the main features of Avro and why/when/how to use it for serialize and deserialize data files ... - [How to Write a Good Cover Letter for a Research Paper](https://www.cesarsotovalero.net/blog/how-to-write-a-good-cover-letter-for-a-research-paper.md): It's a common practice in academic journals to ask authors to write a short cover letter to the editor. In this post, I share my experience writing cover letters for academic journals, along with useful tricks and tip... - [The True Value of Attending Academic Conferences](https://www.cesarsotovalero.net/blog/the-true-value-of-attending-academic-conferences.md): I recently attended the 29th edition of ESEC/FSE 2022 in Singapore. This was my first time participating in a big academic conference (in real-life). In this blog post, I share my experiences, with a focus on what I t... - [The Execution Lifecycle of a Java Application](https://www.cesarsotovalero.net/blog/how-the-jvm-executes-java-code.md): This blog post describes in details what happens when executing a Java application. After reading this post, you will understand the execution lifecycle of a Java application and the activities performed by the JVM du... - [On the Parkinson's Law of Triviality for Computer Science Researchers](https://www.cesarsotovalero.net/blog/on-the-parkinson-law-of-triviality-for-computer-science-researchers.md): The Parkinson's Law explains how we spend disproportionate amounts of time discussing trivialities instead of focusing on solving core problems. In the research context, this behavior is considered unproductive becaus... - [Why Debloating Third-Party Software?](https://www.cesarsotovalero.net/blog/why-debloating-third-party-software.md): The Log4j vulnerability is an example of the dangers of massively reusing third-party libraries. This article discusses how software debloating can make a difference by reducing the attack surface of applications, rem... - [My Ultimate Terminal Customizations for macOS](https://www.cesarsotovalero.net/blog/my-ultimate-terminal-customizations-for-macos.md): There is a common belief that top-class software developers can do their job without ever abandoning the terminal. This blog post is a how-to guide for you (and my future self) to configure the terminal in a way so th... - [No One Cares About Your Research!](https://www.cesarsotovalero.net/blog/no-one-cares-about-your-research.md): Doing a PhD is sometimes a very stressful journey. I believe this stress is unnecessary, as it primarily results from students taking science too seriously. They genuinely believe that others are continuously evaluati... - [The Dynamic Features of Java](https://www.cesarsotovalero.net/blog/the-dynamic-features-of-java.md): The existence of dynamic features built in the language allows Java developers to transform their program executions at runtime dynamically. However, these features in most Java programs are a fundamental problem for ... - [Inversion of Control and Dependency Injection in Java](https://www.cesarsotovalero.net/blog/inversion-of-control-and-dependency-injection-in-java.md): This blog post explains Inversion of Control and Dependency Injection in Java. These concepts are the backbone of modern enterprise Java frameworks. - [AOT vs. JIT Compilation in Java](https://www.cesarsotovalero.net/blog/aot-vs-jit-compilation-in-java.md): AOT compilation, supported by the GraalVM compiler, seems to be the future for Java and the programming languages that compile to JVM bytecode. But what is the difference between compiling source code using a JIT comp... - [How to Write a Good Revision Letter For an Academic Paper](https://www.cesarsotovalero.net/blog/how-to-write-a-good-revision-letter.md): Dealing with a major revision is a challenging process in the life of doctoral students. In this post, I share my personal system and some useful resources that may help you to navigate the academic revision process w... - [Staying in Academia: How PhD Profiles are Evaluated?](https://www.cesarsotovalero.net/blog/how-phd-profiles-are-evaluated.md): For those who decided to stay in academia, getting a position as a tenured professor is not easy, to say the least. There are several evaluation rounds to pass before even considering the posibility of reaching this p... - [Bus Factor: A Human-Centered Risk Metric in the Software Supply Chain](https://www.cesarsotovalero.net/blog/bus-factor-a-human-centered-risk-metric-in-the-software-supply-chain.md): What would happen to a software project if some of its developers were suddenly hit by a bus? The “bus factor” measures the amount of spread of knowledge within a dev team so that the project can survive the most dras... - [How to Write a Good Paper Rebuttal](https://www.cesarsotovalero.net/blog/how-to-write-a-good-paper-rebuttal.md): My conference paper was rejected. Is it worth writing a rebuttal? This post answers this question and presents practical guidelines to write an excellent rebuttal. - [How to Track the Progress of a Research Project](https://www.cesarsotovalero.net/blog/how-do-i-track-the-progress-of-my-research-projects.md): Academic research is a demanding activity in constant change and evolution. Consequently, tracking the progress of a research project is challenging. This post describes my methodology to address this particular problem. - [Encoding, Encryption, Hashing, and Obfuscation in Java](https://www.cesarsotovalero.net/blog/encoding-encryption-hashing-and-obfuscation-in-java.md): The concepts of encoding, encryption, hashing, and obfuscation are often mistakenly confused or taken as similar (which is even worse). Let's clarify this matter and see some Java code examples of practical applications. - [SIGBOVIK: The Ig Nobel for Academics and Computer Science Researchers](https://www.cesarsotovalero.net/blog/sigbovik-the-ig-nobel-for-academics-and-computer-science-researchers.md): The SIGBOVIK humor-filled conference is the most disruptive Computer Science academic conference I've ever seen. This exceptional venue allows demystifying complicated concepts through sarcasm and mockery while gettin... - [How to Set Up A Blockchain Network With Hyperledger Besu](https://www.cesarsotovalero.net/blog/how-to-set-up-a-blockchain-network-with-hyperledger-besu.md): If you are a Java developer interested in cryptocurrencies and blockchain-related technologies, you should probably have heard about Hyperledger Besu, the official Java client of the Ethereum blockchain. In this post,... - [How I Overcome Writer's Block When Preparing a Research Paper](https://www.cesarsotovalero.net/blog/how-i-overcome-writer-block-when-preparing-a-research-paper.md): Writing a research paper can be a tremendous challenge, even for experienced researchers. I've faced the so-called writer's block many times, especially when starting the writing process. Fortunately, with time I've d... - [Seven Reasons to Go For a PhD In Computer Science](https://www.cesarsotovalero.net/blog/seven-reasons-to-go-for-a-phd-in-computer-science.md): Starting a PhD in Computer Science is a serious decision that literally changes your life. There are many motivations to choose this career path. This post outlines seven reasons for pursuing a PhD in Computer Science... - [The Software Supply Chain](https://www.cesarsotovalero.net/blog/the-software-supply-chain.md): The software supply chain encompasses all technologies and processes involved in moving code from development to production. It heavily relies on third-party components, which introduces significant security and maint... - [Design For Microservices!](https://www.cesarsotovalero.net/blog/design-for-microservices.md): The microservices architecture has gained significant momentum in the last years. Modularity, scalability, and elasticity are some of its essential characteristics. If you have an open-source project, you should consi... - [Configuring Remote Connections in Unix-Based Systems Using SSH](https://www.cesarsotovalero.net/blog/configuring-remote-connections-in-unix-based-systems-using-ssh.md): This practical guide will show you how to configure a remote connection in Unix-based systems. You will learn how to create RSA keys and use SSH to configure the connection from the terminal. - [What Does It Take to Become a Software Architect?](https://www.cesarsotovalero.net/blog/what-does-it-take-to-become-a-software-architect.md): The software architect is the person who has the authority to make the technical decisions regarding the architecture of a software project and stay responsible for them. This position requires a high level of authori... - [Hermit Programmers are Dead](https://www.cesarsotovalero.net/blog/hermit-programmers-are-dead.md): The era of the lone, isolated programmer is coming to an end. With the rise of cloud computing, AI, and automation, programmers must evolve into versatile software engineers, embracing collaboration, communication, an... - [Replace the Disqus Commenting System on Your Blog](https://www.cesarsotovalero.net/blog/replace-disqus-with-a-better-alternative.md): Disqus has started forcing unwanted ads on free users, making it less appealing for bloggers and small businesses. This post explores open-source alternatives like Giscus, a GitHub-based commenting system that offers ... - [Book Review: The PhD Grind](https://www.cesarsotovalero.net/blog/book-review-the-phd-grind.md): Philip Guo's "The PhD Grind" offers a candid, unfiltered account of his PhD journey in Computer Science. The book provides invaluable insights into the challenges, failures, and personal growth that come with pursuin... - [The Fork/Join Java framework](https://www.cesarsotovalero.net/blog/the-fork-join-java-framework.md): The Fork/Join framework in Java simplifies parallel programming by allowing developers to leverage multiple processor cores without manually managing threads. This post introduces the key concepts of this framework, i... - [Use Custom LaTeX Macros to Boost Your Writing Productivity](https://www.cesarsotovalero.net/blog/use-custom-latex-macros-to-boost-your-writing-productivity.md): In this blog post, I describe how I use LaTeX macros to boost my writing productivity by automating repetitive tasks such as formatting and number computations. I explain how to create custom commands for common tasks... - [Enhance Your Readme With Asciinema](https://www.cesarsotovalero.net/blog/enhance-your-readme-with-asciinema.md): This blog post explains how to use Asciinema to create and share beautiful terminal recordings, particularly for enhancing README files on GitHub. It walks through the steps of recording a terminal session with Asciin... - [Clean Commit Messages](https://www.cesarsotovalero.net/blog/clean-commit-messages.md): Writing clean commit messages is a craft that benefits the project in the long run. It enhances collaboration, eases maintenance, and keeps the project history informative and navigable. At the individual level, a com... - [Dynamic Programming by Example](https://www.cesarsotovalero.net/blog/dynamic-programming-classics.md): Dynamic programming (DP) is one of the most basic and, at the same time, challenging programming paradigms. This post covers its core concepts through two key strategies: memoization and tabulation. I use a series of... - [Shortening the Distance Between Academia and Industry](https://www.cesarsotovalero.net/blog/shortening-the-distance-between-academia-and-industry.md): Presenting research work to industrial engineers is essential for the sustainability of the whole research business. In this post, I emphasize the need for researchers to engage more actively with the local industry b... - [Empirical Software Engineering Research Is Harder Than You Think](https://www.cesarsotovalero.net/blog/empirical-software-engineering-research-is-harder-than-you-think.md): Empirical software engineering (SE) research seemed straightforward to me a few years ago, but I discovered that it presents unique challenges that make it far more difficult than expected. In this post, I explain why... - [How to Deploy a Simple Spring Boot Application in GCP](https://www.cesarsotovalero.net/blog/how-to-deploy-a-simple-spring-boot-application-in-gcp.md): Deploying a Spring Boot application to Google Cloud Platform (GCP) offers a streamlined way to bring your Java app to life on the web. This post is a step-by-step guide to deploying your application using both Google ... - [The Producer-Consumer Pattern in Java Made Easy](https://www.cesarsotovalero.net/blog/the-producer-consumer-pattern-in-java-made-easy.md): The Producer-Consumer pattern is a powerful design strategy used to decouple the production of data from its processing, enabling parallelism and efficient data handling. This post is about how to implement this patte... - [Diversity-Driven Software Debloat](https://www.cesarsotovalero.net/blog/diversity-driven-software-debloat.md): Debloating Java artifacts can be challenging due to the limitations of code coverage tools in identifying unused code. In this post, I introduce a diversity-driven approach to software debloating that combines multipl... - [Unix Cmd Hacks](https://www.cesarsotovalero.net/blog/unix-command-line-hacks.md): Mastering the Unix command line can drastically boost your productivity and efficiency in software development. In this post, I share a collection of personal notes from the edX course "Unix Tools: Data, Software, and... - [Recipes for Effective Academic Emailing](https://www.cesarsotovalero.net/blog/recipes-for-email-based-communication-success-in-academia.md): Effective academic emailing is a skill every researcher and supervisor needs to master. In this post, I introduce a template-based approach to streamline email communication, enhancing productivity while maintaining p... - [Deploying to Maven Central](https://www.cesarsotovalero.net/blog/deploying-to-maven-central.md): Deploying to Maven Central is essential for sharing Java libraries with the world. In this post, I provide a detailed, step-by-step guide on how to deploy a software artifact to Maven Central, covering everything from... - [The Cuban Revolution](https://www.cesarsotovalero.net/blog/the-cuban-revolution-explained.md): The Cuban Revolution was a tremendous moment in the nation's history. It ended Batista's dictatorship but resulted in decades of Communist regime under Fidel Castro dictatorship. In this post, I provide a personal per... - [The Zip Slip Vulnerability Exploitation](https://www.cesarsotovalero.net/blog/zip-slip-attacks.md): The Zip Slip vulnerability is a serious security flaw that exploits unprotected file extraction to perform directory traversal attacks. In this post, I explain how malicious archives exploit weak validation in extract... - [The Practice of Teaching](https://www.cesarsotovalero.net/blog/the-practice-of-teaching.md): Teaching is an essential skill, whether you're a developer, researcher, or manager. In this post, I share my experience teaching the Quicksort algorithm using a blackboard. I highlight both the challenges and valuable... - [Unnecessary Code](https://www.cesarsotovalero.net/blog/unneccessary-code.md): Unnecessary code bloats software, consuming resources without contributing to functionality. In this post, I explore the complexities of identifying and removing unnecessary code, clarifying key distinctions between d... - [A Starting Guide to Programming Contests](https://www.cesarsotovalero.net/blog/a-starting-guide-to-be-a-good-competitive-programmer.md): This post is about competitive programming, a practice that tests both mental agility and algorithmic skills. Drawing from my personal experience, I cover the essentials, from mastering key algorithms to building an e... - [Git Fundamentals](https://www.cesarsotovalero.net/blog/git-fundamentals.md): Git is the go-to version control system in software development, created by Linus Torvalds in 2005 for Linux kernel development. It's now an indispensable tool for tracking project history and managing versions. This ... - [How I Beat the IELTS Academic With Just a Month of Self-Training](https://www.cesarsotovalero.net/blog/how-i-beat-the-ielts-academic-with-just-a-month-of-self-training.md): I recently passed the IELTS academic test, and it was not easy. This blog post dives deep into the strategies that helped me to complete every section of the exam (listening, reading, writing, and speaking) and beatin... ## Social profiles - [GitHub](https://github.com/cesarsotovalero) - [LinkedIn](https://www.linkedin.com/in/cesarsotovalero) - [YouTube](https://www.youtube.com/channel/UCR4rI98w6-MqYoCS6jR9LGg) - [Stack Overflow](https://stackoverflow.com/users/10480869/cesarsotovalero?tab=profile) - [X / Twitter](https://twitter.com/cesarsotovalero) ## Optional - [RSS feed](https://www.cesarsotovalero.net/feed.xml) - [JSON feed](https://www.cesarsotovalero.net/feed.json) - [Sitemap](https://www.cesarsotovalero.net/sitemap.xml) - [Book a mentoring session](https://www.cesarsotovalero.net/book)