Saturday, June 28, 2014

One step forward...fifteen steps back

Saturday afternoon, world cup is on the tv, and I'm plopped down on the couch with my laptop & book in hand. My dog is fast asleep on the couch, but probably bored and wishing I would play with her instead of having my eyes glued on my laptop! I figured now is as good of a time as any to provide another update...

I've been trying to spend as much time as possible learning how to code and working on my app. As a refresher for anybody that has been reading along, I'm working through the book "Agile Web Development with Rails 4" by Sam Ruby, Dave Thomas, & David Hansson. The book provides an in-depth tutorial in which you create an e-commerce site for a fictional customer. My issue with tutorials is that a bulk of the code you need is already in the book, so I feel it doesn't challenge you as much as I'd like. So I decided to create my own app which will allow you to add & store your favorite recipes online, and eventually I'll add a randomizer to allow you to pick a recipe at random.

I'm really hoping to spend at least 10+ hours a week studying because I'm really enjoying it. I would love to spend more time than that, but I do have a full time job & other activities that keep me pretty busy. However, there is something about typing in a few lines of code, seeing something pop up on your computer screen, and thinking to yourself - "I DID THAT!". In addition, coding involves A TON of problem solving and I always enjoy the rush of finally figuring out something that I've been stuck on!

So that leads me into the main topic of today - I was starting to feel comfortable navigating to different parts of my Rails application and being able to troubleshoot and figure out issues...and then this happened...


Thankfully I recently stumbled across a great group on Twitter called CodeNewbie that has been extremely beneficial! It was started by Saron (@saronyitbarek) and Carlos (@carlosplusplus) and it's a great community of developers and developers in training that are always there to help out. I posted a screen shot and within 15 minutes already had a response from @carlosplusplus!

The answer ultimately ended up being me starting my app over, but I really wasn't that far in and it took me maybe 15 minutes to get everything back to the point I was previously at! Here's a screenshot of the current state of my app from the web browser:



Overall, it's a ton of fun every time I get to sit down and learn a little more about coding, even if it is a step forward and a few steps back sometimes. I'm very fortunate that I get to sit around close to 200 very talented Software Engineers at CareerBuilder and I can ask for help on an almost daily basis.

Hopefully in the very near future I'll have some good updates and screenshots of how my apps coming along. In the meantime, if you have any advice, words of encouragement, or are interested in hearing about a certain topic - please feel free to comment or email me at austi003@gmail.com.  I'm hoping at least one person out there finds this blog interesting or gets some value out of it :)




Saturday, June 21, 2014

What on earth is a Hackathon?

It's Saturday morning now, and I've finally recovered from lack of sleep while participating in the quarterly Hack-a-thon that CareerBuilder hosts. First off I have to say, I work for an AWESOME company and am so thankful they basically let me take two days off from my day to day job to participate with the Site Technology team!

Since many of you reading are my friends and family that probably have no earthly idea what a Hack-a-thon is, let me quickly explain (or you can watch the Hackathon video from last quarter - highly recommended)

If you're choosing to punish yourself and read through my description, here goes! A Hack-a-thon is very popular in the Software Engineering community and is basically a concept where Engineers come together to "hack" (code, program, engineer) on something. Sometimes they take place over the course of a 24 hour period such as CareerBuilder's, or they can also take place over the course of a weekend. Hack-a-thon's can also take place within individual companies (especially popular in Silicon Valley), or any other type of event hosted by a college, organization, or technical community where people can come from all over to participate. CareerBuilder holds a Hack-a-thon once a quarter where from 9 am Thursday until 9 am Friday they give the full Engineering staff 24 hours to work on anything they want to and CareerBuilder provides tons of food, drinks, and games to help power people through. While some people choose to work on fun projects, we also get ton's of great ideas for our products from these events (I'd like to say my idea will hopefully be used as a new feature!)

So enough on that - as many of you know I'm an IT Recruiter at CareerBuilder. I sit with the developers and I know how to write a little code, so they let me participate. I thought I would take the time to share my experience of the 27 or so hours starting at 9 am Thursday all the way through presentations which lasted until Noon on Friday. I won't document hour by hour, but I'll share some of the cool things (you can also check out my Twitter feed for more cb_Shaun or check out the handle #cbhackathon)

I had a good idea for one of our product lines, but obviously did not have the technical "know how" to actually implement it. Thankfully two of our Engineers were nice enough to let me work with them; one of them sits in the Norcross office with me and we also partnered with one of our Engineers based in France.



8:30 AM Thursday - Joseph and I had to make the most of our time working with Clement (who is like 5 or 6 hours ahead of us in France) so the first thing we did was jump on a quick video conference to discuss our game plan of implementing this solution. I quickly learned how much I DO NOT KNOW :)   I knew that there would be a lot of code I would not be able to help with, but I think I hoped there would be more I could research early on to be able to help with. Before we got too far along though, it was time for breakfast!


