BehaimITS

Internship Experience 2026

By Noah Allen, Bryan White, Julissa Hernandez·2026/07/16·7 min read

This summer, the three of us — Noah Allen, Bryan White, and Julissa Hernandez — are spending our internship building Ash & Holm, a full-stack furniture e-commerce site, from the ground up: a Next.js frontend, a TIBCO BusinessWorks Container Edition backend, a SQL Server database, and a Claude-powered shopping assistant, all running in Docker. Along the way we picked up Git, containerization, cloud storage, and what it means to build with Claude and Claude Code as part of a real engineering workflow. Below, each of us reflects on the summer in our own words.

Noah Allen

Being afforded the opportunity to intern at Behaim ITS this summer was one of the most rewarding experiences of my professional and educational career so far. From day one, I had access to every software engineer on the team, allowing us every opportunity to learn from all their different levels of experience.

As interns, we were responsible for building a fullstack application from the ground up over the course of the summer: a Next.js frontend, a TIBCO BusinessWorks backend, and a SQL Server database, all running in Docker. We were given weekly labs, using each one to close out the current iteration and plan the next, moving the project through real production-release cycle rather than a single semester-long project. Part of that planning meant settling on a REST API contract, laid out in OpenAPI, before either side wrote any code. Giving us the confidence what the frontend and backend were able to integrate smoothly as we worked through the development process.

Given the scale of this project, we ran into real problems across a lot of different areas. AI tools could help with some of it, but plenty of the time we still needed to dig through documentation or ask someone on the team for help. We were also given real ownership over implementation decisions, not just the code, so when demo day or a bug came around, we would need to handle the responsibility and understanding.

Ash & Holm system architecture: nginx routes to the Next.js frontend, TIBCO BWCE backend, and chatbot service, backed by SQL Server and Azurite blob storage, with the chatbot calling the Anthropic API

The Ash & Holm stack: nginx routes traffic to the Next.js frontend, the TIBCO BWCE backend, and the chatbot service, with SQL Server and Azurite blob storage updated through BWCE and Claude powering the chatbot's completions.

We also got to take part in more of the professional software engineer responsibilities as we sat in on the weekly stand-ups. Eventually we were also giving updates on our own project in those calls, assisting us in learning how to communicate to other engineers and management. Which is an especially cool experience when the office in Czechia participates in the call simultaneously.

We also completed several of Anthropic's official courses on building with Claude, which fed directly into an AI shopping assistant we built for the project: an agent powered by Claude models that answers product questions and helps walk customers through checkout. Getting the prompts right took more than trial and error. We put together a set of eval cases covering the scenarios that were most important to us, then used those evals to catch regressions and tell whether a prompt change actually made the agent better, or just different. Our mentor also made a point of rotating each of us through that work, including the frontend and backend, so nobody ended up not getting the true fullstack experience.

My coursework at Northern Illinois University set me up well for a lot of this. CSCI 466 (Databases) and CSCI 467 (Software Engineering) gave me a real handle on the overall process — designing, implementing, testing, and iterating, long before I ever touched this particular stack. What NIU couldn't fully prepare me for was the specific tooling: enterprise integration platforms and cloud services change quickly, and no curriculum can track every one of them. It isn't that the program fell short. There's always a gap between building a foundation and applying it to a live, industry-specific stack, and that's exactly the gap an internship like this exists to close.

The other big shift was Git. CSCI 340 introduced us to Git and GitHub through GitHub Classroom, and I carried that into my projects and teams for 466 and 467 even though it wasn't required there. Still, none of that had us pushing and pulling changes daily, so we'd only scratched the surface of what Git and GitHub can actually do. This summer changed that.

We're a bit past the halfway point of the summer, and there's plenty still ahead. Our next big milestone is demoing what we've built so far to one of the lead developers from the Europe office and our CEO, and I'm genuinely excited to see what kind of feedback that brings. Between polishing up the shopping assistant and whatever else gets thrown at us in the remaining time, I'm looking forward to see how much further it develops my confidence as a software engineer after my years at university.

More than anything, this internship has given me the kind of confidence a semester can't: enough time on one codebase to actually understand its architecture, live with its tradeoffs, and work as part of a team at a scale that matches what real software development looks like.

