I am a core reviewer in the OpenStack community for StoryBoard,
a task-tracker designed for cross-project work.
It's over here!
I have been working for Codethink Ltd for almost 3 years.
I am currently resourced to work on a proprietary Java codebase,
so my stackalytics etc are sporadic over the most recent cycle.
I have experience with:
OpenStack
I am active in the community,
and am familiar with the processes,
terminology,
and many of the tools. Kendall
Nelson, Adam Coldrick and myself have a talk planned for the
Boston summit!
As a core reviewer on the StoryBoard project,
part of the OpenStack project's infrastructure,
I have gained a working knowledge of the
the infrastructure configuration and documentation,
along with cross-project initiatives. I have a
high-level view of how OpenStack core services fit together,
along with the roles of many other projects,
and I have an understanding of OpenStack governance.
I'm also used to standing up in front of a room full of people
and talking about our work, all over the world...
* In October 2015, I co-moderated a task-tracking
infrastructure session in Tokyo with Thierry Carrez (ttx)
at the Mitaka summit.
* I co-led the Newton task-tracking infrastructure session
in April 2016, Austin, Texas,
with
Adam Coldrick (SotK)
and Craige McWhirter (craige).
* In October 2016, Adam and I co-led the Ocata task-tracking infrastructure
session in Barcelona.
I was previously responsible for announcing StoryBoard news,
so have been interviewed in the OpenStack SuperUser magazine about it a couple
of times (links on the right). I also set up the original
StoryBoard Blog infra,
though these days it's hosted on SotK's server, where it's much happier.
StoryBoard is continuously delivered,
so I am meticulous about testing and reviewing patches,
to ensure that the infrastructure production instance always functions as expected.
I also offer input on UI and UX for works in progress and respond to our users.
I prefer editing existing interfaces to creating interfaces from scratch;
I'm generally more motivated to fix bugs than make new features.
Linux
Common tools,
the shell, the FHS... I don't really know what to say since
I mostly work on Linux and no longer know what I know. I'm most familiar with
Debian and Ubuntu, with some experience with Fedora.
Git
I use Git daily,
and understand how Git itself stores information in trees, blobs and commit objects.
I'm familiar with most git commands
by now, including some 'plumbing' commands (eg: `git cat-file` for reading git objects)
and am familiar with common flags. I have written git hooks, including
one to
automate building documentation with Sphinx.
I also have some familiarity with tig, for more
finegrained history searches, though I'm not proficient with it yet. I use git on both
Linux and Windows.
Gerrit
Gerrit's great!
I use it frequently
for code review, and have written scripts that use the API.
(One reason I'm so fond of Gerrit is that the python gerritlib
API made it easy to do this
back when I knew almost no python)
I've helped test the OpenStack infrastructure staging
instance in the past. I'm currently learning how gerrit's NoteDB
uses git notes to record review information in git
repositories, to help develop a Python NoteDB API.
Python
For professional work,
I mainly use python for scripting;
there are example tutorial scripts I wrote for others
here.
Those are commented versions of the scripts I made
to help with the OpenStack infrastructure team's September 2016
bugsquash.
I like python, as it pushes people to write code that is easy
to understand; communication matters to me. There are also libraries
for
everything.
I'm learning python in more depth at the moment,
so that I can feel more comfortable with frequently-used libraries,
and classes and object-oriented design more generally;
you can follow my progress on
Github.
Java
I use Java on my current
project at work. I have some familiarity with Eclipse, JavaFX and Maven.
Virtual Machines
I use
Virtualbox on a daily basis,
and have used KVM + Virtmanager in the past--
and of course OpenStack's Horizon interface!
HTML, CSS and Bootstrap (eg: this website)
SQL, MySQL, PostgreSQL
StoryBoard uses a MySQL database, and in the past I have done
some work to support PostgreSQL also. Aside from commandline
SQL queries
for both database backends,
I have experience using
alembic to generate database migration scripts, and getting
sqlalchemy to work with both mysql and PostgreSQL
(basically just casting a billion enums).
Docker
I have some experience with
docker administration, including editing dockerfiles,
running containers, working inside them,
and other basic Docker commands,
for proof-of-concept R&D things.
UI design
IRC, mailing lists, etherpads, and other communication tools
C
This was the first programming language I learned,
so it's vaguely familiar to me, especially as Python is based on C.
Perl
I started learning perl a little while ago,
in an effort to translate a Perl codebase into Python. So now I know the
difference between $_, $_[0] and $1 (along with `.` `..` and `...`).
I can't yet write Perl; I can just read (a little of) it.
Setting up computers
I
built my own PC,
partitioned the drives and installed the operating systems.
That doesn't really fit in here,
but I'm noting it anyway,
because I've always wanted to do it. :)
Misc: markdown, Pygame, Github, npm, software licenses, sphinx, pelican, UE4 basics,
documentation, make, gcc, ssh, scp, vim, ubuntu, debian, fedora, Apache, cgit,
bash/shell scripts, Jira, Confluence, Jenkins, Artifactory, Blender
And technically, I've been working in AngularJS for over a year--
but I still feel like I just hack. (I looked at Angular 2 recently, and preferred it;
I got a simple single-page app working fairly quickly-- but packaging was beyond me.
angular-cli has since been recommended to me for that, so I intend to try it sometime.)
Before StoryBoard, I mainly worked on systems engineering,
using a framework to write build and install instructions
for custom operating systems.
I have experience drafting reports
and other written materials. I have helped to train interns
at my current workplace, and I enjoy working publicly in teams.
Academic History
* B.A. (Hons) Philosophy, 2:1, The University of Manchester
Earlier Qualifications
* A Levels: A*, A*, A in English Literature; Drama and Theatre Studies; English Language
* AS Levels: AA in Mathematics; Sociology
* GCSEs: A*A*A*A*AAABC in English Language; English Literature; French; Religious Studies;
Mathematics; Science1; Science2; Drama and Theatre Studies; Art