DevNexus 2026

Fundamentals of Software Engineering in the Age of AI

9:00 AM EST
8 hours
Georgia World Congress Center, Atlanta
285 Andrew Young International Blvd NW, Atlanta, GA 30313

About This Workshop

This intensive workshop bridges fundamental programming skills with the expertise needed to work alongside AI tools. Participants engage in a balanced mix of conceptual teaching and hands-on exercises combining traditional and AI-assisted approaches to reinforce practical software engineering principles.

Learn to transition from programmer to software engineer, create maintainable code, and master AI code assistance while critically evaluating outputs. Through hands-on labs, you'll gain practical experience with modern development workflows and build a professional growth roadmap in the AI era.

What You'll Learn

  • Transition from programmer to software engineer mindset

  • Create maintainable, readable code communicating clear intent

  • Apply effective legacy codebase management techniques

  • Master AI code assistance while critically evaluating outputs

  • Apply architecture patterns appropriately

  • Build professional growth roadmap in the AI era

Prerequisites

To get the most out of this workshop, please ensure you have:

  • Working knowledge of at least one programming language

  • Basic understanding of software development concepts

  • Laptop with code editor and Git installed

  • Optional: Access to an AI coding assistant (Claude Code, GitHub Copilot, ChatGPT, or similar)

  • Optional: A Google account to use NotebookLM

Labs

This workshop is structured as a series of focused, hands-on labs, each exploring a different aspect of modern software engineering.

Reading Code & Exploring Unfamiliar Codebases

15 minutes

You'll explore the Spring PetClinic application, a real world codebase that may be in a language you've never used before. This is intentional! The goal is to practice reading and understanding unfamiliar code, one of the most important skills in software engineering.

Repository

https://github.com/spring-projects/spring-petclinic

Clone the repository:

git clone https://github.com/spring-projects/spring-petclinic

Important: No AI Tools for This Exercise

Please do not use AI assistants (ChatGPT, GitHub Copilot, etc.) for this exercise. We want to build the muscle of reading and navigating code on our own first. Once you have that foundation, AI tools become much more effective.

Initial Orientation

  • Without running the app, what technologies and frameworks can you identify from the project files (pom.xml, package structure)?
  • Locate the main application class. What annotations do you see?
  • Based on folder structure alone, what architectural pattern does this app follow?

Code Navigation

  • Pick one entity (like "Owner" or "Pet") and trace it through the codebase. Find its model, repository, service, and controller.
  • Without looking at documentation, can you sketch the database schema based on the entity classes?
  • Where and how is the database configured?

Pattern Recognition

  • Find examples of design patterns being used (Repository, MVC, dependency injection)
  • What naming conventions do you notice for classes, methods, and packages?
  • Given a URL like /owners/{ownerId}/pets/new, trace what happens when someone submits the form

Reflection

  • What made this codebase easier or harder to understand?
  • What strategies did you use to navigate the code?
  • How long did it take to understand the basic flow?
  • What could you apply to your own projects?

Writing Clean Code: Identifying & Fixing Code Smells

25 minutes

You'll review a small Java codebase that's been seeded with intentional code smells across six clean code categories. Your job is to find the problems, fix a few of them, and talk through the trade-offs with your peers.

Repository

https://github.com/Fundamentals-of-Software-Engineering/workshop/tree/main/writing-code-lab

Clone the repository:

git clone https://github.com/Fundamentals-of-Software-Engineering/workshop.git

Six Clean Code Categories to Look For

