API Master

Let’s talk about what I’ve been doing. What I’ve contributed to Punchmark and what I’ve learned.

This summer I’ve gotten to work with several popular APIs including Facebook, Google+, Instagram, Yelp, and Google for Merchants. Each API has its own nuances and methods for data retrieval. I learned how to use these platforms and integrate them into a commercial system.

The modern web is built on APIs. If your app doesn’t integrate with existing platforms, you’re missing out on useful value propositions and potential customers. Even adding a simple “Sign up with Google” option on to your app will lower the barrier to entry and result in more conversions.

I also found the value in the modular integration of APIs since they can change at any time. As Ross explained to me, when he and his brother originally implemented the API’s, they were more concerned with getting them to work as quickly as possible and less worried about sustainable code use. Much of my work with APIs has been about upgrading to newer API versions. Along the way, I tried to eliminate duplicate code and create object-oriented classes to ease future transitions.

Since most of the API’s that make up Punchmark’s system have been altered by me, I’ve sort of become the resident “API” master. I get the questions, clean up the mess, and report all the progress when it comes to anything API related.


Work Style

Many of the posts I’ve written about this internship are about observations I’ve made concerning my work style. I’d say I’ve finally gathered enough observations about my work style to make a conclusion.


I like to work autonomously. Give me a goal and I’ll make it happen. I’ve found that I prefer to receive some feedback along the way. This keeps me confident that I’m not wasting time and that I’m showing good progress.


I like to have a plan. I try to start every day with an idea of what specific things I want to have done before lunch and what I can do after lunch. The idea is to have a good mental model of what a successful day should look like. That way I have the entire day to fulfill that model.


I’m not sure about how I like to communicate. This internship has helped me really focus on written communication in the form of emails and quick IM chats. I’ve enjoyed the ease of use and speed of IM. I’ve gotten better at summarizing details and making clear “asks” in every message. However, I have not practiced oral communication at all in this internship. Therefore, I’m still not certain how I get the most value from communication.


Company Culture

In 1994, two professors from Stanford business school set out to observe and define business culture. They chose to observe over two hundred of the fledgling tech startups in the valley. Little did they know they were creating the most detailed account of early Silicon Valley tech giants.

Nevertheless they found that five predominant work cultures exist. They named these cultures, “Star”, “Engineering”, “Bureaucratic”, “Autocratic”, and “Commitment”. While reading this study, I couldn’t help but identify which culture described Punchmark the best. I’ll briefly describe these cultures and conclude with Punchmark’s designation.

Star Culture

Star cultures are created by hiring highly qualified individuals and giving them high levels of autonomy.

Engineering Culture

In engineering culture there are few standout individuals but rather teams with a problem solving mindset and usually from a similar background.

Bureaucratic Culture

This is your typical cubical, bi-weekly performance review, organizational chart, powerpoint driven, enterprise.

Autocratic Culture

Similar to Bureaucratic Culture except all rules, regulations, and actions are centered around an elite few.

Commitment Culture

This is your traditional company circa early 1900’s. Employees feel they belong to the company and plan to work for them their entire life.

Ok, so where does Punchmark belong? With only five full-time employees and founders outnumbering actual hired persons, it’s hard to judge them. However, I would place them in a happy medium between Star and Engineering Culture.

I observe each person operating with autonomy and they each have their highly specialized fields and are respective experts in those fields. I’ve also observed a strong team mentality. When crisis strikes, or big business decisions are needed, the all star individuals dissolve into a group.

These guys all come from a similar background and have relationships that go back further than the company itself. This allows them to remain focused and collectively driven to results.

Punchmark seems to have it together for now. I would be interested to see how they scale after hiring more employees and how their culture evolves.


Mobility == Productivity

A big part of my learning from this internship has come from discovering how to stay focused and productive for so long. Staying focused was one of the first struggles I noticed early on and it remains a daily struggle to even more than six weeks later.

I have noticed some patterns as well as developed some habits that keep me productive longer and generally more fulfilled at the end of the day.

Instead of spending my lunch break at the desk, I go for a stroll. Aimlessly wandering the city clears my mind and resets any tunnel vision I may have developed working on a problem earlier that day. The light exercise lets me burn off some of that mid-morning caffeine preparing me to set in for the remainder of the day.

I’m a mobile person. I prefer to pace, climb on furniture, sit on the floor, whatever I’m feeling to get the creative juices flowing. I can’t really do that in the office so that mid-day stroll has to last for the whole day.


Being Found Out

Some employers think they are getting an excellent candidate only to discover that candidate’s greatest skill is self-promotion.

Sometimes I feel that this is the case in my recent employment. I am amazed everyday at the amount of stuff I do not know. I often feel like a kid who just shows up everyday and secretly works here.

I have no idea

After a bit of casual research, I discovered that I might be suffering from imposter syndrome. Although a mild case for sure, I still find myself thinking “Do I deserve this?” with every paycheck and unproductive day.

It’s important to realize that nobody belongs here more than me. I submitted, followed up, interviewed, and did all the work needed to get here. I need to remind myself that when I hold back I’m robbing the world of my potential. If I focus on providing value instead of sitting and writing code, that paycheck will seem well earned.


I Made a Mistake

So, recently I made a mistake.

Several, actually.

I was tasked with eliminating some cross-site scripting (XSS) vulnerabilities in Punchmark’s framework. A simple but tedious task. Basically just had to filter user content for HTML tags and clean it before storing it.

To make the task a bit faster, I used a feature of my text editor that allows me to mark multiple cursor points and type from all of them at the same time. This way, I could mark multiple areas where user input was handled and wrap them all in a XSS cleaning function.

