olly - Fotolia

Software developers, what's in your sandbox environment?

Three software engineers open their application sandbox environment and reveal what they've learned about JavaScript, Docker, AngularJS and more.

Which development tools are being explored in a software engineer's application sandbox environment today? Three developers recently opened their sandbox environment to reveal JavaScript, Docker, Angular, and a variety of Web application development and testing tools. While sandboxes, or isolated computing environments, are now -- and have traditionally been -- used for security testing, many software developers also use them to refresh old skills and learn about new technologies.

Natasha Litt, software engineer for New Relic Inc., a San Francisco-based software analytics and application performance monitoring software provider; Jeremy Steinert, DevOps practice lead at cloud consulting firm WSM, based in St. Clair Shores, Mich.; and Greg Sypolt, senior software engineer at Gannett -- USA Today Network and co-founder of Quality Element, a QA consulting firm, share their app sandbox environments.

Litt's sandbox: Docker containers and Dogestry

Natasha Litt, software engineer for New RelicNatasha Litt

Litt took a deep dive into Docker containers last year, so her application sandbox environment has been docked there, ahem, for a while. Now, she's exploring Dogestry for storing Docker images in Amazon Simple Storage Service (S3). A Docker Registry alternative, Dogestry was created and open sourced by New Relic. Open source Docker Registry is a server-side app for storing and distributing Docker images.

"I'm tinkering around with improving, pushing them and pulling them from S3, so you can see more easily what you've stored in S3," Litt said. "It's basically your own registry, without having to go to a Docker Hub or a key dot I/O. So, I'm tinkering around with how we can make that tool better."

I'm tinkering around with how we can make [Dogestry] better.
Natasha Littsoftware engineer for New Relic

Litt is exploring storage options so that her SQL dump tool support session variables support large file extraction. "One goal is that when you have a really large file to extract from a database, you can set a variable that lets you have a longer timeout," she said. "And that applies to just you, and not all the rest of the users of the data."

By the way, Dogestry is named for the Doge meme. Of course, you knew that already, right?

Sypolt's sandbox: JavaScript, Web performance testing and mobile testing

Longtime test automation evangelist Sypolt is revisiting JavaScript in his sandbox environment to prepare for a course on AngularJS. The plan is to complete a refresh course on JavaScript before starting courses on that HTML and Web programming language and AngularJS, a JavaScript framework for testing, at Thinkster.IO and Code School.

The JavaScript tech stack is very popular, and is being used more and more across the industry. "JavaScript is the foundation to many JS frameworks or libraries," Sypolt said.

Knowing his way around the JS stack is critical to working successfully with NodeJS on the server side, AngularJS on the front end, and test framework and tools, such as Jasmine and Protractor. "Along the learning journey, I will be thinking how to build out the testing architecture for Protractor, responsive testing and Web performance testing," Sypolt said. 

Greg Sypolt, senior software engineer at Gannett -- USA Today Network and co-founder of Quality ElementGreg Sypolt

Sypolt is researching Web performance testing tools -- including PhantomJS, BrowserMob and YSlow -- as a means to implementing mobile-first strategies. "As we begin the journey of rewriting the front-end app for desktop and mobile Web to be a single platform that is responsive, we need tools or technologies that allow us to monitor and measure the app performance from different breakpoints," he said.

Next on Sypolt's agenda is learning new ways to improve a mobile continuous integration (CI) pipeline. His goal is expand beyond only using simulators in a CI pipeline. "The plan is to continue working with Amazon Web Services Device Farm to execute our Android Espresso and iOS EarlGrey tests across multiple real devices and [operating system] versions as part of our CI pipeline," he said. 

Steinert's sandbox: Vagrant, Jenkins and Load Impact

Steinert takes a traditional path, using his go-to tools in his sandbox environment to test application iterations and cloud implementations. "My sandbox typically includes Vagrant, to manage local development servers; Jenkins, to automate application testing and deployment; and Load Impact, for automated performance testing," he said. 

Jeremy Steinert, DevOps practice lead at WSMJeremy Steinert

Testing inside a sandbox has grown in importance, as iterative development and multicloud deployments have become popular.

Sandbox testing is beneficial for cloud and multicloud systems, because application, data and other components are always in motion, Steinert noted.

In iterative development, developers often are building on the work that others have done, or reusing general purposes code to handle certain requirements of an application. "When you're building on the work of others, there are opportunities to be inspired by something great or hindered by something poor," he said. Using others' in good faith is a bad idea.

In sandbox testing, Steinert often finds in previous developers' work inconsistent usage of tools and methodologies. Typically, Steinert writes in Ruby, and uses a standard set of tools and libraries; some are only used in development, others only in production.

"These days, a lot of developers are using third-party libraries or tools in some way as part of their development or codebase," Steinert said. "I find surprises or deal breakers in those third-party libraries." 

In some sandbox tests, a library Steinert expects to work in one way ends up having a large, negative performance impact. So, he must remove the library and find another option. At other times, "I've found a brilliant piece of code that inspires me to refactor something I've done."

What's in your sandbox?

A modern fact of life, the demand for rapid deployment of new applications and technologies, makes application sandboxing a necessary practice, according to these software engineers. Constant change in tools already in his toolbox leads Sypolt to refresh his know-how on one tool, while learning about a new-to-him complementary technology. A new project that requires streamlined development and deployment spurred Litt to sandbox Docker. Steinert turns to sandboxing to find, and not perpetuate, mistakes in iterative development.

So, developers, what's in your sandbox?

Editor's note: Additional reporting was done by Joel Shore.

Next Steps

Complicating app performance optimization

How software performance testing can be eased

The daily app performance testing work

Dig Deeper on Topics Archive