So you want a promotion as a programmer?

Disclaimer: Opinions in this post are my own and do not reflect the opinions of my employers past, present or future.

I’ve been very blessed at my current job. I started in the lowest development job title and I’m currently in the highest non-management development position. I’ve received 3 promotions over the span of the 7 years I’ve been with the company. Getting a promotion without job hopping can be really challenging. I think there is much more respect to be earned by staying at a single company working your way through the ranks. Here is a collection of helpful tips I’ve seen through my own promotions and other people’s promotions. Keep in mind that all companies are different and these may not apply to every job.


Let your boss know you are interested in a promotion. I was once a holiday hire at a retail store and there were 2 spots for permanent hires after the season. I was the top holiday hire, but they overlooked me because I had been talking about applying somewhere else. I missed out a pretty decent gig because I didn’t let him know my intentions.

I would encourage you to sit down with your supervisor and make sure he knows your career goals. Follow up with them regularly to make sure you are on track.

Prove your WORTH

Have you ever thought “I deserve a promotion!”? If you have, go ahead and slap yourself really hard in the face. Like, right now! This is totally the wrong attitude to have when looking for a promotion. You need to prove you are worth a promotion.

Every company has a different method to determine the value of their employees. In my scenario, clients are charged per hour for my work. I pushed myself to learn as much as I could. This allowed me to work on more projects and being good at it.

You should not confuse this with working extra hours. Working 60 hours a week to prove you are Sr. Developer material will do more harm than good. You will set the expectations that you will always work those hours and you wont ever be able to get back down to a 40 hour a week work load. You should spend time outside of work reading and trying to expand your skill set. You wont always be provided opportunities to try new stuff and outside dedication will demonstrate your desire to improve and grow.

It’s important to never judge a promotion based off another employee’s experience. I helped out Sr. Developers on jQuery all the time when I was a Developer 1. I frequently thought the roles should have been switched and I was the one getting help. I thought that I should be the Sr. Developer because I was more intelligent on the subject. I didn’t think about the fact that the other developer had 8 years experience in the field and was much more experience in planning and execution than I was. Never assume that you should have the same title as someone else because you THINK you are better at the job .

Attitude is everything

This kind of follows what I said above. Keeping a positive attitude can go a long way. Never fight for a promotion as a response to someone else getting the promotion you wanted. This is more of an emotional response and will prove to be more harmful than good. It’s impossible to know what the other person went through to earn the promotion. They may have been lobbying for it longer than you or they are really good at some aspects you over looked. Occasionally, politics come into play in another person’s promotion, but you just have to get over that. Worry about yourself and not other people.

Whatever you do, don’t threaten by saying you are going to look for a different job. You are just going to burn bridges by doing this. The job interview with offer and counter offer maneuver just for a raise is really risky and could also damage relationships.

You also don’t want to push a promotion to get away from someone or to report to someone else. I’ve seen this backfire many times. It’s more beneficial to actually work through your problems with other employees than avoid them.

Know your company

Not all companies can issue promotions on the spot. Figure out how your company handles them. Company A may only have 5 Sr. Developer positions and only fill them when there is an absent seat. Company B may only do promotions every six months due to budget forecasting. Get the conversation going and make sure your superiors are aware of where you are wanting to go when these scenarios arise.

Job titles and responsibilities also change a lot. You need to keep up with this. A Sr. Developer for a company of 50 employees may have completely different responsibilities than when it becomes a company of 100 employees. Mold yourself and take on the additional responsibilities to prove you are ready for the title you want.

Stay consistent

Stay consistent with what you want. Do you want to go into advanced coding or leadership? Sit down and really think about it before you start pushing for it. Bouncing back and forth will give the impression you really don’t know what you want.

Be Patient

I cannot stress this enough. It’s really easy to get bent out of shape if things don’t go the way you think they should. Keeping a level head and a mature attitude can go a long way.

I hope you found something useful here. Let me know if you found this useful or if you think it’s hogwash. Thanks for reading!