This tool I quickly wrapped all the areas and saved my changes on the live server. I felt confident that everything would work fine since the function was tested and worked and I wasn’t altering any pre existing code.

However, I quickly started getting complaints. Pages were broken across all client’s sites. Turn’s out my text editor was not closing some of those function calls and causing syntax errors. I ran all the code through a PHP linter and fixed dozens more of similar errors.

Over the next few days clients were reporting weird text and characters appearing on their sites. The function I had written was too strict and was filtering all HTML entities. The result was some garbled text viewable to clients and their customers on their websites.

The function was replaced and all is well again. A few clients noticed and a few dozen customers were momentarily confused.

But I learned to ALWAYS test what I write and never trust something blindly. Since, I’ve installed a PHP linter in my editor to catch such errors and I’ve made a point to myself to always ask questions when in doubt.


My Ideal Work Environment

According to The Intelliegence Group, 72% of millenials would like to be their own boss. But if they do have to work for a boss, 79% of them would want that boss to serve more as a coach or mentor. Additionally, 88% prefer a collaborative work-culture rather than a competitive one.

As much as I’d like to think I’m different from my peers, I seem to fit the majority in this sense.

I intended to use this internship with a small company to determine how I work the best and influence my future career goals. I’ve so far concluded that the company itself does not determine its work culture. It’s culture is cultivated and evolved by the people who work there.

This is why Google with 50,000+ employees across multiple locations can still maintain a startup culture and give each employee the fulfillment that they crave while a small company with five full time employees can create the feeling of working in an office cubicle for hours on end.

A company like Google has the privilege to devote resources to improving employee satisfaction. On the other hand, a growing small business needs pawns who can pick up slack and shorten issue queues.

I’ve discovered that I am most comfortable outside my comfort zone. While I may be learning a lot of technical skills in this job I don’t feel like I’m growing. If I’m not growing, I’m dying.


3 Factors that Make an Excellent Team

Lately, I’ve been reading Smarter Faster Better: The Secrets of Being Productive in Life and Business by Charles Duhigg. In the second chapter, Charles explains the factors that make a great team. He cites research from cognitive and behavioral scientists as well as corporate research such as “Project Aristotle” conducted by Google.

The results of these studies tend to point to the same three qualities. Furthermore, no correlations were proven between factors like individual excellence and even IQ to team effectiveness.

Safe Environment

A team’s long-term effectiveness is usually determined early on in the team formation. A team quickly develops social norms within the first few interactions that determine the culture and behavior of the team going forward. For instance, if one person interrupts another team member on the first day, interruptions will likely become a norm of that team.
The specific norms that a team develops are crucial to its effectiveness. One norm that is perhaps most important is the ability for every member to speak and contribute equally and safely.


Teams with higher collective empathy perform better. This may be because individuals who are more socially intelligent can pick up on subtle social cues. They may get the idea that they are rambling by reading their team’s collective expression. More importantly, they respect each other and value each other’s opinions and efforts.

Charles cites research that concludes if you must choose between working with a group of motivated, intelligent, efficient team with low empathy, vs a random sample of individuals with high empathy, you should choose the team with the most empathy every time.


Not every team has a leader or manager but those who depend on one better have a good one. Most importantly, the leader must strive to reinforce positive norms and encourage as well as display empathy.
For a leader, this means allowing every team member to speak freely. A leader can display empathy by repeating, addressing, or summarizing each team member’s point when they have finished speaking. It shows that the leader is listening and understands.
Some of the most effective teams have managers that will not close a meeting until every team member has spoken an equal amount.

Through reading Smarter Faster Better and during my internship this summer, I’ve understood that a team does not need the most qualified individuals for the job. They don’t even need to be in the same country together. They need only to embody a few key traits. As a leader myself, I’ve taken note of these practices and intend to practice them so that I may be a part of the best team possible.


Forced Persistence

If I had to choose one thing that I’ve developed the most during this internship, persistence is a strong contender.

In all my previous work (coding and otherwise) I was all about getting to the easiest solution. These days everyone and their dog are building frameworks, APIs, plugins, and bundles so if you’re willing to sacrifice a small amount of customization, you can get up and running pretty quick with minimal code writing.

Making anything from scratch in development or doing it “the right way” is completely optional. I had done very little of either. Frankly, I needed shit to work and I made it work. This internship has been like a workout regimen for my inner programmer. Everything we do at Punchmark is built in house. No importing libraries for every little thing or using 3rd party plugins.

Perhaps most importantly, I have to finish everything I start exactly to specifications. This means no weaseling out and tasking on extra files to make life easier for me in the short term.

I’ve learned a lot. Just four weeks in and I feel more confident in my abilities to tackle a project that in two years of school.


It Gets Easier

At the start of week five, I’ve noticed something. I’ve noticed that things are going a lot smoother. Now that I’ve gotten some experience working on several parts of Punchmark’s framework, and am generally familiar with their database structure, I am much sharper in my work.

Today I experimented with what I’m calling “The Art of Single Tasking”. It’s an emerging common knowledge that there is no such thing as multitasking. Our brains can only switch between tasks very rapidly. We’re like single core processors, except that that switch is very glucose expensive. Multitasking not only makes for poorer work but a more tiring work day.

I can relate to this feeling all too much. I distract easily. Usually, because I just have too much going on in my life and work. Too much that needs tending to NOW! I’m all about simple mindset changes that cause rippling effects. I had to give this one a try.

These days, my work is not hindered as much by waiting for replies to my questions from my supervisor. My supervisor on another continent, mind you. Since I am actually able to put solid hours of attention to a project, single tasking has never been easier and my work has never been more efficient.

Although its only been a day, let’s see how long I can keep this streak up!