From 5ca645bd5e30101af7fc02d1fed6047f8c672b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Nascimento?= Date: Sat, 5 Oct 2024 11:57:54 -0300 Subject: [PATCH] Updated resume --- .../Background/Background.module.css | 5 +- app/components/Bullet.tsx | 10 +++ .../DescriptionContainer/DescriptionItem.tsx | 16 ++-- app/components/Paragraph.tsx | 3 +- app/page.tsx | 6 +- app/projects/page.tsx | 1 + app/resume/page.tsx | 79 +++++++++++++------ 7 files changed, 86 insertions(+), 34 deletions(-) create mode 100644 app/components/Bullet.tsx diff --git a/app/components/Background/Background.module.css b/app/components/Background/Background.module.css index ff76021..9128e20 100644 --- a/app/components/Background/Background.module.css +++ b/app/components/Background/Background.module.css @@ -16,10 +16,11 @@ .backgroundHexagons { mask-image: url('/background-pattern.svg'); animation: rotate 5s linear infinite; - background: linear-gradient(var(--angle), theme(colors.slate.50), theme(colors.slate.300)); + background: linear-gradient(var(--angle), theme(colors.slate.50), theme(colors.slate.200)); } .background { - background-image: linear-gradient(calc(var(--angle) * -1), theme(colors.slate.100), theme(colors.slate.400)); + background-image: linear-gradient(calc(var(--angle) * -1), theme(colors.slate.100), theme(colors.slate.300)); animation: rotate 7.5s linear infinite; } + diff --git a/app/components/Bullet.tsx b/app/components/Bullet.tsx new file mode 100644 index 0000000..6584698 --- /dev/null +++ b/app/components/Bullet.tsx @@ -0,0 +1,10 @@ +import { ComponentPropsWithoutRef } from 'react'; + +export interface BulletProps extends ComponentPropsWithoutRef<'p'> {} + +export function Bullet({ className, ...props }: BulletProps) { + return ( +
+ ); +} + diff --git a/app/components/DescriptionContainer/DescriptionItem.tsx b/app/components/DescriptionContainer/DescriptionItem.tsx index 3c22540..cdfbb81 100644 --- a/app/components/DescriptionContainer/DescriptionItem.tsx +++ b/app/components/DescriptionContainer/DescriptionItem.tsx @@ -1,13 +1,17 @@ import { ComponentPropsWithoutRef } from 'react'; -import { Paragraph } from '..'; +import { Paragraph, ParagraphProps } from '..'; +import { Bullet } from '../Bullet'; -export interface DescriptionItemProps extends ComponentPropsWithoutRef<'li'> {} +export interface DescriptionItemProps extends ComponentPropsWithoutRef<'li'> { + paragraphProps?: Omit; +} -export function DescriptionItem({ children, ...props }: DescriptionItemProps) { +export function DescriptionItem({ children, paragraphProps, ...props }: DescriptionItemProps) { return ( -
  • -
    - {children} +
  • + + {children}
  • ); } + diff --git a/app/components/Paragraph.tsx b/app/components/Paragraph.tsx index ad2a3aa..b0dc1be 100644 --- a/app/components/Paragraph.tsx +++ b/app/components/Paragraph.tsx @@ -6,8 +6,9 @@ export interface ParagraphProps extends ComponentPropsWithoutRef<'p'> { export function Paragraph({ children, className, ...props }: ParagraphProps) { return ( -

    +

    {children}

    ); } + diff --git a/app/page.tsx b/app/page.tsx index d8fcbf0..f8f8cd4 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -19,12 +19,12 @@ export default function Home() { I'm João, a natural problem solver and Devil's Advocate with years of experience. - My most relevant ability is that I tend to learn new stuff fast. Come to me with some idea, proposal, - worldview or argument and we will be set for a good talk.{' '} - Send me a message. + My most relevant skill is to learn fast. Come to me with some idea, proposal, worldview or argument and we + will be set for a good talk. Send me a message. ); } + diff --git a/app/projects/page.tsx b/app/projects/page.tsx index 097e4dc..7fbd546 100644 --- a/app/projects/page.tsx +++ b/app/projects/page.tsx @@ -73,3 +73,4 @@ export default function Projects() { ); } + diff --git a/app/resume/page.tsx b/app/resume/page.tsx index bfb943f..2bc0db9 100644 --- a/app/resume/page.tsx +++ b/app/resume/page.tsx @@ -1,4 +1,5 @@ import { DescriptionBlock, DescriptionBlockProps, DescriptionItem, ExternalLink, Page, Paragraph } from '../components'; +import { Bullet } from '../components/Bullet'; import { MyWorkExperience } from '../components/MyWorkExperience'; import { AZURE_CERTIFICATION, ETR_OPTIMIZATION_GITHUB, IELTS_VALIDATION } from '../utils/constants'; @@ -11,18 +12,49 @@ export default function Resume() { className="[&&]:mt-0 [&&]:lg:mt-0" titleProps={{ className: 'font-semibold' }}> - Full stack developer with of experience in web development. + Fast learner and self-taught software engineer with of experience in web development. - + + + +
      - Leads a team of four developers and mentors a software development intern. Provides tailored feedback to - enhance performance, aiding in comprehension of requirements and their implications. Helped newcomers - achieve an estimated 50% to 100% increase in productivity. + Optimized performance and usability of a Dashboard displaying industrial data with multiple charts + containing hundreds of thousands of points each and a Web GL 3D view, with: +
        + + Caching and lazy loading to reduce app stable memory consumption from 1.2~1.6GB to between 150MB~450MB + under different scenarios. + + + Request splitting and geometry filters to reduce request durations up to 95% in the best scenarios. + + + Prefetching strategies to have features being instantly available on user click, that would otherwise + take over 10s to be available. + +
    + +
    + +
      + + Led the implementation of a new interactive 3D visualization of an oil refinery plant for increased data + contextualization, having left stakeholders impressed by the MVP and wanting to expand its features. + + + Led a team of four developers, providing tailored feedback to enhance performance, aiding in comprehension + of requirements and their implications, fostering improved questioning, workflow organization, and + continuous testing. Helped team members to achieve an estimated 50% to 100% increase in productivity, + measured by reduced time for delivering user stories. + +
    +
      @@ -39,6 +71,7 @@ export default function Resume() { Consistently delivered user stories within 40% to 70% of allocated timeframes.
    +
      @@ -48,6 +81,7 @@ export default function Resume() { position as Developer II, bypassing the typical entry-level position of Developer I.
    +
    @@ -61,23 +95,7 @@ export default function Resume() { Here you can find the source code. - - - - -
      - - Front-end: Typescript, Javascript, HTML, CSS, React, Tailwind CSS, Angular, RxJS, Redux. - - - Back-end: .NET, C#, Dapper, Typescript, Javascript, Node, Express, NextJS, Mongoose. - - Databases: SQL Server, Azure Cosmos DB, Mongo DB. - DevOps: Azure DevOps, Azure Pipelines, Github, Github Actions, Docker. - Cloud: Azure Cloud (Functions, Cosmos DB, App Services, Storage, etc.). - IDEs: VS Code, Visual Studio, SSMS, DBeaver. - Others: Git, Python, Bash, Jest, Vitest, Playwright, xUnit. -
    +
    @@ -121,3 +139,20 @@ function TertiaryBlock(props: DescriptionBlockProps<'h3'>) { function SecondaryBlock(props: DescriptionBlockProps<'h2'>) { return ; } + +function RelevantSkills({ skills }: { skills: string[] }) { + return ( + +
    + Relevant Skills: + {skills.map((s, i) => ( +
    + {i > 0 && } + {s} +
    + ))} +
    +
    + ); +} +