Skip to content

Commit 6f02be4

Browse files
author
Mackenzie Browne
committed
update with cv
1 parent 7114d35 commit 6f02be4

File tree

11 files changed

+492
-241
lines changed

11 files changed

+492
-241
lines changed

.firebaserc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"projects": {
3+
"default": "mackenzie-browne-portfolio"
4+
}
5+
}

.vscode/settings.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"cSpell.words": [
3+
"Elsevier",
4+
"Kanban",
5+
"NYPD",
6+
"Novus",
7+
"Scopus",
8+
"Syfy"
9+
]
10+
}

firebase.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
22
"hosting": {
33
"public": "build",
4+
"headers": [
5+
{ "source":"/service-worker.js", "headers": [{"key": "Cache-Control", "value": "no-cache"}] }
6+
],
47
"ignore": [
58
"firebase.json",
69
"**/.*",

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"react": "^16.13.0",
2222
"react-bootstrap": "^1.0.0-beta.17",
2323
"react-dom": "^16.13.0",
24+
"react-router-dom": "^5.1.2",
2425
"react-scripts": "^3.4.0",
2526
"styled-components": "^5.0.1",
2627
"typeface-roboto": "^0.0.75",
@@ -30,7 +31,7 @@
3031
"start": "react-scripts start",
3132
"build": "react-scripts build",
3233
"print-pdf": "chrome-headless-render-pdf --include-background --url=http://localhost:3000 --pdf=public/resume.pdf --url=http://localhost:3000 --pdf=public/MackenzieBrowneResume.pdf",
33-
"deploy": "yarn build && firebase deploy",
34+
"deploy": "firebase deploy",
3435
"test": "react-scripts test",
3536
"eject": "react-scripts eject"
3637
},

public/MackenzieBrowneResume.pdf

-338 Bytes
Binary file not shown.

public/resume.pdf

-338 Bytes
Binary file not shown.

src/App.tsx

Lines changed: 17 additions & 237 deletions
Original file line numberDiff line numberDiff line change
@@ -1,243 +1,23 @@
11
import React from 'react';
2-
import { Container, Row, Col } from 'react-bootstrap';
3-
4-
// import logo from './logo.svg';
5-
import './App.css';
6-
import {
7-
Title,
8-
TitleLabel,
9-
Summary,
10-
SubTitle,
11-
ExperienceList,
12-
Experience,
13-
Company,
14-
SideList,
15-
Pills,
16-
Position
17-
} from './App.style.js';
2+
import { Switch, Route, BrowserRouter as Router } from 'react-router-dom';
3+
import CoverLetter from './CoverLetter';
4+
import Resume from './Resume';
185

196
export default function App() {
207
return (
21-
<Container className="px-md-0 py-5">
22-
<Row>
23-
<Col>
24-
<Row className="d-flex justify-content-between pr-5">
25-
<Col as={Title} md="auto">
26-
Mackenzie Browne
27-
</Col>
28-
<Col as={TitleLabel} md="auto">
29-
Full Stack and Mobile Developer
30-
</Col>
31-
<Col as={TitleLabel} md="auto">
32-
Amsterdam
33-
</Col>
34-
</Row>
35-
<Summary>
36-
Organized, lifelong learner motivated by difficult challenges.
37-
Self-driven, and enjoys working independently and with teams. Uses a
38-
curated collection of libraries and automation tools to make
39-
development / testing / deployment more efficient.
40-
</Summary>
41-
</Col>
42-
</Row>
43-
<Row>
44-
<Col>
45-
<SubTitle>Experience</SubTitle>
46-
<ExperienceList>
47-
<Experience>
48-
<Company name="Elsevier" location="Amsterdam" />
49-
<Position
50-
title="Senior Full Stack Developer - Scopus Core Team"
51-
time="Feb 2020 - Present"
52-
duties={[
53-
"Perform technical interviews to grow the team. Mentoring and 1 on 1's for to improve team skills",
54-
'Involved in building a design system and shared component library to unify the user experience',
55-
'Involvement in major web stack migration to micro services and micro front-end technologies'
56-
]}
57-
/>
58-
</Experience>
59-
<Experience>
60-
<Company name="Prodigy" location="Toronto" />
61-
<Position
62-
title="Lead Mobile Application Developer - Game"
63-
time="Mar 2019 – Sep 2019"
64-
duties={[
65-
'Improve mobile user experience and design a standardized method for mobile-specific features',
66-
'Lead project to build internal tools from feedback to improve mobile QA testing speed',
67-
'Design and build standardized techniques, automation pipelines for tests, builds and deployment',
68-
'Facilitate cross-team collaboration to improve the mobile experience in all parts of the product'
69-
]}
70-
/>
71-
<Position
72-
title="Senior Full Stack Developer - School Leader App"
73-
time="Jun 2018 – Mar 2019"
74-
duties={[
75-
'Create new features and improve the School Administrator user experience.',
76-
'Develop several in-house tools to improve productivity including CI tools and Slack bots',
77-
'Perform lunch time tech talks. Train and mentor developers in 1 on 1 meetings'
78-
]}
79-
/>
80-
</Experience>
81-
<Experience>
82-
<Company name="Novus Health" location="Toronto" />
83-
<Position
84-
title="Senior Frontend Developer"
85-
time="Oct 2017 – Jun 2018"
86-
duties={[
87-
'Support and maintain the existing Novus app. Includes a user-facing website and a custom CMS',
88-
'Designed a maintainable, reproducible app template that can be used across the Ingle product line. This dramatically reduced the amount of maintenance and bugs',
89-
'Create custom company-facing dashboard app with multiple sign-in routes, analytics and tools',
90-
'Train interns and other employees with pair programming and code reviews'
91-
// TODO: make this in projects
92-
// 'Promote extra curricular coding activities like running a team "Advent Of Code" scoreboard'
93-
]}
94-
/>
95-
</Experience>
96-
<Experience>
97-
<Company
98-
name="Self Incorporated Freelance"
99-
location="Canada, USA (On-Site and Remote)"
100-
/>
101-
<Position
102-
title="Full Stack and Mobile Development"
103-
time="August 2011 – June 2017"
104-
duties={[
105-
'Full-time contracting. Initial requirements meetings through to final product',
106-
'Built Mobile Apps, Websites and Hardware projects involving GPS, Bluetooth and VR',
107-
'Long term maintenance, upgrades or new features to existing products',
108-
'Perform interviews for hiring and develop strategies to grow teams over time',
109-
'Clients included IBM, NYPD, Syfy/Space Channel, NBC, Hatch, and many small startups, nonprofits and charities in the Toronto area'
110-
]}
111-
/>
112-
</Experience>
113-
</ExperienceList>
114-
<SubTitle>Education</SubTitle>
115-
<ExperienceList>
116-
<Experience>
117-
<Company
118-
name="University Of Ontario Institute of Technology"
119-
location="Oshawa, Canada"
120-
/>
121-
<Position
122-
title="Bachelor Of Science with Honours"
123-
time="2007 - 2012"
124-
duties={[
125-
'Computer Science with minor in Mathematics',
126-
'16 Month Internship in Web Application Development at IBM',
127-
'Thesis involving concurrent, multi-core web crawling using Clojure'
128-
]}
129-
/>
130-
</Experience>
131-
</ExperienceList>
132-
{/* <SubTitle>Projects</SubTitle>
133-
<ExperienceList>
134-
<Experience>
135-
<Position
136-
title="Syrup - Real-time Instant Messenger"
137-
time="https://syrup.life - 2019"
138-
/>
139-
<Pills
140-
list={['React Native', 'Firebase', 'Hooks', 'NativeBase']}
141-
/>
142-
</Experience>
143-
<Experience>
144-
<Position
145-
title="Bachelor Of Science with Honours"
146-
time="2007 - 2012"
147-
/>
148-
</Experience>
149-
</ExperienceList> */}
150-
</Col>
151-
<Col md={3}>
152-
<SideList
153-
title="Contact"
154-
list={['info@mackbrowne.com', '+31 061 773 5900']}
155-
/>
156-
<SideList
157-
title="Portfolio"
158-
list={[
159-
'mackbrowne.com',
160-
'linkedin.com/in/mackbrowne',
161-
'github.com/mackbrowne'
162-
]}
163-
/>
164-
<SideList
165-
title="Skills"
166-
list={[
167-
'Single Page Apps',
168-
'Native and Hybrid Apps',
169-
'REST Development',
170-
'Continuous Integration',
171-
'Unit and E2E Testing',
172-
'Customer Facing Pages',
173-
'Responsive Design',
174-
'Agile, Kanban and Scrum',
175-
'Git Flow and Monorepos'
176-
]}
177-
/>
178-
<Pills
179-
title="Frameworks"
180-
list={[
181-
'ReactJS',
182-
'Hooks / Context',
183-
'Redux',
184-
'Styled-Components',
185-
'Jest',
186-
'Cypress',
187-
'NodeJS',
188-
'Typescript',
189-
'GraphQL',
190-
'Bootstrap',
191-
'React-Native',
192-
'Expo',
193-
'Cordova',
194-
'MeteorJS',
195-
'Angular'
196-
]}
197-
/>
198-
<Pills
199-
title="Services"
200-
list={[
201-
'AWS',
202-
'Firebase',
203-
'JIRA',
204-
'CircleCI',
205-
'Google Play',
206-
'Apple Developer',
207-
'Stripe',
208-
'Maps',
209-
'OAuth'
210-
]}
211-
/>
212-
<Pills
213-
title="Tools"
214-
list={[
215-
'Git',
216-
'VSCode',
217-
'Jenkins',
218-
'Vim',
219-
'Prettier',
220-
'Lighthouse',
221-
'Axe'
222-
]}
223-
/>
224-
<Pills
225-
title="Languages"
226-
list={[
227-
'Javascript',
228-
'Typescript',
229-
'ES6',
230-
'MongoDB',
231-
'Java',
232-
'Python',
233-
'GraphQL',
234-
'SQL',
235-
'Clojure',
236-
'C++'
237-
]}
238-
/>
239-
</Col>
240-
</Row>
241-
</Container>
8+
<Router>
9+
<Switch>
10+
<Route exact path="/cv" component={CoverLetter} />
11+
<Route
12+
exact
13+
path="/resume"
14+
component={() => {
15+
window.location.replace('/resume.pdf');
16+
return null;
17+
}}
18+
/>
19+
<Route exact path="/" component={Resume} />
20+
</Switch>
21+
</Router>
24222
);
24323
}

0 commit comments

Comments
 (0)