It’s an honor and a privilege to have helped 2.6 million developers and earned over 25K points on Stack Overflow. For those who don’t know, Stack Overflow is a Q&A site similar to Quora and Reddit that is essential to life as a software engineer. Most of us turn to it at least once a day to see if anyone else has tackled the same problems, and far more often than not, someone has.
Vidya is proud to have worked on the development of Recreation.gov, a site built for the United States government using leading-edge technologies and practices to make it easier to visit the nation’s most beautiful landmarks and national parks including the Grand Canyon and Mount Whitney. Often called the “Airbnb for Camping,” Rec.gov (as it is colloquially known) allows users to reserve permits to visit and/or stay overnight at federal lands, waterways, and monuments.
If you are a software engineer or run software projects, code coverage is probably very important to you. It’s intuitive. Of course more tests produce better software! It’s easy to calculate. Tools, automation, and stunning charts to impress the people who pay for the occasional pizza are all readily available. The problem is code coverage is killing you. Don’t get me wrong. You deserve credit for your agile commitment to quality and your investment in continuous integration and continuous delivery.
Have you found that your code has a lot of bugs even though you’ve invested in maintaining 90% code coverage? Have you also found that your tests break so often that you don’t want to write any more? I have. With multiple clients. Part of the problem is code coverage is a misleading indicator of quality. Even worse, you are writing tests that don’t test anything except the implementation details of your code.
Functional programming isn’t exactly a fun topic anywhere outside of technical conferences and The Big Bang Theory. Even software engineers who love code often tune out when they hear terms like monad and referential transparency. But if you are a technical manager or executive, heads up. Functional programming will limit your technical debt so you build better software faster than you imagined and will earn you the Tesla you always wanted.
If you are a software engineer, you’ve probably been in a job interview where you were asked, “Have you ever used [Insert some awesome technology you may have heard of but certainly never used professionally here]?” You hear the question, and inside you’re basically like “Uh ohhh.” Your mind races for a reasonable response that won’t kill your chances. The best you can come up with is some sheepish variation on these:
Please take a look at my latest column for Government Computing News where I describe how you can program security into your applications from the start and avoid the guaranteed epic fail if you try to bolt security onto your applications later on. Just to give you an idea, here is the unedited introduction. IT security has recently gotten a lot of attention in the mainstream press for all the wrong reasons–like the Target hack that compromised millions of credit card numbers or the Heartbleed bug in OpenSSL that had everyone scrambling.
Vidya is proud to be working with Neustar, a leading telecommunications and cloud platform company. You may not realize it, but every phone call, fax, and computer connection in North America depends on Neustar. Why? In 1998, Neustar saved the 10-digit telephone number system from becoming a 14-digit system with a solution mandated by the FCC, so every telephone company in North America has a physical interface into Neustar’s directory system.
As someone who spends a lot of time thinking about technology and software project management (and the possibility of a Ghostbusters sequel but that’s beside the point), I have been really frustrated by the poor quality of reporting by the media on the failures of HealthCare.gov. The flawed coverage has shifted from the enormous functionality and scalability problems to the blame game–contractors, government officials, the federal contracting process, waterfall software development, and now apparently, agile software development as well.