At the end of a year I like looking back and seeing what I’ve accomplished and what new technologies I started working with in the year. Here’s a little summary.
I started 2012 in a new role at ElasticSales to lead the product/engineering team, working on software to make better software for sales people. It’s been a great year and I’ve gotten to learn a lot of stuff and work with a great team.
ElasticSales.com – Designed a company website to show credibility for our sales as a service business, help with hiring, etc.
Close.io – Launched the sales application we’ve been working on for months (and I launched this website for it). Designed completely different from traditional CRMs like Salesforce, Pipedrive, etc. it’s focused on helping with sales communication rather than just being a database. It does this by automatically logging all calls and emails (incoming and outgoing) in one place to remove the typical data entry associated with CRMs. Also making it much more beautiful and fast than those legacy sales apps.
A big goal for 2013 is to make Close.io a huge success as a profitable SaaS service that people love.
I added 12 shots on Dribbble in 2012. Though most of my “design” work was simply trying to make good user experience in Close.io.
Along with writing a bunch of code specific to Close.io, I’ve become deeply familiar with several Backbone add-ons:
- Backbone-Forms – Auto-generate HTML forms that sync with Backbone models. I’ve been able to contribute significantly and help triage pull requests and issues for this project.
- Backbone-Relational – Adds relations between Models & Collections. I contributed significantly to this project as well.
- Backbone.Declarative – Adds a declarative syntax (similar to how Backbone DOM events work) for binding Model/Collection events to Backbone Views. I helped rewrite this project to work better with Backbone 0.9.9.
- Backbone-Super – Nice syntax for calling “super” for friendly OOP-like functionality
- Backbone.Stickit – 2 way DOM <-> Model binding
- Backbone.InfiniScroll – Infinity scrolling in Backbone Views
- Backbone.Mousetrap – I wrote this as a better integration of Mousetrap (JS keyboard library) in Backbone Views.
- Backbone.Mutators – Provide getter/setter support on Backbone Models. Started with this project though ended up writing my own implementation that I thought was better.
RequireJS – I’m using RequireJS heavily to keep our application nicely organized into modules, with dependencies declared explicitly.
LESS – extends CSS with a better syntax, mixins, variables, etc.
Bootstrap – used as a base set of styles and core mixins. Great when using LESS
Python – In 2012 I went from only know a touch of Python to feeling comfortable writing significant amounts of code in it. I added plenty of features and fixed plenty of bugs. I’d definitely use Python instead of PHP now for new projects and am a big fan of its simplicity and syntax.
Django – I spent several months working on a Django project. I got deep into Django and used various add-ons for it. For any significant traditional web app written in Python, I’d still recommend using Django.
Flask – I’ve written 4 or 5 projects using Flask now and love it for its simplicity. We’re using Flask for Close.io and are using several extensions (that we wrote and 3rd party). My team wrote Flask-Mongorest which especially has made writing a MongoDB-backed JSON REST API super convenient.
MongoDB – I’ve learned a good bit about using MongoDB, and some of its best practices, as well as its gotchas.
AWS – I’ve used several AWS services before 2012, but this past year led to much more significant experience using EC2, S3, RDS, Route 53, ELBs, etc. I’ve deployed several different services using both raw AWS as well as Heroku now, and love the flexibility and ease for creating scalable systems.
I redesigned my personal website/blog this year for the first time in 6 years! I also had 13 blogs posts this year, which is pretty good for me, as well as a guest post on TechCrunch. Here are my 2012 blog posts:
- Two Years at Quizlet
- Why is this so hard… Apple
- How to upgrade MacPorts to OS X 10.8 Mountain Lion
- PhilFreo.com v3 (and past versions)
- Uploading static assets (CSS/JS) to S3 for CloudFront CDN
- Objective Process for Product Reviews
- Stripe CTF 2.0 – Web Security
- Quick notes from Startup School 2012
- Mac Software I Use
- Launched Close.io – sales communication software
- Guest post on TechCrunch: Full-Stack Web Team
- How to unit test AJAX Requests with QUnit and Sinon.JS
- Manage GitHub Issues milestones in Trello
I’d like to do shoot for at least 13 posts in 2013 as well.
It was a big year for me. I started a new job at Elastic, started a life with Kristin after getting married on New Years Eve, moved to a new apartment in a new town, and started attending a new church! Let’s hope 2013 is as exciting!