Jason Haley

Ramblings from an Independent Consultant

Talk: Securing Your Web Application in Azure with a WAF

Last night I spoke at the Boston Azure User Group. The slides are available here: Securing Your Web Application in Azure with a WAF

As I mentioned last night, this is the first edition of the talk, I plan on giving it to my user group next month (October) and again at the Boston Code Camp in November – so if you have any feedback please let me know I’d love to improve the content.

I want to work more demos into the presentation next time … and of course get them all to work (1 demo didn’t work last night).

Here are some of the useful links mentioned last night:

Next time for the demos I’m going to look at using the OWASP Juice Shop webapp

Ways to get involved in the local tech community (5 of 5)

Help grow the community

The local tech community is made of the people in it and the value they provide for each other.  The community isn’t just user group leaders, speakers and volunteers.  In fact, the majority of the community are individuals trying to learn, teach, socialize and help others.

With that in mind, here are some ways for you to help grow and make the community stronger (ie. more valuable) for everyone.

Attend User Groups and Be Part of the Group

I think it is obvious, but by attending user groups you have a chance to personally interact with others in the community. 
Most groups have some networking/socializing time before or after the main event.  Use this time to talk to at least one new person you don’t know.  If you already know everyone there then maybe you could bring someone with you next time and introduce them.  The idea is the more people know each other in the community the more value everyone gets from it.

Once the main presentation starts, ask questions, be present.  Often times, if you have a question – chances are someone else would also like to know … so go ahead and ask.  The more interactive the group is the more value people will get from it.  Sometimes the small tangent a speaker takes to answer a question is the most valuable part of the talk.

Provide Feedback to Leaders and Speakers

For any event or presentation, I think everyone can provide value by providing honest feedback on the event.  For the leaders/organizers it will help with planning future events.  For speakers, honest feedback is always hard to come by and I don’t know a single speaker who wouldn’t like to get some feedback on their presentation.
If you don’t feel comfortable giving feedback, try suggesting topics or speakers for future events that you would be interested in.

Continue the Conversation

Once a user group meeting is over, you can still carry on the conversation.  Meetup.com provides the ability to add comments to the event, you can also use social media (like twitter, Instagram, etc.) or event write a blog post to keep the conversation about an event going.

Help Spread the Word

Growing a community takes time and effort.  The more people that can help spread the word about the group, the bigger the pool of possible attendees … and the bigger the community.
Personally, I use twitter a lot for ‘spreading the word’ – though I have my doubts on how effective this really is.  Another thing I do is email people and mention groups, topics and people to them.  This helps me spread the word to some people who may not be in the know but may be interested.

Ways to get involved in the local tech community (4 of 5)

Start your own user group

If you want to become a leader in the local tech community, the best way is to start your own group and help actively grow the local community.  There are many challenges you’ll need to face to start a group, but if you really want to be a leader – you will need to take on those challenges and make it happen.  I would say at half of running a group requires a skillset similar to event planning and the other half is constantly communicating with the community in order to get speakers and get people interested in attending the group. 

If you are new to what it takes to create a group, you’ll notice there is an order to the items below and some have a (suggested) time along with them. These are the things I find useful, results may vary.

Pick a topic

The very first thing you should do is come up with a topic the group should focus on.  The broader the topic, the more flexibility you will have when it comes to finding speakers.

Last year, I started an Azure user group to meet north of Boston.  I’d been attending Bill Wilder’s Azure group that meets downtown Boston for years (Boston Azure Cloud User Group) but I sometimes find it hard to make it into the city in the evenings to attend … which got me thinking that I was probably not the only person that would like to have an Azure user group meeting that was north of Boston. 

The point being – I picked Azure as the topic even though there was already an Azure user group downtown Boston, I guessed there would be enough people in the tech community north of Boston to grow a new Azure user group without cannibalizing the membership from Bill’s group.

Get a plan for the group communications

