Archive for March 2014

APIs... Boring? Dead? Or Just Getting Started?

I find the current single purpose API space becoming a bit boring lately. I will admit that I could be desensitized to these APIs due to the fact that I actually work for a start-up who's product is... you guessed it... an API ;-) I am still super siked to be working on the point.io suite of APIs apiDoc & apiFlow but I am kinda over a majority of single purpose APIs. So let me define what I mean by single purpose API before I get flamed :-)

I define “Single Purpose API” as an API that performs specific functions for a specific product or platform. For instance lets pick on an API that enables you to programmatically do everything with your social media accounts. Though these APIs are important for performing related transactions I'm not seeing or feeling any innovation with them. Sure they're upgraded and enhanced but even these improvements are becoming less and less innovative lately.

So are these API's dying on the interweb vines? My opinion is no but they've definitely lost their appeal. So you may be asking If Single Purpose APIs are boring or dying, what's next? I'm a betting man and I'd wager that the next big bang in the overall API sector will be what I call “API Aggregation Frameworks” (AAF). My definition of AAF is basically where developers build new API services that actually aggregate or consume multiple “Single Purpose APIs” and front or broker access to AAF's developers via a single api. The aggregation of APIs will definitely bring some new life to the API scene.

{ "Shameless Plug" : "Begin" }
I currently work on point.io's apiDoc solution which is the pure definition of an API Aggregation Framework. The apiDoc technology consumes all the major cloud, on-prem & enterprise level storage & document store providers. apiDoc's core is designed to access & control the majority of these storage and document providers which in turn fronts a single RESTful API that developers use to build apps which consume the supported storage providers. By providing aggregation of multiple Single Purpose APIs, apiDoc devs only need to learn one API framework which also normalizes and standardizes calls to the aggregated Single Purpose APIs. Basically one API to rule all storage ;-)
{ "Shameless Plug" : "Over" }

Beyond what point.io has achieved with apiDoc there is still plenty of innovation to be accomplished in AAF. Developers and organizations that are in the AAF space now are definitely ahead of the market and are well positioned for success when the market realizes the overall benefits that AAFs provide. Combining the data and functionality from disparate APIs into unified & optimized frameworks will greatly shorten development cycles, create considerable development cost savings, and an ease of use for developers which positively impacts AAF adoption.

I truly believe that AAF is on the verge of changing the API game in the very near future. Again AAFs is basically my take on the next innovation in the API space where I feel is stagnant & needs a clear jump start.

In conclusion single purpose API's are boring but I expect AFF will change all that.

Come back to read bout my thoughts on API concepts beyond API Aggregation Frameworks.

As always your thoughts & opinions are welcomed.

-a

Building Communities: Hackers, Law Enforcement & Cyber Security

I've been on the hackathon circuit again and this last hack event was very interesting because it was a high school hack event . This event is called HackBCA (http://hackbca.com) which was organized and managed by students. While at HackBCA I served as a mentor assisting the hackers and their teams answering questions & providing general problem resolution. It was great collaborating and socializing with the hacker youth. There were some really smart, edgy & innovative high-schoolers at this hackathon. I was really impressed with their level of technical knowledge and experience. I felt that some of these hackers skills & experience where definitely at an advance level.

At this hackathon I overheard some conversations regarding cracking servers and other assets amongst the hackers. Now most of the conversations were jokes & banter but they got me thinking about overall cyber ethics and who or what is influencing these young hackers. Are they developing ethics while honing their skills? Do they realize the consequences or impact of their choices & actions? I'm sure most of them have thought of the consequences and can justify their actions based on their ethical perspectives but the question still remains - Are their actions legal? Who is educating the youth on the governing cyber & technology laws?

I've actually been giving these questions lots of thought. There has always been a huge divide between the hacker & Law Enforcement communities. Why the divide? These two groups often share the same ethics and morals. Take child pornography as an example, law enforcement & hacker groups make it their mission to take these sites down via cyber attacks or straight up crime fighting. In this regard these groups share the same ethics and mission. One side maintains a vigilante perspective and the other sanctioned & backed by the courts.

