initial commit

This commit is contained in:
Nicolas Trimborn 2023-03-01 14:28:50 +01:00
commit 3cac42269b
26 changed files with 139136 additions and 0 deletions

19
.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
# Created by https://www.toptal.com/developers/gitignore/api/hugo
# Edit at https://www.toptal.com/developers/gitignore?templates=hugo
### Hugo ###
# Generated files by hugo
/public/
/resources/_gen/
/assets/jsconfig.json
hugo_stats.json
# Executable may be added to repository
hugo.exe
hugo.darwin
hugo.linux
# Temporary lock file while building
/.hugo_build.lock
# End of https://www.toptal.com/developers/gitignore/api/hugo

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "themes/hugo-resume"]
path = themes/hugo-resume
url = https://github.com/eddiewebb/hugo-resume.git

6
archetypes/default.md Normal file
View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

43
config.toml Normal file
View File

@ -0,0 +1,43 @@
title = "Nicolas Trimborn"
baseURL = "https://www.nicktrimborn.de"
theme = "hugo-resume"
languageCode = "en-us"
PygmentsCodeFences = true
PygmentsCodeFencesGuessSyntax = true
PygmentsStyle = "monokai"
enableGitInfo = false
[params]
address = "Munich, Germany"
email = "nick.trimborn@gmail.com"
favicon = "/favicon.ico"
firstName = "Nicolas"
lastName = "Trimborn"
#phone = "1-555-555-1234"
profileImage = "img/me.jpg"
showEducation = true
showExperience = true
showOpenSource = false
showProjects = false
showPublications = true
showQr = false
showSkills = true
[params.google]
[params.google.analytics]
trackerID = "XX-123446-01"
[[params.handles]]
link = "https://www.linkedin.com/in/nicolas-trimborn-13425428/"
name = "LinkedIn"
[[params.handles]]
link = "https://git.nicktrimborn.de"
name = "Git"
[outputs]
home = ["HTML", "JSON"]
[taxonomies]
tag = "tags"

17
content/_index.md Normal file
View File

@ -0,0 +1,17 @@
---
title: "Home"
date: 2018-02-10T18:56:13-05:00
sitemap:
priority : 1.0
outputs:
- html
- rss
- json
---
Experienced Engineer with a broad range of skills and a passion for electronics for robotic applications. Background in circuit and PCB design, component and system level testing and EMC compliance testing. Strong interest in embedded system design and firmware development both professionally and for personal projects.
Prior career experience in mechanical engineering, with 7+ years in the Mining and Oil & Gas Industry, including 5 years of construction and field engineering experience on large capital Liquefied Natural Gas (LNG) construction projects.
[Full Resume](files/resume.pdf)

59
content/blog/force-ssl.md Normal file
View File

