All posts by Eugene Meidinger

Five ways to reduce impostor syndrome

T-SQL-Tuesday-Logo
This T-SQL Tuesday is about Impostor Syndrome. I think that the term gets used in a broader context than the original meaning. From Wikipedia:

Imposter Syndrome is a psychological pattern in which one doubts one’s accomplishments and has a persistent internalized fear of being exposed as a “fraud”. Despite external evidence of their competence, those experiencing this phenomenon remain convinced that they are frauds, and do not deserve all they have achieved.

To me, it’s a syndrome when there is a persistent fear of being outed as a fraud. But I think there is a broader and more diffuse feeling of one’s skills falling short of what is expected or what other people perceive. I think a lot of people mean this when they say impostor syndrome. Heck, it might even apply to a broader sense of “winging it” or figuring it out as you go.

In this blog post I’m going to list concrete steps that have helped me fight this sense that I might be a fraud or don’t know what I’m doing. I personally believe it’s a tractable problem.

Pursue a growth mindset

Do you feel that you are born with a certain amount of intelligence and talent, or do you feel that it is something you can grow? When I was young, I felt that you were born with a certain IQ or a certain amount of smarts. The problem with this mindset is when you encounter evidence contrary.

Let’s say you screw something up at work. If you believe that you have a fixed amount of intelligence or skills, then you will see this a reflective of you as a person. If you have a growth mindset you are less likely to see this as reflective of you as a whole.

Build a peer network

So much of imposter syndrome can be broken down into two things: a disconnect with reality and a sense of invalidation. The disconnect is that, unless you are an actual fraud, your thoughts and feelings are not lining up with reality. In cognitive behavioral therapy, these things are called cognitive distortions.

The invalidation is the sense that this isn’t normal. That you are alone or unusual in the struggles you are having. That you should be feeling x or doing Y.

In both cases, having a peer network can ground you. Hearing other peoples experiences can be validating and reassuring. You’d be surprised how many of us are winging it. You’d be surprised how many of us have been handed a task and need to figure it out on the fly. For example, I am probably going to do a course on Azure Event Hubs and I know absolutely nothing about them.

Focus on just-in-time learning

In consulting, if you never say “I don’t know”, then you are full of crap. You can’t know everything. If you merely say “I don’t know”, then you are a fool. A good consultant says “I don’t know, but I can find out!”. That is one of the keys of consulting.

So much of my confidence in working as a consultant is knowing that I have a strong peer network I can reach out to. So much is knowing I have a strategy for just in time learning.

One way to do this is to practice presenting and blogging as a way of practicing your research skills. Another is to work on home labs. Multiple times I’ve had to learn something new like mirroring or availability groups for a customer job. By doing those home labs I was able to build confidence for the project as well as confidence for future learnings.

Present, write, and teach

A lot of this vague unease comes from never achieving mastery in a specific area. From those lingering unknown unknowns. One way to rout out those unknown unknowns is to create and share content on the subject.

Doing so will force you to think through the subject, to think through what questions people might ask. The first dozen presentations might be a bit rough. But as you continue, you’ll have a better sense of what it means to really know a topic.

Do paid consulting

I realize this simply isn’t an option for most people. Consulting can be stressful and anxiety inducing, especially if you are struggling with impostor syndrome. But it’s amazing how good it feels to charge for a project and by the end of it have a happy customer.

I still giggle when I tell people my hourly rate, and I keep expecting to get pushback about being too expensive. But it doesn’t happen. It turns out that other people value my time and skills more than I do.

Summary

My suggestions boil down to three things:

  1. Build confidence in your ability to learn on-demand
  2. Experience mastery through content creation
  3. Find people who value your skills enough to pay for them

Where do people get stuck with Power BI?

I was recently talking to a potential customer about getting started in Power BI. A question they asked me was essentially “What are the difficult parts of Power BI, how do these engagements usually go?”. This was a really interesting question and for me a lot of customer engagements fall under two broad categories.

The lost and confused. A lot of potential customers are just starting to look into Power BI. They cans see what it can do, they understand what it is for, but they have questions. Generally these questions are all about governance and implementation. How do we deploy Power BI? How do we license Power BI? How do we secure it?

