Saturday, July 22, 2017

That's so Bellingham!

I've spent the past 5 weeks in Bellingham, Washington, working at Faithlife on revamping the Logo Bible app for Android. My family is here with me, and in another week we'll be heading back to Searcy.

We've really enjoyed our time in the northwest. Bellingham is located near the Pacific and just 20 miles south of Canada. We've spent most of our weekends traveling to nearby destinations like Mount Baker, Seattle, Vancouver, and Olympic National Park. Below are some landscape photos I took at Olympic just to give you a sense of the incredible beauty in this area.

Working at Faithlife has been a huge blessing. I've worked with a very talented group of guys who have taught me a lot. I'm especially thankful to David Mitchell, an alumnus of Harding's computer science dept, who arranged for me to spend 6 weeks here as a visiting developer.

I can't say enough positive things about Faithlife. They have a company culture that encourages excellence, and their mission is to service the Church. The vibe I get from the employees is very positive; everyone seems to really enjoy their work. I was even able to have coffee with the CEO, Bob Pritchett, who eagerly desires to meet one-on-one with all his employees, even the interns!

Speaking of interns, shout out to Stephen Hoffmann, one of our current CS students, who is doing a summer internship at Faithlife. Stephen competed in a company-wide hackathon yesterday, and his team was awarded the "Awesomeness Award" for developing a live-streaming capability that churches could use in during worship!

