Latest Posts

Even programmers need a brand.

Yes, you heard me right, Even a programmer like me needs a “brand.”  Everyday, the world is becoming more and more interconnected and this is becoming even more important with success of LinkedIn. Traditionally, developers Brandingwere stereotyped as antisocial geniuses that hid from the light, with a pocket protector and broken glasses. You can’t be that guy anymore and compete in today’s workplace.  You need to be out there. More and more every day, recruiters are using social networking to find their hires. Your resume is no longer the only thing people look at when they try to decide if they are going to hire you.

Think about this for a second, You are a recruiter, you get two applicants, Bob and Tom, both have good resumes, they both have good job history and experience.  You do a quick search on Bob, nothing comes up. You search for Tom, you hit the jackpot. You find his LinkedIn, his Twitter, even his Github. Tom has been a busy boy, He has a lot connections on LinkedIn, he has been productively contributing to groups, lots of people have given him recommendations and confirm his skills .You find our he is a core contributor to a relevant open source project. Which person do you think you should more interested in? Bob? Or Tom, whom you have great deal more verifiable information on?  You got it, it’s Tom all the way.

Ok, you got me. How do I build a brand?

Start doing. One step at a time. What are good at? Do you like writing? Start a blog. (If you hate writing, don’t start a blog)

What should you write about? Stuff you know a lot about, stuff you are passionate about. If you are good at embedded development, if you love it, write about embedded development. Don’t write about things you don’t care about.  If you have don’t care, it will bleed through and you won’t be doing yourself any favors.

I recently wrote a blog post, it was the first time I had wrote a blog post of that type. It was a subject I really cared about. I have gotten way more reaction to that blog post than I have for any other blog post that I have done. The reason I got such a good reaction to it, was simple, I really felt the subject matter and it was personal to me. I was even lucky enough to have Itamar Haber of RedisLabsInc, pick it up and think it was worth telling the Redis community about it. Moral of the story, talk about what you care about it, in a positive way and good stuff will happen.

Get on social media, get a Twitter or a LinkedIn account use it.  Be positive, Talk about things you know and are passionate about. Don’t get suckered into flame wars. Follow people who are in the know in your field social media. Interact with them. The first time is always the hardest, it gets easier each time. Check out people like John Sonmez,  and how he brands himself as a programmer. Learn from him, try to do better. Follow influencers in the general social media space, like Gary Vaynerchuk. The majority of my social media knowledge(I am not an expert, yet) comes from him.

Just go out there and do positive, constructive things, watch what happens, learn from it. Then do better.  You will be amazed by what will happen over time.

Don’t Get Married..

.. To your caching solution. Nice click-baity title :)  I am going to get right to the point. Using your caching solution directly is never a good idea. Why is that?

This goes to one of the basic premises of good Object Oriented development, SOLID. If you have never heard of SOLID, be sure to read up on it. I am just going to talk about the D in SOLID today. Now keep this in mind while I tell a story.

 

Back in 2007, I was learning the ropes of web development. Up to this point, I had just worked  with the C family of languages and Java. As you can imagine, I was pretty green. Fairly quickly, one my websites garnered runaway success. The script it ran on was just not designed to handle the level of activity it was seeing. I was running into HUGE issues with the hard drives. They just were not being able to keep up with the reads necessary to handle the million+ page views we were doing a day. The database was having a hard time keeping up as well. This is when i discovered a Pecl  called APC. It was love at first sight!  APC is an op code cache that provides a key-value store as well. It was awesome(for the time).  APC and I had whirlwind romance. I would sweet talk APC and it would do absolute magic for me. I was using APC everywhere. I wrote a session handler, caching database queries, caching template files, mutexes. You name it, I was doing it with APC. It was phenomenal. I was able to drop server load by over a factor of 20. APC and I were hitched. I had apc_fetch() and apc_store() calls everywhere.

APC was an amazing solution, but as it happens with whirlwind romances, sometimes as time passes, the passion fades. You get to know each other better, you start to see each other’s shortcomings. Sadly, that is what happened to us. APC is stellar for websites limited to a single machine, but as soon as you try to go to clustered/multiple front end environment, she goes from a nimble sweetheart to an cumbersome, emotional mess.  All of sudden I am trying to synchronize multiple caches across multiple machines, trying propagate sessions from machine to machine. This is just a terrible way to do things.

It becomes quite apparent what needs to be done. My whirlwind romance to APC has to come to end and I need to move on. As it turns out, I have become so dependent on having a caching solution that I just can’t bear to go on without one. I realize what I must do, and I feel guilty about it, but I have to do it. I have to find a “replacement” for APC before I dump her cumbersome butt.