How to be an effective remote developer

I’ve had the opportunity to work with a lot of remote developers. I’ve worked with some really great one and some pretty awful ones. A lot of people thing working remotely is exactly the same as working in an office, but you get to wear sweat pants and you get more flexible working hours. This is pretty far from true. Being an OK remote developer takes a fair amount of effort, but being a great remote developer takes a great deal of effort. Most of the really great remote developers I’ve worked with share the same qualities and work ethic. The apply a great deal to working in a different office than your team or when you are in the position of having to work from home more often than in the office.

You don’t just need to communicate. You need to over communicate and choose the appropriate channel. We have email, IM, phones, and issue trackers at my job. If you need someone’s immediate attention, don’t send an email. An email can be overlooked or ignored. Be specific with your needs and ask questions when you have requests.

Let people know your schedule if you don’t work the same hours as everyone else. Make sure your IM client status matches your actual status. It’s pretty irritating to see someone is offline for 15 hours, it’s the middle of the work day and you’ve seen emails and work being done. Being a stealth employee isn’t cool.

Make your presence known. It’s easy to forget about people you don’t see you every day. Your work is just as important as someone sitting in another office and it’s up to you to make sure they know that. Your coworkers may not even know your specific skill sets because they can’t look over your should every once in a while. Chat up other employees when you have been thinking about something complicated or have a good idea. There is a developer that regularly hits me up whenever he has a new idea about how to utilize Grunt in our projects. This lets me know he is motivated and interested in new tech.

Video chat whenever possible. We practice continuous performance reviews and we have regular check-ins with our bosses. Video chat if you have to do these remotely. This will help them know they have your attention and vise versa. There is nothing more discouraging than to be on a call with someone about your future and you hear them pounding on their keyboard the whole time hearing “Mmmmhmmmm”. Video chat also lets people know your work environment and what you look like. I worked with someone out of a different office for a year without knowing what they looked like. Their Facebook picture was a permanent throw back Thursday picture.

Up the discipline in your work. Make more specific commit messages, code comments and notes in your issue trackers. Your coworkers can’t just turn to their right and ask you a quick question about simple stuff. A little extra work can go a long way.

Are these “guidelines” the definitive guide to remote work? Hell no, but hopefully these few tips will help you out.

Managing a massive Steam Library

I have a massive Steam library. I’m not rich or anything, but I purchase a lot of Humble Bundles and I’m a sucker for 50 cent games on sale. I’ve acquired over 300 games/DLCs and it’s really challenging to keep everything organized in steam categories. I spent a long time with two windows open trying to categorize based on tags, genre and rating. I recently went through and setup all controller supported into it’s own category. I switched computers and Steam’s cloud system overwrote it. I eventually gave up and just let things go wild in my library.

Happiness returned when I stumbled upon Depressurizer! Depressurizer provides you an interface for managing your Steam categories very quickly. I was able to auto-categorize based on User Tags, Genre, Store Flags, Ratings and a ton of other fields. Depressurizer will write to your Steam directory, but also export it to a physical file in case Steam forgets all your hard work. I’ve stored my app in my Dropbox folder so I can work on my library on my Surface and my main setup.


This app is a must if you have more than 50 games in your Steam library. Plus, it’s an open source .net project! I may just contribute to it in the future :)

I was quoted on!

A former colleague of mine send me a message on Facebook a couple of days ago. He had told me I was on the front page of If you do anything with SQL statements or arrays, you should check the tool out. It’s incredibly useful.

my quote

What’s really cool? Scott Hanselman was quoted just a few paragraphs about me. I found NimbleText from his list of Ultimate Developer Tools.


Yeah, it’s kinda silly I’m freaking out like this, but Scott’s one of my development heroes.

Confessions of a Full Stack Developer

