diff --git a/components/AboutTabs.tsx b/components/AboutTabs.tsx
index 75633316..e81054a5 100644
--- a/components/AboutTabs.tsx
+++ b/components/AboutTabs.tsx
@@ -22,9 +22,7 @@ function Members() {
}
function Alumni() {
- let yearsAndAlumni = groupBy(allAlumni, (alumnus) => alumnus.graduation).reverse();
- // TODO: dirty hack to move TEST to the bottom for now
- yearsAndAlumni = [...yearsAndAlumni.slice(1), yearsAndAlumni[0]];
+ const yearsAndAlumni = groupBy(allAlumni, (alumnus) => alumnus.graduation).reverse();
return (
<>
{yearsAndAlumni.map(([graduation, alumni]) => (
diff --git a/components/CollapsibleSection.module.scss b/components/CollapsibleSection.module.scss
new file mode 100644
index 00000000..e28bb194
--- /dev/null
+++ b/components/CollapsibleSection.module.scss
@@ -0,0 +1,27 @@
+.title {
+ display: flex;
+ align-items: center;
+ height: 60px;
+ cursor: pointer;
+}
+
+.title h2 {
+ display: inline;
+ padding: 0px;
+ margin: 0px;
+ margin-left: 10px;
+}
+
+.facingDown {
+ transform: rotate(90deg);
+}
+
+.collapsed {
+ height: 0px;
+ overflow: hidden;
+}
+
+.arrow {
+ font-size: 100;
+ transition: 300ms ease all;
+}
diff --git a/components/CollapsibleSection.tsx b/components/CollapsibleSection.tsx
new file mode 100644
index 00000000..244d1895
--- /dev/null
+++ b/components/CollapsibleSection.tsx
@@ -0,0 +1,31 @@
+import classNames from "classnames";
+import React, { useState } from "react";
+import { BsArrowRightCircle } from "react-icons/bs";
+
+import styles from "./CollapsibleSection.module.scss";
+
+interface CollapsibleSectionProps {
+ title: string;
+ children: React.ReactNode;
+}
+
+export default function CollapsibleSection({ title, children }: CollapsibleSectionProps) {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const toggle = () => {
+ setIsOpen(!isOpen);
+ };
+
+ return (
+ <>
+
+
+
{title}
+
+ {children}
+ >
+ );
+}
diff --git a/data/people.ts b/data/people.ts
index c4f46770..e87befc7 100644
--- a/data/people.ts
+++ b/data/people.ts
@@ -220,6 +220,7 @@ const constPeople = [
{
name: "Anoushka Dave",
roles: ["Developer", "VP Operations", "President"],
+ graduation: 2023,
},
{
name: "Reyna Abhyankar",
@@ -309,10 +310,12 @@ const constPeople = [
{
name: "Rachel Blumin",
roles: ["Designer"],
+ graduation: 2023,
},
{
name: "Rickie Chen",
roles: ["Designer", "TEST Design Lead"],
+ graduation: 2023,
},
{
name: "Thomas Li",
@@ -337,6 +340,7 @@ const constPeople = [
{
name: "Aksharan Saravanan",
roles: ["Developer"],
+ graduation: 2023,
},
{
name: "Alejandro Rodriguez Pascual",
@@ -427,7 +431,7 @@ const constPeople = [
},
{
name: "Navid Boloorian",
- roles: ["Developer", "Engineering Manager"],
+ roles: ["Developer", "Engineering Manager", "President"],
},
{
name: "Nicholas Vanny",
@@ -442,6 +446,7 @@ const constPeople = [
{
name: "Nirmal Agnihotri",
roles: ["Developer", "Engineering Manager"],
+ graduation: 2023,
},
{
name: "Patrick Brown",
@@ -455,6 +460,7 @@ const constPeople = [
{
name: "Rohan Puthukudy",
roles: ["Developer", "TEST Developer Lead"],
+ graduation: 2023,
},
{
name: "Rohith Kasar",
@@ -474,6 +480,7 @@ const constPeople = [
{
name: "Shravan Konduru",
roles: ["Developer", "VP Operations"],
+ graduation: 2023,
},
{
name: "Stephen Tan",
@@ -516,6 +523,7 @@ const constPeople = [
{
name: "Alex Zhang",
roles: ["Developer", "Engineering Manager"],
+ hidden: true,
},
{
name: "Kevin Fu",
@@ -576,10 +584,12 @@ const constPeople = [
{
name: "Nishant Balaji",
roles: ["Developer"],
+ hidden: true,
},
{
name: "Aman Aggarwal",
roles: ["Developer", "Engineering Manager"],
+ graduation: 2023,
},
{
name: "Parth Patel",
@@ -588,6 +598,7 @@ const constPeople = [
{
name: "Assaf Cohen-Arazi",
roles: ["Developer", "Engineering Manager"],
+ graduation: 2023,
},
{
name: "Ryan Hung",
@@ -616,14 +627,17 @@ const constPeople = [
{
name: "Jonathan Lum",
roles: ["Designer"],
+ graduation: 2023,
},
{
name: "Juliet Zhuang",
roles: ["Designer", "Marketing Lead"],
+ graduation: 2023,
},
{
name: "Tracey Du",
roles: ["Designer"],
+ hidden: true,
},
{
name: "Mrinal Sharma",
@@ -636,42 +650,42 @@ const constPeople = [
},
{
name: "Annie Wen",
- roles: ["Product Manager"],
+ roles: ["Product Manager", "Designer"],
},
{
- name: " Casey Toy",
+ name: "Casey Toy",
roles: ["TEST Developer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Sage Amon",
roles: ["TEST Developer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Abel Seyoum",
roles: ["TEST Developer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Garrett Lam",
roles: ["TEST Developer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Eric Shults",
roles: ["TEST Developer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Alicia Danielle",
roles: ["TEST Developer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Frances Sy",
roles: ["TEST Designer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Aska Kunita Demirci",
@@ -680,7 +694,7 @@ const constPeople = [
{
name: "Annie Ye",
roles: ["TEST Designer"],
- graduation: "TEST",
+ graduation: 2022,
},
{
name: "Nhu Luong",
@@ -742,6 +756,7 @@ const constPeople = [
{
name: "Fatima Dong",
roles: ["TEST Developer"],
+ graduation: 2023,
},
{
name: "Harsh Gurnani",
@@ -758,10 +773,12 @@ const constPeople = [
{
name: "Jared Rosas",
roles: ["TEST Developer"],
+ graduation: 2023,
},
{
name: "Jennifer Chen",
roles: ["Developer"],
+ graduation: 2023,
},
{
name: "Jennifer Tanurdjaja",
@@ -778,6 +795,7 @@ const constPeople = [
{
name: "Kacy Umana",
roles: ["TEST Developer"],
+ graduation: 2023,
},
{
name: "Kevin Do",
@@ -786,6 +804,7 @@ const constPeople = [
{
name: "Laura Liu",
roles: ["TEST Designer"],
+ graduation: 2023,
},
{
name: "Lillian Ho",
@@ -833,7 +852,7 @@ const constPeople = [
},
{
name: "Vivian Liu",
- roles: ["Developer"],
+ roles: ["Developer", "VP Operations"],
},
{
name: "Yash Ravipati",
@@ -842,22 +861,26 @@ const constPeople = [
{
name: "Madison Plotkin",
roles: ["TEST Designer"],
+ graduation: 2023,
},
{
name: "Mandy Lai",
- roles: ["Designer"],
+ roles: ["Designer", "Marketing Lead"],
},
{
name: "Melanie Haro",
roles: ["TEST Developer"],
+ graduation: 2023,
},
{
name: "Omar Khalil",
roles: ["TEST Designer"],
+ graduation: 2023,
},
{
name: "Rosario Ortiz",
roles: ["TEST Developer"],
+ graduation: 2023,
},
{
name: "Shana Chen",
@@ -874,6 +897,7 @@ const constPeople = [
{
name: "Yoto Kim",
roles: ["TEST Developer"],
+ graduation: 2023,
},
] as const;
type PersonName = typeof constPeople[number]["name"];
diff --git a/images/all-images.ts b/images/all-images.ts
index dd9df66c..961d172b 100644
--- a/images/all-images.ts
+++ b/images/all-images.ts
@@ -1,7 +1,7 @@
// Do not edit. Automatically generated by generate.ts
const allImages = {
"clients/alum_for_northwood": { width: 100, height: 100, maxSize: 128, extension: ".png" },
- "clients/call_blackline": { width: 512, height: 67, maxSize: 640, extension: ".jpg" },
+ "clients/call_blackline": { width: 1460, height: 186, maxSize: 1920, extension: ".png" },
"clients/center_for_community_health": { width: 940, height: 192, maxSize: 1080, extension: ".png" },
"clients/dynamics_performance_team": { width: 1312, height: 1312, maxSize: 1920, extension: ".jpg" },
"clients/feeding_san_diego": { width: 2550, height: 1220, maxSize: 1920, extension: ".png" },
diff --git a/pages/index.tsx b/pages/index.tsx
index 3ef44a4e..bf271c26 100644
--- a/pages/index.tsx
+++ b/pages/index.tsx
@@ -41,7 +41,7 @@ export default function Home() {
{markdown`
# Triton Software Engineering
-Crafting digital solutions for the community around us.
+Crafting digital solutions for nonprofit organizations in our community.
`}
diff --git a/pages/students.tsx b/pages/students.tsx
index 381e5845..a2d7ca4f 100644
--- a/pages/students.tsx
+++ b/pages/students.tsx
@@ -1,5 +1,6 @@
import React from "react";
+import CollapsibleSection from "../components/CollapsibleSection";
import Hero from "../components/Hero";
import PaddedBox from "../components/PaddedBox";
import PageTitle from "../components/PageTitle";
@@ -31,9 +32,10 @@ ${
? `Please fill out the application form [here](${recruitment.applicationUrl}). Applications are due on ${recruitment.deadline}.`
: "We are no longer accepting applications for this school year. If you are interested, please apply in Fall quarter of the next school year."
}
+`}
-## FAQs
-
+
+ {markdown`
### What is Triton Software Engineering?
Triton Software Engineering (TSE) is a multidisciplinary student organization at UC San Diego. We partner with nonprofits to design and develop software, websites, and mobile applications pro-bono for social good, while giving our developers practical, real world experience.
@@ -56,6 +58,19 @@ There are three stages for both designers and developers. We start with a resume
Interested in applying? [Click here!](${recruitment.applicationUrl})
+### How many project teams are there? How are TSE projects structured?
+
+The number of project teams in TSE depends on the number of nonprofits we are able to secure collaborations with every year. In the past school year, we had 7 project teams.
+
+In the 2022-2023 school year, TSE’s structure consisted of our board, a design team, 6 project-based teams, and the TEST team. Each project team was made up of an engineering manager, a product manager, 8 developers, and 2-3 designers. Teams work independently of one another to create software for the nonprofit organization that they have been assigned to.
+
+### How can I stay up-to-date with upcoming TSE events?
+
+We host both internal and public events. To find our public events, follow us on [Facebook](https://www.facebook.com/TritonSE) and [Instagram](https://www.instagram.com/ucsd_tse/). You can also find a list of our past and upcoming events [here](/events).
+`}
+
+
+ {markdown`
### What computer science knowledge is expected for the developer recruitment process?
Here is the knowledge we expect for each grade level. The interview questions might not cover all of these topics, and it might be possible to pass the interviews without knowing all of these topics, but our interview questions are designed with these expectations in mind.
@@ -103,40 +118,25 @@ To prep for the technical interview:
- Expect to solve one or more programming tasks, which may have multiple parts. Be mindful of edge cases, and discuss your approach with your interviewer before you start writing code.
- You will be evaluated on your communication and problem-solving skills, the readability, maintainability, and correctness of your code, and (for juniors/seniors) the algorithmic performance of your code.
+### What does being a developer look like at TSE?
+
+We emulate the Agile Workflow to give our developers some insight on industry standards. Developers complete weekly tasks assigned to them by their project manager during their team meetings. The work that you will be doing depends on your client. For most web development work, we tend to stick to the MERN stack, and for most cross-platform mobile development, we focus on using React Native with Expo. This means that, as a whole, TSE ends up with many JavaScript-based applications. However, depending on the client's needs, we have been known to use other technologies, such as TypeScript, Go, and PostgreSQL. Typically, developers spend 4-6 hours a week on TSE activities.
+ `}
+
+
+ {markdown`
### How can I prepare for the technical interview in the designer recruitment process?
Be prepared to present a past project you worked on. The presentation will be a total of 25 minutes, with 15 minutes of presentation and 10 minutes of questions. It is recommended to have either slides or some sort of visual component to your presentation.
Be prepared to solve a design challenge. You will be given a prompt similar to an actual TSE project and will have 30 minutes to demonstrate your ability to think through and solve this problem. You should be prepared to both talk through your thought process as well as create some very low fidelity visuals to convey your ideas. We really want to understand what you are thinking the whole time, so please think out loud! If you get stuck at any point, the interviewer(s) will be there to help guide you
-### How many project teams are there? How are TSE projects structured?
-
-The number of project teams in TSE depends on the number of nonprofits we are able to secure collaborations with every year. In the past two school years, we had 7 project teams.
-
-In the 2021-2022 school year, TSE’s structure consisted of our board, a design team, 6 project-based teams, and the TEST team. Each project team was made up of an engineering manager, a product manager, 6 developers, and 2-3 designers. Teams work independently of one another to create software for the nonprofit organization that they have been assigned to.
-
-### What does being a product manager look like at TSE?
-
-A product manager is on a project team with developers and designers. They attend every client meeting to understand the nonprofit’s needs and convert them into features that designers and developers will work on building. The product manager may have 1 client meeting each week, as well as a team meeting where they can communicate their updates. Finally, they’ll also meet with the rest of the product managers each week to update each other on their progress. There will also be documentation written every few weeks to keep track of changes to the product roadmap. A typical week for product managers has 3-4 meetings and a couple of hours worth of preparation, totaling up to 4-6 hours worth of work per week.
-
### What does being a designer look like at TSE?
Designers communicate closely with our nonprofit clients in order to craft user flows, wireframes, and prototypes that align with their needs. Designers often take on projects in pairs. They are the ones creating the detailed plan for the end solution, which is then eventually handed off to TSE developers. There’s a variety of types of projects, ranging from website rebranding to internal software tools. Typically, designers spend 5-7 hours a week on TSE activities.
-
-### What does being a developer look like at TSE?
-
-We emulate the Agile Workflow to give our developers some insight on industry standards. Developers complete weekly tasks assigned to them by their project manager during their team meetings. The work that you will be doing depends on your client. For most web development work, we tend to stick to the MERN stack, and for most cross-platform mobile development, we focus on using React Native with Expo. This means that, as a whole, TSE ends up with many JavaScript-based applications. However, depending on the client's needs, we have been known to use other technologies, such as TypeScript, Go, and PostgreSQL. Typically, developers spend 4-6 hours a week on TSE activities.
-
-### How can I stay up-to-date with upcoming TSE events?
-
-We host both internal and public events. To find our public events, follow us on [Facebook](https://www.facebook.com/TritonSE) and [Instagram](https://www.instagram.com/ucsd_tse/). You can also find a list of our past and upcoming events [here](/events).
-
-### How did TSE operate during the pandemic?
-
-We worked in a hybrid model during the pandemic. Now, we are continuing our hybrid model while increasing in person activities. Our last recruitment season was completely online and we plan to continue the online structure this year. We will do our best to provide as much support as possible through in person Information Sessions and various panels, but all interviews and phone screens will continue to be remote.
-
-All TSE team meetings and work are conducted in a hybrid structure at the moment. We will be continuing regular virtual & in person workshops and social events. This year, all of our events are primarily in person. For the most up-to-date information, visit our Facebook page or check out upcoming events [here](/events).
-
+ `}
+
+ {markdown`
## Still have questions?
If you still have any questions regarding how to get involved with us, please feel free to contact us at [tse@ucsd.edu](mailto:tse@ucsd.edu) and we will get in touch with you as soon as possible.