Skip to content

Commit

Permalink
updated for sparkypants
Browse files Browse the repository at this point in the history
  • Loading branch information
wraithan committed Jul 21, 2017
1 parent 6d60081 commit ccff2cb
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 18 deletions.
6 changes: 3 additions & 3 deletions docs/about.rst
Expand Up @@ -5,7 +5,7 @@ About Me
I'm a software developer from Portland, OR. I spend most of my programming time
in Node.js and Rust. I spent a significant chunk of my past working in Python,
so much so I have a large tattoo of one on my left shoulder! I enjoy exploring
programming language and chatting about them.
programming languages and chatting about them.

##########
Motivators
Expand All @@ -27,7 +27,7 @@ into a system that as evolved for a while and needs to be distilled into clean
concepts again. Taking a messy system and bringing it to order is delightful.

Finally I love teaching folks, whether it is a 1:1 situation or a meetup full of
people. When I still getting started in software, the folks who took the time to
people. When I was just getting started in software, the folks who took the time to
teach me had a huge impact on where I ended up today. I am always trying to pay
it back to the community, whether I'm organizing meetups, mentoring friends or
helping folks out on IRC.
helping folks out online.
1 change: 0 additions & 1 deletion docs/contact.rst
Expand Up @@ -5,7 +5,6 @@ Contact
So, I've intrigued you enough that you want to contact me.

* email: xwraithanx@gmail.com
* irc: Wraithan on irc.freenode.net
* twitter: @wraithan

If you want my phone number or other contact information, use one of the above
Expand Down
38 changes: 31 additions & 7 deletions docs/gigs.rst
Expand Up @@ -8,16 +8,38 @@ non-technical jobs and spending a lot of time on personal
:doc:`projects <\projects>` working to develop the skills needed to
work in the industry.

Sparkypants Studios
###################
Senior Backend Enginer (Feb '16 - Jun '17)
******************************************

I got an opportunity to work on a video game, which had always been a dream of
mine. As backend engineers we built the systems that stored data, matchmaking,
login, and provided C++ libraries for the client and game server engineers to use.
We used a microservice architecture written in Node.js, Python, SQL, and C++. Heavily
using RabbitMQ as our message bus and MySQL as our database.

* Redesigned the matchmaking backend to enable a confirm step before creating the game,
while refactoring all data collection from the database to be just in time instead of
up front eliminating a large class of bugs and AFK users.
* Built an automated deployment system for our staging environment, with fully automatic
registration and decommissioning of game servers on top of systemd and ansible.
* Built and designed a full consent friend system to systemically prevent abuse where
possible.
* Refactored a C++ wrapper around libcurl to standardize header parsing and error
propagation, preventing accidentally ignored errors and making HTTP access code
easier to write.