David Walsh has a great series he does called Confessions of a Web Developer. I’ve been reading them since about part 6 or 7 and I enjoy every one of them. I have been struggling with content here for a long time and he had some great tweets over the past few days that motivated me to put more effort into this blog. I’m really great at complaining so I figured I’d follow the master. As always, opinions are my own.

  • I haven’t felt challenged in my work for a long time. Thankfully, I’m in the position that I can inject challenge into my work. I try new design patterns, frameworks and testing strategies.
  • I’ve put a lot of effort into my Youtube channel, but it takes way too much time and dedication to run it well. I’ve kinda given up on it. Gathering resources and preparing a tutorial for a 10 to 20 minute video takes me about 20 hours of stop and go work.
  • I’m a hypocrite when it comes to commit messages. I tell everyone to keep them descriptive, but the last 50 commit messages to my personal repo is “stuff”.
  • I look over a lot of resumes at work. I pay more attention to where you have worked and how long you have worked there. I value loyalty more than skill. A developer with 2 – 5 year employments is more valuable to me than someone with 10 – 1 year employments. Constant jumps tell me you are more interested in promotions than improving your skills.
  • I can’t show off the vast majority of the projects I’ve worked on due to NDAs. I’ve been apart of developing and launching around 75 products. I’ve worked on around 125 if you include projects I’ve done maintenance or consulted on in the last 7 years. I can maybe talk about 15 of them. I feel like this puts me at a disadvantage in the job market, but I’m not looking for a job so it’s not an big deal.
  • I want to tell people that bash IE to just “Shut the hell up”. It’s beating the dead horse with his own fossilized bones. We all know IE 6, 7, and 8 are challenging to develop for. I think most of these people are too high on their Mac horse to look and see how much effort Microsoft has put in the newer versions of the browsers.
  • You’re dead to me if you hate on Win 8 without a good reason. The start screen change is not an acceptable answer.
  • To this day, I do not understand why open source developers hate on .Net developers. I’ve even seen “.Net snobs need not apply” on a Ruby On Rails job posting. It feels really immature.
  • I’m in a constant battle of whether I want to dress professionally or like a geek. I have a large collection of shirts, but I was known as “tshirt guy” for a long time. I really want to be respected, but it’s challenging wearing a Zelda & Dr Who crossover shirt.
  • I don’t think you deserve the help if you didn’t spend 15 minutes trying to find the answer on Google. You need to put some effort into it before asking someone to stop what they are doing to help you.
  • I value being an Eagle Scout more than being a college graduate. I didn’t take away a lot from college, but it did provide me a reference that landed me my job.
  • I only allow recruiters on LinkedIn to contact me so that I can tell them no. It’s an ego thing.
  • I’ve haven’t found responsive web design challenging or interesting in several years. I’m sure some people would say “You’re not doing it right”. I’ve looked at a lot of sites, gone through source code from frameworks, and read many articles. I’m confident in my skills and capabilities.
  • I judge you based on whether you use a GUI or command line for tasks.

WorthyD’s Great Keyboard Test

Everyone I work with knows I’m a mechanical keyboard nutcase. I’ve owned 4 mechanical keyboards and I’ve been tempted to invest and build the great and legendary ErgoDox keyboard. I originally purchased a mechanical keyboard because I kept breaking keyboards at work from heavy use and because of hand fatigue. I take credit for converting 3 people at my work for switching to mechanical keyboards. It’s not 100% true, but I have an ego to feed.

So what makes a mechanical keyboard better than an average keyboard? The standard keyboard nowadays operates with a rubber membrane that require a decent amount of force to press. Mechanical keyboards have (you guessed it) a mechanical switch behind every key. These mechanical switches require less force to press than membranes and last up to 50 million operations. WASD keyboards has a great guide page on mechanical keyboards. Check it out if you want to learn more about mechanical keyboards.

So what’s the big deal? Why aren’t all keyboards mechanical if the benefits great? Well it boils down to cost. A mechanical keyboard will run you between $80 and $200 depending on brand and features. Most people I’ve talked to freak out over the price. Think about it, you spend 8 hours a day typing if you are a developer. You’d drop $200 on a pair of Beats By Dre that you wear most of the day. Don’t you think you should put good money into the piece of equipment you interact with the most?

