Logo

TJ CSL

Understudy

As part of the TJHSST Computer Systems Lab (CSL), the Student Systems Administrators (Sysadmins), a group of volunteer students, maintain various computing resources and services for the school.

The Sysadmin Understudy program is the training program for the full Sysadmins program. We aim to identify and develop talent that can sustain and enhance the long legacy of the Sysadmins program, the Lab and the school.

For updates, make sure to join our Mattermost server using your TJHSST student email (202X...@tjhsst.edu). If you already use Mattermost, just click the link while logged in.


Timeline

This year, the Sysadmin Understudy program is composed of four stages.

1. Interest Sessions (Mid January)

There are four interest sessions this year (2023). Please sign up for only one.

  • Jan. 19, A block
  • Jan. 19, B block
  • Jan. 24, A block
  • Jan. 24, B block

2. Understudy Application (Late January)

To apply to be an Understudy, please fill out this form. You do not need to attend an interest session in order to apply, but it is highly encouraged.

3. Understudy Work Sessions (February - May)

If you are selected as an Understudy, you will go through the Understudy training process and receive mini-tasks that help you get some hands-on experience with some of what we do.

4. Sysadmin Application (Late May)

Following work sessions, we will accept applications for the next class of Sysadmins. Sysadmin decisions will be made before the end of the school year.

Please check Mattermost and your TJ email frequently for updates on the Understudy program and specific timeline information/dates.


Frequently Asked Questions

General

What do I need in order to become an Understudy?

You need to be an active, enrolled TJ student, specifically a current freshman or sophomore.

In addition, due to the nature of our work, you need to have strong character.

Learning/Understudy

What technical skills to qualify to be an Understudy?

None! You do need a strong willingness to learn.

What time commitment does the Understudy and full Sysadmin program demand?

As an Understudy, you will need to attend eighth period sessions that generally don't exceed more than once a week. Outside of school, the amount of time you will spend will vary depending on how much you need to practice and research to become an effective Sysadmin and complete tasks you are unable to complete during Eighth Periods. However, until you are a full Sysadmin, you are not subject to any official time commitments and may choose not to continue at any time.

If you apply and are accepted as a full Sysadmin, you would be expected to attend around two eighth period blocks per week. Outside of eighth periods, the Sysadmin time commitment varies on your areas and degree of responsibility. In general, the total time outside of eighth periods per week doesn't exceed a couple hours (at a maximum), unless you are involved in very complex projects or in a leadership role.

Due to our unique responsibilities to the school, however, you may on rare occasions be called to step up at unusual times, such as mornings, lunches, passing time, evenings, and weekends. While we try to design our systems and processes to prevent these occasions, when they do occur, the responsible Sysadmins need to step up. For example, if you are responsible for Ion and there is a crash preventing eighth periods from occurring, you would need to use all available time to resolve the issue together with your fellow Ion team members.

The vast majority of the time, however, we are not performing extremely time sensitive work. As a result, Sysadmins can shape their schedule as they fit, so long as they are making substantive progress on their work. At various occasions, we hold scheduled & impromptu lunch, morning, and passing periods meetings where your expertise may be called for. In addition, Sysadmins should be reasonably responsive to their Mattermost/email messages.

Sysadmins

What qualities do successful Sysadmins have?

To reiterate, we do not at all expect close to complete technical knowledge in order to become an Understudy. The current senior Sysadmins had nowhere as much experience as they do now. We do expect you, however, to be extremely willing to learn and experiment on your own, since the skills we use are not something that can be learned via a math formula, textbook, or lecture. Instead, they come from practice, experimentation, research, and dedication, and the Sysadmin program provides an opportunity to do just that.

Based on our experiences, having a strong foundation in these areas is quite important:

  • Problem Solving - Problems can pop up in everything we do and are sometimes highly unusual. Our capacity to solve them is what makes our services work for our users.
  • Debugging skills - Whether it is debugging a vexing code error or performance issue, being able to effectively debug issues is quite important to what we do.
  • Linux - Installing, running, and configuring a Linux distro (especially a DYI distribution like Arch Linux) teaches you quite a lot.
  • Scripting - If you are doing something repeatably, write a Bash or Python script to automate it. These tiny scripts can teach you a lot over a long period of time.
  • Programming - Being able to write good, clean code is at the heart of what we do. We mostly use Python, but knowing one language, like Java, C, or C++, makes learning others much easier.
  • Git - We use Git a lot, so it is nice to get comfortable working with it regularly, with a special focus on effective branch rebasing. One good way to learn is to start using it to store your code from school classes.
  • Computer Basics - It is very useful to know the basics of computers, like what RAM, CPUs, operating systems, Windows, Linux, and Mac OS is.
  • Typing - We type a lot, so being able to type quickly is just nice.

