While I was mingling at the Desert Code Camp after party, I was talking to a long time attendee, Liz. Liz makes the drive up from Tucson every year to attend the event. Liz and I were chatting for a bit when she told me how much she loved Desert Code Camp and how much she has learned from it. She also told me a few tips and tricks that she learned over the years to be about to handle all of the learning that happens. She was kind enough to share this with me so I will share it with you.
I learned some things about how to benefit myself best from DCC through the years. I used to go to all the sessions of which I knew nothing about and try to get some basic understanding. As it turned out, I usually felt a bit defeated because it was a lot more complicated than I anticipated, and required more fundamental understanding and skills than I had. The day, although enjoyable, would be highly arduous cognitively speaking. I would be very tired at the end and had a hard time even paying attention. This year, I finally did it right. I previewed the web site as often as time would allow and took notes on technologies listed. I perused them and let my mind wander to how I could use this and what I would want to learn from this. I began an interactive relationship with the subject before the actual camp. I picked sessions of which I had at least a little bit of understanding initially or picked sessions with which I could do a little bit of research beforehand to prime my brain. I also know that after the wonderful traditional pizza and pasta lunch, I get a bit sleepy. Not only did I work a little nap in on lunch hour, but I deliberately picked afternoon sessions which would be lighter as far as subject matter or presenter charisma so that I would be more engaged. As it turned out, this conference has been the best for me so far. Thanks to Joe Guadagno, Gilbert Chandler Community College, the sponsors and the volunteers for bringing together a fantastic camp.
People ask me all the time why do I organize Desert Code Camp every year? Why do I spend an average of 480 a year putting it together? This is the reason. I able to help people and make an impact on their lives. One of my life mantras is "Leave this world better than it was when you came into it". I hope you can make an impact too.
Me too, or at least I was... While the problem I was having might not be related to SendGrid exclusively, I am going to talk about the solution.
Before I go into the solution, let's talk about the problem first. Many of you know that I run Desert Code Camp in Chandler, AZ. Originally, the site ran on the Microsoft stack, it used ASP.NET (Web Forms) and SQL Server. There is an API for mobile apps and future development but that's another story. The site has 12,000 registered users. A few thousand are SPAM/Bots, a few thousand are "inactive" accounts (opted out or moved), and the other 6000 or so are active users that have an interest in Desert Code Camp or have attended at least one.
And here lies the first problem.
When an announcement email goes out to our attendees or users of the site, we need to send out about 6000 emails. I used to do this by sending the email from a web page through code using System.Net.SMTP via localhost. At first, it wasn't an issue. After a while, as Desert Code Camp grew, this became more and more of a problem. Typically the page would time out or IIS would die or something. So I needed to find a solution. Sometime last year, probably around this time, I offloaded the processing of emails to Azure Queue Storage and used Azure WebJobs to handle the "logic". But wait, Azure does not support sending stuff via localhost. And that is true! This is where SendGrid comes into play. Azure provides, as of the creation of this post, a free 25,000 email per month subscription to SendGrid. For more on that, check out this post.
Now that I implemented the new Azure/SendGrid combination everything was great.
Fast forward a year, to this past weekend, I announced that the next Desert Code Camp was happening on Twitter and some people started submitting sessions. This is great! But I noticed that I was wasn't getting my emails about the submissions. At first, I thought, "Oh Joe, you forgot something when you 'created' the new event". It happens every time :). However, this was not the case this time. Microsoft decided to embrace something called DMARC, Domain-based Message Authentication, Reporting & Conformance. In a nutshell, it checks to see if you are sending emails from the domain you claim you are sending them from, which for me was bad. Not because I was trying to be deceitful, but because I was sending emails saying they were from '@hotmail.com' and sending them via 'SendGrid' because I wanted people to reply to my Hotmail address. Well, when Microsoft implemented the DMARC...
What this means: As of June 2016, you can no longer send with the From address being anything from a Microsoft address when sending to a domain that checks DMARC before accepting mail.
... it saw my email as not being 'legitimate' and did not deliver it to my inbox and probably others.
The answer is 'Whitelist' your domains while using SendGrid. There are more detailed instructions on how to whitelist a domain using SendGrid here.
What is Whitelabeling?
Whitelabeling allows you to send through your own custom domain instead of SendGrid's default settings. This will mask the header information of your emails with your data--not theirs--and will improve your email deliverability.
Luckily, SendGrid makes it easy to whitelist your domain(s). Here is how you do it. Please note:You will need access to your domain records, you will be making changes to your TXT or CNAME entries to prove you have rights to the domain.
SendGrid will walk you though everything else you need.
But what about the replies to @Hotmail.com
I'm glad you are still with me :). This part is the easy part. Essentially, I added 'email@example.com' as the ToAddress and added 'firstname.lastname@example.org' as the ReplyTo. As shown in this gist.
I hope this saves you some time to troubleshoot mail delivery to @hotmail.com, @outlook.com, @live.com, @msn.com, @yahoo.com, and @gmail.com.
This blog post has been a long time coming. As a matter of fact, it has been on my Todo list for about two years. I know I am behind :). While parts of this post might come off as bragging or boasting that is not the intent. The point I want to get across is how the community has helped me get to where I am today.
The Back Story
The journey started about 11 or so years ago when I first moved to Arizona. I had a few friends here, through my wife, and a job but I felt like I could not grow or expand in Arizona. I've spent most of my career building a name for myself in New York. After looking around at the technology scene in Arizona, there were a few groups around. AZGroups was the largest Microsoft focused group at the time. I decided to attend the meetings to network and to keep up with the latest and greatest in .NET. After a few months, I decided to, mostly because I didn't feel like driving to AZGroups, to start my own user group in the Southeast Valley. Hence the "Southeast Valley .NET User Group" was started. This launched my public speaking "career". After that, I started to see how networking and the community could help me and others grow. A little bit later I started Tech Lunch South, a weekly lunch for technology people in the Southeast part of the Phoenix metro area. It was great because I got to meet and talk with people in technology outside the Microsoft world. A bit later, I helped out with Desert Code Camp and eventually became the sole organizer of it.
At this point you are probably saying "Blah Blah Blah Joe, I can see why you think this could be interpreted as bragging" :). Well, let me tell you the effect these community efforts had. The first was more speaking opportunities, I was able to speak at other groups in Arizona and California, in addition to Code Camps. Eventually, I got to speak at paid conferences, although I think I have Hurricane Sandy to thank for that :(. But the creating of the group or lunch or organizing Desert Code Camp was not the only reason for that, it was the networking. Through the group, lunch, and code camp I have made a lot of friends and connections. I also got a Microsoft MVP out of it which help improved on those connections. I also got to help people along the way.
As I eluded to earlier, these community groups that I started or continued, led to some really good connections.
The moral of the story is to try and not be the "A-typical" developer and socialize at events. Use the user group, code camp, or conference to build up a network of peers to make you and them better. If you are looking for help on how to socialize at these events, one of my friends and fellow speaker Jeremy Clark (@jeremybytes) blogged about it.
Have a "Power of the Community" story to share, post a comment below.
A little bit over 3 years when I started at Quicken Loans as a Software Architect I did not know / understand how valuable the Quality Analyst (QA) or testing role was to a product or application. When I started, on Day 2, Brian Friesen introduced me to a lot of people but one of the introductions I remember the most was to Hilary Weaver-Robb (//g33klady.wordpress.com/). The reason why I remember this is because she had since built a conference talk around it. Titled something like "QA and Developers should be best of friends" or something like that... 🙂 The story goes like this...
Day 2 at a new place after spending a FULL day in front of the company fire hose getting introduced to everything that is Quicken Loans, Brian introduced me to my new surrogate team (I was on loan for few months). The introductions went along and eventually Brian introduces me to Hilary (some know her as Heather). Brian says "This is Hilary, our QA". I immediately, mostly jokingly, say "Ugh". We all chuckled, although I believe Hilary, excuse me, Heather, secretly started hating me. And while I was partly joking at the time, in my experience prior to meeting Hilary, I've never understood the value of a Quality Analyst. Until now. Whether Hilary wants to believe it or not, I consider her a good friend, although I am not sure the feeling is mutual
Anyway, the real reason for this post. In the last 3 years at Quicken Loans, I have learned the value of writing Unit test and having testers on a team. There have been far too many times (at least one 🙂 ) where I have pushed code for my person projects (Desert Code Camp, MVP Summit Events, etc) and things have failed miserably. So, I have gone back to all of my personal projects and have added Unit Tests and you should too! Not just in your personal projects but your professional ones. I know, it takes more time to write a Unit test or I write it the first time. Believe me, it doesn't and you don't. You'll probably spend more time researching and fixing your problem that you would have "wasted" on building a unit test. So just do it!
There is an expression in the US and part of the world that goes '9/11 Never Forget'. I will never forget 9/11! I remember virtually every detail of that days and the weeks that proceeded. From just after the first plane hit, until two or three weeks after the 'event' . Here is my tale…
It started out as any other ordinary day. I took a bus to commuter train (LIRR) to the NY City subway to get to work at Guardian Life Insurance. I always got in early, around 7:00 to beat the rush. I was in my cubicle probably checking email or coding when a few coworkers came and said, "Do you see the World Trade Center is on fire?" At the time, I worked in downtown Manhattan at 7 Hanover Sq which was about a half of a mile from The World Trade Center. I replied "No" and I followed the people to the other side of the building where I watched the North Tower, 1 World Trade Center, smoke from what we know now as the first plane to hit the building. We watched in awe as the building was smoking and papers were flying around like it was snow at Christmas.
We stood, the 6 of us, amazed the World Trade Center was on fire. Seventeen minutes later at 9:03 am EDT I and the 6 others were shocked when we saw the second plane hit the South Tower (2 World Trade Center).
I was shocked! I watched as the plane, as we know now, as the second plane to fly in the sky and HIT the second building. ALL of us were like, "what the f#@#!?". We had no idea what happened. We all scattered. like the NYC cockroaches do when the lights turned on and went back to our desks. I, like all the others, went back to our desks/cubicles. I called my wife (@deeguadagno) in a panic… "Did you see? I just saw a plane hit the World Trade Center?" Both of us at the time did not know what happened, I said to her "I'm out of here", I told my boss at the time. "I just saw a plane hit the World Trade Center and both of them are on fire. I'm leaving!". He, as most corporate managers would do said, "We do not have permission to leave yet.". I said, "I don't care, I'm leaving". I left and called my direct reports and told them to head home if there were already in transit. As I walked the 4-7 blocks from the office to the subway station it felt like I was walking through dirty snow. There were paper and soot from the fires and ashes from the World Trade Center that was blocks away. I eventually got on a subway and the last commuter rail (LIRR) out of Penn station heading for home. At the time, I did not have a cell phone so I had to borrow someone else to call the wife and tell her I made it out of the City and was heading home. I and the other passengers were watching the World Trade Center smoke from a distance. I finally arrived home around 10:40 am where I hugged my wife and 2 kids to learned that both Towers have collapsed. I did not know what to do or say other then hug my family. I eventually went did some of the 'Honey Do List' items to take my mind off of what happened. While doing that, I tried to find out how some of my direct reports were doing. One was in Denver on training, two were en route to work. Unfortunately, as a result of the 'attacks', the telephone network was damaged. It took almost 24 hours until I found out that all of my direct reports were OK.
The weird thing about the event was that we, as a Family, were supposed to go on a vacation to LA on September 12th to go to Disney, Sea World, Hollywood and Southern California. Unfortunately, as we all know, flights were ground for a bit. While Dee was glued to the TV, I couldn't watch it and did a lot of my 'honey do list' stuff like mow the lawn, fix stuff, anything to avoid the TV and the realization of what happened until the flights we no longer grounded.
Around September 14th or so, flights were allowed to take off again. Personally, outside of all of the tragedy, this one of the smoothest vacations around. We, a family of 4, were on a 737 or so aircraft with a configuration of 2 x 4 x 2. This plane could probably sit about 300 people or so. There were about 30 of us on the plane which meant each person had a row to themselves for the 4-hour flight. While on the trip, since no one seemed to be flying or vacationing at the time. we essentially had Disney World, Universal Studios , LegoLand and SeaWorld to ourselves. The trip was great! There were no lines at the parks, we went on rides multiple times and enjoyed life…
Fourteen days later I returned to reality. I got up at 5:00am and started my commute into work. This was roughly when "Lower Manhattan" was open to businesses. Unfortunately, at the time, the trains only went to about 14th street because the City was inspecting the rails and tunnels as a result of the collapse. This meant that my commute went from about an hour and a half to about two hours and fifteen minutes with about two miles of walking. The time or walk did not matter. It was more of 'the walk' or how we had to walk that mattered. The furthest south that the subway would stop was around 14th and Broadway. The easiest walk to our office was straight down Broadway. Broadway, for those of you that do not know NYC, ran parallel, one block away from the World Trade Center. That means that even day, to and from work, I walked by what was left of the World Trade Center. Let me tell that it SUCKED for a minimum of two weeks. Once I, and other commuters, got to the vicinity of the World Trade Center at was at an intersection we all stopped, looked and cried. Because of the different angles and the length of the 'site,from' this went on for about a half of a mile. Let me tell you it sucked! It was rough going into and leaving work every day and having to for 30 minutes or so as part of your 'commute'.Don't get me wrong, my crying and longer commute time do not compare to the 3000+ people that lost their lives or loved ones that still have to suffer.
So 15 years later I still remember the day as it was yesterday. It's still hard to see a plane in the sky and not picture the plane I saw hit the South Tower. However, you have to remember that we, as a Country, have and will more on.
Fast forward about 20 or so months later to the Northeast Blackout of 2003 when NYC and others lost power. We had NO idea what happened. We all assumed another 9/11 type attack. We all panicked and migrated/ran/left the city. I walked home from the office, about 18 miles, in 85-degree heat and about 1000% humidity, until I got to my brother's apartment. On route, I experienced people charging $5 - $10 dollars for a 16oz bottle of water.
While I can imagine what others felt around the tragedies of 9/11 or what the survivors or sufferers have been through, I will Never Forget 9/11.