I’ve really been curious how much faster my typing speed is with a mechanical compared to other keyboards. I came up with a big super scientific test to see what keyboards I could type fastest on. I took a five one minute tests with each keyboard I could get my hands one. The tests were from and the same test was taken each time. There was a one day break between each keyboard.

The Contenders

Logitech G15 – $60-ish original retail – I really liked this keyboard. It’s non-mechanical, but has a lot of nifty features to make up for it.
Apple’s Keyboard – $50 – I really like the keys on this keyboard, but I don’t like the windows and alt keys being flipped. This keyboard actually uses a scissor switch membrane. It allows for a very thin key with a short travel distance.
Microsoft Comfort Curve 3000 – $15 – There are ton of these around now. I really don’t like them…..
Microsoft Comfort Curve 2000 – $20 4 years ago – There were a ton of these around several years ago… now they are going for 50 bucks on Amazon? You couldn’t give these away 4 years ago. It’s a great basic cheap (at one point in time) keyboard.
Razer BlackWidow – $80 my version – I have a very early run that has Cherry MX Blue switches. The new ones use a different, but still great switch. This was my first mechanical keyboard and I’ve gotten a lot of good use out of it. I currently loan it out to friends to try out. It’s clicky and really loud, but I feel like I can type really fast on it.
Razer BlackWidow Ultimate Stealth -$150 – I have a Cherry MX Brown version. The backlit keys are awesome. Cherry Browns are much quieter than Blues. They have a bump instead of a click. They require less actuation force, but I feel like I don’t type as fast on it.
CM Storm QuickFire Stealth – $80 – I picked up two tenkeyless versions of this keyboard a couple of years ago and it’s my absolute favorite. The smaller travel distance from keyboard to mouse is very comfy and cuts down on a decent amount of work space.

It’s worth noting that there is actually a Cherry MX Switch shortage right now. Mechanical keyboard popularity has gone through the roof recently. Manufacturers have started using different switches and retailers are jacking prices up pretty bad on keyboards still using Cherry switches.

The Results
Keyboard Average WPM Average MPM Highest WPM
G15 69 5.4 76
Apple Keyboard 70 1.4 78
Microsoft 3000 69 8.4 75
Microsoft 2000 77.4 7.6 83
BlackWidow w/ Blues 82.4 6.4 86
BlackWidow w/ Browns 81.4 7.3 82
CMStorm w/ Blues 84 6.2 88

wpm – words per minute. mpm – mistakes per minute

I wasn’t really surprised by the results. I was happy to see that my current keyboard had the highest average WPM. Lets put this in perspective. There is 480 minutes in a work day. Lets say you’re actually typing for 75% of that (360 minutes). I would average about 25,200 words in a day with the Apple Keyboard. I would average 30,240 with my CMStorm with Blues. That’s a pretty large different when you are looking at productivity of typing in general. Coding involves a lot of numbers and special characters. WPM isn’t very accurate in measuring productivity in coding, but I still feel like it’s a decent base to test off of.

I originally picked up a mechanical keyboard for the durability and comfort, but I now know that I can get more work done while using one. My purchases have been fully justified! Now the real question, when are you going to switch?

2014 in Review

We’re a month into 2015 and I haven’t given much time to look back at 2014.

Project Related

I really can’t go into specific detail, but I got to do some pretty cool stuff.
I got to do work on the Bella Vista Animal Shelter’s website. We upgraded their old web experience into a responsive build with a CMS. We spent an afternoon out at the shelter doing volunteer work. It was really great building an emotional connection with the organization.

I also wrote three applications using AngularJS. This has to be the highlight of the year for me. I’m fairly confident I published the first Angular app in the company. It wasn’t the flashiest, but it caught a several people’s attentions.

