Go to the U of M home page

Wednesday, April 3, 2024

Tony's tech terms: Full-stack developer

On the AppDev team, we sometimes refer to ourselves as full-stack developers. In short, that means we work with many parts of an application "stack." Larger teams often break responsibilities down by which part of the stack developers work on. We work on all parts of the application stack and share our expertise with each other. But what is included in our stack?

Let's start with programming languages. We’ve mentioned Ruby and JavaScript, but we have some other languages in our portfolio. For example, our WorkflowGen processes are written in a language called C#, and Drupal sites are written in a language called PHP. We also have to know HTML and how to use it in an accessible way. We also have to know Cascading Style Sheets (CSS) so our sites function properly and have University branding.

We have to work with technology for authentication (you are who you say you are) and authorization (you’re allowed to do what you’re trying to do). We have to understand how APIs work and how they are designed. We have to handle strategies to cache data to make our applications perform better.

We have to understand how to use Infrastructure as Code (IaC) to configure and manage our servers and containers in a repeatable, consistent way. We have to understand how to work with SSL certificates so communication to and from our applications is encrypted and secure. We have to understand how to use container technology.

We have to understand what tools are available to monitor our application portfolio, so we get alerted when things don’t go like they should. We have to understand all the features and ways of using git for source code control and code reviews.

We’ve also mentioned testing before. There are several kinds of tests we can write, including unit tests, integration tests, and end-to-end tests. We have to know when to use each of those kinds of tests, understand the best strategy for what to test, and sometimes, write tests in more than one language.

We have to understand how a relational database like Oracle works and how to optimize queries. We have to understand the features of an Oracle database so we can write queries using SQL to get data for our systems.

Each one of these things could be a tech topic of its own—and some will be! We use all of these skills to design our applications so they’re well-tested and stable. The systems we work on are often very complex. The number of skills the team has to have to support them reflects that. I’m grateful to be a part of such an amazing team.

No comments:

Post a Comment