Jason Haley

Ramblings from an Independent Consultant

Boston Code Camp 26

Yesterday was Boston Code Camp 26.  I presented Cloud Services vs. Web Apps for the first time.  The slides can be found here: https://jhaleyfiles2016.blob.core.windows.net/public/CloudServicesVsWebApps.pptx

If anyone who attended my talk has any feedback, I’d love to hear from you. 

It was nice to see old friends and meet some new ones yesterday.  I only made it to one talk: The Power of Networking by Betsy Weber (@betsyweber).  There were many other talks that I would have gone to, however I found it more enjoyable to catch up with the group of friends I only tend to see at Code Camps and Dev Camps.

I will be presenting a more detailed and demo oriented talk comparing Cloud Services and Web Apps at the North Boston Azure Cloud User Group Nov 29th, in case anyone missed my talk yesterday or wants more detail.

November 2016 Update on Azure Cloud Certification Studying

I have completed and passed the 70-532 Developing Microsoft Azure Solutions and 70-533 Implementing Microsoft Azure Infrastructure Solutions.  I am currently studying for the 70-534 Architecting Microsoft Azure Solutions exam … even though the MCSD Azure Solutions Architect certification has been sunset.  I figure I already bought the study guide and I seem to be familiar with most of the higher level material for the exam thanks to all the research I did prior to my Azure 101 talk in June.

Since July, I’ve noticed that I am more likely to write PowerShell scripts to do repetitive tasks in Azure (instead of going to the portal and doing the same thing over and over in the UI).  Last week, I even wrote some scripts for a VSTS build that solved the need to start/stop a web app before deploy and add/remove an NSG rule to a VNET for the build sever before and after deployment.  It is really nice to know that most of the stuff in the Azure portal is scriptable and that it doesn’t take long to create the scripts (once you get familiar with it).  I have to honestly say - before studying for these exams, Azure PowerShell scripts were always on my “things to learn next list” but taking the time to learn how to script things I could do in the portal UI just never made it to the top of the list.

Here are the steps I’ve taken to pass the 70-532 and 70-533 exams:

  • Use Azure on a daily basis
  • Read the study guides from cover to cover
  • Watch any videos I can on related material
  • Read through the Azure documentation to get more detail than is in the study guide
  • Purchase the practice exam – you get 30 days the practice questions as much as you want
  • Purchase the proctored exam after I’m done with the study guide
  • Take the practice exam no more than 2 weeks from your exam like it is the real exam
    • Get over the fact that you didn’t pass it
  • Take the practice exam and view the answers as many times as possible before the exam – and really search the web for the topic questions you don’t know and learn more about them
    • Do not waste your time memorizing the practice questions and answers – they are not on the exam.  Instead use the practice exam to get used to the exam format and topics and broaden your knowledge more
    • Learn to rule out the answers that are not correct – as fast as you can
    • With case studies – read the questions first, then you can read the case study and pay attention to the pieces you need to know
  • Take the exam

In the middle of both exams, I was certain there was no way I would pass … but I did pass them both on the first try – so keep your spirits up as you take the exam because it may not be as bad as it seems.

Update on Azure Cloud Certification Studying

I can’t believe it is now June and I have not taken any of the exams yet.  Very Disappointing.  Time to get back on the wagon.

The first 6 weeks of this year were great for my studying, then I fell off the wagon.  Life happened, I got busy with work, then with other Azure topics for things like the Global Azure Bootcamp and various other talks that I’ve given this year … and I lost my focus on the exams.

The past two weeks I watched about 18 hours of Build 2016 videos in preparation for my Azure 101 talk.  There are so many good Build talks that I haven’t even watched yet … but I need to stop and get back to the exams.

In the next month, I plan on taking 70-532.  I’m using Dan Stolts blog for studying advice: Azure Cloud Certification Jump Start 70-532, 70-533, 70-534 Exam Preparation

Oh, I’m also starting North Boston Azure Cloud User Group for people interested in Azure but find it hard to make it into Cambridge to the Boston Azure Cloud User Group

I’m still looking for a host for the user group until Microsoft moves to Burlington this fall – if you are a company in the Burlington MA area are interested in hosting us until October please contact me!

Talk: Practical WebJobs SDK and Extensions

Thursday night I presented at the Boston Azure user group.  My talk was “Practical WebJobs SDK and Extensions” to a mixed group of people with Azure and WebJobs experience and some who didn’t have any experience with Azure yet.

My deck is here: Practical WebJobs SDK and Extensions.pptx

My demo script is here: Practical WebJobs SDK and Extensions – Demo Script.pdf

The zip of all prepped demos and the live demo folder (the one we created in the talk) are her: Demos.zip

The Cheat Sheet that I referred is here: Azure WebJobs SDK Cheat Sheet 2014.pdf

Boston Azure Bootcamp 2016

This year for the Azure Bootcamp I presented Azure WebJobs and Websites.  We spent more time on the WebJobs topic and hands on lab than we did with the web sites lab.  The websites talk was the last of the day … and its really hard to get people to do a hands on lab late on a Saturday after being there all day.