1 Meaningful names that reveal intent
2 Single responsibility principle
3 DRY (Don't Repeat Yourself)
4 Explanatory vs. restating comments
5 Formatting that matches control flow
6 Composition over inappropriate inheritance

Part 1: Identify Code Smells (5 minutes)

  • Open the src/ folder and review all five Java files: Animal.java, Dog.java, Fish.java, WeightTracker.java, and WeightTrackerUtils.java
  • For each file, identify as many code smells as you can from the six categories above
  • Pay special attention to the class hierarchy: Does it make sense for Fish to extend Animal which assumes all animals have fur?
  • Check the loop in WeightTracker carefully. Does the summation actually work correctly?
  • In WeightTrackerUtils, do the method names and documentation match what the code actually does?

Part 2: Refactor (8 minutes)

  • Pick 2-3 code smells you identified and refactor them
  • Rename methods and variables to clearly communicate their intent
  • Break apart methods that have multiple responsibilities
  • Fix the class hierarchy to use composition instead of inappropriate inheritance
  • Update comments to explain why, not what

Part 3: Discuss (3 minutes)

  • Compare your findings with a neighbor. Did they spot smells you missed?
  • Talk through different refactoring approaches. There's often more than one valid solution.
  • Which code smells were easiest to spot? Which were most subtle?

Part 4: AI Tools & Code Quality Discussion (10 minutes)

Now that you've identified and fixed code smells by hand, let's talk about how AI coding tools fit into this workflow. The goal isn't to avoid these tools. It's to use them intentionally.

  • Could an AI assistant have caught the code smells you found? Which ones would it likely miss?
  • When AI generates code, how do you evaluate whether it introduced new smells or anti-patterns?
  • What's the difference between using AI to find problems vs. using AI to fix them? When is each approach appropriate?
  • How do you build the judgment to know when AI suggested code is good enough and when you need to push back?
  • What fundamentals (like the six categories we practiced) do you need to understand before you can effectively use AI tools?
  • AI tools amplify your skills. They don't replace the need to understand clean code principles.

After the exercise: A solution branch is available in the repository for comparison. Try to complete the exercise before checking the solution!

Building a Personal Technology Radar

10 minutes

Create your own technology radar to track and categorize the technologies, tools, and frameworks that matter to you. You'll organize your technical landscape into rings and use it as a guide for your learning journey and career growth.

The Four Rings

  • Adopt: Technologies you're currently using and mastering, your core competencies
  • Trial: Technologies you're actively learning or experimenting with
  • Assess: Technologies you're researching but haven't started learning yet
  • Hold: Technologies you've decided not to pursue right now

Exploring Thoughtworks Tech Radar

  • Visit the official Thoughtworks Technology Radar: https://www.thoughtworks.com/radar
  • Notice how technologies move between rings over time as they mature or decline
  • Pay attention to technologies in your domain or areas of interest
  • What patterns do you notice? What technologies appear in "Adopt" vs "Hold"?

Build Your Own Radar

  • There are no wrong answers here! This is YOUR personal technology radar. It should reflect your unique interests, goals, and current skill level.
  • List 5-10 technologies you know or want to learn. You can use a spreadsheet, paper, or any format that works for you
  • For each technology, capture the name, ring (Adopt/Trial/Assess/Hold), quadrant, and a brief description
  • For example, React (Adopt, Languages & Frameworks), Docker (Trial, Tools), Rust (Assess, Languages & Frameworks)
  • You can optionally use the Thoughtworks Build Your Own Radar tool at https://radar.thoughtworks.com to create an interactive visualization
  • The visualization tool requires a CSV or Google Sheet with columns: name, ring, quadrant, isNew, description

Tips for Success

  • 5 to 10 technologies is perfect for your first radar
  • Place technologies where YOU are with them, not where the industry is
  • Use different quadrants to show breadth across your skill set
  • Use isNew=TRUE for technologies you recently discovered
  • Set a reminder to update your radar quarterly as your interests and skills evolve
  • Use your radar to guide learning priorities and your career roadmap
  • Share it with mentors. Your radar can spark valuable conversations about your career path.

Helpful Resources

Resources

Here are some helpful resources to prepare for the workshop and continue learning afterward:

Ready to Level Up Your Skills?

Join us for this hands-on workshop and discover how to apply software engineering fundamentals in the age of AI.