Monday, August 28, 2017

#Infographic Tech Resume

I had heard of 'Infographics'. I had seen them on, like the one below, which is one of my favorites.

I wanted to make one or more infographics for showing quarterly updates. I like this one from Facebook about their open source contributions for the whole year in 2016.

So, when I made time to look into creating infographics on my own, I searched the Google-sphere and found a bunch of articles about tools for creating infographics. One of the good ones I came across is this - 8 free tools for creating infographics. I was intrigued by the number of options and features available on all these tools. But, the one topic that got my attention is 'infographic resume'.

Wait, what? Infographic resume? Really? How would it look like?

Yes it does and apparently it is quite a popular thing out there. Here's mine and I had a great time making it on I was even able to edit on my little iPhone 6 using Canva's iOs App.

For now, I created it as three separate pages so I could print each page on a standard sized printer paper. I think I will merge it up and create a single infographic later.

Friday, February 3, 2017

Sound bites from 'The Phoenix Project' novel

The Phoenix Project is such a riveting story. Being a software developer, it resonated so well with me. Even if you are not a software developer, there is something to be learned from this book. This book shows how important it is to be honest, have integrity, faith, encourage risks and continuously improve in small but meaningful steps. The principles learned from this book can be applied to any industry, process, organization and even relationships. 

I have a few quotes when I was done reading the book.

