About Cam

Ever since I've known about web technology, I've been immensely interested in all aspects of the internet. I started at HIT Web Design back in 2009 and have jumped between a few tech companies since, all centered around the web! I have a myriad of skills I've acquired through my time on the web including: basic server administration, amatuer design, and web development skill! I taught myself Ruby and Rails to build a project of my own and have been hooked ever since!

I'm looking for the next step to advance my development skills, and I can't think of a better way than an MX apprenticeship! Everyone I've spoken to says MX has the toughest code base, which means the greatest learning opportunities. If I were to be presented with a chance to learn how the systems work, I could use that knowledge and mentorship to exponentially increase my skills!

My Application

Why I'm a strong applicant


  • I learn fast. I'm entirely self-taught; I know my learning style, and I know how to absorb and retain information quickly.
  • I provide valuable input. I helped co-found the company that I'm at now and, thanks in part to my input, we've grown to a full-sized team and are on our way to being a profitable company.
  • I like solving problems. I believe there are multiple answers to all problems (some better than others), and the process of discovery, the spider web of potential solution paths... it's exhilarating!

Things I want from my developer education


  • To be the a great developer. I love code and I love learning-- I know MX has the toughest code base around, which means the sharpest developers. If I can learn from the best mentors, that gives me the best opportunity to become the best developer I can be.
  • Feedback and constructive critisizm. I put a lot of weight into feedback from experienced developers, and I try to take all feedback as positive, turning it into something I can build upon. I know my self-taught knowledge has a lot of gaps when it comes to a lot of programming idioms, and I'm eager to fill those gaps with the experience I'd receive from this apprenticeship.

Strengths and weaknesses


  • Ruby & Rails: For being entirely self-taught with no professional education, I feel like my grasp on Ruby and Rails is fairly strong.
  • My ambition: I'm sure that, given some professional education and/or mentoring, I know that I could greatly enhance my skills in a short amount of time.
  • Front end design: I've never pursued any education in visual arts (this includes drawing, painting, etc), and this is very apparent in my lack of design capability.
  • Algorithms: I've always wanted to learn more about how algorithms work and when it's appropriate to use one, but haven't dedicated the time to learning about them just yet.
  • My experience level: At my current job, it's difficult to get mentorship because of each individual's work load. I don't have a ton of professional experience when it comes to idiomatic programming and I want to fix that.

My Current Projects

Still in Progress

Calendar Workouts

https://github.com/camkidman/calendarworkouts

I'm working on an application that will take a user's time, goals, and current fitness ability and generate workouts for them! Here are a few problems that I've faced while working on this project:

  • The algorithm used to take someone's current ability (based on a workout test) and generate workouts-- this is a work in progress
  • How to optimize the database so I wasn't making tons of exercises. My database didn't need a unique "pushup" workout for each user. I ended up splitting the workouts and the numbers (sets, reps, weight, etc) into separate objects.

https://www.kslnotifications.com

KSL Notifications

https://github.com/camkidman/kslwatcher

I created this app based on an idea of my own. Once I had the idea, the object was to produce something as fast as I possibly could and get it to the point where people could use it (hence the lack of great design on the website). Challenges I faced on this app included:

  • Parsing RSS feeds. I eventually found a gem called Feedjira and am serializing the latest version of an RSS
  • Checking for updated RSS feeds. KSL doesn't provide any notification system, so I used Sidekiq with Sidekiq-Scheduler to check for updated RSS feeds every minute. I compare the serialized feed object I'm storing with Feedjira to the updated version and empty the "new items" array served by Feedjira, then serialize the updated feed and store it.

Private URL

PDF Auto-Filler

https://github.com/camkidman/russellapp

My girlfriend's parents were manually filling in a lot of PDF forms with all the same information about companies, up to 15-20 applications with the same information. I told them I could automate this for them. I used the pdftk gem on a Heroku instance and cut the time they spent filling applications out by several orders of magnitude. This was fairly straightforward, but I recall a certain set of challenges when setting this app up:

  • Users had to be approved before they could sign in. I ended up just adding an "approved" attribute and doing a before filter in my application controller.
  • Installing pdftk on Heroku wasn't the easiest thing, but it was fairly simple once I figured out the differences in the example and the Heroku stack I was using.
  • Each of the PDFs had form fields, but none of them were uniform. I spent a lot of time tying the right data to the right fields and, unfortunately, I had to do this manually.