Once you have a topic for a group you want to get started – the next thing you will need is a way to communicate about the group’s events.  When it comes to social media, different people use different services … which means the more you can utilize to get your group communications out the more people will find your group.

  • meetup.com – I suggest starting a meetup.com account (I know an account is not cheap – but meetup really does help people find your group)
  • website – In the past, I’ve always gotten the group’s domain name and created a website – but at the moment I’ve just stuck with using meetup.com.  The website may work for you, but I still haven’t set one up for my new group.
  • twitter account – I use twitter to get the word out. I have a twitter account for the group but I also use my own account to broadcast news about the group’s events.
  • facebook – some people setup facebook sites for groups.  I don’t currently have one for my group, but it may work for yours.
  • github – github can be a good location to publish meeting files and provide another channel for people to discover your group
  • slack – some groups also use slack.  Slack provides a nice way to have conversations outside of the actual event … which can really add value to the community

Find a location

One of the biggest challenges for holding a group can be finding the location to hold it. 

If you work for a company that has meeting space that would be a good spot to hold your group – I would recommend asking your employer if you could hold the group at your company.

If you don’t work for a large company or maybe don’t work in the city you want to hold the meeting (for instance I live about 20 minutes away from where I hold my group due to more technology companies being in the Burlington area than the Salem area), I would suggest the following:

  • If your group is related to Microsoft technologies – and there is an office in the location you want to hold the group – I’d check there first.  In my experience, Microsoft is one of the companies in the Boston area that are the friendliest to user groups.
  • If your group is related to another company’s technology – check with their local office
  • If your group is general and you just need to find a location – look where other user groups in the area are meeting and see if one of those would work for you
  • Other options are: universities (though they may require insurance), shared office spaces (like WeWork), consulting firms that may be related to the technology. 

Warning – some people will charge your money for using their space.

Find sponsors

Unless you have corporate sponsorship or are independently wealthy, it is good to have some sponsors to help pick up the tab for things like pizza and soda. 

Find help

Unless you know people who already interested in helping you with the group, finding additional help may at first be a family and friends sort of help.  Once the group gets going, you will more likely find people to help you with the group.

Within 4 weeks of the first meeting

Once you pick a date for the first meeting, there are a few things you will need to do.

Find a speaker

You’ll need to find a speaker for the meeting … this of course could be you or some other expert that you know in the community.  If you want the group to start off with a bang, I would suggest getting someone who is already known in the local community to speak at the first meeting and ask them to help you get the word out about the event.

Reserve the room

Make sure you have a room big enough and ask for it to be setup in a manner that will work for your group. 

For example: round tables are NOT a good setup if there is going to be a person presenting in the front of the room.  Class room setup (with tables) is often the best for technology related user groups.

Don’t for get AV needs make sure there will be some sort of a podium or seat in front of the room for your presenter and a projector.  Sometimes an audio mic is good too – especially if sound doesn’t travel in the facility.

Get the word out about your group and the upcoming meeting

Use your communication channels to spread the word about the event and get people interested in attending.

Within 2 weeks of the first meeting

At the point of 2 weeks from the event - to save your sanity – it is best to do a status check in order to make sure things are going as planned.

Check in with speaker

Make sure there will still be a speaker there and see if there are any special needs that should be prepared for

Check in with facilities

Verify you still have the room reserved.  Things get messed up all the time, you want to know a couple of weeks out if you need to reschedule – you don’t want to show up to a locked building the night of your event.

Get the word out about your group and the upcoming meeting (repeat as needed)

Use your communication channels to spread the word about the event and get people interested in attending.

Within 24 hours of the first meeting

Now the day is finally here, you need a check list to make sure the event goes well.  Here are a few things, I’m sure you’ll find others.

Get a reminder communication out

Remind people of the event and to update their RSVPs so you will have an idea of how many to prepare for

Order food and drinks ahead of time

I typically order food around 1pm for a 6pm meeting, this helps the pizza place fit my order in and not have to hurry.

Don’t forget plates, cups, napkins, etc.when it comes to getting food for groups, it is easy to focus on ordering the food – but don’t forget the other things needed to eat that food!

North Boston Azure Cloud User Group–August 29

Last night was the NBA group in Burlington.  We had a great turn out!

The main event was: Bill Pratt: Application Insights can be Your Best Friend

Last night was the first meeting that I tried a new format of having a shorter talk before the main talk (like Bill Wilder does for the Boston Azure Cloud User Group).

