Burning of Columbia

December 9, 2014 — Leave a comment

For the last few weeks at Chernoff Newman, I have been working on the backend of a website that commemorates the 150 year anniversary of the burning of Columbia (http://burningofcolumbia.com). The primary goal of the website is to promote various events and exhibits happening throughout the city over the next few months. The State wrote up a nice article about the anniversary.


The website is built on WordPress and hosted at Flywheel. I seperated most of the site’s logic out into 5 plugins and kept anything related to the design in the theme we built. Those plugins are for syndication, event management, a media/social gallery, social media, a twig extensions.


The syndication plugin pulls posts in from the public One Columbia RSS feed. I tried to find another plugin or library that could sync two blogs, but nothing worked. It’s a difficult problem to abstract out.


Event management does what you’d expect. It creates a WordPress CPT with the usual event details.


The media/social gallery lets an admin pick tweets, instagram images/videos, youtube videos, uploaded images, and facebook posts. The media data is then available in the WordPress CPT.


The social media plugin lets you plug in various access tokens to get all your social media account data available.


And finally, the twig extension plugin provides some useful, you guessed it, twig extensions such as creating an excerpt out of text, making the links in tweets clickable, and giving the time since an event (2 days ago). It should be noted that we use Timber to give us Twig.


This was the first WordPress project I’ve worked on where I put the logic of the website in plugins instead of the theme. The goal is to be able to reuse this functionality in future projects with a simple plugin activation.


This was a fun project, and I’m glad to have worked on it. Now to check out some of these events!

Be mindful when adding new technical assets to stay within the bounds of your organization. Know when to push the envelop and when you’re adding unneeded burden to the organization once you leave.

ConvergeSE 2014

May 5, 2014 — Leave a comment

ConvergeSE 2014

ConvergeSE is a “conference for everyone working with technology in creative ways.” I’ve attended this conference since the beginning (back when it was called ConvergeSC), and it has been awesome seeing it evolve into something people travel to from all over the country. The guys at Unmatched Style and now The Iron Yard are doing an amazing job of turning Columbia, SC into a top destination. The conference is a 3 day ordeal with workshops on Thursday, various break out tracks based on interests on Friday, and finally everyone together on Saturday for talks aimed at everyone. Here are some of the takeaways from the talks I attended:

A Focused Path for Good Products

Andy Dahley – Google (works with the Hangouts product)

Andy discussed 5 steps to follow to have a good product.

  1. Define your principles.
    This is 3-5 core tenets your product will adhere to. Andy said for the recent Hangout redesign they used live conversation, iconic & beautiful, and unified platforms. Your products principles should be high level but need to be something you can constantly point back to when saying “no” to good ideas.
  2. Scope
    Scope fits right in with defining your principles. The idea being to keep scope “tight”. The scope should be manageable but not so small that there’s no vision to get behind.
  3. Champion
    Finding a champion for your product was an idea I had never thought to have. A champion is someone who will fight for you, fund the project, and help cast the vision. This person should be senior over your stakeholders (the team), responsible, and accountable. You should be able to discuss feedback openly with the champion. I’ve always thought of a champion as not necessary. I thought that if a company has ok’d a project, then you’re good to go, however, it makes perfect sense to search out and have the backing of someone who has the ability to pull strings for your project before you start forming the team.
  4. Sprint
    The sprint is a 1 week process to set the project direction. The Champion is not invited. You should invite designers and key stakeholders. Andy recommended the Google Ventures articles on sprint planning. This first sprint should not happen remote. At the end of this sprint you should conduct a review of where the team ended with the Champion. The end concept should be as high fidelity as possible.
  5. The Project
    If the sprint takes 1 week, then you should give 6-12 weeks to complete the project. Each milestone should be reviewed with the Champion. It is likely that the Champion will mention functionality outside of the scope of the project. Stay cool and remind him or her of the principles and scope you agreed on from the start. Do not expect to ship everything you want in version 1. A good tip is to do the full design work first. This makes it easier to break up a project into logical chunks for the engineers later.

Let’s be brutally honest about operations & pricing for web agencies

Rob Harr – COO Sparkbox

Rob had a ton of good information. His talk was split 3 ways: Operations, Pricing, and Sparkbox specifically.


Operations = cash flow

Should be able to go a quarter out with known expenses

Savings gives you freedom to make good business decisions

Use contractors to prove viability of a new business line.


Paid discovery – charge for anything you wouldn’t have done otherwise

3 models for pricing:

  1. Fixed Pricing: build x for y and agency eats overages. This can create an us vs them mentality.
  2. Hourly Pricing: shared risk model. decision making happens with the client. “Want more? costs you more”
  3. Value Pricing: the agency figures out what it’s worth and charges that

These models for pricing are all about estimating. On that note, you should be getting 30-40% of your bids. Any more and you should look into raising your rate.

You should be well aware of your multiplier, and it should be greater than 2.

Sparkbox Specifics

Sparkbox is an hourly shop. Rob recommends starting new relationships off like dating. Begin with short term goals so you can both gauge if this relationship is worth continuing.

$165/hour and $247.50/hour overtime. Overtime is defined as work that needs to be done outside of normal business hours.

Does not accept projects less that $25K and a 20% deposit is asked upfront. This helps the agency know if the client can pay.

Give the budget spreadsheet to the client with hours for each type of task: planning, UX, UI, FE, Finesse. Give a min/max for each task and let the client play with the numbers. This helps train the client to think in terms of hours instead of deliverables of functionality. Finesse is dedicated time to make the product cohesive, clean, and beautiful. Finesse time is unadjustable. Finesse is not QA. QA happens all the time for each task.

Always define what “done” means.

Give weekly invoices. This keeps the project on budget and the client informed.

All work is for hire. No agency ownership.

Find areas where you can experiment. Do not experiment too much on a project.

Get a line of credit now before you need it.

Know your legal documents and offer yours when they ask you to sign an NDA.

The Agency expects 28-32 hours of billable work from each employee weekly.

Word of Mouth Marketing

Geno Church – brainsonfire.com

People decide what is said about a brand not marketers

Your best word of mouth is how you do business every day

Marketing is match matching

People today want to know what is behind the brand; what drives the brand.

There are 3 triggers for people to talk about a brand:

  1. Functional: information gathering. why, how, where, etc
  2. Social: who we are. Geno’s example was instagraming about things you like: bourbon, cofffee, americana, etc.
  3. Emotional: strong emotions invoke chatter.

Offline conversations are emotional (private) and online conversations are social (public). The new online is emotional.

Find what you want your customer to become in order to help market your product.

The Contrarian Salesperson

Nicole Cendrowski – Sandler Training

 Nicole had 6 points to keep in mind when selling:

  1. Adult to Adult Selling
    Sales often looks like a parent-child relationship. You should work to level the playing field.
  2. Everything is an iceberg
    You need to dig to the truth. The surface is not enough to know whether or not to do business. Find if there’s any urgency, amount the client is willing to invest, and how they make decisions
  3. Process Orientation
    Have checklists for your process. Have a pre-call checklist. Make sure that your expectations going into a meeting line up with the people you’re meeting with.
  4. Camping vs Climbing
    Do you have 30 years of experience of 1 year?
  5. Where did he die?
    Find the leading/lagging indicators for your sales. What are you basing your assumptions on? Some good metrics to track: Dials to Conversations (DTC), Conversations to Appointments (CTA), First Appointments Ever (FAE), and Closed Files (CF).
  6. Deliberate Practice
    It’s what you learn after you know it all that counts. “ANCORA IMPARO”

Starting a new work day can be a difficult start up process. It’s similar to working out a difficult problem in your head and then a coworker distracts you. You will, of course, lose your place and begin again working out the difficult problem. When you start a new work day, you have to figure out where you left off.

Programmer Interrupted

I have found that the first few hours of the day 6-8am or 9-11pm are my most productive. It’s not that I fail to get stuff done from 8-5, but then you have the distraction of everything else. After you’ve finished helping fellow employees, attended various meetings, and talked about the previous days baseball game you’ve only had a chance to get a few hours of “actual” work done. I put actual in quotes because those things are important, but they’re not the tasks that you check off in your project management app. The things that prove to management that you’re bringing value.

In order to start your day off right I recommend the following at the end of the previous day:

  • Clean up your work area at the end of day. You can keep clutter going throughout the day, but put it back where it belongs when the day ends
  • Close all your open apps on your computer.
  • Write down everything you accomplished.
  • Write down exactly what you want to accomplish the next day. Include helpful notes to yourself if you’ll be continuing a task from the previous day. This is extremely helpful for programming related tasks.

Take time at the end of today to make tomorrow better.

Supernova Pop

January 17, 2014 — Leave a comment

At the SPARC Hackathon 2013 this year Jason Rikard and I created Supernova Pop. This hackathon is based around a given theme and 16 hours to create something in the mobile space. Our theme was space, so naturally we made a space game. After the 16 hours was up, we had probably worked on the app for 10 hours each after accounting for sleep, lunch, breakfast, and zoning out. It should be noted that neither of us have made a game before and neither of us develop for the iPhone as our day job.

We placed in the top 10 out of 30 teams and that allowed us to present our game in front of the other teams + attendees. At the time, the app was mostly how it is now with no sound, no ads, no gamecenter, no multiplier, and some other visual improvements. Our goal was to create a fully functioning game; many hackathon groups create apps that are just illusions or simple proofs-of-concept.

Check the app out and let us know what you think! Also, if you’re a developer, I highly recommend you sign up for the SPARC Hackathon 2014.

This is really an overview of my transition from osx to windows. The yoga plays a big role.Lenova Yoga 13

Let me give you a quick recap of my computing history over the last 5 years. I grew up with windows like most people. It was all I knew. and I had no problems with it. When I was a sophomore in college a friend bought an iMac. He pulled up iChat and started video chatting with someone else who had an iMac. This changed my life. I could not believe how easy it was to use. How nice and simple the computer looked. How nice and simple the OS looked. I had to join this cult.

It should be noted that this was before I knew much about anything related to software development. I had taken a C++ class in high school, but that was it. At the time I wanted to be a middle school math teacher. Quick rant: it’s unfortunate how public schools handle teacher salaries. We need more math teachers in middle/high school who communicate clearly and have perspective. If you enjoy math, chances are good you could have a good career as a mechanical engineer or software developer. The difference in salary is unbelievable. End rant.

Fast forward 2 years. I now have an iMac and a macbook pro. I’m slowly becoming an apple snob. Over the next few years I will acquire an ipad, macbook air, iphone, ipod touch, ipod nano, blah, blah, etc, etc. At this time, I’ve started working as a web developer with Clemson University. *nix is the best environment to be in for web development. Rails, LAMP, django, whatever. Apache/nginx/mysql/postgres are the tech to build your next web app around, and it’s best to mimic your production environment in development as much as possible. This is impossible to do with wamp or xampp. You could load up a VM with virtualbox or vmware fusion and match production exactly, but here’s the problem: the software development community has practically fully embraced osx. There are so many great apps out there to help with development. Everyone is making CLI apps to help make websites faster and more dependable. The windows development community is not dead or anything. It’s just not the same. It’s boring and expensive, basically.

I started a new job with Dew Learning earlier this year. Dew is building some of its apps on the .NET platform, specifically asp.net mvc. I could either run windows 8 in bootcamp/vm or purchase a new non-apple laptop. I decided to give a windows laptop a chance. End of my little OS history

photoEnter the Lenovo Yoga 13 IdeaPad Ultrabook 13.3″ Touch-Screen Convertible Laptop. This computer is a great computer for web development and windows 8 is not half bad either. Let me get my complaints out of the way first. I have three.

  1. The fan never seems to stop. It’s usually not that loud, but it’s humming away.
  2. I bought the 128gig SSD. 128gig is not enough.
  3. The keyboard is not backlit. This is actually pretty annoying.

Other than those negatives, I would recommend this computer to anyone willing to go over $1K for a laptop. The computer boots up in <15 seconds consistently. The battery lasts a reasonable 6-7.5 hours. It looks great. The touch screen is fine. I wouldn’t purchase the laptop for its tablet mode, but it is fun to poke stuff every now and then.

Lenova Yoga 13

Starcraft 2 is my current game of choice. It is capable of playing the game, but you’ll be defaulted to the lowest settings and you should stay there. Don’t purchase this computer to play games.

I’ll post a part 2 about the windows applications I’m using for web development soon.

UPDATE Aug. 21, 2013

I have since upgraded the memory to an 8gig stick and bought another ssd drive that is 256gigs. I noticed a few days ago that there are 2 spots for an ssd! Which is awesome. My first ssd is 128gigs and that is too small after installing windows, office 2013, visual studio, etc. This computer performs very well now. My biggest complaint is that there is no backlit keyboard, but that is minor. I still give this laptop two thumbs up.


Not sure how you ended up here, but I’m glad you’re here. If you need to contact me, the best way is via email hello@jonathanmayhak.com

Onto the purpose of this website. Everyone who creates things for a living needs to have their own website. Everyone. The website needs to be the authoritative source on what you want the internet to know about you and your business. And remember: you’re not a business man. You’re a business, man.


I have not had a centralized location to share my amazing opinions or announce projects such as grubbly.com in my whole internet history. I end that today. The basic purpose of this website is to get my personality and technical strengths across to future bosses, partners, friends, and clients. This website exists to give those internet stalking me an all-you-can-eat buffet. I’d rather have you flipping through this website, then all my photos on facebook. I’ll save you the trouble and show you the most embarrassing photo of myself that’s made it to the internet. You’re welcome.

When someone adds me on linkedin or twitter, one of the first things I do is google their name. I want to see if they have a website I can click through to learn more. I want to know if they like wake surfing as much as me. I want to know how they feel about taking pictures of themselves or their coffee. I want to figure out if I could learn something from this person.

I’ve been a hypocrite. I’ve expected this from everyone else but myself. It’s hard to keep up with a blog/website, so I’ve put it off. I don’t hold anything against you if you don’t have the time to post random articles on the internet. I’ve been there. Let’s do this together.