I'm all about building communities and I'm fully aware of the factors that contribute to the inherent divide but I believe that a mutual respect and dare I say... trust can be forged. I've always been interested in engaging the Law Enforcement community in mentoring future hackers. I see no reason why a young hacker couldn't be mentored by a “cyber” cop or an actual FBI agent. Imagine the positive impact that these Law Enforcement mentors could have on the lives and decisions of the young hackers. The amount of useful & relevant knowledge bestowed by mentors would effectively educate the young hackers on relevant cyber principles & laws while imparting a sense of ethics. Teach them how to hack & show them how to hack responsibly... whatever that means :-) . Show them why & how assets are exploited. Make it about the science of computers /technology and not solely a lesson in right or wrong.

As veteran hackathon mentor I've been inspired for quite some time now to organize a Hack event that facilitates cyber Law Enforcement officials serving as mentors to young hackers. Where cops and hackers can hack on cool projects side by side and build next gen technologies together. So if you're a hacker, technologist, cop, federal agent or all of the above post your thoughts & comments or better yet get involved and organize an LE / Hacker event of your own in your town.

I've already got the ball rolling on a local LE / Hacker event and I will post my progress in this blog.

-a

Staying Relevant in Tech

I was inspired to write this blog because of the number of developers who've recently reached out to me regarding their employment situations. This past week a Senior Developer asked me for advice on what technologies he should learn in order to find a job. He was recently let go from his long term job due to reasons such as organizational restructuring, shifts in technology etc..  He is a bad ass developer that I had the pleasure of working with and learning from as a noob in the industry.   I consider these senior developers innovators & veterans of an earlier tech industry. These engineers are very intelligent and capable but over time they neglected their skills and unfortunately became technically irrelevant.

I've officially been working in technology for over 20 years in various roles, capacities and sectors ranging from military, commercial enterprise, federal and most recently start-ups (again).  I'm very fortunate to have vast experience in all of these sectors which also gives me a little insight into how developers creep into these situations. I'm going to take the liberty of generalizing here and give my opinion of a developer career track so don't flame me too bad if you don't agree:

  • Junior tier developer – noob learns the ropes
  • Mid tier developer – work horse, continually learning technology, integral in pushing innovation
  • Senior developer – mentor the junior/mid tiers, usually embroiled in project/managerial aspects

As developers rise in an organization their roles and responsibilities inevitably change from being hands on and in the trenches to managing processes and projects at an abstracted layer.  Upon reaching that “Senior or Director” status, your primary function is to basically provide for the junior/mid tier developers and enable them to successfully accomplish the project goals. In most cases Senior Developer become “managers” within an organization. They are expected to lead and manage projects, provide guidance and most of all be the bridge between C level execs and tech teams.  Inevitably these Senior Developers are removed from being immersed in developing technology and instead overseeing it's progression.  They ensure that the team's goals, deadlines & budgets are met. 

If what I've described rings true for you, then in my opinion you're on the downward spiral as a developer.  You're distracted by your non-technical responsibilities which are very important but ultimately keep you further and further away from technology and before you know it your skills are dated and often are no longer relevant.

So as developers how can we prevent this from happening?  We can't afford to stay at the Junior/Mid tiers forever. We need to grow and experience new things in our careers and all the while staying technically relevant.  Below I offer some advice that has served me well over my 20+ year career:

Organizational/Company Efforts
  • Influence the culture at work
  • Embrace change 
  • Be Passionate
  • Champion positive change & innovation
  • Build rapport with others outside of your functional units – Understand their work
  • Collaborate & Share Ideas across functional unit
Self Help Efforts
  • Read about technology daily
  • Understand the tech market – discuss it with peers
  • Become a Polyglot - Learn & know at least 3 different Programming languages or Frameworks very well
  • Keep abreast of new languages and frameworks in the community
  • Allocate time to experiment with new languages and frameworks (2-3hours weekly)
  • Contribute to or start your own open source project
Socialize
  • Attend local meetups that interest you
  • Break out of your shell and contribute to the group – offer to give tech talks
  • Network with other developers in your area
Codefest \ Hackathon Events
  • Participate – Great way to learn technologies and meet new developers
  • Mentor – Great way for you to give back to the developer community
  • Organize – Sponsor your own event in your local community

There is one more item that I struggled with early on and that is “Don't be religious about languages/frameworks or technologies”.  There are no silver bullets in technology and keeping an open mind is crucial not matter how much you despise a particular technology.

Most developers will ascend the latter in organizations and must protect their skills and themselves from becoming irrelevant in tech.

Tweet at me if you have opinions:  @twrivera

yep don't use it unless you ask ;-). Powered by Blogger.