Development Practices & Skillset

Our quick development cycles and wide range of project scopes require a broad skillset. Within our current staff we do the majority of our development using the following languages and methods that meet the principles outlined in the UVU Enterprise Architecture Guide. We create custom integrations and process automation as well as full-stack development.

Development Steps

Agile - defines smart business and software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. We embrace a set of practices that emphasize the collaboration and communication of software developers and information technology (IT) professionals while automating software delivery and infrastructure changes. We aim to establish a culture and environment where building, testing, and releasing software can happen rapidly and more reliably in a CI/CD environment.

Documentation - To ensure stability to the University and security for our clients, and as an operational standard, we document within our code and maintain documentation on systems built, services offered, involved resources, and dependent systems.

UVU API - offers an enterprise platform for integrating application programming interfaces (APIs), applications, and web services locally and across the Internet. The services and systems we build are created to ingest external data from APIs as well as expose data via APIs.

 

Front-End Web Technologies

HTML - is a standard for structuring and presenting content on the World Wide Web.

CSS - (Cascading Style Sheets) is a style sheet language used for the presentation semantics (the look and formatting) of a document written for the web.

Bootstrap - is an HTML, CSS, and JavaScript framework for developing responsive, mobile-friendly websites. Before Bootstrap, developers used various libraries for interface development, which led to inconsistencies and a high maintenance burden.

JavaScript - is one of the three core technologies of World Wide Web content production; most websites employ it, and all modern Web browsers support it without the need for plug-ins.

VUE - (pronounced /vjuː/, like view) is a JavaScript framework for building user interfaces. Vue is focused mainly on the view layer and is used in conjunction with PHP and Python.

jQuery - is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.

 

Back-End and Database Technologies

PHP - is a widely used and powerful scripting language designed for web development to produce dynamic web pages. PHP interprets scripts on the server side (rather than client-side) allowing for secure validation of required data and processes. PHP is used in conjunction with JavaScript, Bootstrap, jQuery and VUE.

Python - is a high-level, general-purpose programming language that is designed for readability, and has some similarities to the English language with influence from mathematics. Its design philosophy emphasizes code readability with the use of significant indentation. It supports multiple programming paradigms, including structured, object-oriented and functional programming.

SQL, MySQL, MSSQL, Oracle - are relational database management systems (RDBMS) that provide multi-user access to many databases. The SQL phrase stands for Structured Query Language.

MongoDB - is an open source NoSQL database. NoSQL is used as an alternative to traditional relational databases. NoSQL databases are quite useful for working with large sets of distributed data.

 

Development Environment

Visual Studio Code- is a source-code editor made by Microsoft that has been redefined and optimized for building and debugging modern web and cloud applications. 

GitLab - is an open source code repository for coding projects that offers online code storage and has capabilities for issue tracking and CI/CD. The repository enables hosting different development chains and versions, and allows developers to inspect previous code and roll back to it in the event of unforeseen problems.

Docker Desktop - is an easy-to-install application for Mac or Windows environments that enables us the ability to containerize local development and share any application on any cloud platform and in multiple languages and frameworks.

 

Infrastructure

Linux - a specific type of server based on the free, open-source, and modular Linux operating system. Linux is often the preferred choice for web servers over other server operating systems, given the many benefits. These include cost-efficiency, powerful community support, freely-distributed source code, stability with lower risk of downtime, high performance in managing demanding workloads and storage needs, improved security from unwanted cyber threats, and customization flexibility in terms of server implementation and operation. Linux servers generally support popular databases such as MySQLand programming languages including PHP,  and Python. Prominent companies leveraging Linux servers for their online services include Facebook, X (formerly Twitter), Amazon, and Google.

VM Ware : is a virtualized deployment solution that allows you to run multiple Virtual Machines (VMs) on a single physical server's CPU. Virtualization allows applications to be isolated between VMs and provides a level of security as the information of one application cannot be freely accessed by another application. Virtualization allows better utilization of resources in a physical server and allows better scalability because an application can be added or updated easily, reduces hardware costs, and much more. With virtualization you can present a set of physical resources as a cluster of disposable virtual machines.

Kubernetes (containers) - Early on, organizations ran applications on physical servers or VM's. There was no way to define resource boundaries for applications on a physical or virtual server, and this caused resource allocation issues. Kubernetes lets us use containers that are similar to VMs, but they have relaxed isolation properties to share the Operating System (OS) among the applications. Therefore, containers are considered lightweight. Similar to a VM, a container has its own filesystem, share of CPU, memory, process space, and more. As they are decoupled from the underlying infrastructure, they are portable across clouds and OS distributions.