My Tips For the AWS Certified Developer Associate Exam

Thank you so much AWS. I learned a lot about AWS Development services and best practices. Here are some tips that mighe be useful if you are about to take this exam. Things change quick in here so these are my tips as of 09/18/2021. Of Course this are not a complete list but my top 10.

  1. There is a lot of emphasis on Serverless patterns and in particular Lambda functions. Make sure you understand Asynchronous Vs Synchronous Invocations, Event Source Mapping, Cloud Watch Events and how Lambda integrates with other AWS Services. Also the key numbers about Lambda are good to know like Concurrency limits, Memory, storage capacity in /tmp and understand how concurrency applies for Event Source mapping Vs Asyn Invocations. Also very important to understand the IAM Roles that apply to Lambda and what needs to be done for allowing cross account access. A popular topic that I did not encounter in exam seems to be Lambda deployment [CF or SAM] and Canary deployments.
  2. Make sure you understand the API Gateway. Gateway Integration types (for Lambda and Other Services) and understand their differences, Integration timeouts, errors received when timed out, Services that it integrates with etc. Absolutely essential to understand API Gateway Security and methods that can be used for that (IAM, Resource policies, Cognito User Pools, Custom Integration for token or query string authentication). Good to know about CORS and Caching for API Gateway with their default numbers (time out and how to invalidate for authorized users).
  3. Cross Account Access of resources using STS and other mechanisms for receiving temporary credentials to make API Calls (Cognito Identity Pools, Web Identity Fedration, SAML / LDAP). Essential to understand STS AssumeRole API and trust boundaries. Also I would suggest to checkout API Calls supported by STS to understand their use cases
  4. AWS Developer Services like CodeCommit, CodeBuild, CodeDeploy and CodePipeline. Important to understand how to get GIT credentials for CodeCommit, buildspec, appsepc files, Phases of Inplace deployments, In place and Blue Green Deployments and their limitations, Code Deploy Agent. SQS (standard vs FIFO Queues), visibility Timeouts, delay Queues. SNS FIFO Topics and their integration with FIFO Queues. Important to understand the SNS Fanout pattern. Another important topic is which service to use for secrets [Secrets manager/SSM Parameter Store/ Environment Variables]. Another topic that came up was Cloud Formation intrinsic Functions and Stacksets.
  5. Debugging and Troubleshooting with X-Ray. Important to know how to install/enable the agent in different Environments like (EC2/Lambda/Elastic Beanstalk/ ECS) and how to implement agent in container environments. Important to understand how to instrument application using AWS SDK. The agent communicates on UDP Port 2000. For the service some high level concepts like Traces, Segments, Subsegments, Annotations, Metadata and Sampling Rules.
  6. Understand ECS Task, Cluster and Service. Also important to understand the high level architecture (EC2 or Fargate). In case of EC2 understand the Instance Profiles used to make API Calls to ECS Service Vs Container Roles. Very important to go over data sharing mechanisms between containers.
  7. Understanding Envelope Encryption is absolutely essential. Good to know the APIs involved (GenerateDataKey, Encrypt, Decrypt etc) and their limits. Also understand the Master Key, Data Key which of the keys are encrypted, how to get a plaintext key from Encrypted Key.
  8. DynamoDB is a super important topic. Absolutely important to know about [Streams and Viewtypes, TTL, Conditional Writes, Projection Expressions, Optimistic Locking, Differences between LSI and GSI and their impacts on throttling, How to calculate Read and Write Capacity, Ways to optimize Scans etc
  9. S3 Server Side Encrytion Mechanisms and when to use SSE-S3, SSE-KMS, SSE-C or client side encryption. Important to understand who manages the key and how is it rotated/tracked. Other S3 scenarios are Multipart Uploads, Transfer Acceleration, Parallel Uploads etc.
  10. Deployment strategies in Elastic Beanstalk. Different scenarios like impact of failed deployments, deployments on totally new instances, supporting Traffic shifting, down time and reduced capacity during deployments.

Those were just my Top 10. There is much more to go over and practice. I highly recommend some hands on exercises. Nothing like the Console to gain more confidence. I enjoyed this exam a lot and my next challenge is the SysOps Admin exam. I hear the format recently changed and it requires some practical hands on in the exam. I look forward to the challenge and hopeful that I will write a similar post after that 🙂 Best of Luck if you are considering taking this exam.

Leave a comment

Filed under Uncategorized

Hourly Rates and Flat Rates for Software Development Work

I have heard many times from my customers that “My rates can fluctuate”. Its something they don’t like and would like to keep it consistent.

OK, I understand their point of view but they have to understand mine as well. I tell them a real life story but they dont seem to agree. Here is the story:

“You can go to the same mechanic for the same job, changing the oil in your car. Take 2 cars with you. Car 1 is a honda civic in good condition and not super old. Car 2 is a BMW 330 ci  in good condition. Pay up after he is done with Card 1. Take in Car 2, do the same job and pay up” Both jobs will may be take around the same amount of time. Which one do you think you will cost more ? (If you have owned a German Car, it would not take a scientist to figure this one )

My clients seem to say that a rate is a rate. For easier job I can do the job in less time and for a tougher job I need more time. My clients want to think of software development activity as a measure of time. What they seem is “The time spent on learning a technology, the time spent on gaining experience over a certain technology and the competition available in the market”.

For example, I do iOS app development for $70 / hour, I think its very specialized software development that requires learning progrmming language, getting used to the integrated development environment, knowing about various programming artifacts and basic software engineering principles, I cannot charge $70/hour for “wordpress website development”.

Being an hourly wordpress website development cannot be the same as androiod application development.  Getting my point ? What about Data Entry ? Why is that a low paid hourly job ? If I am given the same rate for data entry as I am given for Smartphone app development; heck I will enter data all day and all night !

I guess I start asking more questions than providing answers once I start to get angry internally and have negative feelings about a topic 😀

So please do not be that client and dont be quick to judge that I am trying to rip you off ! because I am not !

 

 

 

 

Leave a comment

Filed under Uncategorized

Is Naisss !

Pretty sweet Daughtry Song. Found as a backgroud track of “CS 1.6 Sniper Ownage Videos” . Yeah call me if you dont know what that is ;).

