AWS Tagging Strategy

These are some notes on AWS Tagging Best Practices. See reference section below for sources. Amazon Web Services allows customers to assign metadata to their AWS resources in the form of tags. Each tag is a simple label consisting of a customer-defined key and an optional value that can make it easier to manage, search […]

Software Prototyping

Prototyping (or materialization) is a useful tool in developing new software applications. It helps identify and manage costs, key features and usage very early in the development life-cycle. Prototypes can be done in mock applications (not fully functional but contains some interactions) using various tools or even in traditional paper-and-pen. Perhaps not literally paper-and-pen but […]

Privilege Account Management

Privilege Account Management (PAM) is part of Identity and Access Management (IAM), or also known as Identity Management (IdM), where individual user rights to a resource are granted privileges so that they can execute certain tasks or procedures on that resource.  This can also be part of Role Based Access Control (RBAC) in which the […]

Architectures

Some notes on the evolution of software architectures – past, present and future outlook. Often the way one does architecture design can be a combination of philosophy and the use of patterns, practices and principals. Any software architecture is an abstraction that should contain at least one or more of the following: Structure Layers Components […]

Microservices

Traditionally a single program would have multiple capabilities. When we scale that program, it would be replicating those bundles of capabilities. Microservices Architecture improves this by breaking the capabilities into individual programs. Each of these programs would run in its own container and therefore, when scaled, its much easier to pick and choose which capabilities […]

Reactive Programming using RxJS

Reactive Programming Paradigm Asynchronous programming Works with Functional Programming ReactiveX works with many languages JS .Net Java   More information: http://reactivex.io/intro.html   Mission Statement ReactiveX observable model allows you to treat streams of asynchronous events with the same sort simple, composable operations that you use for collections of data items like arrays. It frees you […]

DevOps integration with Team Foundation Server

DevOps Dev + Ops = Delivery and support of software Dev and Ops work closely together Use of automation Build Test Deploy MonitoringInfrastructure (like use of containers / docker)Frequent ReleasesQuick testing Creates predictability and consistency (a delivery every 30 days) Define what DONE means Works in smaller chunks prioritizes the backlog   TFS and Team […]

UI / UX Design Fundamentals

Notes taken during CodeSchool course: Fundamentals of Design All pictures are property of CodeSchool Typography Some fonts are just horrible. Invest in researching which fonts match your content and audience. Content should be both verbal and visual, depending on what needs to be presented. Typefaces Humanist Serif = good for journalistic content Sans Serif does […]

JavaScript Best Practices

Ternary Conditionals var x = true ? true : false;   Nested Ternaries isArthur && isKing ? (weapon = ‘a, helment = ‘a) : isArcher ? (weapon = ‘b’, helmet = ‘b’) : (weapon = ‘c’, helmet = ‘c’);   Logical Assignments Var result = 42 || undefined; // 42 Var result2 = [‘sweet’] || […]

Fundamentals of Programming

Some of my personal notes and references regarding general programming.   SOLID A collection of principles that outline how software engineers can design and develop code that is easy to read, has flexibility to evolve and therefore easier to maintain. It was first defined by Robert C Martin (Uncle Bob) in his book – Design […]