I go out, I talk to people, read blogs posts. It starts as a crush from a far.  Then some documentation “stalking”. Then we finally meet.  After hanging out a couple times.  I realize Redis is the one for me. She is smart, quick on her feet, and incredibly powerful. Just what I always wanted. It’s time to make my move. It’s time to dump APC.. and of course breaking up is hard to do.

I sit APC down and I tell her it is over and it’s time to pack up her crap and get out. I have found someone new. She doesn’t lift a finger, she just laughs at me.  What’s so funny? She points points to the ring on her finger. We are “married”  I have hundreds if not 1000s of references to APC in my code. I am going to have to change all of them to use any other caching solution.  I need a divorce, and it is going to be painful..

What was the point of all of that? If I had known about SOLID back then, I would have never gotten married to APC.

The D in SOLID is for Dependency Inversion.  What is Dependency Inversion? In the most simple terms, it means “Always depend on abstractions, never on concretions”. Does that sounds like heady gibberish still? Put even more simply, you should be using a well thought out interface to access your cache or any similar resource, and not be accessing it directly. If done correctly, changing the underlying engine from APC to Redis could be as easily done as changing a configuration file. In the worst case I would have to write an adapter class for Redis, which would be easy. Much easier than refactoring large amounts of code. If I would had been following this principle, I would have been able to throw APC out the back door as I was moving Redis in from the front door.  It’s definitely costly mistake to make, divorce is ugly.

 

Sometimes it’s OK to let people know you are Big Dog

It’s been a while, Tony inspired me today. Check out the post that inspired me here.  So I thought I would share with you the fruit of his inspiration!

 

Unless you are a boastful, self-centered d-bag, you most likely don’t give yourself enough credit about how good you really are. Obviously, there are those on the opposite side of the spectrum… You know who you are. You aren’t nearly as cool as you think :)

Sometimes life is harsh

There are harsh realities that are far too easy to ignore.

It’s easy to blame someone else for your failures. If something is wrong in you life, if you are overweight, depressed, at a job you hate, a smoker who can’t quit, failing at life. It is your fault*, you are to blame!  You have to own the fact that it is your choices that define who you are. It’s not someone else’s fault you decided to eat that Big Mac, no one put that cigarette in your hand and made you smoke it. You did that.  You didn’t quit smoking because you didn’t want it bad enough. YOU didn’t just sack up and just quit..

You may be saying right now,”But, Tim! Quitting smoking is hard. It’s an addiction.” What do I say? Sack up, I quit smoking after smoking 10+ years. I wasn’t able to quit because I am special, or better than anyone else. I quit because I owned the fact that it was MY stupid decision to continue to smoke. No one was doing it to me, the blame was mine and mine alone. I had to want to quit and then I had to do it. I did it. It sucked, I was miserable, BUT in the end I AM BETTER than I WAS because I did it.

ARE you going to face the harsh reality, that everything in your life is your doing? That it is up to you to define your life? Are you going to be the BEST you, that you can be? Take ownership of your decisions, it is your life.

*Obviously, there are exceptions to this. There are people that are dealt a crappy hand of cards. Those cases are rare. And even then, it’s up to you to decide if are going going to fold and give up, OR are you going to sack up and try to win with the cards you have. If you are able to read this blog post, the are literally millions of people who have it much worse than you. Since you read this, you are able to see, right?

Focus, No really I told you to Focus

Focus is one key element to success that SOOO many people for get all about.

I am not going to preach about it though, because I have been guilty as the next guy of not being focused. They’re been many times, many, many times that I’ve gone and started a project only to get distracted by a new project and then start working on the new project. There many reasons people(me) do this, it’s human nature to want to do what you find interesting, so if even the tiniest bit of boredom creeps in its very easy to get distracted by something new and shiny.

I probably have countless side projects I’ve started and never finished. I’m going to admit right now that that’s a really bad thing. Don’t do that.

In fact, while I was writing this blog post, I lost my focus and actually updated this blog to the newest version of WordPress, and installed a plug-in. Did those things really need to be done right now? Probably not! And due to that lack of focus, writing this blog post took me close to an hour and a half, when it should have taken about 30 minutes, maybe even less.

Moral of the story, keep your focus!
Nothing good is accomplished without great continued effort.

My First Video Post

I had intended on actually posting here a little more often than I have..  No Excuses though. I have something I was inspired by and I just wanted to share.. It’s an early morning video, so i had just rolled out of bed.

 

So in my last post I said i wouldn’t talk about politics.. The next post I did, I already went back on that.. What can you do?

So What am I going to with blog..

Well I don’t really have a solid plan. I think I am just going to post here when I have inspiration.

 

If i try to say I am going to post all the time I will get bored and not do it.  There is only so much creativeness I can muster.

The things I will probably talk about…

Marketing, Programming(How could i not talk about programming), Random thoughts and stories..

Garbage no-one cares about.

 

The one thing you probably won’t see on here is politics..  Ok that is all i have for today..