AWS CLI command completion in BASH

Sometimes you just have to do something simple in AWS -- launch an EC2 instance, create a S3 bucket, run a lambda expression, insert some data into DynamoDB, etc. You could do this via the AWS Management console -- but that means logging in and using the Amazon Web Services very user-unfriendly user interface. You … Continue reading AWS CLI command completion in BASH

Taking back the internet from the Behemoth

The internet has pretty much become a walled garden for a few major corporations such Google, Facebook, Amazon, etc. It takes luck (and skill) to find anything outside these gatekeepers. Whether it’s searching for news, videos, music, or products & services for sale… good luck finding content on your own. Independent voices are stifled (or … Continue reading Taking back the internet from the Behemoth

When should you use JavaScriptExecutor in Selenium?

When you want to execute JavaScript on the browser :) This was my answer to a question on Quora JavaScriptExecutor is an interface that defines 2 methods: in Java (and similarly in C#): Object executeScript(String script, Object... args) and Object executeAsyncScript(String script, Object... args) which take as an argument a string representing the JavaScript … Continue reading When should you use JavaScriptExecutor in Selenium?

Use Python @contextmanager decorator to start and stop WebDriver

One of the most frustrating simple annoyances with using Selenium is the need to manage the creation and destruction of your WebDriver instances. If your configuration isn't correct, it won't start. And if your test does not complete successfully (or if you forget to close it down properly) you will have an orphaned browser window … Continue reading Use Python @contextmanager decorator to start and stop WebDriver

Should employers require a college degree?

This was my response to a thread on Code Mentor about hiring developers without a degree. If a company requires a degree and you don't have one -- it seems like a mutually beneficial filter. Personally, I'd rather hire someone based on skills and ability to learn and contribute. And I'd rather work for somewhere … Continue reading Should employers require a college degree?

Why Mockito’s @InjectMocks is evil

Why Mockito's @InjectMocks is evil: TLDR: It fails to inject silently @InjectMocks will try to satisfy a dependency with a @Mock by adding to the system under test via constructor, setter, or property. If any of those do not succeed, it will fail silently, and you won't know why you have a NullPointerException, for example. … Continue reading Why Mockito’s @InjectMocks is evil

Automation Strategy Manifesto

Automation is key to a successful DevOps strategy In order to accelerate release velocity from quarterly to bi-weekly we need to develop and release software in smaller cycles. This allows us to make decisions in an agile manner and get faster feedback from users. But the release cycle has inherent friction. To reduce this friction … Continue reading Automation Strategy Manifesto

Two types of tests

There are lots of diffefrent types of tests: unit testsfunctional testsintegration testssystem integration testsui testsapi testsperformance testsload testsacceptance testsaccessibility testssecurity testsetc… But I like to group them into two primary categories: Tests you can perform on the code itself, and tests that reqired a complete system to be deployed. There are obviously exceptions, and it's … Continue reading Two types of tests

Working with large datasets in Python

How can you work with large datasets in Python -- millions, billions, or more records? Here is a great answer to that question: Pandas is memory hungry, you may need 8-16GB of memory or more to load your dataset into memory to work efficiently. You can use large / extra large AWS cloud systems … Continue reading Working with large datasets in Python