This is a reasonable challenge because Power BI has a lot of nooks and crannies. It has a bunch of ways to deploy it and a bunch of ways to license it, and it seems like that add a new one every 6 months. For these customers they generally just seem to be concerned about the unknown unknowns out there. Usually after that first hour, that seems to be all the help they need.

The out of control. These customers have made an investment in Power BI. These customers have started creating reports and seeing result. The problem here is scaling their reports. M and DAX have goofy learning curves. Both start out easy, but get incredibly difficult when you try to do more complex things. Maybe reading CSV files was easy, but now you need to work with a web api now. Maybe your report was fast when it was 60 MB. But now your measure or more complex and you have 250 MB of data and it is slow. These customers need help applying good data modeling and optimizing those models.

What convinced me that diversity is important?

T-SQL Tuesday Logo
For this month’s T-SQL Tuesday, we are to write about a time we changed our minds on something. For me, something  I think about often is that 12 years ago I didn’t value diversity. Today I do value diversity, and if we want to persuade others, we have to figure out what changed.

Where was I 12 years ago?

Twelve years ago, I was going to college and I experienced a bit of a culture shock. The county I’ve lived my entire life in, Beaver County, is 92.5% white and 6% black. The local college I went to, Penn State Beaver, was decidedly more diverse from a racial standpoint.

I remember quite clearly thinking at that point that there had only been 3 times in my life when I had seen that contrast: college, travel stations, and visiting Washington D.C. The rest of my life was in this monoculture.

And when I say that I didn’t value diversity at the time, it wasn’t that I was against it or had negative feelings. It was just that I didn’t see a lack of diversity as a problem. I had a vague awareness that my IT classes were heavily white and heavily male, but that didn’t register as an issue.

Looking back, I think I figured that if different people had different natural talents or natural interests, then what was the harm in that? Part of the reason I was in IT was the things I was bad at. I was bad at people and interacting with them.

Bound up in the previous paragraph were a whole host of assumptions and naïve ideas. The idea that life was a meritocracy. The idea that people freely chose their profession, without discrimination.

What is your ethical structure?

On subjects like this, we often talk past each other. Sometimes in bad faith, but often because we are starting from different ethical precepts. In college I took an Ethics in Computer Science course and learned of two big terms: Utilitarian Ethics and Deontological Ethics.

Essentially, are things right or wrong because of the consequences or because of something inherent to the action? I think one example was “Is it wrong to clean your toilet with the American flag?”. Many people would say yes, but they would have trouble pointing to how anyone was visibly harmed by the act.

I mention this because I think a number of people that are supporting diversity do so from a strongly deontological perspective. So if less than 50% of CEOs are women, then that is in its very nature unjust or unfair. Regardless of the specific consequences.

I think this is a valid and reasonable viewpoint. But I also don’t think that this alone would have changed my mind. Generally I was more swayed by empathy for individuals and seeing concrete negative consequences.

What changed my mind?

I think there were a number of things that all changed my mind in little bits and pieces.

Monoculture leads to failure

Something that planted the seeds early on for me were stories of how having a monoculture of life experiences lead to failure. How HP webcams couldn’t follow black people. How Apple stores had glass staircases. How websites often don’t support names with umlauts or other markings because of assumptions about how names work.

I also learned about groupthink and the often exaggerated Asch conformity experiments. So often these failures occurred either because everyone thought the same or had the same background. Or people were afraid to speak up and stand out.

Life is not a meritocracy

For all of my schooling, I did fairly well. And there was a fairly stable correlation between how good I was at a given task and the grades I got. It seemed to me like school was a meritocracy and I expected work to be the same. I was woefully wrong.

I got a job at Bayer Material Science after college and after 8 months I was fired. I deserved to be fired and wasn’t particularly good at my job. Still, as someone used to getting A’s this was pretty shocking to me.

I learned a number of things during that process. I learned that how well we excel in certain areas can depend on a number of secondary factors, like our ability to work with others, to communicate, etc.

I learned that my skills at being a student didn’t necessarily translate into being a good worker, and I could infer the reverse must be true. There were undoubtedly people who flunked out of school but where crushing it in the workplace.

