std::out << “Hello world.” << std::endl;

It’s been some time since I used the shift operator, but it’s an idiom so burned into my brain that it pops to the top of my mental stack when thinking about output. I cut my “professional teeth” developing very large CAD system in C and C++ and will always remain, to some degree, enslaved to the world view I developed at that time. Why does that matter?

Zapproved Engineering Blog

Zapproved CTO talks about delivering Serverless SaaS for e-Discovery with AWS Lambda and Microsoft .Net Core

Zapproved is a software as a service company providing single-instance, multi-tenant solutions to legal teams in large organizations around the world. We are entirely virtual, having almost no hardware resources other than the laptops I call our “windows to the internet”. Yes, we have local build and run capabilities, to some degree, but in reality we can’t run systems without an internet connection.

Our solutions are delivered over HTTPS, which at the core means instead of serializing data at the disk we face a serialization boundary in the middle of our applications. It’s not like writing monolithic CAD systems. Our systems are event-driven, stateless, and highly distributed. Again, a far cry from the shared-memory and mostly single-threaded world I started in.

And, unlike the years-long cycles needed to deliver new versions of those CAD systems, at Zapproved we improve and release our software often, without much pomp or circumstance. While Agile is just a word, it holds a broad meaning for us that encompasses how we approach work and change, and how we understand the needs of our customers. Responding quickly, with thought and care is core to our work.

The solutions we deliver include, among others:

Legal Hold Pro — The industry standard for easily communicating with custodians of evidence, at scale.
Data Collect Pro — How we enable preservation in place and intelligent collection of evidence.
Digital Discovery Pro — Our system for review and production of evidence with the shortest time to information the world has ever seen.

These solutions serve people working on tasks in the litigation space, and specifically in the maintenance and management of evidence. This feels like a good degree of focus to us. We could look for opportunities to apply our experience and expertise outside litigation, even outside legal, but for now this has our full attention. And that’s a good thing since we know the problems therein are important and substantial. We want to solve important problems, and we feel fortunate to have that opportunity.

What sets apart software created for these people, for their tasks, is the demand curve. Litigation is unpredictable and episodic. That is, predicting when litigation will arise and how large the scope will be is difficult. This isn’t like the demand curve for a social website that has a rhythm punctuated by mostly predictable events (for example, Black Friday or the Superbowl). We see demand that is for long periods low, but suddenly becomes massive — in too few seconds we can see terabytes of data to process, have gigabytes of email to send — and the value our customers enjoy is directly related to the speed at which we scale-up and deliver. This dynamic is a huge driving force behind the architectures we choose. But not the primary one.

Security is the number one concern for every Zapproved employee. We can’t talk much about what we do, but we will talk about our principles and other foundations that drive our day-to-day approach to delivering software.

Our technology stack is… complicated. We use Microsoft’s tooling and do much of our work in C# and Javascript. We’ve recently made a switch to AngularJS 2, which we’ll be writing about here soon. We also use a little Node.js as the preferred way to deliver Lambdas, so we only need to know Javascript, but now we’re looking at .NET Core to simplify further. We run some Java, and some native code. But none of the code, executables, libraries or functions would be useful without the AWS services that they bind together. Code is the glue that binds our resources into useful systems, so we do our best to keep it simple. The “magic” is in how we use the services AWS provides in ways, perhaps, outside the expected use cases.

This first post serves as Zapproved Engineering’s introduction, and sets a background for the topics to follow. As is common at Zapproved, this isn’t and won’t ever be the work of just one person. While I have the pleasure of writing this initial post, others with more specific expertise will follow, introduce themselves and the work they do. Hopefully, sharing a bit about who we are and what we do will help raise the tide and lift all boats.

aws sns publish –message “Enjoy!” –topic-arn “arn:aws:sns:us-west-2:443945602957:blog-intro-hello”

AUTHOR: Lee Harding, CTO, Zapproved

Lee has worked in software technology for more than 20 years and brings experience from Autodesk, Intel and Sunstone Circuits. He provides high-level technical guidance in opportunities ranging from analysis and remediation strategies for regulatory mandates to fine-grained decisions such as team tool selection. His technical experience is varied and includes e-commerce, corporate web presence and ECAD application development.