There have been many times where I didn’t understand the need for service discovery products. Often services are discovered for you, either behind load balancers or using traditional DNS lookups. Why does one need a service discovery product?
Currently we are working on a machine learning and scientific computing product that spawns workers to fulfill requests. These workers were receiving their work through a queue, an AWS SQS queue. We had a situation where the initial connection to SQS was taking a very long time adding significant latency. That set us off on a path to optimize the heck out of SQS. Optimize, optimize, optimize! It got much better, but there was still tons of latency, especially on the initial connection.
Knowing that SQS is limited in how much we can optimize away, we started looking at alternatives. Unfortunately there is no really good alternative which is “cloud native”. There are products like RabbitMQ that can be setup to handle this, but then you are paying for multiple EC2 instances to be always running. When you architect for cloud one needs to architect for cost. We want our cake and the ability to eat it too. We only want to pay for what we use.
Problem mostly solved! We have a great solution that we are in the midst of testing which negates the use of SQS all together, This solution is based on service discovery which allows incoming requests to discover workers and dispatch work appropriately. All of this without the need for additional infrastructure.
Over the years I have held many roles, software engineer, lead developer, architect, and yes, consultant. I have worked for large companies, small companies, startups, and even my own companies. Recently I was faced with a decision to stay working at a company versus the excitement of going off and doing my own thing. I am exciting to say that I decided to be an independent consultant again. I made that decision 5 months ago. I have been very busy since then and it has been an amazing journey so far. I look forward to the many years to follow as I continue to build my brand and expertise.
Why am I excited to go off and do my own thing?
Gaining this experience is easy to do if you are someone like me that likes to learn new things. The drive to constantly learn always keeps me using the latest and greatest technologies. The passion for wanting to build great software is what fuels that drive to learn. This passion is what accelerated my career and got me opportunities early on. It is what got me jobs as a variety of startups, like Law Manager and Dash.com, and at large companies, like Microsoft and MITRE.
Shout out to Microsoft!
I would be remiss if I didn’t take the time to thank Microsoft. I owe them a lot. My 10 years at Microsoft has me as an Azure Insider, SQL Server Certified Master, Book Author with Addison Wesley, Magazine Author with Software Development Times, and much more. I have spoken at TechEd, Financial Services Developer Conference, Healthcare Developer Conference, Code Camps, and much more. Thank you Microsoft! I look forward to continuing to use your great products and foster Azure, SQL Server, and many other great tools and services you provide.
Looking forward to joining TopTal!
As a leader, entrepreneur, developer, engineer, architect and consultant, I look to work with others that share my interests and abilities. Others that I can contribute to, but also that can help me be better at what I do. I have heard nothing but good things about Toptal (www.toptal.com) from people in my network. They advertise that they represent top developers. Having accomplished a great number of achievements as a developer, I look forward to joining an elite group and share my talents with them and their customers. I am looking to join the Microsoft, Azure, AWS, and Web communities at Toptal. This is a natural fit for me since I work on cloud-based software, on both Azure and AWS, and Microsoft products and technologies on a regular basis.
Hold onto your hats! We have launched mill5. Stay tuned…
I have a serious concern with the EC2 Container Service. The way it is built facilitates use of infrastructure and not the use by applications. Just my opinion based on what I know so far.