Skip to content

Instantly share code, notes, and snippets.

@ckxng
Created December 30, 2019 16:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ckxng/ee6bb0458d43eef0a9251fe27ba5330e to your computer and use it in GitHub Desktop.
Save ckxng/ee6bb0458d43eef0a9251fe27ba5330e to your computer and use it in GitHub Desktop.
#!/usr/bin/perl -wT
package CameronKing::Readme;
use strict;
use 5.005;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(readme);
our $VERSION = '0.20191230';
$ENV{PATH} = "/bin:/usr/bin:/usr/local/bin" if ${^TAINT};
=head1 NAME
CameronKing::Readme - What you should know about working with Cameron.
=head1 SYNOPSIS
Use as a module:
use CameronKing::Readme qw(readme);
print readme;
Use as a script:
./CameronKing/Readme.pm
=head1 INTRODUCTION
Thanks for taking the time to read... me. A little about myself:
I like using tools to solve problems, and more than that I enjoy working with
I<people> to help them solve problems. I find simple solutions especially
appealing. Simplicity can mean a lot of things, but when a solution is simple,
it tends to be easier to use and support. Being on the bleeding edge or having
the most features is not a priority of mine.
I balance my time between work and home, and eventually you'll hear me talk
about travel, Cub Scouts, and my kids. I encourage you to find a comfortable
balance for yourself as well; our industry has a tendency to burn people out.
=head1 METHODS
=over 4
=item I<ideals>
It is my expectation that team members conduct themselves in a professional
manner and strive to live up to the following ideals.
Be trustworthy, so that everyone you work with knows you will do
what you say. Look out for the good of your team and don't leave team
members hanging. Help one another. Be courteous, even when tensions are high.
Show kindness; the little things like a smile or "how was your weekend" make
a huge difference. Obey policies and the law; I will never ask you to break
the law for me or the company. Smile! Be a good steward of the company's
time and resources. Speak up; diverse opinions make the whole team better.
Avoid foul speech and behaviors a reasonable person would find offensive.
Respect the viewpoints of others.
=item I<association>
It is important for us to interact as humans, not just co-workers. It's
worthwhile to "just talk" sometimes, and occasionally I'll let the side
conversations go on during a team meeting on purpose. We can't follow the
agenda I<all the time>. We're not robots (yet). I will look for opportunities
to allow us to interaction outside of planned meetings, and to budget for
periodic meetups and team building activities.
=item I<flexibility>
The things we want to change never do, and the things we prefer to stay the
same are always in motion. I can't control everything, but I can control
how I respond. I ask you to be flexible with me and see unplanned changes
as challenges to be overcome. Semper gumby.
=item I<trust>
I don't like being micro-managed or micro-managing others. I find it
exhausting to have to constantly check up on someone. In order for us to have
the best working relationship, I have to be able to trust that you will give me
straightforward answers, that you will alert me to problems before they become
critical, that you will tell me about mistakes affecting others before I hear
it from them. I default to trusting others in the workplace. Keep that
trust and you will find that I will give you plenty of space to work, and I
will always have your back.
=back
=head1 AVAILABILITY
I keep only one eye on chat and email during business hours, and I log out
completely after-hours. Feel free to send me messages at any time, but I
likely won't respond until the next day. If I send you a message after hours,
I don't expect an immediate response either.
However, I am available 24x7x365 any time you need me. If you've run into an
issue and the path forward isn't clear, I<call me>! Holiday, PTO, vacation in
the moutntains... it doesn't matter. Leave me a voicemail or a text, and I'll
reply if I can.
I also appreciate a head's up if there is an issue within our scope of
responsibility which has affected (or has the potential to affect) our
customers. I won't "get involved" unless you ask for help, but a quick text
letting me know something is brewing helps me be better prepared for the next
day.
=head1 IMPLEMENTATION DETAILS
=head2 PTO
Use your PTO! Just don't use it at the same time everyone else does. I ask
that you coordinate your time off with your peers before submitting it into
the system. I will approve pretty much anything you submit, so long you have
coordinated adequate coverage with the rest of the team.
=head2 Balance your time
If you have to do a significant amount of on-call work during off hours or if
a project requires holiday time/weekend/night work, I expect that you will
adjust your weekday hours accordingly to maintain adequate health and work-life
balance. If you haven't slept, I don't want you online. That's how mistakes
happen. Coordinate this with the rest of the team. If the issue is still
ongoing, make sure to brief your relief on what's going on before you go.
(The same goes for errands and family emergencies, do what you need to do, just
let us know when you'll be back and what we can do to cover for you.)
=head2 Do the right work, completely
The 80/20 rule reminds us that many times, 80% of the value is generated by
20% of the tasks. These tasks are the ones that we should focus on.
However, it is _also_ important that whatever work we decide to do is fully
completed. Once the core functionality is done, we need to wrap it
up (this includes documentation!). Unfinished work creates serious tech debt
and slows us down.
=head2
=head1 KNOWN ISSUES
The following are known issues:
=over 4
=item I<flexibility> occasionally suffers from a buffer overflow.
If too many things change which invalidate the assumptions we've used to develop
our plans, I will get highly annoyed. Give me a minute to reboot, and I'll
be able to focus on the solution.
=over 4
=item hardware platform is single-core and and has limited memory
I am human, and therefore only have a single general-purpose CPU. I can walk and
chew bubble gum at the same time, but only because I have bubble gum chewing
co-processor. RAM is also at a premium. If I fail to respond in a timely manner
to a question or request, it's possible that I've forgotten or it slipped through
the cracks. I try not to let this happen often, but if it does - just remind me.
I'll do the same for you.
=back
=head1 SEE ALSO
=over 4
=item - L<UNIX philosophy|https://en.wikipedia.org/wiki/Unix_philosophy>
=item - L<K.I.S.S.|https://en.wikipedia.org/wiki/KISS_principle>
=item - L<Scout Law|https://meritbadge.org/wiki/index.php/Scout_Law>
=item - L<80%/20% Rule (Pareto principle)|https://en.wikipedia.org/wiki/Pareto_principle>
=back
=head1 COPYRIGHT
Copyright (c) 2019. L<Cameron King|http://cameronking.me>.
This work is licensed under the Creative Commons Attribution 4.0 International
License. To view a copy of this license, visit
http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative
Commons, PO Box 1866, Mountain View, CA 94042, USA.
=cut
sub readme {
return `pod2text $1` if __FILE__ =~ /^([^\\\|&;\<\>\(\)\$`"'\*\?\[#˜=%]+)$/;
}
print readme unless caller;
1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment