If you are visiting this site, you have probably read my resume.
This website is my portfolio and goes into much more detail than my resume does.
The overall goal for this website is to showcase my skills beyond what my resume can provide.
This website is not only my portfolio but a record of my experiences with a focus on the last epoch of my life.
I hope to demonstrate a small glimpse into what I can provide as I move forward with my career.
Thank you for taking the time to check out my portfolio.
The site itself is broken into four sections; about me, workflow, projects, and contact me.
If you are limited on time I would suggest quickly reading the about me and workflow sections, then taking a
longer look at the projects
section and last the contact me section.
In the workflow section you can learn about my workflow and how it specifically applied to a couple of my
projects.
In the projects section you can learn more about some of my projects and see examples of some of them.
while ( onward() ) { upward() }
Portfolio by
Andrew Rockwood
About Me
I am a IT professional seeking full-time opportunities in software development, information technology and related
roles.
With a degree in Applied Computing Technology and a minor in Business Administration, I possess
a strong
educational foundation.
I have actively engaged in numerous tech-related projects, including a couple that I am currently
developing
into
a passive side business or open-source venture. The first has been published and can be found
here.
Throughout my experiences, I have honed various skills that are vital to my career.
I excel in troubleshooting software bugs, optimizing human-computer interaction, and designing
efficient
systems.
What truly captivates me about technology is its potential to enhance our lives and create
value.
I am passionate about leveraging technology in ways that positively impact society.
To gain further insights into my work style and principles as a developer, I invite you to explore the
workflow section of my portfolio.
Workflow
In my journey as a developer, I have taken deliberate steps to optimize my workflow, ensuring
efficient
development processes and effective troubleshooting.
Over the past years, I have encountered various challenges that have taught me invaluable lessons.
From managing and designing large, complex projects to successfully completing challenging tasks, I have
learned
to navigate feature creep, project fatigue and overcome perfectionism.
These experiences have led me to develop a set of principles that will guide my career.
Among these principles, the most pivotal one is striking a balance between disciplined creativity and
flexible
disciple.
I have been refining these principles over an extended period, with certain projects playing a
significant
role
in solidifying them.
I consider my principles, combined with my skills, as the embodiment of my workflow in action - a
valuable
asset
in my career.
I am committed to continuously enhancing and improving my workflow throughout my professional journey.
Projects
Here I list some of my projects and provide some code examples.
Each project has a status associated with it.
Working On - Projects I am actively working on.
Maintaining - Projects that are finished and I am maintaining. I will fix bugs and sometimes add new
features.
Archived - Projects that I haven't worked on in a while, although I sometimes revisit them for
reference or educational
value.
Each project also has a complexity score on Scale of 1 - 5, 1 being the least and 5 being the most.
This is more than the number of lines of code, it's how many hours of work has gone into it planing,
developing,
troubleshooting, and debugging the project.
Most projects also have the following sections; a project description, purpose of the project,
technologies
used, notable features,
accomplishments, and example sections.
Some of the projects are formatted differently such as my school
projects which are grouped together.
StickToAPlan Application
Status - Working On
Complexity - 5
Purpose
The purpose of this project is to build an application to help people encourage and push themselves
to
complete difficult
projects.
Description
The application helps you by encouraging and pushing you to work a little each day. The application
is
made up
of three main parts, the project planner, the distraction manager, and the grey area manager.
Technologies Used
C#, Python, Powershell, SQL
Notable Features
The most notable feature is the project planner. A lot of similar software focus a lot on the
distractions
side without anything positive to replace it with. By scheduling time for your important projects
and
having the application help you along the way, you commit
to making progress each day.
Accomplishments
This is the biggest and most complex project I have ever worked on. I have put a lot of time into
this
project. I'm hoping to either turn it into a passive side business or open source it.
Example
if ($distractingWindows.Contains($currentWindow.MainWindowTitle)) {
if ($visitCount[$currentWindow.MainWindowTitle] -gt 3) {
if ($currentWindow.MainWindowTitle -notmatch "Stick To Plan") {
$Win32ShowWindowAsync::ShowWindowAsync($currentWindow.MainWindowHandle, 6)
"You are out of visits." | Show-Notification -ToastTitle "Distractions Manager"
}
}
}
Portfolio (This Website)
Status - Maintaning
Complexity - 3.5
Purpose
The purpose of this project was to build a decent portfolio and practice my development principles.
Description
This website is my portfolio with an epmisis on the last three years.
Technologies Used
HTML, CSS, Javascript
Notable Feautres
Build using fundamental web technologies.
Made to build a foundational template I can use when building other websites.
Made to have a clean simple look that I can expand on.
Includes features to show how the same information can be presented in different ways.
Accomplishments
Building a website without any framework was a rewarding challenge that helped me solidify my fundamental web
development skills.
The purpose of this project is to figure out how to manage windows better.
Description
I have tried a number of alternative window managers such as tiling window managers but they still fell short
for my workflow. I ended up building my own hybrid window manager. This worked better but the other part of
window management was figuring out how to use virtual desktops better.
My most recent window management experiment has been a script that automatically moves windows to the next
virtual desktop.
Technologies Used
Powershell, AutoHotKey
Notable Features
Hybrid window manager is contextual based.
Virtual desktop manager moves a window to the next desktop if it hasn't been used in a while and is not on the
list of project windows.
The purpose of this project was to experiment with the use of a control panel on a website.
Description
A control panel is added to the top of a website. It can be used as an internal development and
testing
tool or also be included in the public facing site to allows users to customize their browsing
experience.
Technologies Used
HTML, CSS, Javascript
Notable Features
Includes a helper section as an alternative to tool-tips.
Is built to be modular and expandable.
Can use analytics with the control panel to see what features users care most about.
Accomplishments
Helped me quickly compare different versions of the site and make decisions on what features to pursue.
Example
if (tipTarget != previousTip) {
let helperText = "";
switch (tipTarget) {
case "default":
helperText = "Hover over or focus elements in the control panel to find out what they do.";
break;
case "basic":
helperText = "Swiches to the basic version of the site.";
status = "Current Version: Basic";
break;
Learn Advanced Keyboard Shortcuts
Status - Maintaining
Complexity - 3
Purpose
The purpose of this project is to learn to solely use the keyboard for more tasks.
Description
To do this I needed to learn more advanced keyboard shortcuts.
I figured out the best way to do this is by intentionally using my mouse less.
Originally I placed my mouse further away from myself.
What I found was there are some tasks that sometimes require using a mouse and others that require it
to be
used almost the entire time.
This led to me moving the mouse closer for the tasks that required it and this ultimately led to
using
the
mouse more overall again which wasn't my goal.
What I ended up doing was using AutoHotKey to write a small script that allows me to use the mouse
as
much as
I need to for certain tasks and limits the amount of clicks in a certain time-frame for others.
Technologies Used
AutoHotKey
Notable Features
The most notable feautre is part of the code that limits the amount of mouse clicks in a certain
time-frame.
Accomplishments
This project has actually helped improve my keyboard shortcut usage by a large amount. This has improved my
productivity and efficiency on certain tasks.
Example
if (y = 1)
{
SetTimer, Reset, 30000
y = 0
}
if (GetKeyState("LButton", "P")) {
if (x < 4) {
Click down
KeyWait, LButton
Click up
x += 1
Sleep 3000
}
return
}
Technology Habits Website
Status - Working On
Complexity - 3
Purpose
The purpose of this website is to talk about building and maintaining a better relationship with our
technology.
Description
There is a lot of research showing some of the downsides of screen based technology. I think a lot of
these
problems can be solved. This website is where I share some of the
solutions that I have discovered, refined or come up with myself. I've created a sort of framework
that I
use
to help with this.
The framework starts with a big picture overview and goes down to the small details of managing each
device.
Technologies Used
HTML, CSS, Javascript
Notable Features
The most important habit I use is to separate device usage into two categories,
is this critical to my day to day operations or is it outside of that.
Uses the template I made for this portfolio and expands on it.
Accomplishments
Learning all of this and organizing it has helped me manage my devices much better. I've learned a lot of
detailed technical knowledge throughout this process.
Contact Me
If you have my resume feel free to contact me on using the contact details provided otherwise you
can
contact
me on LinkedIn.
You can contact me about job opportunities, feedback on my portfolio, questions about my projects.
I look forward to hearing from you and to what the future holds.