Violence, discrimination and bias are common

As far as I’m aware, I’ve never been racially or sexually discriminated against. If I have then the person did a terrible job of it, because I didn’t notice. Every police ticket I’ve gotten has been valid. I rarely have to worry about my safety when walking alone at night.

Again, in college I had some vague awareness of this. I understood the idea that my female friends might appreciate someone walking them to their car when it is dark. But I didn’t appreciate just how constant it was for some people. Heck, if I’m being honest, the #MeToo movement was shocking for me to see how many people close to me had been sexually assaulted.

It was helpful too to realize that bias can be invisible, implicit or even well-intentioned. I remember reading about implicit bias in a book and being frustrated about the implicit bias I had in regards to African Americans. I kept failing the test.

I remember meeting an internal salesperson at my last job and saying “Oh so you work in staffing?”, because I had this idea that all sales people were pushy and that women had better people skills, so clearly this person must be a staffing salesperson, not hardware or IT Services. That was 5 years ago and I still feel like an ass to this day.

Representation matters

So I’m going to talk about a type of diversity that may sound strange, but is very meaningful to me. I’m a Type 1 diabetic. And when I was diagnosed, in many ways I felt like my life was over. There were so many things I wasn’t going to be able to do. For the entirety of my last job, I told very few people because I feared I would get fired.

But one of the best things I did was subscribe to Diabetes Forecast magazine. Because in every issue they had a story of someone with diabetes doing something badass. Like racing, or mountain climbing or even winning a beauty pageant. These people weren’t letting diabetes stop them from living their lives.

For this same reason, Scott Hanselman is a hero of mine. He is very openly a diabetic and will present to hundreds of people without letting his diabetes stop him. If he has to check his blood sugar on stage or drink some orange juice, then so be it.

I say all of this to say that representation matters. My life was impacted because I saw myself in successful people. I saw myself in others.

It doesn’t take a colossal leap of empathy to imagine how I might feel if roles were reversed, if all the speakers at a tech conference were female or non-white. If that happened enough, I would quickly internalize the idea that I would never succeed, that I would never make it, that I would never get up on that stage.

If you optimize for individuals, you optimize for assholes

When I see a backlash against people trying to re-balance the scales, a lot of that backlash makes perfect sense under a certain set of assumptions or axioms.

If you believe that 1) the world is or should be a meritocracy and 2) we have an objective way to measure “skill” and 3) we should focus solely on the merits of the individual, then it’s reasonable to conclude that picking anyone but the “best” for a job is an injustice.

And while I think I believed all of those things in college, given my experiences since then, I no longer believe those things.

I’ve learned that often people fail for reasons completely outside of their control. I’ve learned that technical prowess is a minimal part of my job, and there are a plethora of other factors that make me good at my job. I’ve learned that when you narrowly look only at the individual, there are negative consequences both inside the team and outside of the team.

When you optimize for individuals, you optimize for assholes. We’ve all heard the story of person X who delivers results but is inherently toxic and drives others away. Throwing other people under the bus can be a great way to get results in the short term. We have to look beyond the individual.

I think any person in a place of power such as a manager or conference organizer, needs to look not just at the talent or popularity of the individuals, but the mix as a whole and the benefits diversity brings. We can disagree on to what degree, but it needs to be done.

Summary

I won’t pretend I have all the answers here. I still haven’t figured out when being pro-diversity swerves into being pro-tokenism, for example. I haven’t figured out that line where in trying to promote a group you accidently reduce them to a name, an identifier, a statistic.

But I can say that these are the things that have helped me value and appreciate diversity. And I hope we can all promote it, even if in small ways.

Query folding workaround for Azure Devops and Power BI

Query folding is one of the most powerful tools in Power Query and Power BI. It is the automatic process of pushing down filters and other transformations back to the data source. This can dramatically improve performance for your queries.

Unfortunately, OData is not guaranteed to support query folding. According to the Power BI documentation on incremental refresh.

Most data sources that support SQL queries support query folding. However, data sources like flat files, blobs, web, and OData feeds typically do not. In cases where the filter is not supported by the datasource back-end, it cannot be pushed down. In such cases, the mashup engine compensates and applies the filter locally, which may require retrieving the full dataset from the data source.

