Skip to content
This repository was archived by the owner on Oct 17, 2022. It is now read-only.

Commit b08b1f8

Browse files
authoredNov 1, 2017
Initial setup to render CV (#73)
Main idea behind korni was to render my CV Therefore the commits adds the kornicameiter/CV as the submodule, linking the resume.json into src/static folder. Summary: * Had to disable linting over json * Added entry to CV in links * async route to load both component and resume * resume loaded from public/ * resume.json is hard link to the resume/resume.json
1 parent fb46c64 commit b08b1f8

File tree

10 files changed

+434
-23
lines changed

10 files changed

+434
-23
lines changed
 

‎.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "resume"]
2+
path = resume
3+
url = https://github.com/kornicameister/CV

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"version": "0.2.3",
55
"private": true,
66
"lint-staged": {
7-
"src/**/*.{js,jsx,json,css,ts,tsx}": [
7+
"src/**/*.{js,jsx,css,ts,tsx}": [
88
"yarn lint",
99
"git add"
1010
]

‎public/resume.json

+357
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,357 @@
1+
{
2+
"basics": {
3+
"name": "Tomasz Trębski",
4+
"label": "Programmer",
5+
"picture": "",
6+
"email": "tomasz.trebski@gmail.com",
7+
"phone": "+48 789231312",
8+
"website": "https://kornicameister.github.io/",
9+
"summary": "Man whose work is his pride I am always trying to push myself and others to try and see all variables of the equation as for me there's no ideal solution. There is no such thing as closed door that I wouldn't try to open, the only problem is the time I need to unlock it. I am a person who believes in all the things he can touch, smell and see. Raised to think for himself and to always fight for his beliefs. Never to back down, because nobody will give me what I desire. There are few things that I consider most important in my life, yet my wife and daughter happiness is one of those things. Everything I ever accomplished and will accomplish is dedicated to them.",
10+
"location": {
11+
"address": "Niciarniana 13/4",
12+
"postalCode": "92-238",
13+
"city": "Łódź",
14+
"countryCode": "PL",
15+
"region": "Łódzkie"
16+
},
17+
"profiles": [
18+
{
19+
"network": "Github",
20+
"username": "kornicameister",
21+
"url": "https://github.com/kornicameister"
22+
},
23+
{
24+
"network": "Gitlab",
25+
"username": "kornicameister",
26+
"url": "https://gitlab.com/kornicameister"
27+
},
28+
{
29+
"network": "LinkedIn",
30+
"username": "tomasz.trebski",
31+
"url": "https://www.linkedin.com/in/tomasz.trebski"
32+
},
33+
{
34+
"network": "StackOverflow",
35+
"username": "kornicameister",
36+
"url": "https://stackoverflow.com/users/1396508"
37+
},
38+
{
39+
"network": "LastFM",
40+
"username": "kornicameister",
41+
"url": "https://www.last.fm/pl/user/kornicameister"
42+
}
43+
]
44+
},
45+
"work": [
46+
{
47+
"company": "Fujitsu Technology Solutions Sp. z o.o.",
48+
"position": "Senior Development Engineer",
49+
"website": "http://www.fujitsu.com/pl/about/local/lodz/",
50+
"startDate": "01.11.2017",
51+
"endDate": "",
52+
"summary": "NGI: Cloud Orchestration",
53+
"highlights": [
54+
"Responsible for both client and server side"
55+
]
56+
},
57+
{
58+
"company": "Fujitsu Technology Solutions Sp. z o.o.",
59+
"position": "(Senior) Development Engineer",
60+
"website": "http://www.fujitsu.com/pl/about/local/lodz/",
61+
"startDate": "01.03.2015",
62+
"endDate": "31.10.2017",
63+
"summary": "Cloud Monitoring Management: CMM",
64+
"highlights": [
65+
"Initial author of the open source openstack/monasca-log-api project in Python. Also a contributor to the Java implementation of the same project. Projects aims to be a REST-ful API receiving logs from agents deployed on target machines to collect them",
66+
"Initial author of the open source openstack/monasca-log-api project, Python implementation, also a contributor to the Java implementation of the same project. Projects aims to be a REST-ful API receiving logs from agents deployed on target machines to collect them - plugin bringing multitenancy of OpenStack to Kibana",
67+
"Initial author of the open source keystone-v3-client project - Keystone binding for Node.JS",
68+
"One of the authors of PostgreSQL support for monasca",
69+
"Core-Reviewer at OpenStack’s Gerrit for monasca-* projects, designed to monitor cloud environment",
70+
"Major contributor for monasca at Openstack",
71+
"Contributor to monasca-docker (monasca in containers)",
72+
"Author of several migrations in monasca projects [i.e. oslo.config, cliff]"
73+
]
74+
},
75+
{
76+
"company": "Fujitsu Technology Solutions Sp. z o.o.",
77+
"position": "Development Engineer",
78+
"website": "http://www.fujitsu.com/pl/about/local/lodz/",
79+
"startDate": "01.01.2015",
80+
"endDate": "28.02.2015",
81+
"summary": "OpenService Catalog Manager",
82+
"highlights": [
83+
"Responsible for porting an application to newer Glassfish (3.x), both in server side and client side"
84+
]
85+
},
86+
{
87+
"company": "Transition Technologies Solutions S.A.",
88+
"position": "Java & JavaScript Developer",
89+
"website": "https://tt.com.pl",
90+
"startDate": "01.02.2013",
91+
"endDate": "31.12.2014",
92+
"summary": "",
93+
"highlights": [
94+
"Primarily working with Windchill customization/extensions on 2 different projects. One of them was developed forAirbus Helicopterscom-pany, focused on adding new functionalities according to client specification. Actively participated ind development of migration tool to allowAirbus Helicoptersupload data from their legacy system through JMS queue (Tibco). Customizing Windchill forScaniawas short experience.Assignment were circling around development of new features, mostly frontend of Windchill.",
95+
"Worked as Java/JavaScript developer at project meant to support field technicians. Product was build in client-server architecture, havingWindchill in the backend and web application, based on Angular as a frontend. Being member of this team meant working both with JavaScriptand Java code.",
96+
"Preparing JavaScript trainings (internal, external)",
97+
"Assisting on recruitment of new employees",
98+
"Internship leader"
99+
]
100+
},
101+
{
102+
"company": "Transition Technologies Solutions S.A",
103+
"position": "Intern",
104+
"website": "https://tt.com.pl",
105+
"startDate": "01.06.2012",
106+
"endDate": "31.09.2012",
107+
"summary": "Creating web based application [prototype written in ExtJS] for lifecycle management in Windchill system [PLM]",
108+
"highlights": []
109+
}
110+
],
111+
"volunteer": [],
112+
"education": [
113+
{
114+
"institution": "I Liceum Ogólnokształcące Józefa Chełmońskiego",
115+
"area": "Łowicz",
116+
"studyType": "HighSchool",
117+
"startDate": "2006",
118+
"endDate": "2009",
119+
"gpa": "Mathematic and Computer Science",
120+
"courses": []
121+
},
122+
{
123+
"institution": "Technical University In Łódź",
124+
"area": "Lódź",
125+
"studyType": "Bachelor in Logistic",
126+
"startDate": "2009",
127+
"endDate": "2013",
128+
"gpa": "WMS(Warehouse Management System) implementation with computer tools",
129+
"courses": []
130+
},
131+
{
132+
"institution": "Technical University In Łódź",
133+
"area": "Lódź",
134+
"studyType": "Bachelor in Computer Science",
135+
"startDate": "2010",
136+
"endDate": "2014",
137+
"gpa": "Tool supporting car service station management using Spring application framework",
138+
"courses": []
139+
},
140+
{
141+
"institution": "Technical University In Łódź",
142+
"area": "Lódź",
143+
"studyType": "Master in Computer Science",
144+
"startDate": "2014",
145+
"endDate": "2016",
146+
"gpa": "Collecting, analysis and inferring - meaning of logs in cloud environment",
147+
"courses": []
148+
}
149+
],
150+
"awards": [
151+
{
152+
"title": "Pegazy innowacji",
153+
"date": "2013",
154+
"awarder": "Transition Technologies S.A.",
155+
"summary": "Awarded for overall contribution to the project and internships"
156+
},
157+
{
158+
"title": "Bronze Medal",
159+
"date": "2015",
160+
"awarder": "Fujitsu Technology Solutions Sp. z.o.o",
161+
"summary": "Awarded for the creation of monasca-log-api"
162+
},
163+
{
164+
"title": "Silver Medal",
165+
"date": "2016",
166+
"awarder": "Fujitsu Technology Solutions Sp. z.o.o",
167+
"summary": "Awarded for extraordinary performance and results in the project CMM"
168+
}
169+
],
170+
"publications": [
171+
{
172+
"name": "Monitoring of OpenStack Clouds",
173+
"publisher": "OpenStack Day",
174+
"releaseDate": "2017-03-22",
175+
"website": "",
176+
"summary": "Overview of cloud monitoring with monasca"
177+
},
178+
{
179+
"name": "Monasca Bootcamp",
180+
"publisher": "Openstack Summmit 2016 - Barcelona",
181+
"releaseDate": "2016-10-26",
182+
"website": "",
183+
"summary": "Live presentation of monasca features with practical examples"
184+
}
185+
],
186+
"skills": [
187+
{
188+
"name": "Overall",
189+
"level": "",
190+
"keywords": [
191+
"#team_work",
192+
"#communicative",
193+
"#love_challanges",
194+
"#love_learning"
195+
]
196+
},
197+
{
198+
"name": "Programming",
199+
"level": "",
200+
"keywords": [
201+
"Java",
202+
"ES5",
203+
"ES6",
204+
"HTML5",
205+
"CSS",
206+
"Python2",
207+
"Python 3",
208+
"SQL",
209+
"YAML",
210+
"JSON",
211+
"LaTex",
212+
"TypeScript",
213+
"Bash"
214+
]
215+
},
216+
{
217+
"name": "Python",
218+
"level": "",
219+
"keywords": [
220+
"oslo.*",
221+
"Alembic",
222+
"six",
223+
"gunicorn",
224+
"Falcon",
225+
"tox",
226+
"cliff",
227+
"WSGI"
228+
]
229+
},
230+
{
231+
"name": "Databases",
232+
"level": "",
233+
"keywords": [
234+
"MySQL",
235+
"PostgreSQL",
236+
"ElasticSearch",
237+
"InfluxDB"
238+
]
239+
},
240+
{
241+
"name": "CVS",
242+
"level": "",
243+
"keywords": [
244+
"Git",
245+
"SVN",
246+
"OSC"
247+
]
248+
},
249+
{
250+
"name": "IDEs",
251+
"level": "",
252+
"keywords": [
253+
"Eclipse",
254+
"IntelliJ IDEA",
255+
"WebStorm",
256+
"PyCharm",
257+
"Atom",
258+
"VIM",
259+
"VSCode"
260+
]
261+
},
262+
{
263+
"name": "QA",
264+
"level": "",
265+
"keywords": [
266+
"Travis",
267+
"Gerrit",
268+
"Gitlab CI",
269+
"Openstack CI [Zuul]",
270+
"Github Reviews",
271+
"Gitlab Reviews"
272+
]
273+
},
274+
{
275+
"name": "Java",
276+
"level": "",
277+
"keywords": [
278+
"Spring (MVC, Data, Boot, Rest), ",
279+
"Tetra",
280+
"wro4j",
281+
"jUnit",
282+
"DynamicJasper",
283+
"Wro4j",
284+
"Ehcache",
285+
"c3p0",
286+
"Joda",
287+
"Apache Tiles",
288+
"Jackson",
289+
"Guava",
290+
"Hibernate",
291+
"QueryDSL"
292+
]
293+
},
294+
{
295+
"name": "JS",
296+
"level": "",
297+
"keywords": [
298+
"NodeJS",
299+
"React",
300+
"ExtJS",
301+
"Angular (1.*, familiar with 2.*)",
302+
"Angular Material",
303+
"Dojo",
304+
"jQuery",
305+
"Jasmine",
306+
"Karma",
307+
"NVM",
308+
"Yarn"
309+
]
310+
},
311+
{
312+
"name": "Docker",
313+
"level": "",
314+
"keywords": [
315+
"building",
316+
"publishing",
317+
"export/import",
318+
"compose",
319+
"swarm"
320+
]
321+
},
322+
{
323+
"name": "Deployment",
324+
"level": "",
325+
"keywords": [
326+
"Ansible",
327+
"Crowbar"
328+
]
329+
}
330+
],
331+
"languages": [
332+
{
333+
"language": "Polish",
334+
"fluency": "Native speaker"
335+
},
336+
{
337+
"language": "English",
338+
"fluency": "Fluent in writing and speaking"
339+
}
340+
],
341+
"interests": [
342+
{
343+
"name": "Tanks",
344+
"keywords": [
345+
"Historical battles, History of tanks"
346+
]
347+
},
348+
{
349+
"name": "World of Tanks",
350+
"keywords": [
351+
"MMO",
352+
"Arcade"
353+
]
354+
}
355+
],
356+
"references": []
357+
}

‎resume

Submodule resume added at f89a7d3

‎src/app.tsx

+9-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
} from 'reactstrap';
1515

1616
import TravisBadge from './common/travis_badge';
17-
import { AsyncAbout, AsyncHome, AsyncNotFound, AsyncStats } from './routes';
17+
import { AsyncAbout, AsyncCV, AsyncHome, AsyncNotFound, AsyncStats } from './routes';
1818

1919
interface IAppState {
2020
is_open: boolean;
@@ -49,6 +49,11 @@ export default class App extends React.Component<any, IAppState> {
4949
Home
5050
</RouterNavLink>
5151
</NavItem>
52+
<NavItem>
53+
<RouterNavLink to='/cv' className='nav-link'>
54+
CV
55+
</RouterNavLink>
56+
</NavItem>
5257
<NavItem>
5358
<RouterNavLink to='/about' className='nav-link'>
5459
About
@@ -89,8 +94,9 @@ export default class App extends React.Component<any, IAppState> {
8994
<Fade>
9095
<Switch>
9196
<Route path='/' component={AsyncHome} exact />
92-
<Route path='/about' component={AsyncAbout} exact />
93-
<Route path='/stats' component={AsyncStats} exact />
97+
<Route path='/cv' component={AsyncCV} />
98+
<Route path='/about' component={AsyncAbout} />
99+
<Route path='/stats' component={AsyncStats} />
94100
<Route component={AsyncNotFound} />
95101
</Switch>
96102
</Fade>

‎src/pages/cv.spec.tsx

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { shallow } from 'enzyme';
2+
import * as React from 'react';
3+
4+
import CVPage from './cv';
5+
6+
describe('CVPage', () => {
7+
it('renders without crashing', () => {
8+
shallow(<CVPage resume={{}} />);
9+
});
10+
});

‎src/pages/cv.tsx

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import * as React from 'react';
2+
3+
interface Props {
4+
resume: object;
5+
}
6+
7+
const CVPage: React.SFC<Props> = (props) => {
8+
return (
9+
<h1>CV</h1>
10+
);
11+
};
12+
13+
export default CVPage;

‎src/routes.ts

-19
This file was deleted.

‎src/routes.tsx

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import * as React from 'react';
2+
import Loadable from 'react-loadable';
3+
import RouteLoader from './router';
4+
5+
export const AsyncHome = Loadable({
6+
loader: () => import('./pages/home'),
7+
loading: RouteLoader
8+
});
9+
export const AsyncNotFound = Loadable({
10+
loader: () => import('./pages/not_found'),
11+
loading: RouteLoader
12+
});
13+
export const AsyncAbout = Loadable({
14+
loader: () => import('./pages/about'),
15+
loading: RouteLoader
16+
});
17+
export const AsyncStats = Loadable({
18+
loader: () => import('./pages/stats/stats_page'),
19+
loading: RouteLoader
20+
});
21+
export const AsyncCV = Loadable.Map({
22+
loader: {
23+
CV: () => import('./pages/cv'),
24+
resume: () => fetch(
25+
`${process.env.PUBLIC_URL}/resume.json`,
26+
{
27+
headers: [
28+
['Content-Type', 'application/json'],
29+
['Cache-Control', 'must-revalidate']
30+
]
31+
}
32+
).then((res) => res.json())
33+
},
34+
loading: RouteLoader,
35+
render(loaded, props) {
36+
const CVPage = loaded.CV.default;
37+
const resume = loaded.resume;
38+
return <CVPage {...props} resume={resume} />;
39+
}
40+
});

‎src/static/.gitkeep

Whitespace-only changes.

0 commit comments

Comments
 (0)
This repository has been archived.