Who are they?
Verisign, based in Reston, Virginia, USA, is one of the primary companies that make the Internet work. Among other things, they take care of many of the most important domain name registries -- they are not merely a registrar, (though they do that too), but the people the registrars depend on. They run the registries for .com, .net, .tv, .cc, .name, .jobs, .edu, and .gov, plus two of the thirteen global root name servers. They also provide DDOS protection, managed DNS, malware detection, and other defensive services. If you know much about the Internet, you know Verisign!
What did I do, when, where?
My initial task was to investigate the feasibility of migrating a Rails 4 app from using MySQL to Riak, a "NoSQL" database. That proved to be infeasible -- at least, for a complete migration, and a partial migration would not have served their purpose. So, I also investigated migrating it to NuoDB, a "NewSQL" database. That too proved infeasible -- at least, at this time, given the state of tools for using NuoDB with Rails.
During that time, the management decided that everything they built should have an API. (When you do things at their scale, the separate deployability that enables makes a lot of sense.) My mission then became to take this app and split it into an API half, and a UI half that would depend on it. I designed and implement a RESTful API, using a Rails server, tailored to the needs of the UI half, which a Verisign employee was to create (with help from me). The API was a typical straightforward REST type, plus a few twists (such as adding some endpoints that would delete some subparts en masse, and that "create" and "update" were combined into an "upsert"), with HATEOAS links in HAL style. I also updated the Python and Java tools that were using the existing non-RESTful API, and of course the tests, in RSpec and Cucumber. However, shortly after I had gotten the general concept working in two halves, they decided to abandon further development for the moment.
Sorry, I can't reveal much details of the app, but I can say that it was intended to be used as a platform on which others can build services. That plan has been abandoned, but Verisign is still considering building some of their own new services on it. As of now, it is running, but not accessible from outside Verisign, so you can't see the UI half nor explore the API.
On top of all that, I helped out on other projects, when someone needed some brief advice on Ruby, Rails, RSpec, Cucumber, etc., or general techniques of development or testing. Also, a friend of mine had been hired as a contractor in another department (he went permanent soon thereafter), and I helped him teach our colleagues Ruby, pair programming, and TDD (test-driven development). We had great fun demonstrating "smart-@$$ ping-pong pair programming". ;-)
I worked there from June 2013 to February 2014 (six month initial contract plus three month extension), in The Hive (their tiny elite R&D Innovation Lab group in Reston, VA), via Celerity IT. I was mostly onsite, which I didn't mind because the commute was reasonable -- and I liked the offerings at the subsidized cafeteria, and the restaurants of Reston Town Center. ;-) After a while, they allowed me to work remote when I liked, which wound up being about 40%.
What did they say?
What did I use?
A sampling of the technologies, techniques, tools, etc. I remember using there:
- Ruby on Rails 3.2 and 4.0 (with Ruby 1.9 and 2.0)
- Riak, NuoDB, and MySQL databases
- RSpec and Cucumber for testing
- initially a company-private Github account, and later a company-run installation, for source control
- Occasional bits of Backbone, Lua, Erlang, Python, and Java.
- Jenkins for CI (Continuous Integration)
- TDD (Test Driven Development) or BDD (Behavior Driven Development), for everything
- I forget what we used for issue tracking; I think it was JIRA, possibly Pivotal Tracker