You've reached The Infinite Loop, a blog about programming, entrepreneurship and other interesting things.

  • Looking back at 2013

    2013 went by quickly, and what a year it has been. Three massive things that I want to reflect on for this year.

    1. Shippable goes from "cool idea" to $2M in funding in less than a year

    Avi and I started talking about building a continuous integration service somewhere in December of 2012. Since then, we've written and rewritten everything four times, slowly making progress towards a better product-market fit. We started out by using Jenkins as the core of our platform but we realized very soon that it wasn't going to let us innovate fast enough, at which point we built our own CI back end. That was a lot of fun to build.

    We got cross platform builds running using a solid distributed architecture that allowed us to run builds 3x faster than the competition. It was around this time that we got in to TechStars Seattle, which turned out to be a massive learning experience for all of us. They don't call it an accelerator for nothing -- the amount of stuff we got done in the three months at TechStars was phenomenal.

    Along the way, it became clear to us that Docker was going to change the way the world thinks about development, testing and deployment software. That's when we decided to start moving our own infrastructure to Docker. Today, our customers builds happen inside Docker containers and we're completely embracing an entire development workflow based around Docker. It's an exciting time to be a developer and I'm thrilled to be a part of this team.

    2. I've moved to developing full time in Javascript on NodeJS

    I love .NET. C# is, without a doubt, the best language that I've ever worked with, but I'm very worried about Windows. It's becoming painfully clear that there's almost no one other than Microsoft that's driving innovation on the Windows platform. All the cool toys seem to be on the other side of the fence and that makes me very sad. It's just disappointing that Microsoft, with all its abilities, has simply allowed the ecosystem to rot away.

    As a developer, it's hard to ignore all the awesomeness that's going on in the open source world. As much as I love C# and Visual Studio, there's something to be said about stuff like NodeJS, Python, Docker and Vim. Granted, some of those things can also be used on Windows, but the truth is Windows simply isn't a first class citizen of the open source world and all the interesting stuff happens on Linux first anyway.

    I've now learned to love my set up of tmux and Vim (+ plugins, of course). I'm not as productive as I used to be with Visual Studio yet, but it's not as scary as it seems and I'm getting a little better every day.

    3. Oh, and one more thing...

    Now this is going to come as a complete surprise to everyone because I've been really, really quiet about it so far. It isn't that I wanted to keep it quiet, but the truth is that this little project has kept me so busy for the past few weeks that I just haven't had the time to go announcing it to the world.

    Folks, meet Aradhya.

    Aradhya Krishna

    The bundle of awesomeness that's been keeping Niree and I busy since the 7th of December.

    I don't think the enormity of parenting has descended on me yet, but I do know this -- when I'm looking at her, time slows down, everything is alright with the world and it all makes sense.

    2014, here we come!

    Standing here at the cusp of another new year, I'm filled with hope, enthusiasm and excitement. 2013 was one hell of a ride and I'm sure 2014 will be filled with even more ups, downs and everything in between! Here's wishing everyone a fantastic new year filled with all the best that life has to offer. :)

  • Pro tip: Don't use a generic email address to promote your business

    How often do you see a proposal that goes like this:

    Hey there,

    At XYZ we do awesome stuff around something. Check us out at xyz.com!

    Thanks,
    xyz@gmail.com

    Really? It only takes 10 minutes to set up email on your own domain. If you really don't have the time to do that, then I'm not too sure I want to give you money to do things for me.

  • You really should

    Procrastination is the root of all laziness. It's easy to come up with a million reasons why you shouldn't do something.

    • Excercise? Too hard. Tomorrow, maybe.
    • Eat healthy? Just one more piece of cake.
    • Save money? Ooooh, XBox!
    • Start a company? Hmmm, maybe in a few years when I'm really "ready".

    So why should you do any of this right now? Simple. You have more time and energy to do these things today than you will have tomorrow.

    Let it sink in for a minute. Now go do something.

  • Asynchronous S3 file uploads with async/await

    The async/await pattern in C# really is awesome. Perhaps it is just syntactic sugar over the TPL, but it makes the code so much more beautiful and easier to read. Before async/await came around this would have been an ugly mess of BeginXXX/EndXXX. Instead, now we get to do this:

    var s3 = AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey);
    PutObjectRequest putRequest = new PutObjectRequest()
    {
        FilePath = "your-file.txt",
        Key = "whatever/you/want",
        BucketName = "your-bucket-name",
    };
    
    PutObjectResponse response = await Task
        .Factory
        .FromAsync<PutObjectRequest, PutObjectResponse>(s3.BeginPutObject, s3.EndPutObject, putRequest, null);
    

    That is so much easier on the eyes, and that's just the wrapper around the traditional BeginXXX/EndXXX calls that the Amazon SDK gives us. If you're using the newer stuff like HttpClient, it's just one line to async goodness:

    HttpResponseMessage response = await client.GetAsync("http://bing.com");
    
  • Plain-text passwords: Will it ever end?

    Sometimes you just have to wonder how long computer security professionals will have to keep screaming “Don’t store passwords in plain-text” before people take notice. Getting an email like this from MasterCard really freaks me out:

    MasterCard

    I wonder if they store PINs in plain-text, too. It’s just sad when a credit card company’s policies allow something like this to get pushed in to production.

  • Yes, SIM Cards Must Die

    I like this idea.

    ilyabirman.net

    The author thinks carriers won’t support it because it will prevent them from locking in customers. I think they should support it because it also prevents competitors from locking in customers.

    Read the original post at http://ilyabirman.net/meanwhile/2012/03/23/1/

  • Opening hours

    I really wonder why the Indian Railways, arguably one of the most active e-commerce sites in the country, needs to be offline for an hour every day.

    image

    Seriously!?

    I run a few web apps of my own and I’ve had only 50 minutes of downtime in an entire month. Yes, I know my app is nowhere near as complex as a railway reservation system. And yes, I know, those of you that are measuring up time in 5 nines are laughing at me, but give me a break – my services are in beta. Still, why does the IRCTC need an hour off every single day? Sure, as a customer, I’m somewhat inconvenienced, but as a developer I’m really curious as to what they’re doing in that hour.

  • Turn off the complication!

    Surely, we’d all be better off if we would just turn off “complications” in our system settings.

    image

  • Priority #1 for 2012: Exercise

    2011 has been a very interesting year for me. It’s the year I found out that my body is in far better shape than I give it credit for. The fact that I’ve done almost nothing to aid that over the last 30 years is, however, somewhat troubling. So, for 2012, I’ve decided that the biggest priority for me is to get more exercise.

    The funny thing about exercise is that you don’t really need to do a lot of it to start experiencing the benefits. And, you don’t really need to splurge on a gym, either. Just go take a walk. It really is that simple. If you’re getting absolutely no exercise right now, stepping up to nothing more than a brisk 30 minute walk every day will do wonders for your body. Assuming you’re already eating in a relatively healthy manner, a regular walk is all you really need to start burning off fat, increase your energy levels and generally feel better every day.

    Walking for half an hour isn’t difficult. What’s difficult is making it a habit. This video is what got me to finally turn this into a real priority for 2012. I hope it does the trick for you, too.

     

    23 and 1/2 hours: What is the single best thing we can do for our health?
  • Perspective

    When Windows 95 shipped, my primary machine was a 486/DX50 with 8MB of RAM. My test machine was a 386 with 4MB of RAM. The combined computing power and storage capacity of all the machines in my office is now exceeded by your cell phone.

    -- Raymond Chen, Microsoft.