A current graduate student, Kyle Wright, in UMBC’s Software Engineering program shared his insights on his experience at UMBC.
He explores how the program has prepared him for a successful career in the field. From valuable tools and courses to real-world projects and networking opportunities, this program equips students with a strong foundation in software engineering.
Career Preparation
Dennise Cardona (DC): How has the UMBC Software Engineering Graduate Program prepared you so far for a career in the field? Can you highlight specific courses or experiences that were particularly valuable?
Kyle Wright (KW): The UMBC Software Engineering Graduate Program has given me many valuable tools to succeed in the industry. Not even related to code itself, learning about techniques in software process management or even testing was significant because I was able to apply them in my current work. Regarding specific courses, CMSC 626, SENG 645, and SENG 738 were the most valuable to me. However, all the coursework I could experience was helpful in some way.
Critical Strengths
DC: What are some of the critical strengths of the program that are helping you develop a strong foundation in software engineering?
(KW): The program’s key strengths are being able to take what I learn and apply it to my current work as a software engineer. For example, in Software Process Management, we learned about agile development, and I was able to apply it since I work in an agile environment. In Principles of Computer Security, I learned about the importance of secure software, which translates directly to my work since some of it is on classified systems.
Most of the teachers show an excellent understanding of the subject matter, which helps get their point across easier. In my case, it also keeps me more engaged.
Practical Experience
(DC): Has the program provided any specific opportunities that have helped you gain practical experience in the industry?
(KW) Considering I already have an opportunity lined up with my current employer, no. However, I easily could have obtained an opportunity with much of the coursework on my resume.
Real-World Projects
(DC): Can you share examples of real-world projects or assignments you have worked on in the program? How have these projects contributed to your learning and skill development?
(KW): One assignment from both SENG 645 with Professor Samarah and CMSC 626 with Professor Tompkins helped me apply what I learned.
In SENG 645, the term project I built was a social media web application. It had a database backend in Mongo and a C# front end through the MVC structure. Through this, I was able to learn Mongo and get a refresher on the MVC structure. I have used two things in my current position as a software engineer.
In CMSC 626, the term project I built was a peer-to-peer server application. Multi-threading, encryption, socket communication, etc., are all techniques I will need in the future. Especially considering that I have a web api project that I will be working on soon at work.
Code aside, even the techniques for managing and testing projects have all been beneficial.
Networking Opportunities
(DC): What networking opportunities are available to you as a student in the program? Have you found these connections helpful in your professional journey?
(KW): Most of my networking has been through just being able to talk to other students in the program. A lot of students have prior experience and are even currently employed while they are attending school. Learning from each other and networking simply in the same class is fantastic.
Valuable Takeaways
(DC): So far, what are some of the most valuable takeaways or lessons you gained from the program that have been instrumental in your future career success?
(KW): I can’t point out just one valuable takeaway or lesson since I consider mostly everything I learned valuable. If I could point out a few things, though, it would probably be:
- Software Process Management is critical because there is no one-size-fits-all plan for software. Communication is essential to guarantee the project’s short- and long-term success.
- Just because applications have functionality doesn’t mean they are complete. Ease of use, security features, etc., are all important to an application.
- Testing is a necessary element of what we do because it measures working software.
- Ethics are essential because our application can have unforeseen effects that harm people or the environment around us. (Ex. The code for a rocket has a bug in it and causes damage to a forest)
I could write even more, but I’ll keep it to those few points.
Final Thoughts about UMBC
(DC): Would you like to add anything else?
(KW): Just a quick thanks!
Thanks for allowing me to participate in the UMBC Software Engineering Graduate Program. Over a year ago, I was very frustrated with my place in the Data Science path, and I had an epiphany that it wasn’t for me. After I learned about the newly created Software Engineering path, I instantly enrolled. After a few of my classes, I realized it matched perfectly with what I wanted to do in my career.