Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tweaks #460

Merged
merged 11 commits into from
Oct 12, 2024
4 changes: 2 additions & 2 deletions .github/workflows/merge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.17.0, 20.9.0]
node-version: [20.18.0]
steps:
- name: Checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -50,7 +50,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.17.0, 20.9.0]
node-version: [20.18.0]
steps:
- name: Checkout
uses: actions/checkout@v3
Expand Down
36 changes: 11 additions & 25 deletions app/about/page.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import getMarkdownFromFileSystem from "@/actions/file-system/getMarkdownFromFileSystem";
import ShortDate from "@/class/ShortDate";
import MaterialList from "@/components/MaterialLists/MaterialList";
import Reader from "@/components/Reader/Reader";
import Socials from "@/components/Socials/Socials";
import HeadingOne from "@/components/Text/HeadingOne";
import DetailsTable from "@/components/UI/DetailsTable";
import developerName from "@/constants/developerName";
import experienceTime from "@/constants/experience";
import subtitles from "@/constants/subtitles";
import companyDatabaseMap from "@/database/Companies/CompanyDatabaseMap";
import CourseDatabaseKeys from "@/database/Courses/CourseDatabaseKeys";
import courseDatabaseMap from "@/database/Courses/CourseDatabaseMap";
import CourseInterface from "@/database/Courses/CourseInterface";
import ProjectDatabaseKeys from "@/database/Projects/ProjectDatabaseKeys";
Expand Down Expand Up @@ -40,35 +41,20 @@ export default function About() {
}

// Work experience
const firstProfessionalExperience: RoleInterface =
rolesDatabase[RoleDatabaseKeys.CommerzbankDevOpsEngineer];
const latestWorkExperience: RoleInterface = Object.values(rolesDatabase)[0];
const latestRole: string = latestWorkExperience.name;
const latestCompany: string =
companyDatabaseMap[latestWorkExperience.company].name;

// Education
const latestEducation: CourseInterface = Object.values(courseDatabaseMap)[0];
const latestUniversityName: string = latestEducation.university;
const latestCourseName: string = latestEducation.name;
const undergraduate: CourseInterface =
courseDatabaseMap[CourseDatabaseKeys.RHUL_ComputerScience];
const masters: CourseInterface =
courseDatabaseMap[CourseDatabaseKeys.KCL_ArtificialIntelligence];

// Projects
const numberOfProjects: number = Object.keys(ProjectDatabaseKeys).length;

// Experience time
const currentDate: ShortDate = new ShortDate(
new Date().getFullYear(),
new Date().getMonth() + 1
);

const experienceTime: number = Math.round(
currentDate.difference(firstProfessionalExperience.startDate)
);

const formattedExperienceTime: string = currentDate.formatExperienceTime(
firstProfessionalExperience.startDate
);

// Featured material
const featuredMaterial: string[] = [
RoleDatabaseKeys.CommerzbankDevOpsEngineer,
Expand Down Expand Up @@ -141,7 +127,11 @@ export default function About() {
{ heading: "Location", value: "London, UK" },
{
heading: "Bachelor's Degree",
value: `${latestCourseName} at ${latestUniversityName}`,
value: `${undergraduate.name} at ${undergraduate.university}`,
},
{
heading: "Master's Degree",
value: `${masters.name} at ${masters.university}`,
},
{
heading: "Current Role",
Expand All @@ -152,10 +142,6 @@ export default function About() {
value:
1 === experienceTime ? "1 year" : `${experienceTime} years`,
},
{
heading: "Projects",
value: `${numberOfProjects}`,
},
]}
className="grid-cols-1 md:grid-cols-2 lg:grid-cols-1 lg:max-w-[220px]"
/>
Expand Down
22 changes: 12 additions & 10 deletions app/education/[courseKey]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -243,16 +243,17 @@ const CoursesPage: React.FC<CoursesPageProps> = ({ params, searchParams }) => {
</div>
)}