After breakfast, I spent my morning hours working on a brief PowerPoint for our presentation for Friday. Joseph and Clement were busy researching how to implement the idea and putting together the backbone of our feature. Learning Point #1 - As a Software Developer, you first spend a lot of time researching other people's ideas and solutions, and then you actually begin to code. I guess I always thought they learn the programming languages and then instantly know how to begin typing out the code. In actuality, a lot of their job is research and then learning how to use their knowledge to implement.

11 AM - First game of the day - Viking Chess out on the lawn. If you've never heard of Viking Chess, which I hadn't either, you can read up here. I didn't sign up prior so I wasn't able to actually play, but I did enjoy a few beer's and some sunshine out on the lawn behind our building.


As I mentioned, Joseph and Clement had a lot of work to do getting the backbone in place that was WAY above my level of knowledge or understanding, so most of the morning/afternoon went by in a fairly uneventful manner for me. I tried to look over Joseph's shoulder and he at least explained what he was working on. They have "rev up" stations around the floor where you can get candy, snacks, energy drinks, etc and they provided us a buffet lunch at 1pm. I also got a few games of Ping Pong in although I'm embarrassed to admit I've still yet to win a single game! Learning Point #2 - Jesse, one of the Managers that is a top Ping Pong player at CB, finally taught me a little about how to spin the ball and different attacks to beat different players - hopefully soon I'll finally get a Win!

4:15 PM - A good chunk of the business day is gone, and I've yet to get to contribute to the actual coding, BUT we are finally starting to come along. Joseph and Clement have come a long way, and we have one piece of the ultimate project done, we are successfully texting (I can't share our ultimate idea as I hope it is a feature we will actually implement)


5:00 PM - The day has flown by and I'm sure many of our Engineers brain's are fried by now! We got stuck on several occasions, but thankfully Clement & Joseph are very smart and kept things moving along. Now it's time for the Happy Hour and some more evening games! CareerBuilder brings in Peachtree Growlers and catered food, and we get a few hours to relax & have some fun!


6:00 - 8:00 PM - Evening games on the lawn. Yes I'm sure many of you reading this (including my brother that actually sent me a text saying so) think the day is all fun and games :)  For me, quite a bit of it was because the technical aspects were over my head. However, for many of our Engineers, they've been at it for 8 hours now and need a break to refresh! My work was still yet to come a little later in the night.

The evening games included Water Balloon launchers, Angry Bird launchers, some video games, and a human size hamster balll track.



My first time I was horrible at the Hamster wheel, but I got the hang of it the second run down the track. The biggest surprise for all of us - it's a TOUGH workout! Run down the track once or twice in that thing and you are absolutely worn out. All in all it a lot of fun, but now it's time to head back inside.

8:00 PM - We are finally at the stage that I can begin to contribute! This is what I've been waiting all day for (and really what I've been waiting for ever since March when I witnessed my first Hack-a-thon) and I'm ready to start coding. Joseph was able to assign me a few tasks that I could start researching in order to learn how to do; the first being how to normalize a number.


What does that mean you ask? Basically we needed a number to be in the following format +1XXXXXXXXXX. However, we might receive numbers in any number of different formats including (123) 456-7890 or 123-456-7890 - you get the idea. So I had to figure out how to take in the number provided, remove any special characters that might exist, check to ensure it was a 10 digit number, and then add a "+1" before it. Here is a screen shot of the ultimate code I came up with, written in PHP:


I also learned the basics behind how to use the Twilio API and was successfully able to send myself a text message via running the code from my desktop! Learning Point #3 - Just about any code you need to write exists somewhere, you just have to know what to search for and how to implement it.

10:30 PM - Starting to get a little quiet around the office as not everyone stays the full 24 hours, and a lot of people have gone home. At this point, we've started working on the User Interface (how it will appear to our user) and this is the type of stuff I can actually help with! Joseph found some good examples to work off of, and he gave me the task of figuring out how to use it. Naturally it takes me a little longer as I try to research and understand the code, but HTML & CSS are the two languages I feel most comfortable in at this point.

2:30 AM - I've been at it for close to six hours now, although I have taken some breaks for the occasional nerf dart war, midnight pizza, and another game of ping pong. I've finally got a working prototype of how this should look for our end user. It doesn't actually handle the data yet, but provides the needed code for Joseph and Clement to work with. It's probably something our Engineers can figure out in like 30 minutes, but I'm feeling pretty proud at this point!