Here are the chords assuming you are pro at Em A G Bm D. The scale can be adjusted by moving down a couple frets  :

Intro
Em A Em A

Em                         A
A single rose left to remember
Em                                 A
As a single tear falls from her eye
Em                       A
Another cold day in December
G                  A      
A view from the day she said goodbye

Em                           A
It seems it’s only been a moment
Em                                   A
Since the angels took him from her arms
Em
She was left there
A
Holding on to their tomorrow
G                A
But as they lay him in the ground
G                   A
Her heart would sing without a sound

Bm                                      D
For the first time you can open your eyes
Em                   
And see the world without your sorrow
G                                A
No-one knows the pain you left behind
Bm                              D
Or the peace you could never find
     Em
It’s waiting there to hold and keep you
G
Welcome to the first day of your life
                    Em    A   Em       A
Just open up your eyeeeeees,  eyeeeeees

Em                            A
A single lifetime waves behind her
Em                        A
As she draws her final breath
Em                           A
Just beyond the door he’ll find her
G              A
Taking her hand he softly says

Bm                                      D
For the first time you can open your eyes
    Em                   
And see the world without your sorrow
G                               A
No-one knows the pain you left behind
Bm                              D
Or the peace you could never find
     Em
It’s waiting there to hold and keep you
G
Welcome to the first day of your life
                    C
Just open up your eyes
                Em
As I lay down tonight
      D/F#   G
Safe on the other side
C                A
No more tears to cry

Bm                                      D
For the first time you can open your eyes
    Em                   
And see the world without your sorrow
G                               A
No-one knows the pain you left behind
Bm                              D
Or the peace you could never find
     Em
It’s waiting there to hold and keep you
G
Welcome to the first day of your life
                    Em    A   Em       A
Just open up your eyeeeeees,  eyeeeeees
Em    A   Em       A
Eyeeeeees,  eyeeeeees

Leave a comment

June 26, 2012 · 2:08 pm

Vacation Work and Gambling Rant

Please dont tell me that “I am extremely tired” after you are back from a cruise vacation. I mistakenly thought that you had a great time and are now refreshed and energized after quality time with your family. Lol ! No hard feelings for the cruisers just something I was thinking about, as I hear this alot.

Also dont tell me with a sad face that “Shows were good in Vegas” so yeah the vacation was alright. Its OK and I definitely understand if you tell me that they took all your gambling money in 30 minutes and that totally sucked 😛

– Cheers

Leave a comment

Filed under RANTS

USE CASES IN UML AND OBJECT ORIENTED PROGRAMMING

