Continue reading 5 Modern Interview Questions for Software Engineers in the Age of AI" />

5 Modern Interview Questions for Software Engineers in the Age of AI

Assessing technical skills is never easy. A technical interview is useful not only because it tests coding ability, but also because it reveals how someone thinks, communicates, and approaches problems. That’s something you don’t always get from a written test or assignment.

Traditionally, interviews focused on algorithm puzzles, syntax, and textbook system design. But in today’s world, where tools like GitHub Copilot and ChatGPT can generate code instantly. What matters now is how engineers use these tools wisely, review what’s produced, and make sound decisions.

Here are some types of interview questions that matter more in the age of AI:

1. Code Review

Q: If an AI assistant generated this code snippet, how would you check whether it’s safe, correct, and efficient?

A strong answer should include testing edge cases, checking for security issues, and making sure the code is clear and maintainable, and not just trusting the AI output blindly.

2. Debugging AI-Generated Code

Q: Here’s a function that works but is failing in one edge case. Walk me through how you’d debug it and identify the issue.

This shows how the candidate reasons through a problem, not just whether they can fix it.

3. AI in System Design

Q: Design a job recommendation system that uses an AI model. How do you handle cases where the AI gives irrelevant or biased suggestions?

Good answers mention fallback logic, monitoring, feedback loops, and awareness of fairness and bias.

4. Prompt Engineering / Problem Framing

Q: Imagine you need an AI to generate boilerplate code for a REST API. What would your first prompt look like, and how would you refine it if the output wasn’t good enough?

This tests whether the candidate can clearly frame problems and work with AI as a collaborator.

5. Critical Thinking Beyond AI

Q: An AI tool suggests a clever one-line solution, but it’s hard to read. Do you keep it or rewrite it? Why?

A thoughtful answer should focus on maintainability and clarity, knowing that humans will maintain the code.

Reverse Engineering and Critical Thinking Matter

These questions go beyond memorizing algorithms and simple coding drills. They’re about how candidates think, adapt, and make decisions in a world where AI can generate code instantly. They highlight skills AI can’t replace: reviewing and reverse engineering AI outputs, debugging edge cases, framing problems clearly, handling bias responsibly, and prioritizing readability over shortcuts.

Boilerplate may be automated, but judgment, problem deconstruction, and collaboration remain uniquely human, and that’s what modern interviews should uncover.

What does “learning fundamentals” actually mean in practice?

“Learn the fundamentals so you’ll succeed in your endeavor” This is a common piece of advice people often give. You’ll frequently hear it when asking how to secure your career or how to learn a new technology, etc.

In today’s world, overflowing with knowledge and information. This advice is vague and it leaves us with unanswered questions. What exactly should I learn as fundamentals? How can I be sure I’m learning the right things?

So when someone says “learn the fundamentals”, the right response is:

“Which fundamentals, and how deep, based on what I’m building?”

Physics & Electronics (Atoms, Electrons, Gates, etc.)

Necessary if you’re doing hardware design, building compilers, or working with embedded systems. Not necessary for typical software developers.

Computer Architecture & Operating Systems

This area consists of concepts CPU cycles, memory hierarchy (RAM vs cache), processes, threads, virtual memory, file systems.

This is necessary if you’re into systems programming, performance tuning, or OS development.

Programming Language Theory & Compilers

This is about syntax, parsing, type systems, interpreters vs compilers.

This is necessary if you’re building tools (like linters, and transpilers), designing new languages, or deep into back-end design.

Data Structures & Algorithms

Concepts and implementation of arrays, linked lists, trees, hashmaps, sorting, recursion, time/space complexity.

This is essential for all developers. They underlie everything, from efficient code to debugging performance issues.

Networking Basics

This is about the theory of HTTP, TCP/IP, DNS, client-server model.

This is necessary if you build web apps, mobile apps, APIs, etc. But you don’t need to know TCP flags or OSI model layers deeply unless you’re in DevOps or network engineering.

Databases & Querying

This is about the design of databases, SQL, indexing, normalization, and transactions.

Learning databases is essential for most types of app developers. You can’t avoid data persistence.

Version Control, Build Tools, Deployment

This is about learning Git, CI/CD, testing, and packaging tools.

It is required for modern software development in teams and production settings.

Software Architecture

Software architecture becomes fundamental once you move from building apps that “just work” to systems that are “designed to last.” Architecture is essential at certain points in a developer’s or engineer’s journey. especially when working on large-scale, long-lived, or team-based systems.

Linear Algebra, Statistics, Programming (Python) and ML Theory

The fundamentals required for AI vary depending on the role you’re aiming for.

whether you’re a machine learning engineer, data scientist, AI researcher, ML ops engineer, or even a developer using AI APIs these are the core knowledge areas required for that.

Final thoughts:

My list is limited to few common IT and Computer related fields. There are many more.

When learning fundamentals, you don’t need to “boil the ocean” of computer science. As a practical use, go just deep enough to understand what your tools abstract away. And just go deeper when things break, or performance matters.

Finding Your True Worth – How to Figure Out the Right Salary

Figuring out the right salary for your role can be tricky. Everyone seems to have an opinion, but how do you know what’s real?

1. Opinions/Social Media or Forums (Least Reliable)

People love to talk about salaries on social media and in casual conversations. Remember that opinions are often Trojan horses for hidden agendas. People often have their own reasons for saying what they do. Sometimes, people are motivated to post false numbers to influence opinions and set certain expectations in the job market. Also, they might exaggerate to look good and impress others in public while downplaying their earnings when talking to coworkers. It’s hard to know what’s true.

2. Surveys (Better, But Not Perfect)