New Relic
#########
Node.js Agent Engineer (Apr '14 - Present)
********************************************
Node.js Agent Engineer (Apr '14 - Feb '16)
******************************************

My first full time gig working in Node.js. So far this has been an amazing
experience. I've been able to connect with so much of the Node.js community via
my work for New Relic. The Node.js Agent is the library New Relic customers
install in their Node.js applications which monitors it and sends data back to
New Relic servers for analysis.
My first full time gig working in Node.js, and it was an amazing experience.
I've was able to connect with so much of the Node.js community via my work for
New Relic. The Node.js Agent is the library New Relic customers install in
their Node.js applications which monitors it and sends data back to New Relic
servers for analysis.

* Maintained a weekly release cadence for over 52 weeks in a row. Allowing the
agent to respond quickly to the needs of our users.
Expand All @@ -26,6 +48,8 @@ New Relic servers for analysis.
reduction in support escalations.
* Learned about the deep internals of Node.js and v8 in order to make our agent
more accurate and performant.
* Wrote and designed systems that accounted for as many error cases as possible
because an error in the agent could crash a user's system.

Contracting
###########
Expand Down
7 changes: 3 additions & 4 deletions docs/index.rst
Expand Up @@ -12,16 +12,15 @@ The Resume of Wraithan, A Backend Developer
Open Source Bridge 2011.

Hi there, my legal name is Chris McDonald but I prefer `Wraithan
<http://wraithan.net/>`_. This is my web resume. If you are looking for a more
traditional one (may be out of date), you can find that `here
<https://github.com/wraithan/resume/blob/master/scannable_resume.pdf?raw=true>`_.
<http://wraithan.net/>`_. This is my web resume. I'm looking for a job, but I'm
only interested in Portland, OR based jobs or jobs where I could be remote from here.

Who is he?

* A polyglot who enjoys the commonalities and contrasts of each
programming language and platform.
* A native of Portland, OR, USA. (And is not looking to relocate)
* A performance and stability nut.
* Loves tuning systems for performance and stability.
* A nerd, cyclist, and metal head.

I am a Node.js and Rust hacker. Though I have years of Python development
Expand Down
44 changes: 43 additions & 1 deletion docs/projects.rst
Expand Up @@ -6,11 +6,49 @@ The vast majority of my projects are open source and can be found on
GitHub_. This is a list of projects I've written or contributed to in
some way. I love discussing them, so feel free to ask me about them.

##############
Message Broker
##############

`Message Broker`_ is an ongoing project where I'm attempting to write an enterprise
worthy message broker akin to RabbitMQ, Kafka, or Redis' Pub/Sub layer. I plan on
open sourcing once I get it to a usable state, but chunks of the code have been posted
to my blog.

* Building on top of Tokio which is becoming a community standard for building services,
protocols, and as a layer to manage async machinery.
* I'm also writing a best practices book to go along with it, as an exercise in that
type of writing. This way I design the message broker in a usable way that encourages
good system architecture.

########
md-to-wp
########

`md-to-wp`_ is a small rust project I coded up in an afternoon to convert
markdown to a WordPress friendly HTML. This includes colorizing my code examples.
You can see it in action `this blog post`_.

###############
i-can-manage-it
###############

`i-can-manage-it`_ is a game and game engine I started writting to get used to
the world of game development. I haven't open sourced it yet, but I did do some
writing about it as I learned and encounted problems.

* First Rust project where performance really mattered, so I got to spend some
time optimizing.
* Had to learn and relearn linear algebra in order to do the coordinate transforms
to do camera effects and object manipulation I wanted.
* Wrote a debug socket server that I hooked up to an Electron project that displayed
stats about my running game engine.

##########
cargo-bump
##########

`cargo-bump`_ is a command that increases the version number of the rust project
`cargo-bump`_ is a command that increases the version number of the Rust project
you are currently in. It is meant to be a Rust version of npm version.

* A fun exercise in gluing libraries together in Rust.
Expand Down Expand Up @@ -108,6 +146,7 @@ well!


.. _GitHub: https://github.com/wraithan
.. _`i-can-manage-it`: https://wraithan.net/2016/09/11/started-writing-a-game/
.. _`cargo-bump`: https://github.com/wraithan/cargo-bump
.. _`weechat-notifier`: https://github.com/weechat-notifier
.. _WeeChat: https://weechat.org
Expand All @@ -116,3 +155,6 @@ well!
.. _ZenIRCBot: https://github.com/zenirc/zenircbot
.. _this: https://github.com/wraithan/resume
.. _resume: http://resume.readthedocs.org/
.. _`md-to-wp`: https://github.com/wraithan/md-to-wp
.. _`this blog post`: https://wraithan.net/2017/06/15/message-broker-channel-naming/
.. _`Message Broker`: https://wraithan.net/tag/message-broker/
16 changes: 14 additions & 2 deletions docs/technical_skills.rst
Expand Up @@ -9,9 +9,9 @@ file formats, to window managers, to IRC bots, to web sites.
Language Skills:

* Deep understanding of Node.js.
* Have worked with Python, SQL in the recent past.
* Have worked with Python, C++, and SQL in the recent past.
* Have played with Rust quite a bit.
* Have some work experience in the further past in PHP, Perl, Java, C++
* Have some work experience in the further past in PHP, Perl, and Java
* Others I've played with in some capacity or another: Lua, Haskell, Common
Lisp, Clojure, and Go

Expand Down Expand Up @@ -110,6 +110,7 @@ pub/sub. I have use it for:
* Django session storage.
* Celery queue backend (including connection pooling)
* Micro services based IRC bot using Redis' pub/sub as a transport.
* Chat system for a video game

##########
PostgreSQL
Expand All @@ -122,6 +123,14 @@ open source, and I've come to rely on it anytime I need a database.
* Used pgbouncer to do connection pooling to decrease latency.
* Have scaled to tables with millions of rows.

#####
MySQL
#####

Used this in a pretty large database (150+ tables) which required a deeper
understanding of relational algebra than I had previously. Learned many of the
quirks around time handling and strict mode SQL as I wrote queries to gather user
and game state from the database.

###
Git
Expand All @@ -136,6 +145,9 @@ have passion about how to use their version control system.
C++
###

Working on Dropzone at Sparkypants meant developing async C++ libraries for use by
the game client and game server to communicate to the backend services.

In working with hardware I've had to relearn and get better at C++. It was my
first language, so coming back to it after spending years doing other
development is quite a bit of fun. Most of the development has been for arduino
Expand Down

0 comments on commit ccff2cb

Please sign in to comment.