5:30 AM - Let me give a quick recap at this point. We've been at it for about 21 hours now (At least Joseph has :) More like 9 1/2 hours of actual coding for me). I've probably had 6,000+ calories between breakfast, lunch, candy, dinner, late night pizza, etc. I've had I don't know how many cups of coffee & energy drinks, and several beers. I'm now officially exhausted & hardly keeping my eyes open, but we are definitely coming along with our idea! Joseph is an absolute beast powering through to this point & Clement did a ton for us earlier on. Since he's hours ahead of us, he did take some time to sleep through the middle of the night our time. Learning Point #4 - The Energy Drink industry is kept in business in large part due to Software Engineers


6:30 AM - We have a working prototype at this point. There are a few things we'd like to clean up and make look better, but Joseph and I are both exhausted! We agree on a two hour nap and back at it at 8:30 am. We know we aren't the first to present, so we'd have a little time to clean things up. I find a nice huge bean bag chair near my desk and semi-sleep for about two hours.

9:00 AM - I enjoyed my nice two hours of light sleep although I was right outside of the office of the CTO & CEO and they had an early morning conference call, so that was going on from 7:30ish on. At 8:30 I got up, cleaned up a little and brushed my teeth, and headed upstairs to the Alabama Conference room for breakfast and to get ready for presentations to begin. There were a total of around 35 presentations (each given 5 minutes or less to present) and we were around number 21. Clement was able to do some last minute clean up and everything looks great!


12:00 PM Friday - Presentations are done! I feel our presentation went really well and I'm anxious to see how everyone votes! Everyone is given three votes and you can vote for what you feel are the top three ideas (or just your favorite), and you are allowed to vote for your idea. Some people vote on the silly games, but all in all I think some of the top ideas definitely won out. Unfortunately our project was not in the top 3, but I do think we finished in the top third of overall projects. My highlight was the CTO voted on our project and even told me I should get to raise my hand twice for it! Since I'm a recruiter and not a programmer, I think everyone was pretty impressed with my idea overall and the implementation I was able to help out with. All member's on the top 3 winning team's each win a brand new iPad Air! Hopefully I can win one in a future event :)


12:30 PM - Finally headed home to get some much needed sleep! It was a fantastic experience and I'll anxiously await the next event in September. I learned a ton, had a lot of fun, and got to work with and see the work of some very talented Software Engineers!


Wednesday, June 18, 2014

Gotta start somewhere right?

So over the course of the last two weeks, I haven't quite updated my blog the way I hoped, or had much of a chance to do any significant practice or studying with coding. I did have a nice trip up to Chicago though and got to meet some co-workers and see an old college buddy. Being in Chicago gives me such an itch to pick up and move there as well - I've always been drawn to Chicago & NY.

Anyway, I figured lunch today would be as good as any to type out a few thoughts in between bites. To be honest, today's topic is as much for me as it is for anybody that actually reads along :)  I have an idea for an application I'm going to work on, and wanted to do a "before" post so that six months or a year down the road, I can look back and see where I started. 

I mentioned to a few of the developers that I was interested in learning how to program, and the guys I sit around have a focus towards Ruby on Rails, so they recommended "Agile Web Development with Rails 4" as a good book to follow along with. I actually got the book about a month or two back, and have slowly started working my way through. Through a good chunk of the book, it lets you follow along with building an eCommerce site which they call  the Depot application. However, this past weekend I decided on an idea for a new application that I would try to build while following along with their examples. 

Problem: I prefer to cook healthier options at home, but I never know what to cook

Solution: Just for the fun of it, I want to build a site where I can upload the recipes I like, and then use a random generator to pull recipes. If I can figure out how to do it, I may add in features to choose between Breakfast, Lunch, & Dinner options, or maybe even choose between types of Dishes (i.e. Chicken, Pork, Fish). 

I'm hoping to use some of the same functionality of the Depot project such as adding new products (new recipes). As I begin to progress, I'll upload to github (austi003) if you'd like to follow along or see my code. Hopefully I can get something working, even if it's not the most professional looking! 

At this point, my experience is primarily the classes I took as a CS minor in college, along with 2-3 months of sporadic studying I've been doing, but I wanted to rate myself before I get started:

  • HTML/CSS/JavaScript - (4 or 5) - I took a number of classes on HTML/CSS/JS in college, and have probably done the most work here. Especially for HTML/CSS, I know a lot of the basic syntax and can follow along with the code even if I can't write it all off the top of my head. For most projects, I probably know enough that between my knowledge, and using Stackoverflow or a google search, I can figure out how to do what I need to.
  • Ruby (1 or 2) - This is the first object oriented language I'm learning, primarily because the developer next to me gave me a problem to solve in Ruby. I've at least started learning about the overall syntax and what methods & classes, & types of variables, etc. At this point, I would still consider myself very basic though. Here is a sample screenshot of my code, and once again you can find it on Github.

  • Ruby on Rails (About the same) - I at least understand conceptually the whole MVC concept and hopefully will learn a lot more about Rails as I go