I recently did some tests on this for the OData source for Azure Devops. When I tested with the sample Northwind database, query folding was working. I was able to see with Fiddler that my date filter was getting pushed back down.

clip_image001

However, when I tried to the same with Azure Devops, none of my filters where getting pushed down to the source. As a workaround, I was able to put my filters in the URL. So to filter based on date, I used the following url:
https://analytics.dev.azure.com/eugene1234/TestingOdata/_odata/v2.0/WorkItems?$select=WorkItemId,WorkItemType,Title,State,ChangedDate&$filter=ChangedDate%20gt%202018-12-30T23:59:59.99Z

clip_image001[5]

In this case, I was manually specifying the date filter in the URL. But it should be possible to use M code to dynamically generate the URL. Another option might be to create a custom data connector for oData that supports query folding.

A comprehensive guide to Power BI performance tuning

Promotion: Use code PERFBLOG to save 10% off my course. Module 1 is free.

While it’s easy to make reports in Power BI, it can be a pain to troubleshoot and tune them. Properly performance tuning Power BI reports requires identifying the bottleneck and using a handful of external applications. This article covers how to narrow down the performance problem, as well as general best practices. Once you understand the fundamentals it gets a lot easier.

Which part is slow?

As a report developer, it can be frustrating a report developer, knowing that something is slow, but not being able to put your finger on it. In my mind, there are 4 main areas where there might be a slowdown:

  1. Data refresh
  2. Model calculations
  3. Visualization rendering
  4. Everything else

Identifying which one of these is the problem is the first step to improving performance. In most cases, if a report is slow it’s an issue with step 2, your data model.

Tuning the data refresh

The refresh is rarely the problem because the user never sees the refresh process if you are using Import mode. So usually you are going to see a slow refresh when you are authoring the report or if a scheduled refresh fails. Still, it’s important to tune your data refresh to avoid timeouts and minimize how much data your are loading.

Verify that query folding is working

If you are querying a relational database, especially SQL Server, then you want to make sure that query folding is being applied. Query folding is when M code in PowerQuery is pushed down to the source system, often via a SQL query. One simple way to confirm that query folding is working is to right click on a step sand select View Native Query. This will show you the SQL query that will be run against the database. If you have admin privileges on the server, you can also use extended events to monitor the server for queries. If you are doing this, you should limited the monitoring to the Data Mashup engine, which is the application name for Power Query.

Some transformation steps can break query folding, making any steps after them unfoldable. Finding out which steps break folding is a matter of trial and error. But simple transformations, such as filtering rows and removing columns, should be applied as early

Minimize the data you are loading

If you don’t need certain columns, then remove them. If you don’t need certain rows of data, then filter them out. This can improve performance when refreshing the data AND when modelling it later on, which is a win-win.

If your Power BI file is more than 100MB, there is a good chance you are going to see a slowdown due to the data size. Once it gets bigger than that it is important to either work on your DAX code, or look into an alternative querying/hosting method such as DirectQuery or Power BI Premium.

Consider performing joins in DAX, not in M

If you need to establish a relationship purely for filtering reasons, such as using a dimension table, then consider creating the relationship in DAX instead of in PowerQuery. DAX is blazing fast at applying filters, whereas Power Query can be very slow at applying a join, especially if that join is not being folded down to the SQL level. That being said, sometimes the data makes more sense as a flattened table for usability purposes.

Review your applied steps

Because Power Query is such a graphical tool, it can be easy to make changes and then forget about them. I had one customer who would often sort his data and then accidently leave the step in there. This was terrible for performance.

Make use of SQL indexes

If your data is in a relational database, then you want to make sure there are indexes to support your queries. If you are using just a few columns it may be possible to create a covering query that covers all of the columns you need. Work with your DBA to see what your options are. If you are using SQL Server, you can use execution plans to identify if the query is using an index. You will need the SHOW_PLAN permission on the server and you will need to use the View Native Query functionally to get the underlying SQL query

Tuning the model calculations

When someone says that a Power BI report is slow, it is usually an issue with the DAX modelling. Unfortunately, that fact isn’t obvious to the user and it can look like the visuals themselves are slow. Thankfully, there is a tool to identify the difference: the Power BI Performance Analyzer.

