top of page

Software engineers, Solution Architects || STEMx Interviews

On the 20th of April, 2022, I had the pleasure of interviewing Mr. Ben Marshall about his work as a software architect and other programming topics. Mr. Marshall has been in the computer industry for about 26 years. Over the years, he has gotten to try out many positions in the field. After getting his bachelor’s degree from Southern Arkansas University, Mr. Marshall was a systems administrator for the University of Texas. He later moved to the information technology (henceforth referred to as IT) department of the university. Mr. Marshall worked in the private sector as well. He was once a software designer for homeland security. He worked as a contractor for several years which allowed him to work on a variety of levels of computer networking, security networking, and development management. Below is a breakdown of his answers to my questions.


From a programming perspective, what is the difference between a web-based application and a productivity app?

A web-based application is a particular type of software that allows users to interact with a remote server through a web browser interface. Anytime you are on Google or doing a search on Google that's a type of web-based application. For example, if you are on a banking website and you're trying to edit your banking information that's also a type of web-based application. Dropbox, Spotify, Facebook, and Instagram are also considered web-based applications because you can access them through a browser.

A web or a mobile productivity application would be something you would use on a day-to-day basis like your word processing, Excel spreadsheet, and presentation software. Web or mobile apps are usually optimized for touch base devices like iPads or other kinds of tablets or phones. Web and mobile apps were also designed for personal digital assistants (PDA). These are older devices that are uncommon today.

There is a lot of cross-over between the two. For instance, Microsoft teams is one of those apps that is both a web application and a mobile product. Apps that behave like this can be used exactly the same on either a desktop computer, in a browser, or on your phone.


Moving away from the programs and more towards the programmers, what is the difference between a software engineer and a solutions architect?

There are a lot of differing opinions on what a software engineer is and what a solutions architect or software architect is. There are also a lot of different categories that fall underneath those.

Software engineers, also called software development engineers, are usually responsible for developing software programs or software systems that align with what the user needs. In their job, they would be meeting with clients or business professionals to strategize ideas for the beneficial software. They would be coordinating with other IT professionals to design software. They design and develop software to run tests and catch coding errors. They recommend upgrades for existing systems. They create various programs and flow charts. A lot of planning goes into software engineering to help illustrate the type of code that is needed for the programmers. Questions such as, “how are going to write this algorithm,” and “what do we need to do to help ensure continued functionality,” need to be answered. Software engineers also handle maintenance after a program has been working. They look at the bugs that have been reported by users. A lot of documentation is also involved in software engineering. They write out the steps for what a user needs to do to accomplish certain things with the program. They also update the user interface or you know just different kinds of things.

A solutions architect is like a software engineer, who goes and finds out what the needs of the user are, but solutions architects will try to use existing software and code to accomplish what the user needs. In fact, I'm a subcategory of a solutions architect called a software architect. Anyway, solutions architects look at the big picture. They're pretty broad in what they need to do, so they may be working on several different things, not just software. They could be working on pieces of art, architecture, hardware, or networking, and then coming up with a solution to be able to put all of those together to make one product or system of products. In short, they try to adopt other technologies to be able to architect something specifically that the user is asked for. It may not be the same language every time. Sometimes they handle a lot of Statistics that need to be imputed into the program. So yeah, both are pretty different and not everyone agrees on what each role encompasses.


As a software architect, what do you do on a day-to-day basis?

Well, I currently have four different projects I am working on, so I try to schedule my time to where I can work on each project individually for an amount of time. That way, I'm not neglecting any one of them because they do have deadlines. So I’ll start off by planning my day. Then I’ll do some research for anything I might need to take into account or learn. I actually do this on a whiteboard which helps me to think. Sometimes, while I'm doing my research, I'll talk to somebody who's not a programmer to bounce ideas off them. Oftentimes that will help me to get a new idea or perspective. After that, I write a bit of code. In my lifetime, I’ve probably written more than 2 million lines of code. Sometimes I may actually talk to the users and see if there is any kind of problems that they’re having. I'll get them to submit those so that I can review them later and fix those bugs at a later time. Sometimes, I will work on some of the user experience issues like the user interface. I do a lot of prototyping with adobe xd to do a sort of mock-up before it actually goes into production or development. Plus, that way the users can get a feel for what it looks like before you start developing it and can request adjustments before you write all the code. I’d say 30% of my time is used in writing code and the rest is for planning, research, and mock-ups.


You mentioned that you write a lot of code, which coding language do you use the most?

Probably JavaScript, one of the most popular ones out there right now because it's just so versatile. It was based on an old C programming language. I learned basic (a programming language) first, but the first major programming language I worked with was C. Therefore, it wasn’t hard going from C to JavaScript was really easy because the architecture, the syntax, and semantics all look very similar.


