Compare commits

..

2 commits

Author SHA1 Message Date
Gabe Venberg d6c96c5e9a added justfile. 2024-03-24 13:38:57 -05:00
Gabe Venberg 12acf07124 added devshell. 2024-03-24 13:19:14 -05:00
6 changed files with 264 additions and 180 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

3
.gitignore vendored
View file

@ -1,6 +1,9 @@
# Created by https://www.gitignore.io/api/latex # Created by https://www.gitignore.io/api/latex
# Edit at https://www.gitignore.io/?templates=latex # Edit at https://www.gitignore.io/?templates=latex
# direnv
.direnv
*.pdf *.pdf
### LaTeX ### ### LaTeX ###

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1711163522,
"narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

22
flake.nix Normal file
View file

@ -0,0 +1,22 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {inherit system;};
in
with pkgs; {
devShells.default = mkShell {
buildInputs = [texliveFull];
};
});
}

2
justfile Normal file
View file

@ -0,0 +1,2 @@
preview:
latexmk -pdf -pvc

View file

@ -16,208 +16,203 @@
% format two pieces of text, one left aligned and one right aligned % format two pieces of text, one left aligned and one right aligned
\newcommand{\experience}[4]{ \newcommand{\experience}[4]{
\begin{tabularx}{\textwidth}{L R} \begin{tabularx}{\textwidth}{L R}
\multicolumn{2}{p{\textwidth}}{\textbf{#1}}\\ \multicolumn{2}{p{\textwidth}}{\textbf{#1}}\\
\textsc{#2} & #3 \\ \textsc{#2} & #3 \\
\hline \hline
\multicolumn{2}{p{\textwidth}}{#4} \multicolumn{2}{p{\textwidth}}{#4}
\end{tabularx} \end{tabularx}
} }
\begin{document} \begin{document}
\pagestyle{empty}%non numbered pages \pagestyle{empty}%non numbered pages
\section*{Gabe Venberg} \section*{Gabe Venberg}
\begin{tabular}{r l} \begin{tabular}{r l}
%\textsc{Address:} & 1005 7th Ave N Fargo ND 58102\\ %\textsc{Address:} & 1005 7th Ave N Fargo ND 58102\\
\textsc{Phone:} & (218) 517-0917\\ \textsc{Phone:} & (218) 517-0917\\
\textsc{Email:} & \href{mailto:gabevenberg@gmail.com}{gabevenberg@gmail.com}\\ \textsc{Email:} & \href{mailto:gabevenberg@gmail.com}{gabevenberg@gmail.com}\\
\textsc{Website:} & \href{gabevenberg.com}{gabevenberg.com}\\ \textsc{Website:} & \href{gabevenberg.com}{gabevenberg.com}\\
\textsc{GitHub:} & \href{https://github.com/gabevenberg}{github.com/gabevenberg}\\ \textsc{GitHub:} & \href{https://github.com/gabevenberg}{github.com/gabevenberg}\\
\textsc{Personal Git server:} & \href{https://git.venberg.xyz/Gabe}{git.venberg.xyz/Gabe}\\ \textsc{Personal Git server:} & \href{https://git.venberg.xyz/Gabe}{git.venberg.xyz/Gabe}\\
\end{tabular} \end{tabular}
\section*{Work Experience} \section*{Work Experience}
\experience \experience
{John Deere} {John Deere}
{Embedded Linux Engineer} {Embedded Linux Engineer}
{August 2023--current} {August 2023--current}
{ {
\begin{itemize} \begin{itemize}
\item Develop Linux distributions for embedded systems with Yocto \item Develop Linux distributions for embedded systems with Yocto
\item Develop Linux hardware drivers for embedded system \item Develop Linux hardware drivers for embedded system
\item Develop python based Hardware In the Loop testing \item Use Git to collaborate across teams
\item Use Git to collaborate across teams \end{itemize}
\end{itemize} }
} \experience
\experience {Appareo Systems}
{Appareo Systems} {Embedded Systems Intern}
{Embedded Systems Intern} {Summer 2023}
{Summer 2023} {
{ \begin{itemize}
\begin{itemize} \item Implemented and ran functional testing on embedded Linux product, including designing test fixtures using Raspberry Pis to automate testing of electrical properties and RF connectivity
\item Implemented and ran functional testing on embedded Linux product, \item Maintained part numbers for a number of vendor-supplied firmware images, including validating new firmware, assigning new part numbers, and curating internal firmware image library.
including designing test fixtures using Raspberry Pis to automate testing of electrical properties and RF connectivity \end{itemize}
\end{itemize} }
}
\experience \experience
{Kata Containers} {Kata Containers}
{Capstone Student} {Capstone Student}
{Spring Semester 2023} {Spring Semester 2023}
{ {
\begin{itemize} \begin{itemize}
\item Implemented a Rust-based log parser for the Kata Containers project, \item Implemented a Rust-based log parser for the Kata Containers project, including writing unit tests, integrating the tool with existing codebase, and implementing suggestions from code reviewers.
including writing unit tests, integrating the tool with existing codebase, \item Collaborated using the GitHub workflow, chat rooms, and video chat remotely and across 8+hr timezone difference.
and implementing suggestions from code reviewers. \end{itemize}
\item Collaborated using the GitHub workflow, chat rooms, }
and video chat remotely and across 8+hr timezone difference.
\end{itemize}
}
\experience \experience
{Corvent Medical} {Corvent Medical}
{Software Engineering Intern} {Software Engineering Intern}
{Summer 2022} {Summer 2022}
{ {
\begin{itemize} \begin{itemize}
\item Wrote python scripts to translate requirements from word documents into a \item Wrote python scripts to translate requirements from word documents into format understood by a propriatary requirements analysis tool.
format understood by a propriatary requirements analysis tool. \item Performed requirements analysis, wrote and performed software and hardware test procedures, and analyzed test coverage to enable regulatory approval of new medical device.
\item Performed requirements analysis, wrote and performed software and hardware test procedures, \end{itemize}
and analyzed test coverage to enable regulatory approval of new medical device. }
\end{itemize}
}
\experience \experience
{ByteSpeed} {ByteSpeed}
{Computer Technician} {Computer Technician}
{Summer 2021} {Summer 2021}
{ {
\begin{itemize} \begin{itemize}
\item Performed troubleshooting and repair on warrantied computers. \item Performed troubleshooting and repair on warrantied computers.
\item Helped customers with a variety of problems over email, phone, and instant messaging. \item Helped customers with a variety of problems over email, phone, and instant messaging.
\end{itemize} \end{itemize}
} }
\experience \experience
{NDSU Precision Agriculture Center} {NDSU Precision Agriculture Center}
{Part Time Developer} {Developer}
{2020--2021} {2020--2021}
{ {
\begin{itemize} \begin{itemize}
\item Implemented methods of preprocessing LIDAR data with python for a project to predict crop yield using machine learning. \item Implemented methods of preprocessing LIDAR data with python for a project to predict crop yield using machine learning.
\end{itemize} \end{itemize}
} }
\experience \experience
{Integrating Networking} {Integrating Networking}
{Tier 1 and 2 Tech} {Tier 1 and 2 Tech}
{2019--2020} {2019--2020}
{ {
\begin{itemize} \begin{itemize}
\item Performed troubleshooting, repairs, and upgrades on customer computers. \item Performed troubleshooting, repairs, and upgrades on customer computers.
\item Performed network setup for institutional and home networks. \item Performed network setup for institutional and home networks.
\item Estimated cost of customer solutions, including researching and comparing price across vendors. \item Estimated cost of customer solutions, including researching and comparing price across vendors.
\item Implemented a variety of more complex `one off' projects for clients with specific needs. \item Implemented a variety of more complex `one off' projects for clients with specific needs.
\end{itemize} \end{itemize}
} }
\section*{Education} \section*{Education}
\experience \experience
{NDSU---Fargo, North Dakota} {NDSU---Fargo, North Dakota}
{BS in Computer Science} {BS in Computer Science}
{Graduated 2023} {Graduated 2023}
{} {}
\experience \experience
{Alexandria Community College---Alexandria, Minnesota} {Alexandria Community College---Alexandria, Minnesota}
{General Ed Associates Degree} {General Ed Associates Degree}
{Graduated 2020} {Graduated 2020}
{} {}
\begin{minipage}{\linewidth} \begin{minipage}{\linewidth}
\section*{Technology Skills} \section*{Technology Skills}
\begin{tasks}[style=itemize](3) \begin{tasks}[style=itemize](3)
\task Rust \task Rust
\task Python \task Python
\task Java \task Java
\task Bash \task Bash
\task C \task Git version control system
\task Git version control system \task Web Scraping
\task Linux administration \task Linux administration
\task Embedded Linux \task Embedded Linux
\task Network administration \task Network administration
\task Computer repair \task NGINX and Apache web servers
\task \LaTeX{} markup language \task SSH remote management
\task Googling \task VM management
\end{tasks} \task Computer repair
\task \LaTeX{} markup language
\task Googling
\end{tasks}
\end{minipage} \end{minipage}
\section*{Other Experience} \section*{Other Experience}
\experience \experience
{Homelab} {Homelab}
{Home Linux Lab} {Home Linux Lab}
{2019--present} {2019--present}
{ {
Run a home network consisting of 2 physical servers and 6 virtual machines doing a variety of tasks, Run a home network consisting of 2 physical servers and 6 Virtual machines doing a variety of tasks, such as a DNS, an NGINX reverse proxy, and several web servers serving static and dynamic content. Currently running: Nextcloud, GitTea, PiHole, Mainsail, and a static website.
such as a DNS, an NGINX reverse proxy, and several web servers serving static and dynamic content. }
Currently running: Nextcloud, GitTea, PiHole, Mainsail, and a static website.
} \experience
{Open Source Development}
{Contributor to various open source projects}
{2022--present}
{
Have contributed patches of a variety of sizes to open source projects including Python and Kata Containers.
}
\experience \experience
{Open Source Development} {National Cyber League}
{Contributor to various open source projects} {Four-time competitor in the National Cyber League.}
{2022--present} {2021, '22, and '23}
{ {
Have contributed patches of a variety of sizes to open source projects including Python and Kata Containers. Competed for NDSU in the bi-annual National Cyber League in individual and team games, placing in the top 500 individuals and top 200 teams nationwide for three competitions.
} }
\experience
{National Cyber League}
{Four-time competitor in the National Cyber League.}
{2021, '22, and '23}
{
Competed for NDSU in the bi-annual National Cyber League in individual and team games,
placing in the top 500 individuals and top 200 teams nationwide for three competitions.
}
\newpage \newpage
% \section*{keywords} % \section*{keywords}
% {\small % {\small
% If you, a human, are reading this, you don't have to. This is just a list of keywords that the automated filters always want, but are either just alternate wordings of things already on the resume, are in places of the resume that I have found parsers have trouble with, or are trivial (like office experience). All keywords \emph{are} applicable to me. % If you, a human, are reading this, you don't have to. This is just a list of keywords that the automated filters always want, but are either just alternate wordings of things already on the resume, are in places of the resume that I have found parsers have trouble with, or are trivial (like office experience). All keywords \emph{are} applicable to me.
% \tiny % \tiny
% \begin{tasks}[style=itemize](5) % \begin{tasks}[style=itemize](5)
% \task Java % \task Java
% \task Python % \task Python
% \task Rust % \task Rust
% \task Scientific data processing % \task Scientific data processing
% \task Web Scraping % \task Web Scraping
% \task Linux BASH scripting. % \task Linux BASH scripting.
% \task Linux / UNIX command line % \task Linux / UNIX command line
% \task Linux / UNIX administration % \task Linux / UNIX administration
% \task Network Administration % \task Network Administration
% \task NGINX reverse proxies % \task NGINX reverse proxies
% \task NGINX and Apache experience % \task NGINX and Apache experience
% \task SSH remote management % \task SSH remote management
% \task Proxmox % \task Proxmox
% \task Virtual Machine % \task Virtual Machine
% \task Computer maintenance and repair % \task Computer maintenance and repair
% \task LaTeX document markup language. % \task LaTeX document markup language.
% \task Microsoft Word % \task Microsoft Word
% \task Microsoft Excel % \task Microsoft Excel
% \task Word Processing % \task Word Processing
% \task Communication % \task Communication
% \task Customer Support % \task Customer Support
% \task Cyber Security % \task Cyber Security
% \task Agile % \task Agile
% \task Waterfall % \task Waterfall
% \task Software Testing % \task Software Testing
% \task Backup % \task Backup
% \task VPN % \task VPN
% \task Collaboration % \task Phishing
% \task Spreadsheet % \task Collaboration
% \task git % \task Spreadsheet
% \task version control % \task git
% \task VCS % \task version control
% \task leadership % \task VCS
% \end{tasks} % \task leadership
% } % \end{tasks}
% }
\end{document} \end{document}