Use the Power BI Performance Analyzer

If your report is slow, the very first thing you should do is run the Power BI performance analyzer. This will give you detailed measurements of which visuals are slow as well as how much of that time is spent running DAX and how much is spent rendering the visual. Additionally, this tool gives you the actual DAX code being run behinds the scenes, which you can run manually with DAX Studio. When I am dealing with a tricky performance problem, this is my go to tool.

Confirm that the storage engine is being used

When using DAX studio, you can see how much time is spent with the storage engine versus the formula engine. The storage engine can only handle simple operations, but is multi-threaded and very fast. Whenever possible, it’s better to make use of the storage engine.

Remove data you don’t need

Because of the way the data is stored in Power BI, the more columns you have the worse compression and performance you have. Additionally, unnecessary rows can slow things down as well. Two years of data is almost always going to be faster than 10 years of the same data.

Additionally, avoid columns with a lot of unique values such as primary keys. The more repeated values in a column, the better the compression because of run-length encoding. Unique columns can actually take up more space when encoded for Power BI than the source data did.

Avoid iterator functions

Iterator functions will calculate a result row by agonizing row, which is not ideal for a columnar data store like DAX. There are two ways to identify iterator functions. The aggregation functions generally end in an X: SUMX, MAXX, CONCATENATEX, etc. Additionally, many iterators take in a table as the first parameter and then an expression as the second parameter. Iterators with simple logic are generally fine, and sometimes are secretly converted to more efficient forms.

Use a star schema

Using a star schema, a transaction table in the center surrounded by lookup tables, has a number of benefits. It encourages filtering based on the lookup tables and aggregating based on the transaction table. The two things DAX is best at is filtering and aggregating. A star schema also keeps the relationships simple and easy to understand.

Visualization Rendering

Sometimes the issue isn’t necessarily the data model but the visuals. I’ve seen this when a user tries to put >20 different things on a page or has a table with thousands of rows.

Lean towards aggregation

The DAX engine, Vertipaq, is really good at two things: filtering and aggregations. This means it’s ideal for high level reporting like KPIs and traditional dashboards. This also means it is not good at very detail-heavy and granular reporting. If you have a table with 10,000 rows and complex measures being calculated for each row, it’s going to be really slow. If you need to be able to show detailed information, take advantage of drill-though pages or report tooltips to pre-filter the data that is being shown.

Filter what is being shown

Unless you are using simple aggregations, it’s not advisable to show all of the data at once. One way to deal with this is to apply report or page filters to limit how many rows are being rendered at any one time. Another options is to use drill-through pages and report tool-tips to implicitly filter the data being shown.

Limit how many visualizations are on screen. The part of Power BI that renders the visualization is single-threaded and can be slow sometimes. Whenever possible, try to not have more than 20 elements on screen. Even simple lines and boxes can slow down rendering a little bit.

Everything else

Review your query method. This article assumes that you are using the import method to pull in your data. However, DirectQuery or live connections might be much faster depending on the size of your data.

Sometimes a report can seem slow when you are developing it. Make sure that there aren’t any applications on your PC that are consuming all of your resources and making Power BI Desktop seem slow.

Resources for Freelancers – Free and Paid

In my experience , working for yourself provides a unique set of challenges and required skills. You need to learn how to work on your business, not just in your business. You have to become your marketing, sales and HR departments. Without useful resources, I undoubtedly would have failed as a freelancer. Below is a list of resources I would recommend to anyone getting started as a freelancer.

Blog posts

As I’ve made the leap to working for myself, I’ve written a set of “lessons learned” posts.

Podcasts