Who do solutions architects work for and who do they work with?

A solutions architect usually works for companies who are looking for a management role that can also do development. Sometimes you get a programming or development manager, but they usually don't know the code very well. They know how the code is supposed to work together, but they may not be able to write the code. A solutions architect can help recognize and fix issues right out of the code. It’s the solutions architect’s job to figure out what they can do based on the resources that the company currently has and then to suggest some resources that may be necessary in order to get the companies where they need to go.

Previously, you mentioned that you worked with wireless technology. How were you able to contribute to that research?

Yes, so I worked on wireless encryption. Back then, wireless had just come out there weren't very many computers, laptops, or phones that you could connect to the internet wirelessly. One had to plug in a cable or dial-up to a modem. When wireless first came out, I immediately thought this was going to generate trouble because all this traffic was being sent through the air without any kind of encryption on it. All the data could just be grabbed out of the air by anybody who had a sniffer. So I worked with Cisco Systems on what was the early 802.11x encryption architecture.


At the time, were you a solutions architect, software engineer, or another type of programmer?

I was not a solutions architect. At that time, I was just an IT manager with good software development skills. I had just come out of school and was working with the University of Texas as a systems administrator (somebody who works on people's computers). The project was a side thing that I was working on. I helped to develop some parts of the authentication aspects of the encryption that was used with Weather Radio Service. If you're familiar with the active directory or Linux radius, Weather Radio Service is a sort of database that allows you to say, “okay here's my username and password, please authenticate me onto the encryption.” I was written up in some white papers for Cisco way back in the late 90s, and early 2000s.


What do you believe is the hardest aspect of being a solutions architect?

Staying on top of the latest innovations and making sure to implement them into current and future products. Some companies like their existing products, but you need to be able to get them updated to the latest encryption or the latest user experiences or user interfaces. Companies still want to keep their old software that does the same thing they've always done, they just want to improve their systems. Companies also want to make sure that the customer or the user is comfortable in using software that you create, so updating their program helps follow the “trends.”


Having talked about your hardest aspect of the job, what is your favorite aspect of being a solutions architect?

You may have already figured it out a little bit but my favorite aspect of being a solutions architect is that there's always some new kind of puzzle to work on. There are a lot of different problems that come up, so you do research to figure out how all the pieces can fit together to make this puzzle complete. Plus, whenever you've completed an algorithm that you've been working on for a long time and it works, then you get to stand up and say, “I'm the greatest alive!” It’s really a high for me. Having that satisfying sense of accomplishment gives me a lot of energy.


What is one piece of advice you would give future solutions architects?

Always learn something new. Always educate yourself. Always try to not be stagnant because if you do then you may lose out on something new and fall behind. Be constantly trying new things, even if you might fail. Be constantly doing research. It doesn't mean you're going to spend hours and hours just doing research, but you still need to keep up with the latest innovations. This comes in handy during projects because you can apply your research to come up with solutions.

The second point of advice is to find a good balance between your work life and your home life because it can be an issue when you start telling yourself, “oh well I just need to finish this one problem.” You usually end up losing track of time, missing appointments, not eating, etc. You want to have a schedule with work hours and you want to be able to stick to it.


Speaking of research, what is one book you recommend?

I must be honest, I am more of a fiction person, therefore my suggestions won’t help with your research. Some suggestions I have for fiction books are Ender’s Game, Ready Player One, and those kinds of books. I like sci-fi and fantasy. If you are looking for non-fiction to learn about technologies, real events, or other things like that, I recommend reading articles. I read articles for my work and read books more as a hobby. For research, just reading different articles online or finding a new programming language to learn is what I do. For example, I took a Python class and am now a certified python programmer. I don't know what that means, but I just took a class and was certified. If you wanted to know more about object-oriented programming, you can search on Google and just look it up. I know that wasn’t very much help but that's what I like doing.


Do you know any movie or documentary that talks about or includes solutions architects or software engineers?

It seems like there were several movies a few years ago that came out with that but I can't recommend them because of their content. There was a movie about Facebook. It came out a couple of years ago that was pretty good (The Social Network). There was one called Pirates of the Silicon Valley and that was about Steve Wozniak and Steve Jobs in Apple computer. It was a biography documentary kind of thing that was really good.


At your office do you prefer to drink tea or coffee?

It's split down the middle. In the morning, I like to drink a couple of cups of coffee just to get my brain flowing and make sure I like all my neurons are firing. Also, I lived overseas for about ten years and so I've really gotten used to having a tea time as well. At three in the afternoon, I’ll just stop what I am doing and have a cup of coffee.





We thank Mr. Marshall for helping us answer some questions about solutions architects and software engineers.

Comments


bottom of page