Okta Software Engineering Design Principles

avatar-jon_todd.jpg
Jon Todd
  ·
Okta has been an agile development shop since the beginning. One important aspect of being agile is enabling a mix of bottom-up and top-down decision making. Specifically where high level vision and strategy is clearly communicated enabling teams to autonomously deliver value while also feeding back learnings from the trenches to inform the high level goals.1 Below are the tacit engineering design principles we’ve used to guide development at Okta. They continue to evolve as... Read more
            
                                  

Productionalizing ActiveMQ

avatar-okta_logo.jpg
Okta Staff
  ·
This post describes our odyssey with ActiveMQ, an open-source version of the Java Messaging Service (JMS) API. We use ActiveMQ as the message broker among our app servers. First, a word of thanks. To overcome the challenges we faced with ActiveMQ, we are greatly indebted to a very thorough description of an OpenJDK bug, as well as some other online resources. If you’re having problems with ActiveMQ, read on. Maybe our story can help you.... Read more
            
                                  

Android Unit Testing Part IV: Mocking

avatar-victor_ronin.png
Victor Ronin
  ·
This is the third of a four part series on Android Unit Testing. In the last two articles I discussed the general principles of having good tests and the way to run Android tests on JVM making them fast and how to make your code less coupled. This article will explain how to make tests isolated. We need to mock a dependency, inject it, and then modify our test to indicate that we are not... Read more
            
                                  

Android Unit Testing Part III: Disintegration

avatar-victor_ronin.png
Victor Ronin
  ·
This is the third of a four part series on Android Unit Testing. In the last two articles I discussed the general principles of having good tests and the way to run Android tests on JVM making them fast. This part will show how to make your Android code less heavily coupled. This is a preparation step to ensure that your tests are isolated from each other. We want to test each unit of work... Read more
            
                                  

Android Unit Testing Part II: Escaping Dalvik’s Hold

avatar-victor_ronin.png
Victor Ronin
  ·
This is the second of a four part series on Android Unit Testing. In these posts, we’ll walk through the key steps engineers should take to make Android test fast by running them on JVM (versus running them on emulator). For background information on the importance of Android testing, visit Part I of the series. It appears that the need to run tests on an Android device or an emulator has concerned Android engineers for... Read more