More structured than opinions. Helps to collect more information, including the demographics of the participants so you can analyse them better. But since the answers are self-reported, this information can contain biases and false information.

3. Research (The Best Method)

The most reliable understanding of salaries often comes through proper research. A mix of different sources including informal conversations, online surveys, and platforms like Glassdoor. In some cases, information gathered directly from companies adds valuable perspective. When data is collected from multiple angles and cross-checked, the result tends to be a more accurate and balanced view.

Not all sources hold equal weight. Information from trusted or direct sources usually carries more value than unverified hearsay. In practice, combining many sources while being mindful of their reliability often brings researchers closer to the actual market range.

Finally: Salary details are usually considered confidential in most workplaces, which makes finding accurate numbers challenging. No single source can provide the full picture. It seems that a layered, evidence-based approach is the closest thing to a scientific method when trying to understand compensation standards.

Discovering Your Ideal Career Path: A Breakdown of the Self-Assessment Survey

Living in a world full of choices and opportunities, we are often influenced by others when making decisions. But are we truly making the right choices when it comes to important matters? I wanted to create a self-assessment survey to help people figure out the ideal career path tailored to them. This is specifically designed for individuals looking to make a choice in the IT field.

For the initial version, I’ve kept it ultra-simple. The survey consists of just four multiple-choice questions. If you’d like to try it out, here’s the link: https://itpro.lk/mypath

Logic Rules to Map to Career Pathways

The first question gathers input about the user’s preferred tasks, while the remaining three validate the initial choice. Based on their answers, the survey suggests career paths best aligned with their preferences.

Recommending Software Development:

  1. Task: A (Building software).
  2. Skills: Intermediate/Advanced programming.
  3. Motivation: High earning potential, Opportunities for creativity.
  4. People/Tasks: Prefers technical tasks.

Recommending Data Science/Analysis:

  1. Task: B (Analyzing data).
  2. Skills: Intermediate/Advanced programming.
  3. Motivation: High earning potential, Job stability and security.
  4. People/Tasks: Prefers technical tasks.

Recommending UI/UX Design:

  1. Task: C (Designing visuals).
  2. Skills: Beginner/Intermediate programming.
  3. Motivation: Opportunities for creativity.
  4. People/Tasks: Prefers technical tasks.

Recommending Cybersecurity:

  1. Task: D (Solving security challenges).
  2. Skills: Intermediate/Advanced programming.
  3. Motivation: High earning potential, Job stability and security.
  4. People/Tasks: Prefers technical tasks.

Recommending Quality Assurance:

  1. Task: E (Testing and improving quality).
  2. Skills: Beginner/Intermediate programming.
  3. Motivation: Job stability and security.
  4. People/Tasks: Prefers technical tasks.

Recommending IT Academic:

  1. Task: F (Teaching IT concepts).
  2. Skills: Beginner/Intermediate programming.
  3. Motivation: Helping others, Leading and organizing teams.
  4. People/Tasks: Enjoys working with people.

Recommending IT Management (Project/Product):

  1. Task: G (Managing teams and projects).
  2. Skills: Beginner/Intermediate programming.
  3. Motivation: Leading and organizing teams.
  4. People/Tasks: Enjoys working with people.

Recommending to try different paths

If the answers provided by users don’t align with any of the options, the system suggests exploring different paths to discover the most suitable career for them.

That’s all for now, folks! 🙂 I know it’s a very basic tool, and its recommendations shouldn’t be taken too seriously. I just recommend giving it a try for fun. I’m working on a more advanced version to share with you in the future.

The Dual Challenge of Skills and Jobs in Sri Lanka’s IT Sector

Many countries are facing two major problems:

  1. Not enough skilled people for skilled jobs (Supply).
  2. Not enough skilled jobs for skilled people (Demand).

Which do you think is the bigger problem in Sri Lanka?

This is a question we asked our users a few months back. We received different answers. Some said the problem is a lack of skilled people, while others said it’s a lack of skilled jobs. Some even said we have both problems simultaneously.

Personally, I believe both problems exist in Sri Lanka at the time of writing this. Narrowing this question down to the IT industry, there is a significant challenge in finding skilled jobs for entry-level job seekers and a challenge in finding qualified workers for senior-level positions.

Why These Problems Exist?

Growth in the Academic Sector

The growth in the academic sector, both public and private, has led to a significant increase in the number of IT graduates. Universities and technical institutes are producing a large number of graduates each year. However, the market is not expanding at the same rate to absorb these fresh graduates. This imbalance results in a surplus of entry-level job seekers struggling to find appropriate positions.

Impact of COVID-19 and the Global Economic Crisis

The COVID-19 pandemic and the resulting global economic crisis have significantly slowed down the growth of the IT industry. Many companies have had to cut back on hiring and even lay off employees. The uncertain economic environment has also led to fewer opportunities for fresh graduates, further exacerbating the mismatch between the supply of skilled workers and the demand for skilled jobs.

Experienced Professionals Leaving the Country

Another critical issue is the brain drain. Many experienced professionals are leaving Sri Lanka for better opportunities abroad. This exit of talent leaves a gap in senior-level positions that are hard to fill. The lack of experienced mentors and leaders within the country also hampers the growth and development of junior employees.

Moving Forward

Entrepreneurs are key to solving these problems and taking advantage of opportunities in the IT sector. They can create jobs, drive innovation, and build strong networks to support the industry. By offering good salaries, career growth opportunities, and remote work options, they can attract and keep top talent, reducing the loss of skilled workers to other countries. Despite these challenges, there is always hope.

Do you have anything in your mind? Feel free to share in the comments section, and let’s discuss!