When I took a Object Oriented Programming Class in my second semester in college, I was not able to understand a lot of concepts essential to software design and architecture. I was new to the concept of Classes, relationships between classes, API and exposing methods and attributes. Of course, that’s why I was taking the class. I could program some fundamental programs in pascal before this and i loved global variables (the fact of the matter is I still love them but probably somebody who is debugging a problem or a bug in my code, probably would not like them). So coming back to the point, the first concept in any Software development methodology is a requirement. Business Analysts would talk to the potential customers and figure out a bunch of requirements. Software Architects or Software Designers would view the requirements and model the requirements in a way that would make sense to a Software Developer. Sometimes a business analyst would be talking to the customer and doing a design, there are no hard and fast rules. The main purpose of UML is to specify requirements and design in a standard format so in a team other people can relate to the requirements and design and write efficient code. In my software development experience, good requirements mean 50% less work and also it would save the rework and costs in terms of testing time, and no hacks in code. Overtime a piece of code gets modified multiple times by different people who like to code differently, so more clear the requirement is, most relevant
code you can write to begin with.

What is a use case ?
I would not go too much technical detail on exactly how it is defined. To me its a functional requirement and that’s what I have read in books as well. Functional requirements of a system can be described using Use cases and Use Case Models.By functional requirement I mean that we would use a USE CASE to describe a feature of the system we are trying to design. It will usually involve describing an event that will happen as a result of user or system doing something.
If Use case defines a requirement then a Use Case Model pretty much describe the overall working of the system by showing a collection of requirements and the relationships that exists between them. Lets say we are designing

Let me give you an example, you love Facebook right ? Right or wrong ?? he-he, lets say you have to describe the event of “Sending a friendship request to another member” how that will happen ? There are some business rules that will govern how. First thing is the person browsing Facebook needs to be logged in, second thing is you should be able to find the profile where you want to send the friendship request to. Then there should be a button or a link or some User Interface that the person would be able to click to be able to send a friendship request. After the button or link is clicked, Facebook will do its thing and display if it was able to send your friendship request or “Sorry No Donuts for You”, I guess ORKUT did that, not guessing I am pretty sure ! So in the scenario I just described there are a bunch of components that will make up the use case and I will describe them as I go.

The Aim or Goal or Description of the Use case is to be able to send a friendship request to another member of Facebook. You can give it a short and sweet name and be fancy like “Sending a Friendship request”. So the name/title of the USE CASE would be “sending a friendship request” and the goal/aim/description would be “The system/website/Facebook should be able to send friendship requests to other members with a profile on the system/website/Facebook. So now you know what is the title and description (description is a wordy extension of the title). Next thing would be to identify who is initiating this behavior of the system and by doing what ? A user is initiating the action by clicking on a link. The Primary actor/stake holder of the use case is the “USER” and “Clicking the Send Friendship Request Link” is the Trigger. After clicking since the system/Facebook will do something and say whether it was successful or not and actually send the request “SYSTEM” can be thought of as Secondary actor. So now we are down 5 trashy terms (Title,Description, Primary Actor,Secondary Actor and Trigger). Now there are some conditions that should be fulfilled before the Action/Description can happen like the person sending the friendship request should be signed in to Facebook and be able to locate the profile of the person where the request would be sent and be able to click on the correct link. These are the Preconditions of the Use Case. So the conditions that should be fulfilled before the scenario described in the use case are its preconditions. Usually they can be represented as a numbered list on a Use Case. Similarly after the scenario described in the USE CASE is completed, something will happen that would be the POST CONDITION. Either the friendship request is sent or Sorry No Donuts for you :P. Now comes the main flow or happy scenario or the USE CASE which would define a sequence of events and action that would describe the Use Case. For example

1. User A found User B on Facebook and is able to stalk
2. User A clicks on the “Send Friendship Request” link
3. System sends a friendship request to User B and also sends a notification email

This scenario is happy because whatever we are trying to achieve we did so successfully. Similarly since the system will not be happy all the time, you can have an alternate scenario. Alternate scenarios are also called USE CASE Extensions

1. User A found User B on Facebook and is able to stalk
2. User A Clicks on the “Send Friendship Request” link
3. System was unable to send a friendship request due to some error and displays a message “Sorry No donuts for you since cookies are disabled in the browser !”

I would recommend text from UML Distilled and anything written by Martin Fowler on this subject.

Leave a comment

Filed under Software Design

This is an old old Indian Song. I recently heard a cover where Sam Hasan performed and I really liked his performance. Below is my version and The chords are G, D , C and Em. Hope you like it.

Ghazab ka hai din – Asad Siddiqi

Here is the Cover from Sam Hasan:

Leave a comment

May 22, 2012 · 3:23 am

God gave me you Cover – David Barnes

I like the version of song by Blake Shelton but I heard this one from David Barnes and I like it much better than the Blake Shelton’s version. Beautiful Lyrics !

Leave a comment

Filed under Uncategorized

Sequencer Cover Majboorian