Bryan White

The internship at Behaim has been an amazing avenue to grow as a developer and learn important tools. We started with a crash course on Git, which we have used extensively to collaborate on our project. Its version control capabilities have proven useful time and time again. The impact that Git and similar resources have had on the landscape of programming is impossible to overstate. I know this tool will be incredibly useful in pretty much every development situation I'll find myself in.

After Git we started our containerization journey with Docker, learning how to run processes ranging from reverse proxies to entire databases. Because of containerization, we're able to ensure that each component of our project is in the same environment every time we boot up. This prevents many of the nightmare-inducing "it worked on my computer" errors that haunt every programmer.

Once we had discovered the power of containerization, we moved on to some Anthropic courses. The most relevant of these was the Building with the Claude API course, where we interfaced with Claude through code. This experience was proven invaluable when we created a chatbot for our website project. We had to keep in mind the quality of the agent's output along with what questions it should be willing to answer. Our understanding of prompt evaluations was put to the test as the chatbot was improved incrementally through numerous evaluations. Utilizing techniques like multi-shot examples and modifying the system prompt, we watched as Holmes (our website agent) changed from a blank slate to a genuinely helpful assistant. The knowledge from these experiences is and will continue to be extremely beneficial whenever interacting with AI in any capacity.

Following the Anthropic courses, we started diving into the world of TIBCO BusinessWorks. After a bit of practice, we started utilizing its potential by creating a backend for an online shopping website, which is our ongoing project. This is the backbone of our app. The way that BusinessWorks is formatted made a lot of the aspects of the backend that would otherwise have been very intimidating much easier to grasp.

Before we could start serious work on our project, we needed a plan. In development, it's paramount to coordinate effectively with your team. Because of how the frontend needs to communicate with the backend, we needed a way for each dev to be able to test their end independently while both sides were unfinished. This is where our OpenAPI specification comes in. We were able to agree on the type and configuration of data sent between the two ends. This allowed us to use mocking tools such as WireMock to test each end when the other side hadn't finished their implementation. Such tools are incredibly useful when testing almost any part of an application. I will definitely keep using them as I continue through this internship and beyond.

Another tool we're using is called Azurite, which is an open source emulator for Azure storage. We're using it to store the image files for our products, which our BusinessWorks backend accesses using a url that is stored in our database. This way the database isn't bloated by images, and the images can still be updated and added to the static website. Understanding how to interface with tools like Azure services is an important skill as cloud computing becomes more and more prevalent.

Claude has been our frenemy from the get go. He’s helped with everything from understanding new concepts to designing and refining the frontend. He has proven invaluable when dealing with networking issues and mapping out backend updates. He even lives on our website, as a helpful assistant showing new shoppers our catalog and recommending furniture pieces that match what they already have.

The Ash & Holm homepage, with the Holmes AI shopping assistant open in the corner Holmes, live on the Ash & Holm homepage — the Claude-powered assistant customers use to ask about products and get recommendations.

Unfortunately, there are gaps in Claude's knowledge. One such example is when Claude Code spent an afternoon trying to convince me that BusinessWorks was incapable of outputting a file that was the format I wanted, only to find out that it was entirely possible. He also takes quite a bit of configuration to work well as a shopping assistant, there were plenty of issues where he would add the wrong item to a user's cart, or default to an inaccurate statement when asked a question he wasn't prepared for.

My time at Northern Illinois University prepared me in a lot of ways. In some ways directly, such as laying the groundwork for the networking that our project requires, and also indirectly. I can only wrap my head around something like BusinessWorks because of the framework that I gained from my understanding of concepts such as databases, servers and clients, even if those were never brought up in the BusinessWorks context in my classes.

This internship so far has been an amazing way to grow in knowledge and capabilities. This opportunity has already exceeded my expectations. I'm extremely excited for what the future holds. I've already worked with so many awesome tools and I'm looking forward to continuing to explore more while refining what I have already learned.

Julissa Hernandez

