This next week marks the halfway point of my summer job as a developer. It’s also near the five year anniversary of my employment with this company, and I’m starting to realize how unprepared I am for stepping into the job market in a more full way.
I’ve been formulating a mental todo list of tasks I’d like to do over the next year to try and shape up my employable skills (in addition to keeping up my grades, which is priority number one!).
Python Conversion
I’d like to convert a personal data analytics engine that I wrote using PHP and Laravel into Django, which I’m familiar with but don’t know super well – my experience with MVC outside of Laravel is abysmal. Getting strong with some enterprise Python will be helpful as well.
Template Conversion
I want to hone some of my graphic design skills from the dev side and work on making templates from PSD’s and so forth, using as much CSS and HTML5 as I can (no graphics). I’d like to try my hand at WordPress and Drupal theming, which I’ve done a couple projects in but ended up using Google far more than my own skills, as well as possibly dip my toes into custom Twitter Bootstrap themes (I love Bootstrap for rapid prototyping, but I rely on the CSS and super handy stylings far too much to not know all of the backend).
Alternative Database Architecture
I want to set up some NoSQL, MapReduce, Hadoop, etc. systems to play with nonrelational databases, data scaling, clustering, and such. As I’m working through some particularly frustrating database designs right now, I want to know when it’s time to use good design principles on a relational DB and when is the right time to use a different engine.
Ultra-efficient Laravel
Over the last year, I’ve gotten intimately familiar with Laravel, and I love it. My apps have gotten progressively better and faster, and I feel like it’s been a great introduction to PHP frameworks and MVC frameworks in general (although I still have Symfony on my list to learn, but judging by what I see in Laravel’s vendor folder, I may already know a fair bit haha). However, I’d like to take the amalgamation of my knowledge and build a crazy efficient app – put it under some ultra heavy loads (thousands of DB ops per sec, difficult to optimize content, etc.) and get experience with caching (I’ve set up op code caches but I’d like something more), load balancing, and other load management systems.
Hone Dev Environment Management
I’m comfortable setting up my own machine from zero to a patched and reasonably secure server hero in an hour or so, and I’m not a stranger to Chef, but I’d like some more practice with dev management and to know what my ideal setup is – checking out Vagrant, SaltStack, and trying Git instead of my trusty SVN I’ve been using daily for the last few years are all on the list. I’m a full stack developer, but our “full stack” isn’t really that full at work. I need to be comfortable no matter what the stack consists of.
These are just a few thoughts, and if any of my three or so daily readers are web devs that have advice to offer, I’d love to hear it! Ironically, teaching my coworkers some of my learnings about MVC basics and Composer magic has reminded me how little I know in terms of being ready to develop in a fast paced industrial dev environment. I want to make sure that I can run with the big dogs in the real world, and produce results that my early starting age gives my employer a right to expect.