For anyone who is interested in my material (presentations, hands on labs and code) – it is all in the https://github.com/JasonHaley/BostonAzureBootcamp2016Material github repository.

I really tried to focus on some real world useful topics with the Webjobs HOL … and of course, I’ve been recommending it to people I’ve been working with that are just learning what they can do with WebJobs.

The WebJob HOL (and the included code) includes the following sections:

  1. Create a Console Application project for the WebJob functionality
  2. Setup a storage account to use with the WebJob
  3. Add a function to the WebJob to watch a queue for Orders and then save to Blob storage
  4. Add a test function to verify the queue and blob logic works
  5. Modify the logic to use a custom NameResolver
  6. Modify the logic to use a custom trace writer
  7. Add functionality to save the Products to a storage table
  8. Add functionality to send an email once the order is processed
  9. Add a function to handle poison messages on the Orders queue to send out an email
  10. Add a function that emails when a certain number of error have happened
  11. Deploy the WebJob to Azure

If anyone uses it and has any suggestions or feedback, please let me know.

DevBoston–WebJobs In Depth

The powerpoint presentation for Thursday night’s presentation can be found here: DevBoston-AzureWebJobs.pptx

Here is the Producer-Consumer demo code.  I’m still surprised that it takes so little code to do this:

using Microsoft.Azure.WebJobs;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ProducerConsumer
    class Program
        static void Main(string[] args)
            var config = new JobHostConfiguration();


            var host = new JobHost(config);

    public static class Functions
        public static int counter = 0;

	// Create a new message on the "orders" queue every 10 seconds
        public static void Producer(
            [TimerTrigger("00:00:10", RunOnStartup=true)] TimerInfo timer,
            [Queue("orders")] out string messageCount,
            TextWriter log)
            messageCount = "message" + counter++;

            log.WriteLine("messsage: " + messageCount);

	// Watch the "orders" queue for messages, and when one is found save it to blob storage
        public static void Consumer(
            [QueueTrigger("orders")] string message,
            [Blob("orders/order.txt")] out string order,
            TextWriter log)
            order = message;

            log.WriteLine("Received " + message);

Boston Code Camp 25 Notes and Resources

Yesterday I gave two presentations at Boston Code Camp 25, here are some notes and resources from my talks.

6+ Years After Going Independent (https://www.bostoncodecamp.com/CC25/Sessions/Details/16336)

This is always a fun talk for me to give – and a real easy one to prepare for.  Yesterday’s audience was the biggest I’ve had so far at a code camp for this talk.  

Here’s the 10 points I covered in the talk:

  1. First a word about FTE vs. being Independent
  2. Know how much you need to make a month to pay your bills
  3. Have 3 – 6 months living expenses in savings always
  4. Setup a business entity LLC, S-Corp or C-Corp
    1. ~$500 a year for LLC in MA
  5. Get a commercial bank account for the business
    1. Checking
    2. Credit Card
    3. Always use business account for business purposes
    4. Stay Organized (Quicken or Quickbooks)
  6. Get an accountant
  7. Get a lawyer
    1. Contract
    2. NDA
  8. Build a brand
  9. Consultant vs. Contractor
  10. Finding work
    1. Build your expertise
    2. Network
    3. Repeat

The power point can be found here: GoingIndependent6.pptx

WebJobs in Depth (https://www.bostoncodecamp.com/CC25/Sessions/Details/16335)

This presentation was much better than trying to split an hour on both Web Sites and Web Jobs.  However I did not get a chance to practice the whole talk a couple of times like I really wanted to.

I did get to present at least 4 ways of deploying web jobs and got to show simple demos of triggers from both the Web Jobs SDK and the Web Jobs SDK Extensions.

This Thursday I’ll be able to extend this talk more for DevBoston (http://www.meetup.com/DevBoston/events/229688772/)

The power point can be found here: AzureWebJobs.pptx

Geek Dinner Feb 16, 2016 - 6:30pm - 8:30pm Boston Beer Works, Canal Street

Are you up for a Geek dinner Tuesday 16th of February from 6:30 – 8:30 or so?

Unless something is going on we’ll be upstairs by the pool tables in Boston Beer Works on Canal Street (1 block from North Station/TD Garden) like usual. 

I’ll post any last minute changes on the twitter feeds: @haleyjason and @BostonGeekDinne (couldn’t fit the r didn’t know about the 15 char limit).

Studying for the Azure Solutions Architect Certification

One of my professional goals this year is to get the Azure Solutions Architect Certification.  I’ve been using Azure for a long time (since before the silverlight portal) and now I figure it is time to have Microsoft certify that I know something … besides that I want to follow the study guides to explore some of the parts that I don’t have so much experience with (like networking and some usages of the virtual machines).

This month (January) I started studying for the 70-532 Developing Microsoft Azure Solutions exam.  So far I am on schedule to take the exam either the 3rd or 4th week of February.

I have collected quite a few links for study material – which I plan on aggregating into a blog post soon.

First I am focusing on the material covered in the exam – but I know I am going to need to start brushing up on my exam taking skills soon too.

Anyone else out there also studying for these exams this year?