I Joined AWS, It’s Surreal, and Why

TLDR I joined Amazon Web Services on the 11th of October – i.e. AWS – and it rocks.

When you join Amazon you are signing up to learn a lot of things about the company and the ways in which the company gets things done. Before I get into all that, I’m going to tell you a bit about my career and what led me to Amazon. After all, it is surreal and unexpected for many that know me that I’m here. This relationship has definitely been a 2-way story, and one where it finally fit in a mutually beneficial way.

My First Years in Tech

Years ago, I jumped into the nascent tech industry from the state of Mississippi, where I grew up. Mississippi is quintessentially one of the most regressive, least advanced, disadvantaged, poor, and poorly run states in the entire United States. For most Mississippians life starts rough and continues that way throughout. However there are shining little slivers where tech lives and thrives in the state, and I lucked out in a massive way by cutting my teeth at Stennis Space Center (yes, a part of NASA).

When I got into tech I had no high school diploma and no college. I would eventually attend college but I couldn’t attend yet as I was only 13. I fumbled my way into some coding by taking a programming class. The class used the "Basic" programming language taught by a smart and creative woman that did well to keep the attention of a moderately bored "metal head" 13 year old.

Just a few years later I picked up a C++ book, because one didn’t have the internet to just google their way into learning a new language. That was quickly followed by learning Visual Basic 4, which landed me an opportunity to build a video rental tracking application. I got paid too, a massive $300 bucks! In the next several years I ended up getting into networking, systems administration, more programming and scripting and doing work for doctor’s offices, hospitals, trucking dispatches, junk yards, and a number of other businesses.

I loved the independence this life I’d gotten into gave me. Eventually college came up and I attended some courses, mostly about music and music theory more than programming. But out of a desire to learn faster and cover more topics I left college to advance in the industry.

Fast forward over that following decade and I tore into a plethora of technologies, started working for some giant companies like Bank of America, Citigroup, and Fidelity with hundreds of thousands of people, Government agencies, and some smaller startup like companies.

The famous mythical man-month!

Through all of this experience, and traumatic death march styled work, I came to two decisions that have shaped my career for many years and benefited me in a very significant way.

  1. I was going to cease working for the Government, after years of consulting and related work with the Federal and States Governments I just couldn’t take the lack of control, inability to really effect change, and the general laggard nature of the work. I promised myself I’d stop working in this sector entirely. At this point in my life, I’ve held 100% to that promise, it’s been a rewarding and very effective decision.
  2. I decided I would, likely, stay away from big corporations and also likely stick primarily to small (i.e. SMBs) that allowed me the most impact within an organization. If I were to shift back to a large corporate entity it would have to be with some type of rogue group or segmented team within that organization that fell outside of the general organization itself. So far only one team fit that mold, at Home Depot, but outside of that group I’ve stayed my course and stuck to small business, SMBs, and startups.

Hello Amazon Web Services

"Every day is Day 1." - Corporate Training, but coined per Jeff Bezos

This line in the embarkation of working at AWS stuck out. Which is saying something, because when you join AWS there’s about ~80-120 hours of training videos and culture related content to consume for the coder, techie, project, product, and leader related type of work.

It stuck out because, really, in very real terms this is day 1 of a new career direction for me. I’ve shifted and mutated my 2nd declaration above, in a significant way. I’ve joined AWS to work with the Amplify, AppSync, and surrounding teams to move forward work in GraphQL, data, flows related to, and projects and services around that data space. I’m stoked, but I didn’t join just because of the tech.

Why AWS?

Why join AWS? Even though I’d promised myself not to join anymore big corp companies I got to a point and looked at several of the big companies because I wanted more scope. What I mean by scope is the range of topics, tech, and people that I could work with on a daily basis that were involved in a wide space instead of just a singular narrow space. Startups and small business, by their very nature, work in a singular and narrow space. I still had intent and wanted to work with GraphQL and tech immediately tangential to GraphQL, but I wanted more access, more range, and options to expand the interactions of the tech and expand into access to interactions with people in the industry. So I began a search that eventually led me to join AWS.

That search started with several companies, including AWS. I was looking for several key characteristics that would dictate where I landed.

  1. Involvement in the space, specifically the open source space I wanted to work in. That included several key technologies, depending on what matched best, I’d go that direction: Kubernetes, GraphQL, and general open source development (like Github, etc). This made the options basically Google, Microsoft, AWS, or Facebook!
  2. What company would trigger the least ethical dilemmas for me. Yes, this was indeed part of the criteria I was looking at and discussing. Facebook was already on the shit list considering their political meanderings and inability to fix them. I also just wasn’t sure considering the conflation between actions vs. words. Google was in a moderately ok space, as was AWS, and Microsoft has been doing pretty good on the ethical front as of late. There’s always some questions about things, but I basically wanted to make sure I wasn’t working on things directly helping to cage kids or bomb other countries that are in the stone age back to the stone age!
  3. What company has culture (i.e. specifically good behaviors around meetings, people, etc) that I would appreciate and would work well for me. I’m a rather disciplined, driven, yet ADHD afflicted soul so sometimes, a company’s culture can destroy me or burn me out at 10x the rate of others. I want to join an effort and stick around for some time to really drive home some impact!
  4. How would the team I’m on and teams of people I’d work with, mesh with me. Obviously they’d interview me but I am more than aware, and 100% interview them at the same time. Interviews are absolutely a 2-way relationship and I, as with the last decade plus of my career, have chosen only to work with teams of people that I know are top tier, diverse, open minded, and have a good heart in their efforts.