Podcasts are my most valuable resource, because they provide a slow drip of insight and expertise. Listening to a podcast provides a regular insight on how other think about this stuff, without a large commitment.

  • Business of Authority. This is my #1 recommendation in podcasts. Rochelle and John are focused and understandable. This isn’t some 2 hour rambling podcast. They provide expertise from very different types of businesses. Every week I enjoy listening to this.
  • Ditching Hourly. John continually beats the drum of “hourly work is bad”. Even if you never switch to a flat-rate model, this podcast will help you think of yourself as a business, not as a technician.
  • Startups for the Rest of Us. While the topic is startups, the actual focus is small businesses. If you are a business, this podcast will have something for you.
  • The Freelancer’s Show. More of a casual chat format, this show regularly has lived experiences from developers working for themselves.
  • Finish your Damn Course. If you are a freelancer, you should consider offering products, not just services. Janelle interviews a wide variety of guest who are making training courses on wildly different subjects.
  • Creative Class. This podcast is generally only active when the Creative Class course is open for enrollment. I love the easy style Kaleigh and Paul have when talking about freelancing.
  • Building a Story Brand. Marketing isn’t always fun or intuitive work, but it is important. Donald Miller explains marketing in wonderful down to earth terms.

Books

Sometimes you need to read a book to get a core idea to stick. Many of these books are also available as audio books, so even if you are busy you can listen to them while exercising or cleaning.

    • Consulting
      • Getting Started in Consulting. If you travel, you probably have a checklist of everything to pack. This book is a big checklist of everything for starting your consulting business.
      • The Secrets of Consulting. Consulting is the art of telling people they are wrong without them having to admit it. This is a fun read on all the weirdness of being a consultant.

  • Running a business
    • The E-Myth. So many of us go freelance because we are great technicians. But we also have to be managers and entrepreneurs, and much as we might hate it. This book covers that through a great parable.Company of One. I absolutely love Paul’s approach to running your own company. This is a great book for thinking about the unique advantage of running a company of one.
    • Building a Story Brand. If you buy one book on marketing, buy this. It is the most intuitive, plain-English explanation of what marketing is that I have ever seen.
    • Built to Sell. While it’s almost impossible to sell a one person business, it’s important to think about it anyway. Much of your work can be automated or outsources, but you have to work hard to identify which parts.
  • Productivity
    • Getting Things Done. The best book I ever read on productivity. A series of simple guidelines for defining and organizing your work.
    • Atomic Habits. One of the hardest parts of working for myself was rebuilding structure and routine. This is a great book on the subject, very practical.
    • The Phoenix Project. While technically a book about IT management, there is insight for everyone. I found this book tremendous in helping me think of work as a flow and not just concrete tasks.
  • Communication

Courses

I’ve only taken one course for freelancing and the was the Creative Class course by Kaleigh and Paul Jarvis. If you are brand new to freelancing, I would consider this but definitely listen to their podcast before you buy. The content is easy to follow and enjoyable, but quite introductory. If you’ve been doing this a year or more, you likely won’t get as much value out of this course.

Software

There are tons of pieces of software out there for running a business, but here are some I have had experience with.

  • Toggl. I use toggle to track my time spent. Having a weekly timesheet makes it easy to track billable hours and review what my focus is.
  • Trello. If you need to collaborate or track todos, Trello is a great free tool.
  • Quickbooks. If you are running a business, then you need to track your books and send invoices.
  • Mailchimp. I send my weekly newsletter using Mailchimp. It’s simple to use and fairly cheap to start out.
  • Buffer. whenever I have a presentation or a course coming up, I like to schedule social media posts. For that, I use buffer.
  • Emergent Task Planner. Not actually software, but I find this note pad to be useful for planning and tracking my day.

Summary

When you work for yourself, you need to manage the entire pipeline Marketing –> Sales –> Delivery. You need to think of yourself as a business, and you need to have a plan for growing your business even if you always stay a “Company of One”. You need to rebuild structure and routine and find a way to focus on your work.

Consulting is a unique job. Freelancing is a unique job. With the right resources you can succeed at both.

Lessons learned from being self-employed, 12 months in

This months marks one year of working for myself, and undoubtedly I feel mixed about it. I’ve made a number of mistakes that I can’t help feeling dumb about. In retrospect, I probably wasted three months learning these lessons the hard way. And yet, it’s a lot like a hot stove. People can tell you it’s hot, but until you touch it you won’t quite grasp it. Here is what I’ve learned from a year of self-employment

What I learned

Don’t force your job into your dream job

