When your memories exceed your dreams, the end is near.

Unknown

Failure is not fatal, but failure to change might be.

John Wooden

Tell me and I forget.

Teach me and I remember.

Involve me and I learn.

Benjamin Franklin on Learning

I had an encounter this week that made me pause and re-evaluate things.

I have never been a person who thinks it is my way or the highway, but I will admit that I have strong opinions. These opinions are forged from my experiences and I expect others to bring theirs to the table too.

I am not afraid to admit wrongness or even failure, I truly think you can learn and never arrive. Just because we disagree on the path does not mean we cannot desire the same destination.

Back to my encounter…

I found it strange that someone I did not know would be offended by my opinion and preference without engaging in the how’s and why’s.

Sure it could just be internet trolling and I need to have thicker skin but I felt compelled to ask this question: “Where did we go wrong when someone having an opinion was a bad thing?”

Having an opinion as a Developer does not mean you are a rockstar, stuck up or bad person and it certainly does not mean you are an immovable object when it comes to building great software.

At the same time, I really enjoy when someone brings a wealth of opinions to the table. It means they have fought battles and won wars (not actual ones) which brings a wealth of experience with it.

So here’s a disclaimer I will toss out: my opinions may be strong but they are weakly held. If there’s a better way to do _____ then let’s explore it.

The App Open Source Built

September 18, 2013 — Leave a comment

Last evening, I was fortunate enough to be able to speak at the Atlanta iOS Developers Meetup.  The talk centered around how I created Gitty leveraging Open Source.  I spent some time trying to advocate for Open Source in iOS Development and for others to give back.  Thanks to everyone who came out and for the kind words.  

If you would like to see my slides you can view them on Speaker Deck.  Please feel free to ask questions in the comments if you were unable to chat with me last night.

3 Tips for Recruiters

August 19, 2013 — 2 Comments

If you are in the Tech Industry then you are no stranger to recruiters.  Not a day goes by where I do not receive an email or a LinkedIn request from a recruiter who is hiring.  Our Industry is extremely competitive and everyone is looking to hire the best.

Unfortunately, recruiters get things wrong most of the time.  Instead of coming off as interested, they quickly come off as spammy.  There is even a website dedicated to avoiding most recruiters.

Here are three tips I would give to any recruiter who is looking to hire in our industry.

1. Make It Personal

The worst recruiters copy and paste blanket emails to candidates with names swapped out via find and replace but great recruiters take the time to court potential candidates.

Let’s face it, we all want to be a part of a chase. Whether we are doing the chasing or being chased, it’s fun and exciting.

When I was trying to get the eye of my wife back in our dating days, I did not search the internet for a romantic email or date idea rather I took the time to think about her and made all of those things personal.

When you are pursuing candidates, try to gather as much information about them as you can.  Read their blog and tweets to figure out what makes them tick.

If you find a candidate that is a huge New England Patriots fan, perhaps mail them a Patriots hat with a hand written note expressing your interest to talk and interview.

If that is too forward for you, shoot them an email noting a recent event they attended or were a part of.  Anything you can do to make the first interaction personal will help you avoid the spam folder.

2. Know What You Are Asking For

Thankfully our industry is becoming less about buzzwords and more about substance.  Recruiters actually know what a GitHub account is.  But just because a person has GitHub account does not mean they are the right person for the position you are hiring.

Do a little homework here.  Ask some detail about what the position requires whether that be programming languages, frameworks and how those match up with the required results.

From there, learn how to browse someone’s GitHub profile.  Learn what a star is and how that indicates something good.  Grab a few repositories the candidate has contributed to and ask a Developer to see what their thoughts are.

Just a little bit of work here will save you a lot of work on the backend, not to mention your employer the time of interviewing a candidate who is not the right one.

3. Don’t Ask Me To Do Your Job

We all know you get paid when someone is hired.  By asking me to refer others to you implies that you are trying to get me to work for you for free.

If you want a reference from me, be willing to make it worth my time. Otherwise you just come off as a person who has some ends and they are looking for the means.  Our interaction becomes a transaction and for most that is empty, shallow and not profitable.

I know this writing is a departure from the norm but I want this process to be better for everyone involved.  If recruiters could take a moment and consider these three things, I think the conversation moves forward for everyone.  What about you?

ella_reese

Four years ago my life changed forever when we welcomed Ella Reese Strickland into the world.  Not only did I become a dad, but I fell in love again all over.