How It Came Together

I started my search with the premise that I wanted to gain the above four characteristics in which company I joined. I had the privilege and due diligence to choose the company that I could gain all of these, not just a one or a couple of these characteristics. I won’t focus on the companies that didn’t make the cut or why, but I will elaborate on why AWS, and Amazon in general, did indeed make the cut.

  • Leadership principles: One of the things Amazon as a company lives and dies by is the leadership principles. There are a whole host of folks that like to complain, denigrate, nit pick, and come up with reasons why these are bad, but I’ll just cut that off with – when intent is good – they’re all awesome. Full stop. To break down each and personally elaborate:
    • Customer Obsession: yeah, I literally do this work with a priority on who will use it. It’s one of the reasons I focus on minimizing ethical concerns. It then insures that I too can truly be invested in supporting my customers in their efforts. Check.
    • Ownership: I already live by this principle, not just in work life, but personal as well! It’s something I staunchly believe in. Long term over short term, take accountability, act on behalf of not only yourself but others. Step up, there’s a lot that needs to be done in this world! Check.
    • Invent and Simplify: The mantra I’ve basically lived my whole programming career by. If I can’t build things to work myself out of work, and I can’t find a better way to do something after doing it for a while, I’ve started to fail at what I’m doing. I work in this field to make things easier, better, and more resilient for the users’ of the things I build and help others build. Check.
    • Are Right, A Lot: Nuff’ said.
    • Learn and Be Curious: Just scroll through and read the posts on this blog, follow me @Adron or streaming @ThrashingCode. You know I’m all about this. Check.
    • Hire and Develop the Best: Well, I haven’t hired anybody yet at AWS, but I’ve hired a lot of people in my career so far. I don’t hire you if you won’t or can’t be the best, thus, if I ever do hire you, you can rest well knowing I vouched for you and know you can kick ass and take names! 🤘🏻
    • Insist on the Highest Standards: We can talk about the pedantic nature of this leadership principle in the future and joke about tablets later. Check.
    • Think Big: Always. Check.
    • Bias for Action: People’s lives continue today because of my bias for action. If you know me, you”ll understand this comment. If not, feel free to ask, I’ve just summarized it with this statement for this post. Check.
    • Frugality: At work, yup. At home, no comment. Albeit I would own a plane or launch rockets in a frugal way too if I had the financial resources. Check.
    • Earn Trust: I’m always working to earn trust among those I trust and respect. I hope we all are, it’s a remarkably good way to live. Check.
    • Dive Deep: I’m on it. Check.
    • Have Backbone; Disagree and Commit. Thanks brutally, caustic, and toxic southern upbringing, and thanks west coast for helping me tone that down to an effective level of having backbone, disagreeing and committing in life. Check.
    • Deliver Results: I’ll admit, this one I’m a little afraid to ask why it even needs to be listed. Check.
    • Strive to be Earth’s Best Employer and Success and Scale Bring Broad Responsibility: I’ll do my part but I’ll leave these as is for today. There’s work to be done! Check.
  • The team and members on the periphery of that team checked all the boxes (good job!), were friendly, easy to converse with, and are top tier people in this industry! During my initial loop I got to speak with, meet, and I highly recommend following each of these people if you don’t already, and more benefit if you are interested in the work we’re doing:
    • Bill Fine -> @billfine
    • Brice Pellé -> @bricepelle
    • Ed Lima -> @ednergizer
    • Robert Zhu -> @rbzhu
    • Ali Spittell -> @ASpittel
    • Mohit Srivastava -> @mohit
    • I also met and spoke with Aleksej Trefilov and Ben Snellings, but we can’t discuss all the cool secret thigns they’re working on, so I’ll just leave it at – awesome to meet them, if you get a chance to work with them sign up!
    • Big shout out too to Adam Desai and Mashayla too! Adam is the recruiter that I worked with and got all of the loops lined up, and Mashayla joined in to make sure everything got coordinated and scheduled! Great experience and good workflow y’all have!
  • Around the culture aspect, as I spoke to the team and others in the immediate teams I dove into a number of culture questions. One of the things that summarizes the drive and energy at AWS is the principled and organized nature of meetings starting with a document read – everybody reads the document – then the meeting resumes around discussion of the document, the details, data, and the participants take actions based on that. It’s a very effective way to run meetings. Beyond that however, the general readiness of the team, the approach and interactions of everybody involved, was excellent. The conversations during the interview, the tests and challenges, all were great fun and I got a lot of information (and I got the job, so I suspect I provide good information!) and enjoyed the interactions. I got a solid feeling we’d mesh well. Another criteria, check!