{/* University Name */}
{/* University Name */}
<div
className="
h-full
flex items-center
"
h-full
flex items-center justify-center lg:justify-start
"
>
<p
className="
text-left text-2xl font-bold
text-center lg:text-left text-2xl font-bold
mt-4 lg:mt-0 lg:ml-8
text-neutral-600 dark:text-neutral-300
"
Expand All @@ -261,18 +262,19 @@ const CoursesPage: React.FC<CoursesPageProps> = ({ params, searchParams }) => {
</p>
</div>
</div>
<p className="text-2xl text-neutral-700 dark:text-neutral-200 mt-8">
<p className="text-center lg:text-left text-2xl text-neutral-700 dark:text-neutral-200 mt-8">
{courseData.category}
</p>
<p>{`${courseData.startYear} - ${courseData.endYear}`}</p>
<p className="text-center lg:text-left">{`${courseData.startYear} - ${courseData.endYear}`}</p>

{courseData.grade && (
<div
className="
py-4
flex space-x-1 w-full
text-xl text-neutral-800 dark:text-neutral-300
"
py-4
flex space-x-1 w-full
text-xl text-neutral-800 dark:text-neutral-300
justify-center lg:justify-start
"
>
<p className="font-bold">Grade:</p>
<p>{courseData.grade}</p>
Expand Down
12 changes: 7 additions & 5 deletions components/MaterialItems/WorkItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,19 @@ const WorkItem: React.FC<WorkItemProps> = ({ roleKey }) => {
items-center md:items-start
space-y-4 md:space-y-3 sm:p-0
ease-in-out
rounded-xl
transition-colors duration-700
text-left
"
rounded-xl
transition-colors duration-700
text-left
"
>
<Link href={rolePage}>
<h2
className="
text-3xl md:text-3xl font-bold
md:hover:text-red-500 md:dark:hover:text-red-800
transition-colors duration-700 ease-in-out"
transition-colors duration-700 ease-in-out
text-center
"
>
{roleData.name}
</h2>
Expand Down
38 changes: 38 additions & 0 deletions constants/experience.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import ShortDate from "@/class/ShortDate";
import RoleDatabaseKeys from "@/database/Roles/RoleDatabaseKeys";
import rolesDatabase from "@/database/Roles/RoleDatabaseMap";
import RoleInterface from "@/database/Roles/RoleInterface";

/**
* Computes the total experience in years from a list of jobs.
*
* This function takes an array of job objects, each containing a `startDate` and an `endDate`.
* It calculates the difference in years between the `startDate` and `endDate` for each job
* and sums these differences to return the total experience in years.
*
* @param {Array<{ startDate: ShortDate; endDate: ShortDate }>} jobs - An array of job objects, each with a `startDate` and an `endDate`.
* @returns {number} The total experience in years.
*/
function computeTotalExperience(
jobs: { startDate: ShortDate; endDate: ShortDate }[]
): number {
return jobs.reduce((total, job) => {
const experienceInYears = job.endDate.difference(job.startDate);
return total + experienceInYears;
}, 0); // Start with 0 as the initial total
}

const mainWorkExperience: RoleDatabaseKeys[] = [
RoleDatabaseKeys.CommerzbankDevOpsEngineer,
];

// Calculate total experience for mainWorkExperience
const jobs = mainWorkExperience.map((jobKey) => {
const job: RoleInterface = rolesDatabase[jobKey];
return { startDate: job.startDate, endDate: job.endDate };
});

// Using the helper function to compute total experience
const experienceTime: number = Math.round(computeTotalExperience(jobs));

export default experienceTime;
1 change: 0 additions & 1 deletion constants/subtitles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ const subtitles: string[] = [
"Artificial Intelligence",
"Software Engineering",
"Full-Stack Development",
"Databases",
];

export default subtitles;
2 changes: 1 addition & 1 deletion database/Roles/RoleDatabaseMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import CompanyDatabaseKeys from "../Companies/CompanyDatabaseKeys";

const rolesMap: Database<RoleInterface> = {
[RoleDatabaseKeys.CommerzbankDevOpsEngineer]: {
name: "Backend Engineer",
name: "Backend Software Engineer",
category: ExperienceCategoriesEnum.Software,
type: ExperienceTypeEnum.FullTime,
skills: [
Expand Down
10 changes: 6 additions & 4 deletions public/about/long.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
I hold a First-Class Honours degree in Computer Science from Royal Holloway University of London. I have proven experience working with Python, JavaScript, and TypeScript, and have expertise in managing and designing both relational and non-relational databases. Additionally, I have a strong foundation in various Mathematical disciplines, including Algebra, Calculus, Statistics and more. Currently, I serve as a Backend engineer at Commerzbank, where my responsibilities also encompass Software Engineering.
I hold a First-Class Honours degree in Computer Science from Royal Holloway University of London and am currently pursuing my Master's at King's College London in Artificial Intelligence. My academic background includes a strong mathematical foundation in domains like Algebra, Calculus, and Statistics while having substantial knowledge in the field of programming, software engineering, and Machine Learning.

I participated in several projects that have honed my skills across software and web development, Machine Learning, and software engineering processes. Notable projects include Circus Discussions, a social media platform built with TypeScript, Next.js, React, and Firebase, featuring CI/CD pipelines and Docker for efficient deployments. Another is a Machine Learning endeavour, the House Price Prediction project, where I used algorithms like Random Forest Regressor and Linear Regressors to predict housing prices in California, utilising tools such as Scikit Learn, Pandas and more. Additionally, I contributed to Noodle, a student learning platform, where I managed team tasks and timelines, enhancing my leadership and organizational skills. These experiences have been crucial in developing my ability to produce high-quality, well-documented, and tested code.
Proven experience with Python, JavaScript, and TypeScript; experience with relational and non-relational databases for management and design. Practical experience in Machine Learning, data processing, and web development. Further areas of proficiency: leadership, task management, and development of top-notch, well-documented code.

In addition to my formal education, I've enriched my knowledge and skills through various online courses covering programming, software engineering, web development, Machine Learning, AI, DevOps, and Maths. These courses have been vital for both my career and personal projects. I actively contributed to the GNOME Foundation, particularly in the development of the quick settings feature for GNOME 43, providing valuable feedback, mockups, and engaging in community discussions. Furthermore, I participated in the Google X RHUL Developers Club, collaborating on web development projects with fellow students. These experiences have deepened my understanding and practical skills in a collaborative, real-world environment.
Currently working as a Backend Software Engineer at Commerzbank, most of my assignments involve software engineering in backend system development. This job further enforces my problem-solving skills, teamwork, and leadership. My earlier work experience as a Maths tutor improved my communication and also helped manage my time more effectively.

My diverse roles have honed my abilities in communication, task management, time management, problem-solving, and planning. Currently, I work at Commerzbank as a Backend Engineer, where my role as a team leader has been essential in developing my collaboration and leadership skills. Additionally, my experience as a Maths tutor has strengthened my communication skills, enabling me to effectively interact not only with students but also with their parents. These experiences collectively underscore my proficiency in both technical and soft skills, vital for my professional growth.
I've contributed to various projects, including Circus Discussions: a social media application with TypeScript using Next.js and React on top of Firebase; here, I implemented CI/CD pipelines and used Docker for deployments efficiently. The House Price Prediction project allowed me to predict housing prices using the Random Forest and Linear Regressor algorithms, using Scikit Learn and Pandas. I also contributed to Noodle, a student learning platform, where I managed the tasks and timelines; this improved my project management and organizational skills.

Besides formal education, I have enriched my knowledge with diverse online courses on programming, web development, DevOps, and AI. I am actively contributing to the GNOME Foundation, having provided feedback and mockups for the Quick Settings feature in GNOME 43. Meanwhile, at Google X RHUL Developers Club, I participated in web development projects with students. In this way, both experiences have developed my technical and collaborative skills further in order to be successful in either an individual or team-oriented environment.
6 changes: 3 additions & 3 deletions public/about/short.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
I graduated from Royal Holloway University of London with a **First-Class Honours** degree in Computer Science.
I completed my undergraduate study at Royal Holloway University of London with First Class Honour in **Computer Science**. I am currently pursuing a Master's in **Artificial Intelligence** at King's College London.

My expertise spans several technical areas such as: Software Engineering, Web Development, Machine Learning, DevOps, and Mathematics. To hone my skills and knowledge, I completed many **projects** and earned multiple **certifications**, demonstrating my expertise and commitment to these areas.
My technical expertise spans quite a few categories: Software Engineering, Web Development, Machine Learning, DevOps, and Mathematics. This involved the completion of a great number of **projects** and numerous **certifications** to attest to skill and dedication in all these spheres.

Currently, I work as a **Backend Engineer** at Commerzbank, where I build backend services and enhance operational workflows. I also contribute to **open source**, sharing my expertise through various initiatives.
Currently, I work as a **Backend Software Engineer** at Commerzbank, which includes designing backend services and improving operational workflows. I contribute to open source by sharing expertise through various initiatives.
Loading
Loading