I got to work with one of our larger development teams. I frequently solo and occasionally double team projects. I actually got to spend a good part of the year working closely with 5 other developers. I introduced a new project branching model with them and we worked out the kinks before preparing it for the rest of the company.

In December, I got to participate in a Rapid Innovations Workshop at our Dallas office. I haven’t gotten to go down there to see the team in over a year and it was really great to catch up with them. The workshop was fun and a lot of great things came out of it.

I sneaked in an published my first app a couple days before the new year. It’s for Windows 8 and not really something to submit for contests or whatever. As a developer, you get ideas on an hourly basis and you have a giant pile of “side projects” that you do in your spare time. I’m really excited that I got it published. It’s a Steam Achievement Tracker for seeing achievements in Steam games.

Skills I Learned or Polished.

I made a really big effort to increase my productivity this year. The two big things I did was make a large effort in improving my VIM and console capabilities. I started using Git through the command line.

I did a lot in the JavaScript world. I spent about 3 months in Angular, most of the year learning the ins and outs of Grunt, and played around a lot with other frameworks like HandlebarsJS.
A developer that stops learning new stuff will become obsolete in a matter of months.

Other Cool Stuff

I participated in the Extra Life gaming marathon. A bunch of coworkers and myself gamed for 24 hours straight and we raised $804 for Children’s Miracle network hospitals.

I built a lot of cool stuff for our new house. I made a 6′ by 4′ table, a mega L desk for my computer, a bed for Lily, a toy chest for Lily, a Tardis bookshelf, some shelves in our bathrooms, a bunch of garage storage stuff and installed a fire pit. I’ve acquired quite a few new gadgets over the last year too.

I’m really anxious this year. I’m planning on participating in the Rockfish Probono work, doing the Extra Life marathon again, and bolstering more of my development skills.

Improving my console skills

I read The Pragmatic Programmer twice in 2014. It’s a great book that focuses on improving your general development skills. I took on two goals for 2014 after I read the book. I wanted to improve my competency in VIM and improve my skills in the console.

I’m heavy into Windows. The console has always made me nervous. I always feel like I’m going to execute the wrong command and break something. GUIs are my friend. I’ve used the command line for two things in the past: Mercurial/Git and xcopy for deployments. The last half of 2014 was spent “playing” with the console. I installed Console2 and I created a bunch of .bat files for shortcut cd commands, launching random apps, and other small commands.

I really wanted to get proficient in Cygwin this year. I gave it a try for a day and really struggled with it. A coworker of mine recommended using PowerShell instead. I had better luck with it than Cygwin. Things were going just OK until Scott Hanselman saved the day… like he always does for me…. He’s done a bunch PowerShell blog posts with tools.

There are tons of other tools and utilities to enhance PowerShell. I’ve been really excited to dive into it. I’ve managed to change several 5 minute GUI based mundane tasks into PowerShell scripts that execute in seconds. This has saved me HOURS at work over the last few weeks alone.

Becoming proficient in the console sounds like a really boring thing to study and become good at, but you will eventually pick up some really cool tricks that will make it all worth it.

Ten years of Halo 2

Where were you ten years ago? We’re asked frequently in job interviews “Where do you see yourself in 5 or 10 years?” This is a really hard question to answer. I like thinking of where I was ten years ago and see how far I’ve come. Gaming has always been an important part of my life and I occasionally like to think “What was I doing in gaming ten years ago?”

Ten years ago, my life was FULL of gaming. I was working for GameStop. I was a seasonal hire. I was hired in October and my position was over a week after the New Year. I just had a four month spurt of unemployment and was in the middle of my junior year of college. I wouldn’t say I was strapped for cash or anything. I was working weekends at a local paintball store. I ended up being the only holiday hire out of six to be offered a permanent position. I ended up passing and going to work for a local grocery store chain.