Now all of this didn’t go off without a hitch, because of certain things I got to do a second short loop and my role switched from Developer Advocate DA to Product Manager Technical. This worked out very well however, as now I’m positioned to have impact from work as a developer advocate and product management efforts.

There were other competing offers from Google, Microsoft, and other companies I interviewed with at the same time. In the end though the responsiveness, effective flexibility from the team and Adam led to AWS coming out the winner. With everything wrapped up and questions answered, all criteria met, I gave AWS and the team a solid YES!

With that I’ve joined AWS! Ready for new challenges and bringing a simpler, faster, more usable Amplify, AppSync, and Cloud environs to every coder out there! Let’s do this! 🤘🏻

Mapping Domain Names with name.com, Elastic Beanstalk, Elastic Load Balancer and AWS Route 53

I finally wrapped up my name server and DNS mapping needs with Name.com, Route 53 and Elastic Beanstalk. Since this was a little confusing I thought a short write up was in order. Thanks to Evan @evandbrown for helping out!

The first thing needed is a delegation set of name servers for your DNS and name server provider. These can be found by creating a hosted zone. The way to do this is open up the AWS Management Console and navigate into the Route 53 management area. The Route 53 icon is under the Compute & Networking section on the management console.

Beanstalk, Route 53 - Click for full size image
Beanstalk, Route 53 – Click for full size image

Upon navigating to the Route 53 console area click on the Create Hosted Zones button.

Create Hosted Zone
Create Hosted Zone – Click for full size image

When the zone is created then the delegation set can be found under the Hosted Zone Details. This delegation set now needs setup as the name servers for whoever, in this case name.com, is the domain provider.

Delegation Set - Click for full size image.
Delegation Set – Click for full size image.

Open up the management console for the name server administration.

Upon adding them the list should look something like this.

Name servers list built from the delegation set of the hosted zone. Click for full size image.
Name servers list built from the delegation set of the hosted zone. Click for full size image.

Once the name servers are setup, those will need time to propagate. Likely this could take a good solid chunk of time, somewhere in the hours range likely, and don’t be surprised if it takes a little bit more than a day.

While the propagation starts navigate back to the AWS Management Console and open up the EC2 section of the console. On the right hand side of the Resources list there is a Load Balancers section. Click it.

Load Balancers - Click for full size image.
Load Balancers – Click for full size image.

In this section there is a listing of all load balancers that have been created manually or by Elastic Beanstalk.

Load Balancers - Click for full size image.
Load Balancers – Click for full size image.

Make note of the Load Balancer Name for selection in Route 53. This is what Route 53 needs in order to point an alias at for incoming traffic to that particular Elastic Beanstalk application. In this particular image above there are 4 load balancers listed, the easiest way to prevent confusion is to take note of the load balancer name at the time of creation, but this is the easiest way to find them otherwise.

Record Set - Click for full size image
Record Set – Click for full size image

Now when going back to the hosted zone to set it up with the appropriate information, create a new record with the appropriate name, in this case I was setting up the admin.deconstructed.io (no it isn’t live yet, I just set it up to test it out) to point to an alias target. Just leave the Type set to A – IPv4 address and click the radio control so that Alias is set to Yes. In the alias target select the appropriate load balancer for the Elastic Beanstalk (or whatever it points to) application.

That’s it, give it a few hours (or a day) and eventually the domain or subdomain will be pointed appropriately at the Elastic Beanstalk load balanced application.

IBM Cloud Services?

I’m kind of surprised, I didn’t even realize that IBM has made some inroads into cloud computing.  I however shouldn’t have been at all surprised, as IBM has made great changes over the years.  Their offering doesn’t seem as well laid out as AWS or Azure but it is a significant presence just being IBM.

IBM Cloud Computing looks like most of the other things the company does these days, which is primarily services based.  I don’t mean web services either, even though I’m sure they use those, but literally services based versus offering actual products, hardware, or some type of applications.  They do have their iNotes and other tools like that in the cloud.  Otherwise it isn’t immediately obvious how their cloud compares to Azure, AWS, vmware or Force.com.  IBM’s website for cloud computing seems as disorganized as vmware’s or Force.com’s, which make Azure and AWS seem super well put together and structured.  With clearly defined features and tools for developing in their respective clouds.

Overall the services look attractive if IBM is already a provider of other services.  Kind of like Azure looks more attractive to the .NET Stack of Developers and AWS looks more attractive to PHP or Java Developers.  Even though both Azure and AWS support .NET, Java, PHP, and more, just from the IaaS or PaaS perspective though.

This begs the questions:

  • What are the differences between the IBM Cloud Computing Services, Azure, AWS, Force.com, vmware, and others?
  • Besides IBM, Azure, AWS, Force.com, and vmware, what other cloud services are really doing it right and pushing forward with redundancy, uptime, compute capabilities, and other key features?
  • Anyone guessing on consolidations in the future with the current big players (AWS, Azure, Force.com)?