Starting a New Chapter in my Career…


753,120 minutes… 753,120 moments so dear
753,120 minutes… how do you measure, measure a career?

Today marks my 4 years, 3 months, 2 weeks, and 3 days anniversary at OverDrive, Inc.  This is the longest I’ve been at any company, and it will hold that record for at least another 4 years, 3 months, 2 weeks, and 3 days.  That’s because today also marks my last day there.

Growing as a Developer

In my time at OverDrive, I’ve really grown as a developer. This was where I honed my C# developing chops and really started understanding my architectural and user experience points of view. I also had the privilege of working with some of Cleveland’s most talented developers. It was great pair programming with some, sharing lunch’n’learns with some, and just working with all of them. Not only did I work with great developers, but I really enjoyed working with everyone in the company as a whole. OverDrive staffers are friendly, knowledgeable, and fun to work with.

It was a great place for me to go 4 years ago. I escaped the brick wall of no growth and found a home in a company that let me explore technology and put it to use. Each project was a learning experience, and each of those experiences have helped me to become the person that I am today.

However, in those 4 years, I uncovered my passion for technology and let it run. I’ve gotten involved in various developer communities, speaking at events – including user groups and a national conference, and have found how to channel that passion for the good. I’ve found that I really enjoy sharing my knowledge with others and helping others out when I can. However, an 8-to-5 job has been getting in the way of me putting my technology to use for the greater good. So it’s time for me to move on.

Finding Growth as a Business Owner

I’ve always had the dream of owning my own business. However, I’ve never had the time to do it. Then I realize something… if I want it to happen, I have to make the time to make it happen.

Now I’ve had friends ask me… “Why not Sadukie LLC?” or “Why not make Sarahwares Productions official?”. While I’m known as “Sadukie” everywhere, it just doesn’t sound professional. As for “Sarahwares Productions”, it’s another site of mine that’s for side projects, but again, it really doesn’t sound professional. When forming my own business, I wanted a professional sounding name. However, I had struggled a bit coming up with a name. Special thanks to my awesome husband Kevin, I now have Cleveland Tech Consulting, LLC.

So if you hear about Cleveland Tech Consulting, LLC, now you know who’s behind it. I hope to be doing business with many of you in the future!


1569 days * 8 hours per day * 60 minutes per hour

The Adventures of Book Writing, Part 1

I had a dream… that one day I would become an author. I couldn’t tell you how I had gotten there, but I dreamt that I had a book, with my name on the cover, that people would buy. Now that dream is coming true. 
 

So, Sarah, how did you get the opportunity to write?
Last summer at devLink, I spoke on PowerShell for Developers and caught the attention of my friend Matt Hester. He hadn’t realized I was interested in PowerShell until then, but once he realized that, he asked me to be his tech editor on this PowerShell book that he was writing. I agreed, as I had been an editor for a national publication for students in ACM while in college and really enjoyed editing technical content.

Shortly after bringing me on board as his tech editor, he mentioned that there were some appendices that needed a developer’s hand at writing. He offered it to me, and I took it. So started the “wrediting” process…

Why PowerShell? Aren’t you a developer?
You wouldn’t believe how often people – even as close as my friends – challenge my developer status because they see PowerShell as an IT scripting language and possibly inferior to typical developer skills. However, that closed-mindedness just contributes to the misunderstanding of the IT-Developer relationship. While PowerShell has a lot to offer IT people in terms of scripting and automating a lot of administrative tasks, it also is extensible enough to allow us developers to create PowerShell cmdlets, providers, and other components to allow IT to create scripts that interact with our .NET objects.

Yes, I’m still a developer. Knowing PowerShell and how to extend it makes me more versatile and more powerful, as I can take my PowerShell and C# skills and give IT teams more automation than if they just used PowerShell out of the box.

How hard is it for a developer to pick up PowerShell?
If you’re familiar with scripting languages or working at a command prompt, you should find PowerShell fairly easy to pick up. Looping and conditionals are similarly structured to what we use in C# and VB, other than syntax. In PowerShell, the operators are a little different – for example, using -eq instead of == or using -and instead of &&. But other than that, the logical structures themselves should be very easy to grasp.
 
What can we do as developers to extend PowerShell?
Well… you can create custom functions, cmdlets, and providers to start. If you want to know how you can do this, stay tuned for our upcoming series on PowerShell stuff. And if you want a reference on some of the things that you can do, make sure to pre-order Automating Windows Server 2008 R2 with Windows PowerShell 2.0. While the title suggests it’s all about Windows Server 2008 R2, the appendices will get into extending PowerShell and how to make outside .NET libraries accessible to PowerShell.

Becoming More Well-Rounded…

While at the MVP summit, I made sure to catch some sessions outside of my expertise.  While I’m a Visual C# MVP, I have interests that lie outside the language, and with the offering of sessions that pique my other interests, I figured I’d take advantage of that.  When I left my C# friends for a little, they were teasing me for leaving them.  To which I retorted:

To my C# MVP friends who were mocking me for leaving, you guys are just jealous you can’t handle things out of your expertise. 😛 #mvp11less than a minute ago via Birdsong for Windows Phone Favorite Retweet Reply


Paul Nielsen, a SQL MVP, replied:

@sadukie agreed! SQL Server + SQL Azure + C# + WPF + WCF = a great time and a broad experience @ #mvp11less than a minute ago via web Favorite Retweet Reply

This really got me thinking. As a lead developer, I find it to be my responsibility to not only understand my immediate specialty but to understand things that impact it and things that interact with it. By understanding everything it works with or relies on, I find myself to be a stronger, more efficient developer than most. Now maybe I have an architect’s mind, wanting to see the big picture and then develop appropriately once the big picture is in place. But at the same time, I find it very appropriate for developers to understand their environment in order to develop the proper application.