Automation creed
    If it can be done once, it can be automated for future occurrences. 

    If it needs to be done more than once, it must be automated.

    People before process. 

    Feeling of being in control is an illusion. Let go of that feeling and breathe because you can still succeed when you succeed as a team.

    Four types of work
    1. Business projects
    • Business initiatives
    • Typically tracked by the project management office

    1. Internal IT Projects
    • Infrastructure and IT operations projects
    • Projects required to support the business projects
    • Internally generated improvement projects

    1. Changes
    • Generated by business projects and internal IT projects.
    • Track both business and IT project changes in the same ticketing system

    1. Unplanned work and recovery work
    • Operational incidents
    • Caused by business projects, internal IT projects and changes
    • Always at the expense of other planned work commitments
    • Track them and automate to prevent them

    Wait time formula
    wait time = (% busy) / (% idle)

    The three ways explained
    1. First way
    • Work flows from left to right from development to IT operations to market
    • Maximize flow
      • Small batch sizes of work
      • Small intervals of work
      • Never pass defects to downstream work centers
      • Continually optimize for global goals of the business organization
    • Necessary practices
      • Continuous build, integration and deployment
      • Create environments on demand using the same process to create all environments
      • Limit work in process (WIP)
      • Build systems and organizations that are safe to change by keeping both agile and nimble

    1. Second way
    • Constant flow of feedback from right to left at all stages of the value stream
    • Prevent problems from happening again. By doing this we create  quality at source.
    • Create and embed knowledge where needed
    • Necessary practices
      • Stop the production pipeline when builds and tests fail in the deployment pipeline.
      • Continually elevate the ‘improvement of daily work’ over 'daily work’.
      • Create fast automated test suites to ensure code is always in a deployable state.
      • Create shared goals and shared pain between development and IT organizations.
      • Monitoring to ensure code and environments are operating as designed and customer goals are being met.
    1. Third way
    • Culture that encourages continual experimentation
    • Encourage taking risks 
    • Share an understanding that repetition and practice is the key factor for perfection.
    • Necessary practices
      • Creating a culture of innovation, risk taking and high trust.
      • Allocating at least 20% of dev and IT on non-functional requirements
      • Continual reinforcement that improvements are encouraged and celebrated.

    Identify and focus on
    1. Constraints
    2. Materials
    3. Resources

    Thursday, December 22, 2016

    Create #VirtualPrivateCloud, NAT Instance and NAT Gateways on @AWSCloud

    Create a Virtual Private Cloud, NAT instance and the new NAT Gatweay ... and making it all work.
    This is a YouTube playlist of three videos.

    Saturday, December 17, 2016

    Cheat sheet to create a #VPC and Subnets on @AWSCloud

    One of the critical things to remember for working with a AWS VPC is creating and using it. I had hard time remembering how to do it, so, I wrote down a cheat sheet for myself. 

    If anyone wants to follow along, just navigate to the VPC page on the AWS Console and start with 'Create VPC' button. Please note that this may cost some dollars if you are not on the free tier. If you are on the free tier and make mistakes, it may cost some dollars.

    In the steps below, we will be creating the following on a new VPC:
    1. An internet gateway
    2. One public subnet with routes for accessibility from the internet
    3. One private subnet without any routes
    4. One EC2 web server with Apache installed in it and serving a sample html page - using the public subnet.
    5. One EC2 server with the private subnet and security group that allows access to resources running on the public subnet only. 

    Create VPC

    1. Name tag: myVPC
    2. CIDR Block:
    3. Tenancy: default (Must have default. Otherwise, it will get very expensive quite fast.)

    Create subnet for public

    1. Name tag: - us-west-1a
    2. VPC: myVPC
    3. Availability zone: us-west-1a
    4. CIDR Block:
    5. Select the public subnet from the VPC console
      1. Subnet Actions drop down - Modify Auto Assign IP - Enable auto-assign public IPv4 address.
    The last step ensures that your public web server will be accessible on the internet with an automatically assigned public IP address.

    Create another subnet for private

    1. Name tag: - use-west-1b
    2. VPC: myVPC
    3. Availability zone: us-west-1b
    4. CIDR Block:

    Create Internet Gateway

    1. Name tag: myIGW
    2. Then attach to VPC: myVPC

    Create Route Tables for public

    1. Name tag: myPublicRoute
    2. VPC: myVPC
    3. Routes tab: Edit
      1. Description:
      2. Target: myIGW (it may look different than the keyword myIGW, but it is the only one that will be selectable.)
    4. Subnet associations: Edit
      1. Checkbox: us-west-1a subnet

    Create EC2 instance for public route

    1. Network: myVPC
    2. Subnet: - us-west-1a
    3. Advanced details:
      1. Install httpd, update, start httpd and configure httpd to start on server start.
        1. yum install httpd -y && yum update -y && service httpd start && chkconfig httpd on
      2. Create a simple index.html
        1. echo “<html><h1></h1></html>” > /var/www/html/index.html
    4. Tag instance: MyWebServer
    5. New security group: myWebSG
      1. ssh
      2. http
    6. Launch
    7. Get public IP address and open in browser

    Create EC2 instance for private route
    1. Network: myVPC
    2. Subnet: - us-west-1b
    3. Tag instance: MyWebServer
    4. New security group: myWebSG
      1. ssh
      2. http
      3. All ICMP
    5. Launch - no public ip is provided
    6. Make a note of the private ip address


    SSH to public EC2 instance using your pem key.
    1. Copy the contents of your pem key and save it on the public EC2 instance.
    2. From the public EC2 instance, SSH to the private EC2 instance using the copied pem key using the private ip address.

    The private EC2 instance is accessible only from the public web server. It is not directly accessible from the internet. In fact, you cannot SSH to the private EC2 instance because there is no public IP address assigned to the instance.

    Friday, November 11, 2016

    #AWS Developer Notes - Part 1

    Region is geographic area.

    Each region has availability zones - different data centers.

    Edge Locations - CDN end points for CloudFront.

    AWS Platform

    1.0 Networking

    VPC (Virtual Private Cloud)

    Virtual Data Center in your AWS account. Logically separate network.

    Direct Connect

    A way of connecting into AWS environment without using an internet connection. 


    DNS service. 53 is the default DNS port.

    2.0 Compute


    Virtual server provisioned in a few seconds or minutes.

    EC2 Container Service

    Scalable fast container management service to manage and run Docker containers.

    Elastic Beanstalk

    Easy to use service to deploy and scale apps and services. Designed for developers to upload their code and beanstalk will inspect the code and provision the resources underneath.
    (Covered in detail for DevOps exam)


    Most powerful AWS service. Lets you run code without provisioning or managing servers. Pay for the compute time only. Pay only for execution time.

    3.0 Storage


    Object based storage. Place to store your flat files in the cloud. Secure and highly scalable and only pay for storage that you actually use.

    Cloud Front

    CDN. Integrates with other AWS products like S3. Different edge locations around the world to cache your files.


    Secure, durable and low cost storage solution. Anything stored in Glacier can take up to 4 hours to access it. It is good for long-term storage.


    Elastic File System - file storage for EC2. Necessarily NFS. Block level rather than object level.


    Amazon's import export service. Your hard disk can be sent to AWS and it will be loaded into AWS cloud physically.

    Storage gateway

    Service connecting an on-premise VM with cloud based storage to provide seamless integration between on-premise data center and AWS.

    4.0 Databases


    Relational Database Service - MySql, Oracle, Postgresql, MariaDB


    Important subject for the exam. Amazon's NoSQL database service with push button functionality.


    Caching your most popular queries in the cloud using in memory caching service - MemcacheD and Redis.


    Business Intelligence service. Data warehousing. Solutions architect exam - very important. Little for Dev exam.


    Database Migration Service - Migrate from legacy based databases like Oracle to RDS using MySQL or other open source technology.

    5.0 Analytics


    Elastic Map Reduce - A way of processing big data.

    Data Pipeline

    Move data from one area or service to another. 

    Elastic Search

    Deploy, manage and scale Elastic search in AWS. Not covered in dev exam.


    Platform for streaming data on AWS. Every time streaming is mentioned in the exam, it always refers to Kinesis.

    Machine Learning

    Use machine learning. Not required in the exam.

    Quick Sight

    Business Intelligency service. Like Cognos. Visualizations, ad-hoc analysis. Not in the exam.

    6.0 Security and Identity


    Control users, groups, roles, password rotation, dual authentication etc.

    Directory services

    Need to know different types of directory services. Needed for the exam.


    Allows to install agents on your EC2 instances and it inspects your EC2 instances to suggest security. Not required for Dev exam.


    Web application firewall service. Not in the exam.

    Cloud HSM

    Hardware security module. Not in dev exam.


    Key management service. Little bit for dev exam.

    7.0 Management Tools

    Cloud Watch

    A monitoring tool for AWS environment.

    Cloud Formation

    Script your infrastructure. Important for DevOps exam.

    Cloud Trail

    Used for auditing to record changes made to your environment.


    Configuration management service using Chef. Needed for Dev exam.


    Fully managed service for config history and change notifications. Not in dev exam.

    Service Catalog

    Create and manage a catalog of IT services. Not in dev exam.

    Trusted Advisor

    Automated service to scan your environment to suggest ways to save money and secure your environment. Needed for dev exam - what is it capable of and not capable of doing.

    API Gateway

    Allows developers to create, manage, maintain and secure APIs. Not covered now in dev exam, but can change.


    AWS's version of XenApp. Stream your windows applications from the cloud. Not on the exam.


    Manage and scale search solution. 34 different languages. Higlighting and geospatial searches. Not covered in exam.

    Elastic Transcoder

    Media transcoding service in the cloud. Converts from source format to different formats used for mobile, web etc. Needed for exam.


    Email service. Integrates with other AWS services. Needed for exam.


    Decouples your infrastructure. Needed for AWS. First AWS service launched by AWS.


    Simple Web Flow service. Developer can build and scale background jobs that have parallel or sequential steps.

    8.0 Developer Tools

    Not in exam yet.


    Private scalable git repos.


    Automates deployments to any instance including EC2 instances or on-premise. Not in exam.


    Continuous Delivery service builds, deploys services and apps everytime there is a code change.

    Read FAQs before going to exam. Not in exam currently.

    9.0 Mobile Hub

    Not in exam.

    Mobile Hub

    Build, test and monitor your mobile app.


    Allows to save mobile user data in AWS cloud. No backend coding. No need to manage infrastructure.

    Device Farm

    Testing your apps against real smart phones and tablets in the AWS cloud.

    Mobile Analytics

    Measure usage, revenue, new vs returning users etc.


    Big topic in the exam. Amazon's simple notification service. 

    10.0 Enterprise Applications


    Virtual desktop in the cloud.


    Secure enterprise sharing service. Dropbox for the enterprise.


    Amazon's answer to Exchange. Not in exam.

    11.0 Internet of Things

    Not in exam.

    Wednesday, October 12, 2016

    Trying @teamcity for #ContinuousIntegration - Part 3

    In part 1, we looked at how to install and create a simple build job in Teamcity. In part 2, we looked at how to create an agent and run a build on the agent.

    In part 3, we will look at how to build a Maven Java project. We already added the project to the build job in part 2, but we did not configure the build step to actually perform the compilation using Maven.

    Auto detect build steps

    It is as good as it sounds. I clicked 'Auto detect build steps' and the build step was automatically created to perform a 'maven clean test'.

    Check the checkbox in the table and click 'Use selected' to add the build step to your build job.

    Observe the 'mvn clean test' step in the table.

    Run the build job

    Run the build by clicking the 'Run' button at the top of the page. A live status and percentage of completion is shown on the project view.

    Edit the maven goals

    Click on the 'Edit' link on the maven build step row (second column from the right).

    Change 'clean test' to 'clean test compile'.

    Run the build again using the Run button. The build log now shows the Maven build step.

    The 'Maven Build Info' tab shows that the jar artifact was compiled successfully.

    I am curious to see more of this tool. The auto detect feature is very impressive.