For the opening talk I did a walk through of Azure Tips and Tricks – (all inspired by Michael Crump) - He came up with the tips, I just did the live demoing and added a little color to it Smile

Here are the tips and links to his blog entries that I covered:

For Bill’s talk, we had a lot of interaction and questions – which is always nice to see.  We also have some positive feedback in the comments on the meetup site about the event.

On another note

It is hard to believe the group will be one year old next month.  I skipped December (due to meeting on the last Tuesday of the month) but have more than made up for it with other events and double meeting months – a total of 14 events since September 2016.

The membership is now up to 369 which is hard to believe … seems like it was just hitting the 200 number a few months ago.

Nice to see the user group community growing well at the Microsoft Burlington office.

Ways to get involved in the local tech community (3 of 5)

Volunteer to help organize a user group

It may not seem like it, but a lot of effort goes into organizing a regularly reoccurring user group.  The more people that effort can be spread across the less effort it is for everyone involved.
Once you find a user group you like and want to get to know the organizers better and really become part of the group – offer your assistance.  Here are some ideas on the sorts of things that need to happen for every meeting – if one of the items sticks out to you as something you could help with– talk with your user group organizers and see if you can help.  For most user groups there could be a person in charge of each of the following items – (though the room reservation and finding of speakers is a chicken and egg problem that you’ll have to deal with).

Room Reservations

The key to holding a group is to have a sponsor for the location that can be used for events every month.  If you are lucky enough to find a corporate sponsor (like Microsoft) that allows you to hold meetings on a regular basis, realize you still have to work with their schedule (especially if you are not paying them anything).  This means reserving a room often needs to be done ahead of time so you can get a speaker on the day you have a room reservation. 

Finding Speakers

Consistently finding enough qualified speakers who are willing to travel to your group’s location and present on the date you have a reserved room – can be challenging.  It is like a marathon – you have to pace yourself and constantly be checking in with people for their interest and availability so you can fill the schedule.  It has taken me years to figure this out.  The more focused the user group, the harder it can be to find a wide range of speakers in your area to convince to speak. 


Once a room is reserved and a speaker is lined up, you need to get the word out to get people to attend.  I may be dating myself here, but back when I was organizing the Beantown.Net user group, there was no meetup.com – so the group was mostly attended by “regulars” who knew the group consistently met on the first Thursday of the month downtown Boston at the regular place and time.  This also meant that people would be there no matter what the topic or speaker was that night (and that getting new people there was very difficult to achieve).
However, times have changed.  People tend to topic shop now – meetup.com allows people to lookup what is going on in their area and choose what they would like to go to any night of the week.  This is why communications is important.  Someone needs to keep meetup.com up to date and spread the word any way possible to get people aware of the group and the next meeting’s topic and date.

Finding Sponsors

Money is needed to pay for food and drink as well as any giveaways you would like to have at your event. 
There are many local companies that may be willing to donate some money for the food and drink – but you will need to ask them to find out … they usually do not come to you and offer to give you free money.

Catering (food and drinks)

User groups that meet after work hours are a better experience if you offer food and drink (ie. soda, water, etc).  Keep in mind people have dietary restrictions – though unless you ask ahead of time, this can be hard to get good at.  For example, I tend to order pizza for my user groups and I split the order between pizza with meat and pizza without meat.  In order to get more specific than that on dietary restrictions I need to know the attendees who are coming … or ask them ahead of time.
For each meeting, someone has to order the pizza and pay for it (and possibly pick it up – or at least schedule the delivery).
Also keep in mind – if you have special relations with local restaurants and can get a better deal – that can be a huge help for both sides of the equation (ie. pizza store on a slow week night AND user group getting a special deal not otherwise available).

Ways to get involved in the local tech community (2 of 5)

Volunteer to speak at a user group

User group leaders are always looking for speakers. The more often a user group meets, the more speakers the organizer needs to line up.  For instance, I organize two user groups (North Boston Azure and DevBoston) which means in order to meet monthly – I need to find 24 speakers a year … that isn’t easy to do – and that also doesn’t capture day long events we do during the year too where we need multiple speakers for that single day workshop.  Keep in mind, the more narrow focus/specialized the user group is – the harder it is to find qualified presentations (like my Azure user group … there are only so many people presenting Azure topics in the New England area).