A few things I will never forget…

  • I will never forget that moment when the doctor lifted you out of his hands and into mine.

  • I will never forget the first time our eyes met.

  • I will never forget the feeling that you knew my voice when I first told you I loved you.

A few things I hope you will never forget…

  • You are loved and have extreme value because you were created in God’s image.

  • Your dreams are just a glimpse at what can be if you have the conviction that they must be.

  • Your mark on this world may be measured in many ways but I hope the greatest is how you loved others.

Love you Ella, Happy Birthday :)

Daddy

ella_letter

The image above is a text that my wife sent as she wrote down what my daughter wanted to say to me.  Just before this, I wrote my wife a text that was for my daughter telling her how special she was and how much she meant to me.

I don’t share that picture with you to tell you I am great or something like that but just that this process reminded me how tough it can be to balance our professional life with our personal life.

In a day and age where we are always on, always connected and always available, it becomes increasingly impossible to navigate these waters.  On the one hand you love your craft, you pour your heart and soul into it.  And on the other hand you love those who you do life with and want to make sure they know their value and importance.

Here are a few tips I have tried to incorporate into my life that help me balance personal and professional.

1. Turn Off Your Phone

Our phones are a great tool but also can be a great stumbling block when it comes to balancing personal and professional.  When are you really off work?  If your email lives on your phone then probably never.

I would suggest that when the work day end that you turn off your phone.  If not then you will constantly checking it.  We’ve all seen the family out to dinner where the parents are on their phones and there is no conversation happen.  Heck, I am sure that’s been me too.  Disconnecting from your phone, twitter, facebook, instagram for a period of time will help you balance things.

2. Be Fully Present

When you are at your child’s ballgame, are you truly there?  Or are you thinking about that problem that needs to be solved at work?  Being a developer, I know first hand that problem solving rarely stops when you get up from your desk.  Usually there is a problem that lingers in your mind until it is solved and therefore being fully present is tough.

The challenge here is to be fully engaged in whatever you are doing.  If you are always somewhere else in your mind then you can never fully enjoy the things you are a part of.

3. Create Regular Appointments

One tip I received early on in my marriage was that when you get married dating your wife does not stop.  Because I want a healthy and great marriage, my wife and I regularly go on dates together.  It is a time for us to disconnect from our professional lives and now our children and reconnect.  Our marriage is refueled and we are ready to tackle whatever lies ahead.

If you have children like me, then dating your kids is a great way to be intentional with them.  Not only are you showing them how they should be treated by their future spouses, you are showing them that they are important.

Creating these regular appointments will keep you balanced and remind you and others of the important things in life.

A Lasting Image

Growing up, I loved to play baseball and even when I was not playing baseball I was thinking of it.  My dad worked for an Insurance company and while his time was limited he always made sure to coach the teams I played on.  One lasting image I have in my head is of my dad, dressed in his buttoned up shirt, slacks and dress shoes coaching from the 3rd base box.  That image reminds me that while work was important for my dad, I also was important to him.  It’s the little things that we remember in life.

Recently, I ran into a really strange bug that had me perplexed for a bit.  I was going about my normal business of adding some assets to an iOS project, everything appeared to worked fine on the iOS Simulator but when I ran on device my new images were not showing up.

At first I thought it was something to do with how I was loading the UIImage.  You see, I need to get some data from the server and then create a string that represented my image in the bundle for loading.  For example: all of my images were prefixed with a certain naming convention, e.g. ABC123.png, ABC456.png, etc.  After a little debugging, nope that was not the problem at all.

My next thought is that somehow when creating the IPA for Adhoc deployment, the assets were not being bundled.  To debug this, I remembered a little trick I learned from NSScreencast using a ruby library called appcrush to extract assets from an IPA.  After running through this process, everything was there so that was not the problem.

At this point, I reached out to some colleagues to see if anyone else had ran into a similar problem.  My friend Paul reached back out shortly with an idea:

I think I may have had an issue like that. If I remember right it was because the simulator is not case-sensitive but the device is. I’m not sure if I’m remembering that right but its something to check.
As I was reading those words, it hit me.  I had created a ruby script to rename all of the assets I was working with to follow the convention I needed and in doing so, I upper cased everything.  Sure enough, I had also uppercased the extension so instead of being .png it was .PNG.

A few quick changes and a new Adhoc deployment, sure enough that was it.

So if you are ever running into a problem where an asset shows up on the iOS Simulator but not on device, first check for the case sensitivity of the file name because that may likely be your problem.

Peace is not the absence of conflict, it is the presence of Jesus.

Louie Giglio on Peace