The orignal song is from one of my favorite bands “The Sequencers”. For some strange reason I really like this song and this is my cover version ! Let me know how you like it

Majboorian Cover – Click Here to Play

Here is the orignal and I just love it !

Leave a comment

Filed under My Recording

Some of my favorite FAILS….. FAIL FAIL FAIL :D





Leave a comment

Filed under My favourite Vdos

My views on Software Evil(s) ? Arent Ads Evil ?

I am a Software Engineer by profession. I do have a lot of time to think about things normal people (or so they like to call themselves) usually don’t and probably don’t discuss as much. I have been in the IT world for a good 7 years professionally, I have heard a lot about Microsoft being a Software evil but why ? The argument I heard countless times was how they included IE as a part of their operating system to kill Netscape and how they don’t encourage competition by bullying the moms and pops software developers out the market .. It is seriously comical to me. Really ? It is a corporation, a business that aim to drives the profit higher for the company. I don’t mind if its providing great application software at the same time. Microsoft made it ridiculously simple to operate computer. Good luck trying to use the Good Ole “*ix” and actually learn anything besides the operating system. But they are evil because they are rich and have money and everybody with money is evil and so Microsoft is evil. Yes I agree to any hater’s point of view. No I have not been paid by Microsoft to defend them. In fact their are a number of things that are very irritating (there have to be once you are that big). Lately its being going down and the slope is more then 45 degrees. Everything Microsoft does feels like is late in the market.  In my opinion a lot of it has to do with DENIAL and the company just denying that there is anything else but windows in the market and we will just continue to sell Windows and Office. I mean come on guys ! For how long you are going to repackage the same operating system, throw in some changed look and feel and some features that no one cares about. There are bigger avenues that Windows 7 and Windows 8 and Windows 9 and Windows 2015. Now that the management has realized that, there seems to be an absence of creative thinking or may be they are still in denial. All the Microsoft products seem to be late it the industry. They seem to be hell excited about the upcoming new and ground breaking technology that they are working on (nothing wrong there) and when it comes out scrap them and pull the plug on them in a matter of some months. Does not seem like there is any major design consideration when things come out and fanatics jump on to just use them. These days its HTML5 and scrapping of Silverlight/WPF. It was not too long ago that Microsoft could not stop singing praises of Silverlight. But as an application provider I have no problem with Microsoft what so ever. So sissy companies with sucky operating systems and cry all they want that no one wants to purchase their operating system.

Now there is Google. Yes do no evil Google. Google was much smarter than Microsoft. They are also a company and not a charitable organization. They pay really world class salaries and state of the art work conditions for their employees. How is it possible if they are not even selling their services. THEY Just want to display ads to you. Google goes a long way to display ads and millions of hours worth of effort by the masterminds are spent to make the ads more relevant. Yes there is much more to it than you think. Ever wondered how the ads are very relevant to the message you are reading from your mom on Gmail. No ? Try sending a message to your mom and tell her that you would like to buy a Mustang. When she responds, ignore the message and focus at the top , left , right and down in your window. They will certainly make buying Mustang much easier for you. Did their bot just read your email ? OH NO Its not a security concern (its just a bot who means no harm). OK If Google is such a nice guy, Why I don’t have the option to turn all ads off whenever I want to ? Perhaps I should have the option. Its simple to implement (I would be happy to implement it for Google if they would like for free). The problem is not how they are showing you ads, I totally understand that. They are a company and they make their money by ads, its their business model and I dont have a a problem with that. The problem is with calling other companies evil for negative business practices. I would much rather pay 50 bux for a license from google, never to see any ad again once I sign in to my google account.

Noticed lately how many Google products have failed ( HINT : social networking). Looks like thats the biggest irritation they have these days. I cannot even count. I guess they realized that the TRAFFIC seems to be eye opening on FACEBOOK and they are missing out. Facebook has the same business model and instead of Google Ads they have Facebook Ads. They bought ORKUT, created Google Wave, Google Buzz, Google Plus and I will update the list after i Google it ! They just want a piece of it. Just trying desperately to get people to use something other than Facebook. Hey Masterminds ! people wont switch. Why ? Because all their friends are there, Its easy enough to use and we dont need another password or a re engineering of a service we already have.

HERE Is 1 brilliant IDEA for you if you are willing to be evil.

Pay every Facebook account $20 to delete that facebook account and join Google +. I can bet that this will go viral. I am pretty sure you can make muchhhhhh more than $20 for every account that signs up and hey you will get 1 more account than you have for sure. I will delete my facebook and Join Google + if they pay me $20 for that !

 

10 Comments

Filed under Blogroll