The fall of 2004 was an amazing time to work for a video game store. Fable was released a few week before I started. There was a lot of negative feedback due to the game not living up to expectations. We had a lot of trad-ins of the game my first week. I got to experience the Grand Theft Auto: San Andreas, Star Wars: Knights of the Old Republic 2 and The World of Warcraft releases. These games were milestones and set the standards for the games of that generation. World of Warcraft is still a very relevant MMORPG. San Andreas recently made it to the hand held market and KOTOR eventually evolved into an MMORPG that couldn’t live up to the reputation of its predecessor. One game topped all of these for me and it set the standard for my preference of games ever since.

Halo 2 was the only game that was released in the fall of 2004 that had a midnight release. The game was released on November the 9th 2004. There were roughly one hundred and twenty people hanging outside the store at 11:55pm and just about everyone had paid for the game in full. This event was the easiest shift I ever worked. Everybody was excited for the game and we were ready to serve. I took a hint and picked up an XBox the next week.

I tried to do things right. I played through the original Halo and this was extremely challenging for me. Goldeneye and Perfect Dark were the only FPS games I had experience in and the dual control stick layout took some getting used to. Halo was conquered over a weekend and Halo 2’s campaign was destroyed shortly after that. My gaming preferences were drastically changed after this experience.

I’ve never been big into the multiplayer experience. I was much more into the story. The Halo franchise has a very detailed universe and Halo 2 introduced the players to the other side of the story. The first game involved the super soldier, but the second game put you in the shoes of the enemy of the first game, the Covenant. You learn about the different species of the Covenant and experience the tension of the defeat from the first game. I had never played a game with this type of story telling. A lot of people didn’t like the fact you didn’t play the whole game as Master Chief, but I thought it was brilliant.

Over ten years, I’ve played all the Halo games, read most of the books, watched the TV series, and watched a lot of Red vs Blue. I can’t say Halo 2 was my favorite. It was the game that caught my attention and made Halo my favorite game series of all time. Halo: The Master Chief Collection comes out tomorrow. It crams Halo remastered, Halo 2 remastered, Halo 3 and Halo 4 into one game. I don’t own an XBox One, but I anxiously await the day I do so that I can re-experience ten years worth of awesome gaming.

Bootstrap – The framework you hate for all the wrong reasons.

Disclaimer: The thoughts in this article are my own and do not represent the opinions of my employer past, present or future.

I’ve been sick in bed the past few days. I tend to do a lot of reading when I’m down and I stumbled on a several articles criticizing the Bootstrap framework. (I also got going on Single Page Web Applications, but that’s for a different time.) I got pretty motivated to express my opinions from my experience with the framework.

I’ve been utilizing the Bootstrap framework for over a year now. I’ve had a lot of success with it and it always amazes me how much hate it gets. I’ve spent a lot of time in their source code and I have a really good understanding of how everything works. I’ve done a lot of responsive work outside of Bootstrap and I’m pretty comfortable arguing for or against it.

This is one of the tag lines from Bootstrap’s web site. Do I believe it’s true? Yes, I do.

Designed for everyone, everywhere.

Bootstrap makes front-end web development faster and easier. It’s made for folks of all skill levels, devices of all shapes, and projects of all sizes.

There is one big thing that gets overlooked a lot when looking at Bootstrap. Bootstrap is trying to do two big things. It’s a responsive grid framework and a responsive UI framework. The UI part of the framework provides styled static elements like inputs and buttons, and also has a set of interactive components that work well on a smaller screen.

So what’s with all the hate? I have a few reasons I’ve heard and theories I have.

You have to use a bunch of random classes to get it to work.

I see a lot of this. There is a trade off though. Many single class elements end up with countless rules that get over ridden based on it’s parents elements or the current media query. It’s a trade off. Do you want more rules in your style sheet or more classes on your element?

It’s bulky.

The full CSS library is around 130kb and the JavaScript library is around 30kb. Is this heavy at a glance? Yes, but there are three things you can do if you don’t like this.

    1. Utilize a CDN – There are several providers that serve up the full Bootstrap package over a CDN. A CDN will provides speed by caching the content and your browser will download it faster because it’s on a different domain
    2. Build your own Bootstrap package – This is the less obvious choice, but you can really slim down the package by using their tool. You can also download their source code and create a custom build yourself.
    3. Do both 1 and 2 – There should be other static assets in your project. You might as well invest in the service.