When I quit my job, I had ambitions of doing all the things that give me life. I was going to attend more conferences. I was going to study all of the time. I was going to write more. I would work whatever hours I wanted, whenever I wanted. These were all things I imagined I would do once I quit my job.

And while I did many of these things, I was putting the cart before the horse. What I learned is that I needed to get the fundamentals in place first. I had to learn how work from home. I had to learn how to rebuild the boundaries and structure of a normal job. I had to learn how to create a new routine.

And as a result, I probably spent the first two months a bit unfocused. I also made a number of commitments that I am finally coming out the other side of. While I’m proud of all the presenting and speaking I’ve done this year, I wish that I had put first things first.

Respect your human fragility

I underestimated just how human I am and how hard this would be. Often it was dumb stuff, like needing to set office hours. I’m used to just being productive, just getting things done. But in reality, there was so much invisible scaffolding that had been supporting me, that I had interpreted as my own strength.

When you have a day job, you often have set working hours. You have coworkers and expectations. Consequences are often direct and measurable. Most people work in a different environment than they live in, so our brains have context clues.

All of this goes out the window when you work for yourself and work from home. Consequences are both diffuse and existential. No one will yell at you if you put off marketing or sales, and yet your whole life depends on it. There’s a vagueness there that is unsettling. The temptation is to just work harder, to push harder if things aren’t working. But without some structure to push off against, it is exhausting.

Find a way to rebuild that structure

Through trial and error, I found a way to rebuild the structure I had given up. I set office hours of 9AM-6PM, with an hour lunch. I peppered exercise through the day. I worked on breaking things into concrete tasks. I started building a python app to track personal todos and basic things like checking my blood sugar.

I feel like I’m starting to get the hang of it, but I’m not quite there. I find mixing consulting work with creative work to be a challenge. It reminds me of Paul Graham’s essay on Manager’s schedules versus Maker’s schedules.

The contrast of urgency and distant deadlines, of deep work and quick meetings, can be quite jarring. In theory I’d like to have dedicated days for creative work, but it never seems to quite work.

Join a peer group

One of the smartest things I did during this process was a lucky accident. I was friends with a wonderful peer in the Pluralsight space. He lived near me and was a full time author. And when I quit, he invited me to join his mastermind group. We have a Slack chat and we have a Skype call every other week.

Working for yourself is incredibly and brutally lonely, and alienating. You are making all of these decisions and going through new experiences. Having someone to bounce ideas off of is critical. It is so relieving to have a group of peers going through the same thing.

Take a vacation

Schedule a vacation. Make it happen. It took me 8 months but I had a real vacation. By planning it far in advance, I could warn clients and build it into my schedule.

When you work for yourself, there is a creeping sense of opportunity cost. Let’s say your billable rate is $100. That means every movie is $200 you could be earning. That board game is $100 you could have made. And that vacation is $2,000 you didn’t bill someone.

And that is why you need set office hours. That’s why your need strong boundaries. And that’s why you need to schedule a  vacation. Because otherwise there is a temptation to work yourself into the ground.

Was it worth it?

So, was it worth it? Would I do it again? Let’s look at it financially first.

Financial benefits

At my prior job, I made about $65,000. This year I made $85,000 in gross revenue. So, big improvement right? Well…

So, when you work for yourself you have to pay all of your own health insurance, 401k and vacation. You also have to pay both halves of the payroll taxes. Realistically, it turns out to be a bit of a wash, when you factor in all of these costs. Overall, it has been a modest improvement, at the cost of monthly consistency.

If I really wanted to make more money, I could have taken a job with “Senior” in the title and gotten paid $80-$100k AND benefits. At the same time, It probably would involve being on call or quite a bit of stress.

Personal benefits

The personal benefits are huge, and I will probably not take a regular job for the next ten years. When you work for yourself, you decide what you want to focus on and specialize in. You do set your own hours and eventually you can fire your worst clients. There really is something soothing in knowing you have control over your career.

But beyond that, working for myself has allowed me to be a caretaker for my mother. I’m able to visit her 3 days a week and take her in to a Medicare replacement program. I’ve been able to see a marked improvement in her quality of life as a result.

So yes, it was worth it and I would do it again. I just wish I had a time machine so I could do the first year the easy way, haha.