What specifically do Sysadmins do?

The Lab functions similarly to a small-to-mid sized business with all the needed work that accompanies that. As a result, in addition to maintaining a significant number of publicly-facing services, we need to maintain and improve the many non-public systems that support them.

Some of the primary areas that our work falls under include (in no particular order of importance):

  • Systems Administration - upgrading, maintaining, & patching our Linux servers & related services
  • Incident Response - quickly responding & resolving issues that arise in the Lab
  • Network Administration - designing, configuring, & maintaining our relatively-large computer network and associated devices
  • Database Administration - designing & administering databases; optimizing database performance
  • Automation - designing & developing software to automate tasks and the configuration of our systems
  • Web Development - developing services exposed on the Internet (primarily backend with Django with some work in frontend and graphic design)
  • Monitoring - developing & designing tooling to monitor our services for issues
  • Security - reviewing our software & systems for security vulnerabilities; developing software/processes/architecture to prevent security vulnerabilities
  • Performance - making our code/systems faster & more efficient
  • Documentation - writing down how our infrastructure is set up to pass down to future generations of Sysadmins
  • Technical Support - responding to in-person and electronic questions from the broader TJ community
  • Hardware Maintenance - building, configuring, & constantly maintaining hardware to support the Lab
  • Infrastructure Design - designing good architectures for scalable, efficient, and effective systems & software
  • Project Management - managing & allocating tasks within the team

Do we "hack"?

In the context of our work, "hacking" is using technical knowledge to overcome problems. In that respect, we hack to fix problems & make our services work.

Do Sysadmins get to choose what they work on?

While we try to pair strengths & interests with work, Sysadmins have to be accommodating to changing priorities and demands. However, that does not mean that a Sysadmin will stop working in area that interest them, since we have a lot of overlap between areas.

For example, if a Sysadmin is responsible for web development on Ion and securing Ion becomes a higher priority, the Sysadmin would need to prioritize work on finding security issues in our codebase instead of developing new features. At the same time, however, the Sysadmin would be able to continue doing web development, just in a different form.

Another example would be, if a Sysadmins is working with building hardware and monitoring of that system's hardware needs to be done, the Sysadmin would be able to work with hardware, just in a different form by extracting metrics from hardware.

Ultimately, Sysadmins need to be comfortable working with computers and computer software, regardless of what form that takes, because we cannot avoid changing priorities.

Process

How are Sysadmins selected?

Successful applicants into the Sysadmin program are active participants in the Understudy program and acquire skills (both in and outside of the program) that would be useful as a contributing Sysadmin. Based on an application we will release near the end of the year, we will admit students as full Sysadmins based on a variety of factors with a goal of identifying students who would contribute productively to the program, Lab, and school. Some of these factors include:

  • degree of participation in the Understudy program
  • demonstrated willingness to learn
  • demonstrated technical skills valuable to the program
  • demonstrated Sysadmin aptitude
  • commitment to the program
  • strong character

Expected Conduct

What are the expectations for technology use?

One of the reasons the CSL exists is to provide a learning environment for TJ students, and, as a result, students have relative freedom. In exchange for the relative freedom to experiment, we expect all users to behave as responsible digital citizens and respect boundaries, rules, the Lab, and other users, both within and outside the Lab.

All conduct is regulated by appropriate school regulations, including the FCPS Acceptable Use Policy. Prohibited activities include those that lead to:

  • compromise of CSL systems
  • compromise of user data
  • interference with CSL operations
  • unauthorized access on any systems
  • harm to the Lab, school, or others
  • or any other improper result

The Student Systems Administrators, CSL Lab Directors, TJHSST Technology Team, and the school supervise all activity within the Lab, and any technology usage incompatible with the rules will be subject to appropriate technical, disciplinary, and legal consequences.

What are the expectations for conduct within the Lab?

As described above, all school rules apply within the Lab. Access to unauthorized areas of the Lab, including but not limited to the machine room or storage rooms, without appropriate permission is prohibited. As an Understudy, you do not have the authority of a full Student Systems Administrator. As a result, you may not represent yourself as a Sysadmin or other representative of the Computer Systems Lab.

Communications

If you have any questions or concerns, please feel free to email understudy@tjhsst.edu or reach out to a current Sysadmin.

Logo

Computer Systems Lab

Thomas Jefferson High School for Science and Technology