For example, by day, I’m a website/web application developer. However, I need to understand what servers will be hosting my sites and applications so that I develop for the right environment. It would be a waste of resources if I wrote a .NET 4.0 application that would run on a Windows Server 2000 server, since Windows Server 2000 caps at .NET 2.0. I also need to understand the webserver – in this case, IIS. It would be awful if I asked my IT guys (who are ultimately responsible for the servers) to set up IIS redirects for my site if it’s something hosted on IIS 7, since those redirects can be setup within web.config and without needing IT intervention. It also helps to know that my live environment may be a load balanced environment, as there are development concerns that can be addressed by the IT side. In the case of a load balanced environment with ASP.NET, if the affinity is not set to single, it’s possible to bounce between servers, which can cause problems with viewstates, AXDs, and other things in ASP.NET if precautions aren’t taken.

Catching the Sysinternals talk at the MVP summit was great. Tracking down malware can be likened to debugging code – you have to find the source of the problem and fix it. The thought process is similar, and in catching that session, I learned of more tools that I could potentially use to debug issues in an application.

Since I do database-driven websites and web applications, it would be to my advantage to know what to expect with what I’m focusing on database-wise. It was great that I did catch some database-related stuff as well.

I’m finding that expanding my horizons and looking beyond my expertise has been a great experience. I just hope that what I’ve learned will pay off in due time.

Thoughts on the 2011 Microsoft MVP Summit…

This year, I had the privilege of attending the 2011 Microsoft MVP Summit.  This was my second summit as a Microsoft MVP, and once again, I learned quite a bit.

I really enjoy being a part of the Microsoft MVP program.  Yes, there are product teams out there who listen to their MVPs and make changes based on the feedback we give them.  So even if you aren’t an MVP, if you have feedback on a product, know that it could help to reach out to your local MVPs to help get your feedback to the teams.  Microsoft’s product groups have developers just like us on them – they appreciate the constructive feedback on how to make their programs better.  (I have yet to meet a great programmer who doesn’t like constructive feedback on how to improve their apps.  I don’t think great programmers like putting out crappy apps.)

My favorite session was a session not covered by a Non-Disclosure Agreement, so I’m happy that I can talk about it.  I got to see Mark Russinovich, the guy behind Sysinternals, talk about malware and tracking down using tools such as Process Monitor, Process Explorer, and Autoruns.  My inner IT geek had been counting down the days to the summit to see this talk, and it didn’t let me down at all.  The session went over much longer than was scheduled, and we had a mostly full room for the whole time.  Mark is amazing at what he does, and he’s also great at captivating the audience.  I’m glad they opened this session to many expertises, as this developer has even more respect for those like Mark who are trying to combat the malware writers.  I also am looking forward to his novel, Zero Day, that comes out on March 15th.

As for the rest of what I saw, there’s an NDA that prevents me from talking about it.  Only time will tell and we’ll see of the awesomeness that lies ahead.

I did learn quite a bit though while there – about my fellow MVPs, my friends, and myself.  On my flights home, I did a lot of thinking about the year ahead.  I thought about the talks that I’m hoping to give, the opportunities that I want to seek out or even create.  I’ve been inspired to create a few events and programs, which may take a couple years to flesh out.  I’ve got some lofty goals that I really want to achieve, so I need to find the right mentors to reach those goals.  I’m ready to get even further away from my introverted shell and to reach for the sky.

Thanks to all of the organizers who put on the 2011 Microsoft MVP Summit.  From the content to the in-person networking to the hotels to {insert all the other details that it takes to put this thing together}, there was a lot to do, but it seemed to go very well!  Thank you!

Coding Geekette’s Goals for 2009

I was catching up on RSS feeds when I noticed that I was tagged to write another post. So you guys can thank Jeff for getting me to post some of my goals for 2009.

Grow Cleveland Tech Events.

This was a site that I launched in October, and I’m hoping to get it to take off in 2009. The more I get involved in the Cleveland technical community, the more people I talk to, the more publicity this site gets. Not familiar with it yet? Check out the website or follow @clevtechevents on Twitter.

Give more presentations.

It all started at Cleveland Day of .NET 2008, and I’m slowly making my rounds on SQL 2008 and IronPython, separately. I’m hoping to add a Mono presentation to the mix. A list of my current presentations can be seen here. My general focuses in 2009 will be on databases, social networking, and web development. I have a goal of 12 presentations, but I plan on exceeding that.

Talk more about IronPython.

I started tinkering with this language for fun in 2008, and I hope to get a bit more serious about it in 2009. I’ve already presented on it at CodeMash. I’m scheduled to speak about it at PyCon. It’s also been suggested that I possibly present on IronPython at PyOhio. The more people tell me they want to hear about it, the more likely I’ll have awesome demos and a lot more energy in my presentations. If you want to hear me speak on IronPython, email me at sarah at codinggeekette dot com.

Grow this blog.

Almost a year ago, I started blogging here, starting my first technical blog. Over 100 posts later, my post count and RSS subscriber count are at about a 1:1 ratio. This year, I would like to gain more readers. In order to do that, I hope to have more posts with code and interesting examples. There isn’t a concrete goal yet, but give me a few days and I’ll come back and edit that in here.

Breathe easier.

After a year of unknown health problems, I finally got a diagnosis. So in 2009, my goal is to get better control of my disease and hopefully start breathing easier. With the help of specialists and hopefully rehab, this can happen.

Calling out others…

Just as Jeff did, I am calling out some others to post their goals for 2009: