|
@ -4,19 +4,32 @@ import Container from "../../components/Container"; |
|
|
|
|
|
|
|
|
const exp = [ |
|
|
const exp = [ |
|
|
{ |
|
|
{ |
|
|
|
|
|
title: "The Feathers", |
|
|
|
|
|
location: "Chennai (formerly Tirunelveli and Ooty)", |
|
|
|
|
|
position: "Founder", |
|
|
|
|
|
year: "2011-19", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
title: "StudioFlicks", |
|
|
|
|
|
location: "Remote (Coimbatore)", |
|
|
|
|
|
position: "Co-founder & Creative Head", |
|
|
|
|
|
year: "2013-15", |
|
|
|
|
|
}, |
|
|
|
|
|
{ |
|
|
title: "Vinzas", |
|
|
title: "Vinzas", |
|
|
location: "Chennai", |
|
|
location: "Chennai", |
|
|
position: "Architectural Intern", |
|
|
position: "Architectural Intern", |
|
|
year: "2014", |
|
|
year: "2014", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
title: "BlueCube", |
|
|
title: "Blue Cube", |
|
|
location: "Chennai", |
|
|
location: "Chennai", |
|
|
position: "Architectural Intern", |
|
|
position: "Architectural Intern", |
|
|
year: "2015", |
|
|
year: "2015", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
title: "OutFocus Magazine", |
|
|
title: "OutFocus Magazine", |
|
|
|
|
|
location: "Ooty", |
|
|
position: "Editor / developer", |
|
|
position: "Editor / developer", |
|
|
year: "2014-17", |
|
|
year: "2014-17", |
|
|
}, |
|
|
}, |
|
@ -40,14 +53,14 @@ const exp = [ |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
title: "Hugo's Way", |
|
|
title: "Hugo's Way", |
|
|
location: "Remote", |
|
|
location: "Remote (Dublin)", |
|
|
position: "Full stack developer", |
|
|
position: "Full stack developer", |
|
|
year: "2018-19", |
|
|
year: "2018-19", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
title: "Navana Tech", |
|
|
title: "Navana Tech", |
|
|
location: "Remote", |
|
|
location: "Remote (Mumbai)", |
|
|
position: "Lead web & architect", |
|
|
position: "Lead webdev & architect", |
|
|
year: "2021-22", |
|
|
year: "2021-22", |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
@ -56,7 +69,7 @@ const exp = [ |
|
|
position: "Chief Maker", |
|
|
position: "Chief Maker", |
|
|
year: "2019-present", |
|
|
year: "2019-present", |
|
|
}, |
|
|
}, |
|
|
]; |
|
|
].reverse(); |
|
|
|
|
|
|
|
|
const Circle: React.FC = () => ( |
|
|
const Circle: React.FC = () => ( |
|
|
<div> |
|
|
<div> |
|
@ -67,7 +80,9 @@ const Circle: React.FC = () => ( |
|
|
background: #333333; |
|
|
background: #333333; |
|
|
left: -50vw; |
|
|
left: -50vw; |
|
|
position: absolute; |
|
|
position: absolute; |
|
|
top: calc(-2rem + 0.25rem / 2 - 0.5px); |
|
|
top: calc(2rem + 0.25rem / 2); |
|
|
|
|
|
/* centre it to the circle */ |
|
|
|
|
|
transform: translateY(-50%); |
|
|
z-index: 0; |
|
|
z-index: 0; |
|
|
`}></div>
|
|
|
`}></div>
|
|
|
<div |
|
|
<div |
|
@ -77,7 +92,7 @@ const Circle: React.FC = () => ( |
|
|
background: #ffffff; |
|
|
background: #ffffff; |
|
|
border-radius: 100%; |
|
|
border-radius: 100%; |
|
|
position: absolute; |
|
|
position: absolute; |
|
|
top: -2rem; |
|
|
top: 2rem; |
|
|
left: 0; |
|
|
left: 0; |
|
|
z-index: 100; |
|
|
z-index: 100; |
|
|
`}></div>
|
|
|
`}></div>
|
|
@ -96,22 +111,36 @@ const ExpUnit: React.FC<Experience> = ({ title, location, position, year }) => { |
|
|
<div |
|
|
<div |
|
|
className={css` |
|
|
className={css` |
|
|
position: relative; |
|
|
position: relative; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
flex-direction: column; |
|
|
|
|
|
gap: 0.6rem; |
|
|
|
|
|
& * { |
|
|
|
|
|
line-height: 1em; |
|
|
|
|
|
} |
|
|
|
|
|
& h5 { |
|
|
|
|
|
color: var(--text-subdued); |
|
|
|
|
|
font-weight: 400; |
|
|
|
|
|
font-size: 0.9rem; |
|
|
|
|
|
} |
|
|
`}>
|
|
|
`}>
|
|
|
<Circle /> |
|
|
<Circle /> |
|
|
<h4>{[title, location].filter(Boolean).join(", ")}</h4> |
|
|
<h4>{title}</h4> |
|
|
<span |
|
|
<div> |
|
|
className={css` |
|
|
<span |
|
|
color: #bdbdbd; |
|
|
className={css` |
|
|
`}>
|
|
|
color: var(--text-colour); |
|
|
{position} |
|
|
`}>
|
|
|
</span> |
|
|
{position} |
|
|
{" . "} |
|
|
</span> |
|
|
<span |
|
|
{" . "} |
|
|
className={css` |
|
|
<span |
|
|
font-weight: 300; |
|
|
className={css` |
|
|
`}>
|
|
|
font-weight: 300; |
|
|
{year} |
|
|
`}>
|
|
|
</span> |
|
|
{year} |
|
|
|
|
|
</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
<h5>{location}</h5> |
|
|
</div> |
|
|
</div> |
|
|
); |
|
|
); |
|
|
}; |
|
|
}; |
|
@ -131,22 +160,32 @@ const age = getAge("27 May 1995"); |
|
|
const Exp: React.FC = () => { |
|
|
const Exp: React.FC = () => { |
|
|
return ( |
|
|
return ( |
|
|
<Container next="/projects"> |
|
|
<Container next="/projects"> |
|
|
<h2>I’m a {age} year old developer from Chennai, India.</h2> |
|
|
<h2> |
|
|
|
|
|
I’m a {age} year old developer from |
|
|
|
|
|
<br /> |
|
|
|
|
|
Chennai, India. |
|
|
|
|
|
</h2> |
|
|
<p> |
|
|
<p> |
|
|
Here are some places I’ve worked at, in reverse chronological order: |
|
|
Here are some places I’ve worked at{" "} |
|
|
|
|
|
<span |
|
|
|
|
|
className={css` |
|
|
|
|
|
/* font-size: 0.8rem; */ |
|
|
|
|
|
color: var(--text-subdued); |
|
|
|
|
|
`}>
|
|
|
|
|
|
(recent first) |
|
|
|
|
|
</span> |
|
|
|
|
|
: |
|
|
</p> |
|
|
</p> |
|
|
<div |
|
|
<div |
|
|
className={css` |
|
|
className={css` |
|
|
display: flex; |
|
|
|
|
|
flex-direction: row-reverse; |
|
|
|
|
|
width: 100%; |
|
|
width: 100%; |
|
|
flex-wrap: wrap-reverse; |
|
|
|
|
|
|
|
|
display: grid; |
|
|
|
|
|
grid-template-columns: repeat(auto-fit, 20rem); |
|
|
|
|
|
gap: 1rem; |
|
|
|
|
|
|
|
|
& > * { |
|
|
& > * { |
|
|
flex-basis: 15rem; |
|
|
padding-top: 4rem; |
|
|
flex-grow: 1; |
|
|
|
|
|
margin-top: 4rem; |
|
|
|
|
|
margin-right: 3%; |
|
|
|
|
|
} |
|
|
} |
|
|
`}>
|
|
|
`}>
|
|
|
{exp.map(unit => ( |
|
|
{exp.map(unit => ( |
|
|