Coming back to Behaim for a second summer, I found myself making connections I'd completely missed the first time. As returning intern, I had an understanding about the way things worked, and what I would be tasked with/asked to accomplish. Last summer, as well as this year, our big task was the completion of a full stack project. However, unlike last summer, we have many more tools at our disposal, such as Claude and Claude Code. Hence, this year, our group of interns were held to higher expectations—with the help of AI, our project was to be better and look better.

As previously mentioned, a large part of our time here has consisted of developing a full stack project. The purpose of this project is getting hands on experiences on the many technologies we been exposed to. Our project, which is a furniture store website, has a Next.js frontend, a TIBCO BusinessWorks Container Edition backend, and MSSQL database. Git has streamlined collaboration on this project, and the branch and merging functionalities have proved useful time after time. Worthy to mention is that, as of now, our project is containerized in Docker and Kubernetes, utilizes Maven, and routes traffic through nginx.

While this project has been the fruit of the interns' hard work and collaboration, one cannot forget about Claude. Both Claude and Claude Code have been great tools at our disposal throughout the life of our project. Before the start of our project, I had used Claude a few times and was oblivious to the capabilities of Claude Code. Then, after completing the Anthropic course, Building with the Claude API, we began to implement parts of our project with the assistance of Claude Code. Claude Code would prove significantly superior when working on frontend issues and was a great asset when creating architecture diagrams. However, it is important to note a limitation of Claude, that being TIBCO BW. Sometimes, Claude does not understand what went wrong with a BusinessWorks project and the fault may be more easily identified if one references the BusinessWorks documentation. Another major learning curve when it comes to Claude, is the idea of prompt engineering. One must learn how to chat with Claude. One cannot expect Claude to understand their request if their prompt lacks details; to get good results, you need to help Claude along the way.

Along the way, we have had multiple versions of our project. Initially, we started with a working frontend, backend, and database. Then we added an admin page on the frontend which required us to make another OpenAPI specification and add more endpoints so our admin could have different functionalities. We also moved to TLS encryption with HTTPS, and eventually, a big part of our project was to implement a chatbot functionality, available on the frontend, where the user could seek assistance for their purchase. This step in our project was very curious because once we got it working, it was very interesting to have a conversation with the bot and try to trick it to find where it faulted. During this step, prompt evaluation proved its importance because we could tell the chatbot what we expected of it, and what we didn't. And we could test edge cases, of which there were many.

The Ash & Holm admin Orders page, listing orders with customer, date, item count, total, and status The admin Orders view we built — searchable, filterable by status, and one of the first things that came out of expanding our OpenAPI spec for admin-only endpoints.

On another note, when I recall all that has been stashed in my brain these past few weeks, I realized that I've made tremendous progress. Clearly, I am not a master at all the tools we have been using, but I am definitely better than I was one month ago. It may take me some time to truly grasp certain concepts but working in a collaborative environment has been a superb experience. And as a recent grad, I can say that NIU helped prepare me for this internship by teaching me how to think critically and plan ahead. Many times, throughout this project, we all had to agree on a plan like an OpenAPI specification to describe our RESTful endpoints. With this document describing our endpoints, it made things much simpler to start our own tasks without waiting on another person. And having a plan to reference along the way, proved rather useful and avoided certain merge conflicts. While the practice of teamwork was rather minimal during my time at NIU, coming into Behaim, it was very interesting to see the benefit of it. Not only can you ask each other for clarification, but you can also group your knowledge and tackle challenges together.

My time here at Behaim has been remarkably educational and eye-opening. I look forward to the next steps of our project and the new technologies and tools we will be exposed to. And I hope to be able to sit down with the rest of the Behaim team, take some of their knowledge, and learn how to use it properly. They all know so much and know about different topics/tools that I can never run out of things to learn. I look forward to the remaining time at this internship and aim to widen my understanding of all that I have been taught and will be taught.


Looking Ahead

We all came into this internship with different experiences and abilities, but with one thing in common, a strong desire to grow. Throughout all the challenges and heroic battles with aggravating bugs, we have continued to improve our knowledge and understanding of a multitude of tools. The issues we run into are more complex, but we are having a blast keeping up. We have had an amazing time so far with our summer, and are looking forward to continuing to expand our skillsets.