GroupBy Conf was a stepping stone in my career. You should submit a session.

The year was 2017, and I was feeling a bit stagnant and frustrated. I had spoken at a handful of different SQL Saturdays, and I wanted to know how to get to the big conferences:

“There’s a joke about industries with no entry level jobs. How do those types of industries exist? How do they not just die out? But I don’t think entry level is the issue here. There are tons of opportunities to speak at user groups. SQL Saturdays are a clear stepping stone after that. The next step is…less clear. Do you blog? Do you speak at virtual user groups? Do you go to 20 SQL Saturdays a year?

No seriously, I don’t know. Can someone tell me? You wanna know why I started presenting at virtual user groups? Because I asked someone how to get to Summit, and they suggested that as a stepping stone. I think it’s important to give “new” speakers like me a path for reaching the top.”

Two months later, I was accepted to speak at the GroupBy conference about how to keep up with technology. It was a little nervewracking, but it went great and was truly a stepping stone in my career. It was my second virtual presentation and bigger than anything I had ever done. It helped me grow as a speaker, and later that year I was accepted to speak at PASS Summit.

I can’t ever know if that was what got me accepted to Summit. It might have been my abstracts, it might have been the fact that Summit was during Halloween, or that I had done some Pluralsight courses by then. But I truly believe it was part of the equation.

Now as someone on the other side of the selection process, I can definitely say that you will benefit from having an online record of your presentations. Having online presentations allows people to see that you can speak well and get a better idea of the type of material you cover.

Submissions are open for a few more days for the October session. I hope you’ll join me in sending in a few sessions, and I hope to see you there.

T-SQL Tuesday #116 – I only do demos on SQL for Linux

T-SQL Tuesday

When I first heard about SQL on Linux back in the beta days, I really didn’t see the point. Was this an attempt to steal customers away from Oracle? Was this intended to appeal to Postgres and MySQL users who were used to $0 licensing? Were that many organizations that were fully Linux except for the one SQL server?

And then as I learned more about devops and containers, it started to click for me. And while I’m still fumbling with devops, I’ve found one really good use for Linux and containers: demos.

Specifically, making a presentation on SQL Server 2019 is what convinced me. I presented on it back when it was still called vNext. Then 5 months later I was presenting it again. But now I had to uninstall it and reinstall the latest version. And I have to find whatever virtual machine I had installed it on in the first place. I had a virtual machine because I didn’t want to contaminate my host laptop.

But now, I can run 5 lines of code or less and suddenly I have the latest CTP ready to present against. All in the time it takes to down the update plus a minute or two. I couldn’t do this without SQL on Linux and Linux containers. So, at least for demos, I’m never going back.

Are You the Same as Your Business?

In Pennsylvania, if you start a business it starts out as a sole proprietorship. Legally, your business has the same name as you, and until you get an EIN, it can be identified by your social security number. In a very real sense, your fledgling business is you. But the question is, should it be?

I recently read two books that have got me thinking about that question. First is “The E-Myth” by Michael E. Gerber, which breaks people down into 3 contradictory personalities: the entrepreneur, the technician and the manager. Whenever you start a business, there is a little bit of each in you. Often times, however, you are mostly a technician. You quit your job because you were good at doing the work. But as I learned the hard way, there is more to running a business than just being technically proficient.

Another thing that it talks about is how businesses should be designed like the prototype for a franchise model. There should be standard operating procedures, code and processes for everything. Literally everything. As a solopreneur, this seems so strange at first.

We get even stranger when we get into “Built to Sell” by John Warrillow. This book is all about making a business that can be sold and live without you. What are the things that make a business appealing to buyers? I say this is strange because, as a consultant, if I left the business there wouldn’t be anything left. It literally has the same name as me, right?

But I’ve been thinking about it more, and not everything has to or should be me. When I make video courses, I pay an editor to do all of the video editing. As a consultant, in theory, I can make anywhere from $100-$200 per hour for what I do. Most of the things I do, such as accounting, or social media management, are nearly as valuable. So logically, even if I can’t separate myself from my business, or ever sell it, I should be thinking about the piece I can carve off. I may be at the core of my business, but I don’t have to be all of it.