It’s trendy and people only want to use it because “Bootstrap” is a buzz word right now.

There is a lot of truth behind this statement. Bootstrap is extremely popular right now because it’s fairly new. jQuery had a similar buzz around it after it hit mainstream.

It’s not not suitable for large scale applications.

I couldn’t disagree more. Bootstrap’s consistent naming patterns make it ideal for large teams working on large projects. A fully custom responsive implementation requires a lot of documentation and communication across the team. The likely hood of a class being misused is pretty high. With Bootstrap, everyone can easily know how the grid works and work through new pages quickly. I’ve seen a large number of backend developers wire up pages using Bootstrap with ease. This introduces a level of efficiency that can be extremely challenging to replicate with a custom responsive implementation.

All Bootstrap sites look the same.

Did you expect to use Bootstrap and not have to code your own CSS? Checkout Wrap Bootstrap and see if you can tell if the sites are “exactly the same”. I roll my eyes at this comment a lot. It is very common to come across websites that look stamped with the Bootstrap CSS, but imagine what these sites would look like without it.

Web Designer: I don’t want to design for it.

Ok, that’s nice. Don’t want to be limited to 12 columns? That can be changed by a couple keystrokes in a LESS file. Don’t like the default buttons and inputs? A little custom CSS will fix that. The only thing we can’t do is recreate a design based on a non-grid layout. Most CSS responsive frameworks have limitations when working with non-grid based layouts. Just do whatever you want. Clever front end developers will figure out how to do it.

Front End Developer: I have spent a lot of time learning to be an expert on responsive.

Don’t worry about this. I personally know several SQL developers that panicked when Linq to SQL/Entity Framework came out. They thought that they would be out of the job because anyone who knew C#/VB would be writing their SQL for them. This is 100% not true. A framework can get you 90% there. Knowledge and experience will get you the rest of the way. The experience you have in the core technology is always relevant. The same can be said about jQuery and JavaScript. jQuery made JavaScript 100Xs easier to write. CSS precompilers can be thrown in this boat too. jQuery and Linq also introduced ways to write really bad JS and SQL if you weren’t careful. Bootstrap is no different. It can help you write simple and quick responsive elements, but can also create overly complicated and complex elements. As an experienced FE Dev, it’s your responsibility to identify the right and wrong ways.

You’re old fashioned and boring

If it ain’t broke, don’t fix it. I really hate LESS. I’ve been using it heavily for a year now. I just hate it. I see too much bad code, improperly named global variables, hundreds of media queries that could be consolidated, and excessively over qualified selectors due to nesting. Bootstrap contains the ONLY LESS files I’ve seen that do something cool. They create loops for generating the CSS for the grid layout and calculate out exact widths with it.

I feel like I have much cleaner and better performing CSS without LESS, but it takes me a little bit longer to do. You could say the same about Bootstrap. A lot of people said the same thing about JavaScript with jQuery and SQL with LinqToSQL. These tools and libraries get widely adopted and we can’t avoid working without them. I’ve seen a lot of bad JavaScript due to jQuery and several websites crash due to bad Linq statements. Why do I continue to use LESS, jQuery, and Linq? Efficiency. I can code with or without them. It doesn’t matter. I want to be versatile and quick. I can get stuff done a lot quicker with them. The same can be applied to Bootstrap. It’s a new tool that introduces a lot of efficiencies. It can also introduce potential inefficiencies much like the tools above, but a good developer should catch these before they become a problem.

Bootstrap is a very capable front end framework that makes responsive easy and quick to implement. This is much like what jQuery did with JavaScript. Is Bootstrap something I’m going to implement on every one of my projects? No, but it will be my goto framework when a project fits the mold and I can save time. It’s another tool to add to my toolbelt that will allow me to be innovative and more versatile.