Skip to main content

Posts

Showing posts from 2011

Windows Azure and NodeJS

When starting at my new home at RESAAS about 6 months ago, I was determined to become a better developer in a Windows environment. Developing in a *nix environment for about 10 years made it so I had to change my way of thinking (package dependencies, scripts, paths, keybindings) which is why RESAAS was a perfect learning environment for me.

RESAAS is a social network for Real Estate Professionals -- we're building a platform that lets them be more open and connected with their colleagues and clients -- and then we build tooling around that to make their everyday lives easier and more simple. That said, the whole platform is built on Windows Azure -- from Blob storage to Compute instances to SQL Azure.

Thinking back now from when I was still at Blast Radius, I've come to realize that I've come a long way in learning about Windows tooling (BACPACs, DACPACs, Visual Studio, MSBuild, SQL Azure, Windows Azure Portal, and much much more). To go even farther that just learning som…

New technical direction on this blog!

I've got a few awesome technical posts on Windows Azure and NodeJS coming down the pipeline.

Jaime Bueza is a software engineer in Vancouver, British Columbia, Canada. He has developed web applications for Nintendo, Starbucks, Bacardi, Nike, Electronic Arts, Ritchie Brothers, Kiwi Collections, Cox Communications and Microsoft. When he's not developing useful software that constantly evolves with business requirements, he's writing open source software andcreating tutorial videos for aspiring front-end developers.

Small Thought on A Fearless Flag Bearer

After being on several teams where we've had to ship projects on ridiculously tight timelines, I've come to realize that there is no amount of technical or creative skill that can replace bravery, conviction, and integrity. Sometimes, the only reason why Death Marches get completed is because of the three attributes of a person (bravery, conviction, and integrity). What I do find is that the people out there, on the battlefield, shipping these whirlwind projects and trying their best to nurture these fractured client relationships are the only reason why great companies exist. It's the heroes that keep them alive. It's the heroes that set the bar. It's the heroes that inspire their teammates with confidence about the overall vision.

When people write articles about how the world doesn't need heroes due to the unsustainable nature of a fearless flag bearer, one can argue the opposite. Teams always need heroes -- someone to look up to. Someone who treats his or…

JavaScript is the assembly language of the Web

In my last blog post, I outlined how clever developers are starting to use CoffeeScript as a way of moving forward with Harmony (JavaScript's newest spec that improves the lexicon to be more productive) without breaking current browser implementations of ECMAScript by leveraging transpiling techniques. Concordantly, there are other transpiling tools now for C# (JSIL) and Python (Skulpt). Furthermore, I've come to realize now that based on these initiatives, JavaScript is now the assembly language of the web platform. It is fundamentally and ultimately a compilation target.

ChromeOS is a Linux-based operating system but makes heavy use of their V8 JavaScript engine. Additionally, Mozilla has stepped up and announced that there are plans to create a web operating system to compete with Chrome OS and Windows 8. I've compiled a list of technologies that have indoctrinated the HTML5 family including WebGL, WebSockets, JavaScript, CSS, HTML:

Palm Pre: HTML/CSS/JavaScript with M…

CoffeeScript and the future of JavaScript

We're in an age where there are several ways of "transpiling" languages. If you're not familiar with transpiling, it essentially allows you to write in one programming language and have that converted into another programming language. Ultimately, the primary goals of writing code in higher level programming languages is to achieve productivity. A great example of this is CoffeeScript, Skulpt, and JSIL. CoffeeScript's initiative is to ensure the developer stays within the bounds of JavaScript's "good parts" and pushing forward a Ruby/Python-like syntax where we lose flower brackets({}) and "function" and we get extensive use of "->". Here's an example of writing a class in CoffeeScript:

This is the transpiled JavaScript:

One thing to note is that web browsers of today won't jump on board with upgrading their JavaScript engines to support newer versions of JavaScript (Harmony) due to backwards compatibility. This seems…

Why did I write a microframework?

I've always been passionate about tools that allow developers makes their lives easier and makes things more fun. Speaking from my agency experience, I've taken the time to do health checks of current developers and analyzed their tool sets. It become clear that there was too much fragmentation between what libraries, APIs, and development approaches -- It's not their fault as each project was being run like a separate silo. To a developer that is being tossed around on to different projects, this is a nightmare. Furthermore, I had this heroic goal of dispelling that nightmare and building a shared vision of a converging toolbox to make us (front-end engineers) faster, more efficient, and reduce the ramp-up time when swapping between different projects/accounts.

At that point, Blast Mojo Framework (v2 rewrite based on jQuery and plugin injection) emerged. We needed a better tool that could provide front-end engineers clear functional separation through implementation silo…

Stirring The Hearts of Your Teammates

Remember, our line has always ruled with wisdom and strength. And I know you will show restraint when exercising your great power. But the truest victory, my son, is stirring the hearts of your people. I tell you this, for when my days have come to an end, you shall be King.

In the world of agencies and corporate software development, there are ladders. These ladders place you where "they" think you belong in terms of rank, power, and responsibility. Being at the bottom of the ladder can have an impact on your teammate(s) -- They feel like they're powerless and that their actions have no overall effect on the product you're trying to build. That said, this causes a snowball effect which is poisonous and will eventually affect the rest of the team. When teammates accept the fact that they're not tightly integrated with the decisions being made, we have ourselves rogue behaviour including low quality of work, less communication, and less contributions. The most obv…

Shaping Great Teams on Bad Projects

Ever since I read "The World's Most Powerful Leadership Principle: Servant Leadership", I've felt invigorated about corporate software development. This book has made me change my mental models and perspectives on building great teams on bad projects.

One of the key things I learned from this book was that there is an undeniable difference between managers and leaders. As James C. Hunter says it best, "Management is what you do: planning, budgeting, estimating, organizing, problem solving, and strategizing. Leadership is who we are." Leadership can be defined as something simple as knowing how to inspire your teammates to become better than they think they are. Incidentally, I look at this much like the military. A skilled leader of a unit (usually a Captain or Major, I believe) has the commanding ability to inspire his men to become more courageous and more heroic while in the heat of battle.

"The Heat of Battle" can be applied to software Deat…