Pick your topic and write an abstract

Related to last week’s post on Attending a user group – I suggest you pick a topic related to where you want to take your career (and are really interested in) … even if that isn’t what you do day-to-day (yet).

Once you pick a topic, you need to come up with an abstract to submit to the user group organizer.  I suggest working backwards and coming up with a rough outline of what you think would make a good presentation and fill in the details as much as you can.  Then come up with a summary that captures what you have outlined.  It may help to look at some other meetup descriptions or events like VS Live session abstracts to get a good sense of how good abstracts are written … it is an art form and takes practice and effort to write a good one. 

Submit your topic to a user group

Hopefully you’ll have an idea of user groups in your area that your talk would fit with – if not see last week’s post about attending a user group.  Depending on how the meetup.com site is configured for the meetup/user group you should be able to contact the organizer and/or suggest your topic on the website … however I would not suggest using meetup.com for this. 

I suggest you personally contact the organizer - just like finding jobs, submitting a resume through a website may go into a black hole and never get looked at … the same thing happens when submitting a talk through meetup.com.

Once you’ve attended the user group you want to present at, make sure you introduce yourself to the organizer and let them know you are wanting to do a talk – and get their contact information.  Once you’ve successfully introduced yourself to the organizer in person, you can then email them your abstract.

Then wait for the thumbs up or thumbs down.  If your talk isn’t accepted, don’t be discouraged.  You can either ask the organizer if later in the year would be better or at least get an idea of why it wasn’t accepted.  If it is a hard no, then find another group to submit it to or try a local code camp.

Create the presentation

Once your talk has been accepted - find out date and length of time you will have to present. If you are not used to putting presentations together you may need a little more time to prepare – keep this in mind when submitting your talk and committing to a date.  There is plenty of material on the internet about putting a presentation together – so I’ll leave this step to you … besides I’m not an expert and can always use help on putting presentations together too.

Practice, Practice, Practice

Once you have the presentation prepared (or at least drafted), practice it – and time it.  if the thought of presenting makes you nervous – realize you are not alone … and keep practicing.  I used to be really nervous in front of a crowd but have mostly overcome that with years of presenting to groups.  Here is the strategy that has worked for me:

  1. put the slides together into the flow you think will be a good presentation
  2. practice it – don’t memorize it or read the bullet points – talk to the bullet points.  If it is too long trim some slides or bullet points. Maybe rearrange the slides if you think the flow would be better.
  3. practice it again using slightly different terminology and different ways to explain things – again don’t memorize it
  4. practice it again and using yet slightly different terminology and ways to explain things

At this point you have practiced it three times and should have a general idea of how much time it takes to present it … however the biggest advantage of this approach is you have now described the slides in three different ways – so when you are nervous and have some problems during the presentation there is a really good chance you will remember at least one of the ways you described the slide in the practice sessions. 

This approach has worked well for me over the years.  The first time I gave a presentation at a code camp, I had practiced it 7 times and knew the material and timing so well it was really easy to present it even though I was still really nervous.

Ways to get involved in the local tech community (1 of 5)

Attend a user group

For you readers who have already attended user groups, this is a no brainer.  You know this … but when was the last time you attended a user group?

For those of you who don’t know - user groups (or meetups as they are often called these days) is a type of club (or organized meeting) focused on a specific technology topic.  Usually meeting on a monthly basis. 

If you live near a large metropolitan area, your easiest way to find a user group (or meetup) is to go to https://www.meetup.com/ and search for a topic you are interested in.  If meetup.com doesn’t have groups near you (or you are not near a large metropolitan area) it is going to be harder to find these groups.

If meetup.com works for you, then register for an account and rsvp to the user group you wish to attend and then GO TO IT!

Once you find a group to attend, here is what you might expect:

  • other people who are interested in the topic of the evening and/or regular attendees of the group
  • food is often provided - but not always so if you will be showing up hungry make sure you verify there will be food there (otherwise being hungry the whole meeting won’t be a good experience for you)
  • a networking period (usually before or after the main talk)
  • a main event – sometimes a small intro or short presentation happens before a longer topic specific presentation
  • going out for drinks afterwards (sometimes)