@ -0,0 +1,59 @@
---
title: 'Forcing Visits to use SSL'
date: Thu, 01 Jan 2009 14:09:10 +0000
draft: false
tags: [apache, apache, redirect, rewrite, ssl, web development]
---
Intro
-----
Doesn't matter whether it's a CakePHP app for a client, your own personal CMS, or any other web based application. **If your passing around passwords or other sensitive info you should really implement SSL.** SSL provides 2 main perks to your visitors.
* First it encrypts all communication that flies across the web. This prevents curious or devious billies from getting your secrets.
* Secondly it ensures to the user that your server is in fact who it claims, and not a nasty 'man in the middle" attack.
* Finally it gives your site that touch of class.... which of course a classy person like yourself relies on.
Once you implement SSL certificates on your server you'll want to **require secure connections** using Apache's rewrite module. Now I won't dwell on the creation and signing of certificates, its already well documented.  If your just starting out though,heres a few links I recommend;
* [Creating self-signed certificates](http://www.tc.umn.edu/~brams006/selfsign.html "Creating and Signing your own SSL Certificate") (free, but should only be used internally or for testing, users will; see an 'Untrusted" warning)
* [Requesting a CA Signed certificate](http://www.google.com/url?sa=t&source=web&ct=res&cd=10&url=http%3A%2F%2Fwww.lsu.edu%2Fpki%2FSSL_Certificate_Apache.pdf&ei=Z8FcSbDRGaCY8gTdk7GHDQ&usg=AFQjCNELddGd6jW1_Dv1X-CaocEVa4rV2A&sig2=FQMNaM_RlhngJW3MSYiQzw "Generating a Certificate Signing Request") (not free, but the final certificate is trusted and seamless for users)
The second link uses the schools internal CA, you will need to pay a public CA like Entrust or Verisign. **All of this information is aimed at 'nix or solaris servers running apache**. Why? cause a production windows server is laughable :-p
Now that you have a certificate, whats next?
--------------------------------------------
So there you are you have a shiny new Certificate and Server key, how do you force visitors to your apache driven site to use the SSL? You copied the certificates into the appropite locations right? And you have made the needed changes in httpd.conf right? So now when you view https://example.com you see a 'trusted' warning or your site right? If No to any of these than [this article](http://www.sitepoint.com/article/securing-apache-2-server-ssl/ "Securing Apcche Server with SSL") does a pretty good job of outlining those steps.
The SSL Works, How do I force connections to use it?
----------------------------------------------------
First you need to decide if you want to force every page on your site to use SSL, or only a particular sub-domain, or maybe just your admin directory.  Since the overhead is minimal there is no harm is forcing the entire domain to leverage SSL, but if it is a self-signed certificate for your personal use than you'll most certainly want to restrict its use to your own areas. This prevents users from seeing that nasty warning "This server is not trusted" You'll know if your using SSL because the url prefix changes from http to https (s for secure).
### Forcing entire domain to use SSL
**You want any visit, any where to use ssl**. This probably the simplest solution. Create or append to your htaccess file in the top directory of your server. Some people use a port check (80 is typically http, while 443 is https) but if you have alernate configs or the user just adds :8080 to the end of the url this method is useless. Instead check whether the https environmental variable is set, if not then redirect.
```
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 \[R,L\]
```
### Forcing sub-domains to use SSL
Maybe **you only want mysecretarea.example.com to use SSL**, that's easy enough. Its the same premise as above, but you move the htaccess file into the directory that corresponds to the subdomain. Also change the second line like below;
```
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://mysecretarea.%{SERVER_NAME}$1 \[R,L\]
```
### Forcing a directory to use SSL
This method cn get a little hairier if your using aliases or redirects on top of this one. You'll need to consider what order the commands are read. The basic principle is like so.  **You want all visits to example.com/admin to use ssl.** Create a htaccess file in the parent directory.  Again will check for the https variable, but this time we also check for the sub-directory to be in the path.
```
RewriteCond %{HTTPS} !=on
RewriteRule ^/admin/(.*)$ https://%{SERVER_NAME}/admin/$1 \[R,L\]
```

View File

@ -0,0 +1,13 @@
---
title: "Projects"
sitemap:
priority : 0.9
---
<!--
This page represents the landing page for "projects" section. It is also shown under the homepage header for "projects". It should be therefore relatively short and sweet.
IN the dfault theme, "projects" is divided among "Creations" you authored and "contributions" made to others projects.
-->
<p>This section contains projects <a href="/projects/creations">created</a> and <a href="/projects/contributions">contributed</a> to by Eddie. Everything listed is an open source effort, the distinction is only my role as owner or contributor.</p>

View File

@ -0,0 +1,22 @@
---
title: Open Source Contributions
date: 2020-01-07T16:49:15.046Z
link: NA
image: /img/marketplace-summary.webp
description: NA
tags:
- ''
weight: 20
sitemap:
priority: 0.5
weight: 0.5
---
<!--
This page represents the landing page for "contributions" section. It is also shown under the homepage header for "contributions". It should be therefore relatively short and sweet.
-->
<p>A collection of efforts to which I contributed, but did not create. Contributing back to Open Source projects is a strong passion of mine, and requires a considerate approach to learn norms, standards and approach for each community for a successful merge!</p>

View File

@ -0,0 +1,14 @@
---
title: "Atlassian Deployment Triggers"
link: "https://bitbucket.org/atlassianlabs/bamboo-after-deployment-trigger/pull-requests/2/fixes-issue-2-eliminate/diff"
image: "/img/deploysonly.webp"
description: "Uses Async call to lucene index for super fast autocompletion to address performance issue loading config."
featured: true
tags: ["Java","jQuery","REST APIs","Bamboo","JSON"]
fact: "Reduce page load time from minutes to instantaneous."
weight: 100
sitemap:
priority : 0.8
---
Addressed pretty significant page load performance issue founde in larger deployments. Eliminates uses of intensive backend query, replacing it with an asynchronous API call against a lucene index. This change reduces page load from from 2+ minutes to nearly instant, with an incredibly responsive UI.

View File

@ -0,0 +1,20 @@
---
title: Schema.org Structured Data documentation fixes
date: 2020-01-07T17:08:21.433Z
link: 'https://github.com/schemaorg/schemaorg/pull/1120'
image: /img/schema-org.webp
description: >-
Not all pull requests are glorious code, documentation is really important
too! This commit fixed some invalid JSON found in some example specs.
tags:
- JSON
fact: >-
Schema.org provides a common specification for Structured Data on the
internet.
weight: 999
sitemap:
priority: 0.8
weight: 0.1
---
While adding *Structured Data* to a client's website I found some example JSON that was invalid. Simple contribution to cleanup the user documentation providing syntactically valid JSON documents.

View File

@ -0,0 +1,22 @@
---
title: Added Docker Build Status Badge to shields.io
date: 2020-01-07T17:09:26.037Z
featured: true
link: 'https://github.com/badges/shields/pull/856'
image: >-
https://img.shields.io/docker/build/eddiewebb/bitbucket-pipelines-marketplace.svg?style=plastic
description: Added a shield for Docker Hub builds indicating state of last build
tags:
- Docker
- Rest APIs
- JavaScript
- node.js
- JSON
fact: ''
weight: 500
sitemap:
priority: 0.8
weight: 0.4
---
Shields.io is a massive library of badges that can be inserted into project README's or websites displaying various statuses (code coverage, health, version, etc).  Support for docker was missing the current build health, and was a pretty trivial addition.

View File

@ -0,0 +1,20 @@
---
title: Creations
date: 2020-01-07T15:00:28.528Z
link: Not applicable
image: /img/marketplace-summary.webp
description: Not applicable
weight: 10
sitemap:
priority: 0.5
weight: 0.8
---
<!--
This page represents the landing page for "creations" section. It is also shown under the homepage header for "creations". It should be therefore relatively short and sweet.
\-->
<p>A collection of projects authored by Eddie, and likely shared out with the community as an open source project.</p>

View File

@ -0,0 +1,13 @@
{
"title": "BOSH release for Bamboo & Remote Agents",
"date": "2018-02-11T12:41:05-05:00",
"image": "/img/circleci-workflow.webp",
"link": "https://github.com/eddiewebb/bosh-bamboo",
"image": "/img/aafb-agent-ids-match-bamboo.webp",
"description": "BOSH (Bosh Outer SHell) \"<em>is an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems.</em>\" And it's amazingly powerful. This examples uses BOSH to provision an Alassian vendor app running on JDK along with the support Postgres database and agents to support it.  The releases manages the health of services and will automatically provision, start/stop processes across the various services.",
"tags": ["DevOps","BOSH", "Java", "Atlassian Ecosystem", "monit", "python", "xml/xslt", "bash/shell","REST APIs"],
"fact": "",
"featured":true
}
BOSH (Bosh Outer SHell) "...<em> is an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems.</em>" And it's amazingly powerful. This examples uses BOSH to provision an Alassian vendor app running on JDK along with the support Postgres database and agents to support it.  The releases manages the health of services and will automatically provision, start/stop processes across the various services.

View File

@ -0,0 +1,18 @@
{
"title":"Docker image for Bitbucket CI/CD Pipelines  \"shipit\"",
"link":"https://hub.docker.com/r/eddiewebb/bitbucket-pipelines-marketplace/",
"image":"/img/docker-pipelines.webp",
"description":"Provides required dependencies and additional utilities to simplify and codify the process of building, testing and delivering Atlassian plugins all the way to the live marketplace.<ul> <li>Executes integration/AUT level tests against all stated compatible versions for the product</li><li>Uploads generated artifact to Atlassian marketplace</li><li>Provides corresponding metadata indicating version, release notes, and compatibility</li></ul>",
"tags":[
"Docker",
"Maven",
"Java",
"Python",
"REST APIs",
"Bash/Shell"
],
"fact":" 700+ \"pulls\" from docker hub"
}
Provides required dependencies and additional utilities to simplify and codify the process of building, testing and delivering Atlassian plugins all the way to the live marketplace.<ul> <li>Executes integration/AUT level tests against all stated compatible versions for the product</li><li>Uploads generated artifact to Atlassian marketplace</li><li>Provides corresponding metadata indicating version, release notes, and compatibility</li></ul>

View File

@ -0,0 +1,11 @@
{
"title":"Atlassian Marketplace Plugins",
"link":"https://marketplace.atlassian.com/vendors/1017039",
"image":"/img/marketplace-summary.webp",
"description":"Multiple plugins used by thousands of teams that provide enhanced functionality of Atlassians core products (primarily JIRA and Bamboo) to enrich CI/CD capabilities, DevOps automation, or productivity. Functionality spans user interface, web services and persistence.",
"tags":["Java", "Spring", "REST APIs", "Javascript", "Atlassian Developer Ecosystem", "Bamboo", "JIRA", "Bitbucket", "Confluence","DevOps"],
"fact":"1,500+ Active installations across large and small companies."
}
Multiple plugins used by thousands of teams that provide enhanced functionality of Atlassians core products (primarily JIRA and Bamboo) to enrich CI/CD capabilities, DevOps automation, or productivity. Functionality spans user interface, web services and persistence.

View File

@ -0,0 +1,14 @@
---
title: "Design, implementation and evaluation of an embedded electronic system for the control of a trans-radial prosthesis"
date: 2021-11-15
pubtype: "Masters Thesis"
featured: true
description: "Focusing on electronics design and embedded software to control a trans-radial prosthesis. Brushless motor control and joint position feedback, absolute orientation, tactile and bio potential signals. Realtime communication with EtherCat."
#tags: ["BLDC","EtherCAT","Embedded","Prosthesis"]
image: "/img/thesisCover.jpg"
link: "https://trepo.tuni.fi/handle/10024/135599?show=full"
fact: "Interesting little tidbit shown below image on summary and detail page"
weight: 400
sitemap:
priority : 0.8
---

View File

@ -0,0 +1,17 @@
---
title: Publications
date: 2020-01-07T16:47:30.077Z
link: NA
image: /img/organicdevops.webp
description: NA
weight: 10
sitemap:
priority: 0.6
weight: 0.5
---
<!--
This page represents the landing page for "publications" section. It is also shown under the homepage header for "publications". It should be therefore relatively short and sweet.
\-->

51
content/search.md Normal file
View File

@ -0,0 +1,51 @@
---
title: "Search Results"
sitemap:
priority : 0.1
layout: "search"
---
This file exists solely to respond to /search URL with the related `search` layout template.
No content shown here is rendered, all content is based in the template layouts/page/search.html
Setting a very low sitemap priority will tell search engines this is not important content.
This implementation uses Fusejs, jquery and mark.js
## Initial setup
Search depends on additional output content type of JSON in config.toml
```
[outputs]
home = ["HTML", "JSON"]
```
## Searching additional fileds
To search additional fields defined in front matter, you must add it in 2 places.
### Edit layouts/_default/index.JSON
This exposes the values in /index.json
i.e. add `category`
```
...
"contents":{{ .Content | plainify | jsonify }}
{{ if .Params.tags }},
"tags":{{ .Params.tags | jsonify }}{{end}},
"categories" : {{ .Params.categories | jsonify }},
...
```
### Edit fuse.js options to Search
`static/js/search.js`
```
keys: [
"title",
"contents",
"tags",
"categories"
]
```

16
data/education.json Normal file
View File

@ -0,0 +1,16 @@
[
{
"school":"[Tampere University](https://https://www.tuni.fi/en)",
"degree":"Master of Science",
"major":"Automation Engineering (Factory Automation & Robotics)",
"notes": "Thesis topic: Design, implementation and evaluation of an embedded electronic system for the control of a trans-radial prosthesis",
"range":"2018 - 2021"
},
{
"school":"[The University of Queensland](https://www.uq.edu.au/)",
"degree":"Bachelor of Engineering (Honours)",
"major":"Extended Major in Mechatronics Engineering",
"notes": "Thesis topic: Ground Control Navigation and Power Systems for an Unmanned Aerial Vehicle",
"range":"2005 - 2009"
}
]

33
data/experience.json Normal file
View File

@ -0,0 +1,33 @@
[
{
"role":"Electronics Engineer",
"company":"[Franka Emika](https://www.franka.de)",
"summary":"Responsible for the development, testing and maintenance of the electronics found in a pioneering TÜV certified collaborative robot. Skilled in the development and testing of electronic components, including power electronics (inverters, motor drives), communications, force/torque sensing and user input. Adept at troubleshooting and problem-solving with a hands-on mentality",
"notes":"August 2015 - May 2018",
"range":"September 2021 - Present"
},
{
"role":"Working Student (Electronics)",
"company":"[Franka Emika](https://www.franka.de)",
"summary":"Working with the electronics department to preform robot testing and troubleshooting. Development of a testing platform to allow for automated unit testing of electronics and firmware during the development stage using Ethercat, CAN bus and standard industrial IO modules",
"range":"November 2020 - August 2021"
},
{
"role":"Mechanical & Piping Engineer ",
"company":"[JGC Corporation](https://www.jgc.com/en/)",
"summary":"Implemented continuous devops pipelines automationing",
"range":"August 2015 - May 2018"
},
{
"role":"Mechanical & Piping Engineer ",
"company":"[Bechtel](https://www.bechtel.com/)",
"summary":"Implemented continuous devops pipelines automationing",
"range":"November 2012 - July 2015"
},
{
"role":"Mechanical Project Engineer ",
"company":"[Bechtel](https://www.bechtel.com/)",
"summary":"Implemented continuous devops pipelines automationing",
"range":"January 2011 - October 2012"
}
]

9
data/skills.json Normal file
View File

@ -0,0 +1,9 @@
[
{
"grouping":"EDA Tools",
"skills":[ "Altium Designer","Eagle", "EasyEDA"]
},{
"grouping":"Languages, Operating Systems & Tools",
"skills":["Python","git","linux","bash","C", "C++"]
}
]

File diff suppressed because one or more lines are too long

BIN
static/files/resume.pdf Normal file

Binary file not shown.

BIN
static/img/me.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
static/img/thesisCover.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

1
themes/hugo-resume Submodule

@ -0,0 +1 @@
Subproject commit ee7df20d8fc87c4b07a7ad3802c85a3454eca2cd