So that's my starting point and level of knowledge, let's see where it takes me! On one quick side note, our quarterly Hack-a-thon at CareerBuilder takes place tomorrow starting at 9 am - I'm working on an idea with two of our engineers and it's my first Hack-a-thon to participate in, so I'm pretty excited! Feel free to follow along on Twitter @cb_Shaun and probably the tags #careerbuilder or #cbhackathon - I'll try to post some pictures and updates throughout the day/night. 

Tuesday, June 10, 2014

More Transparency - Rants of a recruiter

I spend a lot of time trying to research and fine tune how I message and approach recruiting developers. I used to cold call people at their desks, and have received a resounding "Don't do that!" from the developers that sit around me. Lesson learned!

One of the things I've always heard though is they want to know what the salary range is. I understand they don't want to waste their time and would like to at least have an idea of what range the company is looking to be at. I've decided to push for including salary ranges on my messages and postings (although the argument for not listing salary is to not discourage someone that is potentially slightly higher, but if they are ideal could be considered).

However, as I scan resumes that people have posted, 98% of them do not include any type of desired salary or prior salary. Why are they so adamant to receive that information from companies, but are not willing to provide any information themselves?

Unfortunately I know there is so much noise today and many recruiters that give the recruitment industry a very bad name! I saw a tweet today with a funny little punchline ("Recruiters - Now seeking 5+ years of Swift experience) - unfortunately I know that actually happens. I would love to see an increase in the overall talent of the Recruitment industry, but would also love to see potential candidates be a little more willing to meet halfway. It would help make the process of hiring talented individuals a lot smoother for everyone involved!

End rant  :)


If you have any questions about how recruiters process or view things, feel free to reach out. I know it sometimes seems like a black hole or is impossible to figure out what recruiters or other hiring authorities are looking for. I'm always willing to help

Tuesday, June 3, 2014

And so the journey begins

I must admit, I thought blogging was kind of a fad that went away years ago, but I've been inundated with messages lately encouraging blogging. I attended the May Atlanta Ruby Users Meetup Group and heard a good talk on the power of blogging, and I've randomly stumbled across a few other blogs as of late (Josh Kemp &Mal on Rails) - so I decided to jump on the bandwagon. I guess worse case it's at least a time capsule that ten years from now I can go back in time and remember whatever crazy ideas I had back then!

Funny thing tonight is that I found a link pointing to blogger.com and thought I would check it out - turns out I already did so back in 2007 (My 2007 blog)! I forgot all about that post but clearly never stuck with it. So here it goes, and I'll see if I can actually stick at it for awhile this time.

So why am I here? I've had a very successful career for the last few years as an agency IT recruiter and now corporate technical recruiter, and I've made very good money doing so. I'm not even sure at this point if I wan to leave recruiting or not. I have however, long had a desire and interest in IT, and coding in general. I remember as early as elementary school being in the computer club (yes I was a nerd) and making a basic football field simulation in Basic, and in middle school I asked my parents to buy me a copy of Visual Basic for Applications when we got our first family computer. I even minored in Computer Science in college and got my feet wet with HTML/CSS/JavaScript. I've just never taken the full plunge. Who knows, maybe it's just the childlike syndrome of wanting what you can't have. Now that I sit on the floor with our developers and see what they are doing all day, I think I want to do it because I'm not doing it now...

I've been bouncing back and forth for the last six months or so wondering if it is finally time to try to get into the IT field, and if I wanted to teach myself to be a developer. So about a month or two back, my then girlfriend and I were at Barnes & Noble, and I once again went over to the section with all of the books on programming, and asked her if I was nuts for wanting to buy a book to see if I really would enjoy teaching myself to code. She was of course very supportive and I'm now a few books in. I really haven't decided if I want to do this as a full time job, or if it's more just a hobby, but I've at least embarked on the journey. I do a lot of self-study at home and am working through the Agile Web Development with Ruby on Rails 4 book, but also get some interesting problems from the developers that sit next to me at work (working on a Ruby file that takes in a wave file and then gives certain information related to that wave file, plays it forwards/backwards, etc).

So what's my plan moving foward? This blog turned out to be a little long, and I plan to keep them short and sweet moving forward. I know I'm pressed for time and wouldn't read anything this long, so I don't really expect other people to have time to either. As I've seen suggested though, I'm going to try to make a few entries a week documenting different things through my journey. I may leave them strictly related to coding or I may venture out into other topics. Maybe I'll even share my knowledge in the world of recruiting to help people looking for jobs gain some insight into what recruiters look for. Stay tuned and hopefully I'll have something of value at some point! :)