Inside Raven

Coding the Next Iteration: A Day in the Life of a Programmer

Staff Software Engineer Nate Spronk has been at Raven for eight years and plays an active role in seeing programs come to life. As a team member on the embedded programming team, Nate has worked on the Rate Control Module (RCM) and currently works on AutoBoom® XRT.

In honor of National Coding Week, Nate shared what it's like to be a Raven engineer.

What is Embedded Programming?

Embedded programming involves developing code to monitor machines. This monitoring is done via a box that is placed on a machine to analyze what the machine is doing. This means different things for different products: for AutoBoom XRT, it means the software is designed to give feedback to the engineers about what's happening in the booms so that customers can drive down the field while keeping the boom as close to ideal height as possible.

What Does a Day in the Life of a Coder Look Like?

A day in the life is always interesting, Nate said. There are always opportunities to find the next iteration of a great product. He said that much of his job involves monitoring our current technology, so he will be testing code and looking for improvements in the morning, then in the afternoon he tests the new code on our products.

Nate has a testing cart at his desk that allows him to test software he's programmed. He can create a code change, check for any issues or ways to improve, compile a new software build, and run the software again on the cart. This immediate testing at his desk allows for rapid innovation and creativity.

After a code change has been deemed ready for testing, Raven engineers travel to our expanding Innovation Campus in Baltic, S.D. to test their innovations in action. Nate said that this capability is unique and beneficial. In some cases, Nate said, engineers can take the code into the cab with them and run real-time updates to the software while sitting in the machine.

A nice thing about programming is that you have a fast turnaround time by building something, making a change, and then rebuilding it. It leads to rapid iterative changes so I can see if a code update is going the direction that I want.

— Nate Spronk, Staff Software Engineer

What Makes Raven Different for Programming Jobs?

Nate said that Raven is dedicated to providing state-of-the-art technology for its team members and works to ensure that engineers have the tech they need as soon as they need it. He said that engineers are highly trusted by their supervisors, so when they ask for a new piece of technology, their managers and supervisors willingly work to make it happen immediately. This allows engineers to continuously improve our tech as they work with the newest technology.

Nate also emphasized Raven's rapid turnaround. He said one of his favorite things about his job is that he can be at his desk in the morning with the creative freedom to work through an issue, then later that same day he can test his code on the machine to see that he's fixed an issue.

That turnaround is super satisfying, especially if it's a customer report. If you can find and turnaround a fix within a day for a customer, that's really rewarding.

— Nate Spronk, Staff Software Engineer

What's Special About Raven?

Being a member of the Raven team has given Nate opportunities that he hasn't seen at other jobs, he said. He's been able to watch the code that he develops come to life over his eight years with the company: from when he started and the program was new, to now when the code he wrote is used by customers in the field.

Nate said that he's had interactions with family who know he works for Raven but don't know his specific roles where they've asked him about products. He's been able to tell them that not only can he answer their questions, but he was also the person who developed the code for the product. It gives him the opportunity to talk about his job with people he knows and see his work brought to life for customers.

What Advice Would You Give a Future Programmer?

If you're pursuing a career in programming, Nate recommends learning multiple coding languages and a good scripting language. He said that having a good baseline knowledge of coding and scripting languages will make your daily life easier.

Nate said that it's also important to keep in mind the whole picture of what you are developing. You might be working on the code, but keep in mind that it is being created for a larger machine that needs to operate successfully as a whole system, not just one piece of software. The programming work you're doing is contributing to an entire product that will help serve the world.

Keep the bigger picture of your software in mind. It doesn't exist in a vacuum — it's part of something bigger.

— Nate Spronk, Staff Software Engineer