Category Archives: Advices

Beautiful Node APIs

Beautiful Node APIs

This post is on how to build beautiful APIs in Node.js. Great, and what is an API? The definition says Application Programming Interface, but what does it mean? It could mean on of the few things depending on the context:

  • Endpoints of a service service-oriented architecture (SOA)
  • Function signature
  • Class attribute and methods

The main idea is that an API is a form of a contract between two or more entities (objects, classes, concerns, etc.). Your main goal as a Node engineer is to build beautiful API so that developers who consume your module/class/service won’t be cursing and sending you hate IM and mail. The rest of your code can be ugly but the parts which are public (mean for usage by other programs, and developers) need to be conventional, extendable, simple to use and understand, and consistent.

Let’s see how to build beautiful APIs for which you can make sure other developer

Continue reading

10 Things You Should Stop Doing When Giving a Conference Talk

10 Things You Should Stop Doing When Giving a Conference Talk

I’ve spoken at over a dozen conferences this year and seen my share of bad presentations. Yes, for the most part geeks aren’t expected to be great at public speaking. That’s why they called geeks.

However, I noticed certain patterns: most of the times presenters were making it harder for the audience to get their material. They were doing some easy to fix things which hampered their delivery greatly. The tech talks are boring anyway (generally speaking). Why make it even hard on your listeners?

If you need to present soon at a conference (even if you are not a geek or techie), here are 10 sins you should never do when you give a conference talk (more of a note to myself than anything else):

Continue reading

Software Engineering Future: How Your Job is Becoming a Commodity and Might Even Disappear

Software Engineering Future: How Your Job is Becoming a Commodity and Might Even Disappear

My musings on why it might be the time to start looking for a new profession if you are a software engineer?

You know how in the early 20th century pilots were like heroes? It was extremely dangerous to fly planes which were highly unreliable. Most of the time, only true adventures would learn how to fly a plane and become a pilot.

Then, fast forward 50 years and during 1950s, we started to have first commercial flights. It was still prestigious to become a pilot. If you remember, Catch Me If You Can, the villain played by Leo DiCaprio used pilot’s uniform to instill more trust in other people so he can cash fake checks.

In the 21th century, most airlines don’t make much money and they operate on a slim margin. The pilot’s job has become a commodity: there are a lot of schools and you need to study many years to become a pilot, but you get paid not that much more money than a bus driver. Autopilot is doing most of the flying except for landing and take offs. Airlines constantly merge and layoff their staff. Most of the times the attire is not as sharp as we see on pilots in movies, old newspapers and posters.

I believe almost every profession or trade undergoes a few cycles not dissimilar to the famous adoption curve. There are five steps, but I’ll simplify it to just three:

  • In the beginning, there’s very little reward but a high entry barrier
  • In the middle, you get most benefits from the wider demand for a certain skill and it’s less risky and less troublesome to get started in it
  • In the final phase, you get even smaller barrier to entry the profession: there are a lot of known paths, schools, books, best practices. Then also the tools and equipment becomes better than in the first two phases. However, the demand and the benefits to an individual from that profession diminish compare to what it was in the middle phase.

After the third phase, the profession become a commodity. It’s not necessarily a disaster for people in this trade, but it’s certainly not a rarity. Then, the profession can event disappear completely! I’m sure you can come up with some examples that disprove my little theory, but before you do so, let’s take a look at programming.

Continue reading

One Year with Capital One: Lessons Learned

One Year with Capital One

Today is exactly one year and ten days since I started my work as a Technology Fellow at fintech startup Capital One. Yes, I wrote before while you shouldn’t work in a startup, and I still believe in it, because Capital One is not a startup in a traditional sense. On the contrary, it’s in the top 10 US banks list as of 2016. Let me explain myself.
Continue reading

Dirty Little Secret About QWERTY Layout and How I Switched to Colemak to Reduce Trauma and Gain Productivity

Dirty Little Secret About QWERTY Layout