Why attend a user group?

If you want to grow personally, grow your network and help grow your career, I suggest attending user groups that are related to where you want to take your career – even if that isn’t where you are in your day-to-day career yet.

Example: I like Microsoft Azure – so I attend Azure User Groups (there are 2 of them in the Boston Area - Boston Azure and North Boston Azure).  A lot of people at these Azure user groups are passionate about learning Azure but just don’t get to use it at work yet.

Other common reasons to attend a user group:

  • If you are looking for a job – often times hiring managers and sometimes recruiters attend user groups
  • If you are looking to hire – people who attend user groups show a level of commitment their career simply by giving up a weeknight to attend
  • New to an area and want to meet other professionals – with meetup.com you can now locate groups of people who are interested in the same things you are
  • Get to know more people in your industry – it is nice to go to meetings where you know people and sometimes get to meet big name rock star speakers

For me, user groups is where the local tech community starts, whether you are new to an area, starting a new career, looking to learn something new or a seasoned professional wanting to broaden their span of influence.

Career Update: Running 100 miles a month and still not losing weight

This entry is a personal/career update mostly mid-year reflections about how I’m hitting some goals but not able to reach other goals.

For those of you who know me, you know I’m a runner and usually run two races a year (half or full marathons). This is because I have a life goal of running either a half or full marathon in all 50 states – I’m now up to 10 states.  I also organize two user groups in the Boston area (DevBoston and North Boston Azure) and speak at several other groups in the New England area.

Reflecting on some of my accomplishments and failures this year:


  • I am averaging over 100 miles a month in mileage (goal achieved)
  • I ran a half marathon in Montana in July and beat my best time for a half by 6 minutes (goal achieved)
  • Have not lost any weight around my mid-section this year (fail)


  • Passed the third Azure exam 70-534 to get my MSCE: Cloud Platform and Infrastructure certification (goal achieved)
  • Became a Microsoft Azure MVP for my community efforts in the past year (goal achieved)
  • Have not blogged (fail)
  • Have not worked on my list of open source projects like I wanted (fail)

Thoughts on why I can hit some goals but not others

Running is easy.  I can make myself go out for a five mile run – it is just a habit and I enjoy it.  This means the miles add up quickly and the 100 mile mark is not a hard goal to hit for a month. 

However, controlling my diet is hard.  I know if I don’t do non-aerobic exercise or control my diet, I simply don’t lose weight.  If I add resistance training and/or eat better dinners and no snacks – then I do lose weight.  I know this.  I know what I need to do.  I am simply not doing it.

I love learning.  Learning more about Azure and playing around it is easy and I enjoy it.  When studying for exams, I have a list of topics to learn and can make myself do it.  This means as long as I stick to learning the topics the exam covers, it is not hard to pass the exams. 

I also like organizing and speaking at user groups and community events.  I’m not great at it, but I can make myself do it.  I am working on improving – but that is a blog post for another day.

However, blogging and consistently working on my open source projects is hard.  Hard in the sense that it is not a habit I currently have … and I can come up with many reasons to stay in the “thinking” and “planning” phases … which will never deliver anything.

Today is Tuesday August 1, 2017.  Today I am starting to take the next steps in reaching more of my goals that require me to change what I do and create new habits. 

NOTE: this entry is a bit rough … actually it just isn’t written well at all.  However, I will improve the more I write – and today it is more important to put it out there than to get it right – no more putting it off.

Talk: WebApps and WebJobs

Last month (December 14, 2016) I presented at the Western Mass Development Technology User Group.  The group meets in Agawam, MA about two hours west of Salem, MA – if you are in the area you should check out their meetup site: https://www.meetup.com/Western-Mass-Development-Technology-Users-Group/

I was a fun time and a great group of people interested in learning more about Azure. 

I split the time between WebApps and WebJobs and tried not to make too many comparisons with Cloud Services (since only one person was familiar with them).  We spent most of the time in either the Azure portal or in Visual Studio, but for anyone interested my power point presentation files can be downloaded from this link: https://jhaleyfiles2016.blob.core.windows.net/public/Western%20Mass%20Dev%20Tech.zip