What am I going to miss about this place?

  • The fantastic weather, which at this time of the year is lots of sun, low humidity, and temperatures during the day around 70 degrees.
  • My work. I enjoy doing software development and working with a great group of guys. (But I also really enjoy teaching... it's my dream job.)
  • The church. We've worshiped with a local church and made some great connections. We are thankful for those who invited us into their homes.
  • The pro-environment focus. People here are very conscientious about treating the planet well. You won't see a single plastic bag at the grocery store, and every restaurant allows you to recycle your used plates, forks, etc.
  • Walking to work! We live only a block away from work, and it's so nice to be able to come home for lunch. Many days I never even get into an automobile!

What am I not going to miss? Hearing loud/drunk people leaving the bar at 2am. Living downtown is cool for 6 weeks, but I'm thankful to be going back to a house in a quiet neighborhood! :-)

Thursday, May 11, 2017

It's your fault you didn't get that internship (and how to turn things around)

Summer has began, and many of my students are off to exciting places to do summer internships. However, some of my students applied to several internships but didn't get a single offer. Why not? Are there just not enough internships to go around?

If you want to know why you didn't get an internship, you need to understand what happened when you applied.

Your potential boss (or likely a designated person in charge of internships who we'll call the "recruiter") probably received a number of resumes of students interested in the internship. The recruiter briefly scanned the resumes for promising candidates who appeared to do good school work and did projects outside of the classroom. If you haven't put in the effort in your school work, you likely didn't make this first cut. If all you are relying on is just your school work to get noticed, you may also have not made the cut.

In some cases, the recruiter may have accepted your resume, even if it wasn't necessarily stellar. But the recruiter wanted a little more information about you, so they called a few of your professors.

What could I say when I was asked, "Do you think so-and-so would make a good employee?" As I reflect on the previous semester when you were in my class...
  • You slept in class or acted completely uninterested.
  • You turned in late work repeatedly and always had an excuse.
  • Your projects were turned in with obvious flaws.
  • You never asked me for help or even tried to form a relationship with me outside of class when given opportunities to.
  • You rarely replied to my emails or told me you never check your email.
I wish I could have said, "Yes! I'd hire them in a second!" Instead, I had to be honest and tell the recruiter what it was like having you as a student. Does the recruiter want to pay someone who doesn't do their work on time, always has an excuse, turns in code with bugs, avoids personal interactions with others, and is generally uncommunicative?

Here's my point: It's your fault you didn't get than internship. But it doesn't have to continue to be this way.
  • Show interest in class and ask questions.
  • Start putting effort into your course work.  Turn in homework and projects that you obviously put considerable effort and time into.
  • Make relationships with the faculty. Stop by their office for help when you are struggling or even just to say "hi".
  • Take ownership for your mistakes and avoid making excuses.
  • Reply to your email.  I'm not sending you email just for fun.
  • Work on side projects just for fun.  Or at least for professional development.
  • Have a good attitude!
You don't have to be a 4.0 student to get an internship.  You just need to show that you are willing to work, pleasant to be around, and take responsibility for yourself.

I want all my students to get internships next summer!

Thursday, July 28, 2016

Web Programming book and kids' coding camp

My Sabbatical plans changed somewhat last spring, and I ended up putting all of my time into writing the "Web Programming" book to be released in beta this fall by zyBooks. If you are not familiar with zyBooks, they are online books that feature animations and interactive questions. Students are much more engaged when interacting with zyBooks than with traditional print books. Plus zyBooks are usually much less expensive.

The "Web Programming" zyBook covers HTTP, HTML, CSS, JavaScript, jQuery, mobile, PHP, Node.js, and databases. It's been a great experience writing the book, and I've learned a lot in the process. I'm finishing the final chapter in the next few weeks. Contact zyBooks if you would like to preview the book.

This week I ran the Kids' Coding Adventures camp for 20 kids in grades 1-3. It was the first coding camp in Searcy for young kids that I'm aware of. We used Tynker, a platform for teaching coding to kids and adults. The kids absolutely loved it!

What would make me want to spend three days with young kids teaching coding? I attended a Logo programming camp in the 3rd grade, and it was like I had discovered an amazing treasure! The camp introduced me to something that would later be my profession. I wanted to provide the same experience for the kids of Searcy. Plus my two sons really wanted me to run the camp, and it's hard to say "no" to such enthusiasm.

The Harding website has a nice write-up about the camp.

Tuesday, January 12, 2016

My Sabbatical

I'm very grateful that Harding has allowed me to take a one semester Sabbatical. I owe a lot of thanks to Gabriel Foust, my colleague who has been working on his Ph.D. at Texas A&M for the past four and a half years and has finally returned to Harding so he can take over my Spring course load. Thanks, Gabe!

My plans for the Spring have been in flux for a while, but they've finally ironed themselves out. I'll be spending a portion of my time writing some book chapters for a Web Development book for a well-known publisher. There is a team of writers for the book, and it will hopefully be available in the Fall. My Web Dev courses will begin using the book in the fall as well.

Additionally I'll be doing some software development for Flatirons Solutions, a company out of Bolder, CO, that I worked with a few summers ago. I'll be exposed to some new technologies that I will hopefully incorporate into my courses here at Harding.

A lot of my students thought I'd be gone this semester, but I plan on being in my office as much as possible and being available, so feel free to stop by and say hello!

Edit 7-28-16

The book ended up being the focus of Sabbatical. The book is called Web Programming and will be available to the general public at the end of 2016 from zyBooks. Topics include: HTTP, HTML5, CSS, JavaScript, mobile, Node.js, PHP, and databases.

Monday, October 05, 2015

20 years ago

It was twenty years ago on this day (October 5, 1995) that my college roommate Jeff Gammel drowned while swimming in Lake Cortez in Hot Springs Village. He was was swimming with a few other guys from Louisiana Tech but got separated from them at one point. When the Tech kids reached the shore and didn't find Jeff, they called the police. Divers found his body the next morning. No one is sure what caused him to drown, but my guess is that he cramped up or something and wasn't able to get to shore in time.

Jeff was in Hot Springs Village for the weekend along with his best friend Brandon Procell to be with the Hot Springs Village church youth group for an area-wide get together. Jeff and Brandon regularly traveled to Hot Springs Village to work as youth ministers for the youth group. In other words, Jeff lost his life while serving others. Although Jeff's death hit us all like a ton of bricks, we knew that he was just doing what his Savior did. And we knew that he had received his reward.

"For whoever wants to save their life will lose it, but whoever loses their life for me will find it." - Matthew 16:25

Below is the article from the Harding University Bison that talked about Jeff's accident and the chapel program the following Monday.

Friday, August 21, 2015

Finishing up my first summer with HUB-CAPS

This summer I had the opportunity to work with HUB-CAPS (Harding University Branch of the Center for Advanced Public Safety), run by my colleague Dana Steil. We employed seven Harding students to help us on various software projects for the Arkansas and Mississippi highway patrols.

What occupied most of time this summer was developing a system that allows Mississippi patrol officers to enter paper tickets into a web-based SPA application. We used AngularJS on the front-end and an ASP.NET MVC app that exposed web APIs on the back-end. Mallory Eaton did a lot of the client-side development work and built some nice e2e tests. I'm proud of the app we developed which is currently in beta testing.

I'm also thankful to Dana Steil for giving me the opportunity to work with his group.

Our students are starting to arrive for the beginning of the fall semester. Time to start redirecting my energies into my courses.

Friday, March 06, 2015

The MEAN stack

I've developed some notes/outlines for my Web Development 2 course on the MEAN stack (MonogoDB, Express, AngularJS, and Node) that I thought I'd share here. They introduce each MEAN component and contain code snippets that build a web app that uses a RESTful web service. Enjoy!

  1. MEAN Stack
  2. Node.js
  3. Express
  4. MongoDB
  5. Mongoose
  6. RESTful Web Services
  7. Creating RESTful Web Services with MEAN
  8. AngularJS
  9. Controllers and Services
  10. Routing
  11. Using RESTful Web APIs with AngularJS
  12. Token-Based Authentication