Typing is everywhere right now. We type for work in emails and on IM clients, we type for personal relationships on Facebook (when was the last time you spoke with a friend on a phone?), and we type to have fun in Whatsapp or iMessages. Then of course, we code in editors and IDEs, and type commands in shells.

Imagine that you woke up tomorrow and weren’t able to use your keyboard. Maybe you would have broken both of your wrists skiing… Terrible, right? Even if you don’t write books or blog posts like I do, typing on a keyboard is how most of us live. And touch screen typing and voice dictation take only small roles. Let me tell you why you might be in danger of losing your ability to type and maybe even close to losing your job, career and relationships.

Continue reading

React for Fun and Profit

React is a fun little library for User Interfaces. You can use it for web, or mobile development. It’s fun because it’s very developer-friendly. You write your code in the same place without having to switch between HTML and JavaScript files.

I’ve heard many times people complaining about React’s favorite syntax JSX. I found it great, after I spent a few hours learning and coding with it. Contrary to what people unfamiliar with React think, JSX is not HTML in JavaScript. JSX is just an XML-like syntax which produces JavaScript. There’s not HTML involved at this step. When you develop with React, you write JavaScript objects. Later React automagically transforms those object into rendered HTML.

Also, React is very fast due to its virtual DOM and smart diffing algorithm. And React’s component approach to architecture allows for great development scalability. Just ask Facebook, Twitter, Slack and other companies with large web apps.

Furthermore, you can use React with React Native to create native iOS and Android apps. These apps can share the same code. It’s not the same as the so called hybrid or HTML5 apps. The latter are websites trapped into a headless browser in a mobile app. The former is a real native app which uses JavaScript interface for it’s UIs and logic.

Hey, you can even use live reloading when developing apps with React Native. Pure joy! The feature native mobile developers can only dream of! “React is fun, but show me the money”— you can yell. Fair enough.

Continue reading

Formal Monday

Formal Monday

I’m about to give you, my fellow knowledge worker, some amazing advice that can greatly improve your enjoyment of the work week, make you more productive, get you a promotion or a date (if you’re single)! Yeah, that’s right! All those things, and all you need is spend two minutes glancing over this article. :-)

Continue reading

My Predictions for 2015

Predictions 2015

Here are my ten predictions for 2015. Most of them probably will be incorrect. Yes. I’m seldom right, but I’m never without an opinion.

  • Web development, online payments, Node.js and JavaScript will continue to grow with more and better frameworks, hosting and solutions that don’t even require coding.
  • Udemy, SkillShare and similar marketplaces for online courses will increase the number of offerings. The quality bar will raise. The marketplaces might become saturated.
  • Coding academies will expand into online format to cut costs and consolidate as the geo-markets will get saturated. At the same time traditional education (colleges, universities) will continue to get people into debt and produce inadequate results.
  • The number of freelancers (coding, design, copywriting, VAs) will increase while their prices will remain competitively low.
  • Apps and small SaaS businesses will become even easier to build spiking new offerings for consumers and business.
  • Majority of unsuccessful and unpopular podcasts (~95%) will die.
  • More people will start leaving their normal jobs for entrepreneurial endeavors or start side projects. Other will look for alternative paths for their creativity (books, blogging, freelance).
  • Robots will become smarter and continue to displace blue-color jobs (driverless cars, Amazon.com delivery drones, Roomba). Hence, re-training for new jobs is vital (see #2 and #3).
  • The zen-like lifestyle stress-free trend will continue to grow supported by more studies and better diets like Paleo/Bulletproof/SCD/Slowcarbs. More farm-to-table choices and more organic and grass-fed options will be available.
  • Technical and business books will become cheaper, often times free to serve as lead generation for later upsell into other products like online trainings, seminars… and entertainment books are already at the $0.99 mark.
  • Internet television (YouTube) and shows from tech companies (Netflix, Amazon.com) is going replace traditional TV in more home. It will be even cheaper to start your own TV channel online that ever before.

What are your thoughts about my predictions? What are you predictions for 2015?