I’ve been programming since I was just a young kid, playing Wolfenstein 3D. Over the years, I’ve worked with numerous technologies and learned various design patterns.
My greatest strength is my insane drive to learn new things and improve every day. Along with this, I’ve internalized the three virtues of a programmer, and constantly battle with myself to build software that satisfies my laziness, impatience, and hubris >:)
Python is by far my strongest programming language. I’ve worked with it extensively for ~5 years, and am very familiar with the standard library, and open source ecosystem.
I’ve used Python to build:
- Small command line utilities.
- Professional software for large telephony companies.
- Numerous websites and web services.
- Open source libraries and tools.
I’m active in the Python community, frequently attend Python events, and work with other Python developers.
I’ve been using Django (both professionally and personally) for the past 2 years. I’ve used it to build web applications for my company, as well as myself, and actively contribute to the Django ecosystem.
What I love about Django is its flexibility, best-practices driven design, and awesome documentation. I’ve personally adopted a lot of Django’s development traits, and the framework has inspired me to become a better developer. Furthermore, the Django ecosystem is enormous, and it’s really nice to use so many great applications written by other programmers.
I started using Flask when it was first released for small projects. To date, I’ve built 3 web applications with it (all for my company) that power small internal websites.
What I like about Flask is the simple project skeleton, and extremely in-depth documentation.
In the past year I’ve come to love celery, the distributed task queue. I’ve used it in my workplace to help scale our applications to support thousands of users and improve server response times, and I’ve used it personally to build beautifully scalable asynchronous applications.
I’m extremely familiar with the setup and usage of celery, and have used both celery and celerybeat to build high-performance applications.
After discovering puppet earlier this year, my life completely changed. I now use puppet for everything–personally and professionally.
I’ve used puppet to:
- Build and manage several large production, staging, and development environments.
- Manage complex software environments that support thousands of users.
- Automate sysadmin work and remove thousands of hours worth of manual labor creating, configuring, and managing servers.
- Automatically scale my work’s cloud infrastructure to actively add and remove servers based on user demand.
monit is an application monitoring and healing program that I’ve used to build fault-tolerant software stacks at work, and for fun. I’m familiar with the basic monit scripting language, and have written numerous scripts to monitor applications, ensure they’re running properly (via numerous statistics such as load, memory usage, response time, etc.), and attempt to both auto-correct issues and send notifications when problems arise.
In order to help scale large web applications, I’ve made extensive use of memcached to improve application response time and scale computationally expensive software.
I’ve setup and maintained memcached server clusters, and have experience working with the python memcached libraries (specifically, with Django’s caching backend) to rapidly scale python web applications.
As the lead developer at a tech startup, I’ve personally helped build a scalable cloud infrastructure using Rackspace Cloud Servers.
I’m familiar with their python APIs and CLI tools, and know how to easily automate server provisioning.
Over the past 3 years I’ve worked intimately with the popular open source PBX system, Asterisk.
In addition to designing, implementing, and maintaining complex telephony systems for various companies, I’ve also made several performance patches, bug fixes, and built helper libraries to make interacting with Asterisk easier for developers.
If I’m not currently held captive by terrorists who insist I deploy code to their own servers, then I’ll unquestionably be using Heroku to host my web projets.
To date, I’ve migrated multiple large sites from other cloud providers (like Rackspace) to Heroku, for the betterment of all society.
In all seriousness though: I love Heroku, and I’m an expert at running sites on it. I’m familiar with their deployment model, best practices, and most of their addons.