Archive for the ‘Life’ Category
Hiring in today’s market
It is crazy how today’s job market is. Earlier I was looking over the new topics on Hacker News for the “Ask HN” threads and was surprised to find three “whose hiring” ones in the past 7 hours.
Today’s market is super competitive, especially at the entry level jobs. My sister graduated from CSU Fullerton with a degree in Journalism and Graphic Design, which has a strong communications program and is well respected. She was also a contributing author to the school newspaper, interned at Us Weekly in Los Angeles for two years, and interned for Us Weekly in New York over the summer.
She graduated in May, but just now was able to get a job in her field. That is nuts. Granted over the summer she was doing an internship in New York, expected to stay there but later decided to come back to California. But she still was actively looking for a job from August to the end of January. On the job she finally got, she beat out 250 other people who’d submitted resumes. She was also in consideration for another job, that one was up against even more people and it came down to her and one other person.
The market today is a stark contrast from when I was in college and all my professors and advisors were touting how easy it’ll be to get a job and making $60k easy. I would be scared to be graduating in today’s market.
Today, a degree is just a piece of paper. Everyone else who is graduating with you has the same piece of paper. To beat them out, its who you know and the experience you have. I’m by no means saying college is worthless, but rather it isn’t everything. I’m a college drop out… I left college to work at Telligent. I’ve been luck enough to have it work out, and now my work experience would be more relevant. Its no longer enough to just go to college.
Building on James’s comment in my last post, a web developer today needs Google juice behind them. A degree is great, but so is a blog with relevant topics, involvements in projects, a Github profile, and more.
Migrated to Wordpress
Last night, I managed to migrate my blog from Graffiti CMS to Wordpress. I’d been planning on migrating for a while now, but was just a matter of finally deciding to sit down and do it.
Now, why did I migrate? I know a few months ago, I caught some slack on Twitter for stating that I didn’t see what all the drama of Graffiti was (this was pre-open sourcing). And I still agree. Graffiti is a great tool, I liked it and enjoyed it, however I ended up deciding to migrate for a few reasons. Most notably is the plugin availability/community. Wordpress has tons of plugins for different tasks, and Graffiti simply doesn’t compare. The developer in me may say “hey, I can write my own” but the reality is that I don’t have the time to or really want to. I wanted a drop dead easy way to include code in posts and didn’t want to fiddle with it. I wanted easier media management, and didn’t want to come up with something new on my own.
I had tossed around the idea of writing my own blog, since I wanted it off of my servers, but other services like Tumblr didn’t have quite what I wanted. I thought it’d be nice to write a simple one in Sinatra and use MongoDB (via MongoHQ), but it again came back to prioritizing my different projects, and I’ve called blogging apps the new Hello World.
In the move, I also wanted to bring over all the content from my original blog, qgyen.net. Now I have basically merged the two blogs and everything from my original domain redirects here. Gain more Google juice, and sadly, my old dead domain had still more subscribers than my new domain. Yes, sad.
How was the process? Not too bad. For a good guide, I’d recommend Jef’s post. I made a few changes through:
- I used the original VB.NET version of the GraffitiToBlogML tool (link). I simply found it before the C# port.
- Both the VB.NET and C# version have the potential of producing invalid XML. They basically just write out XML directly rather than use the XML libraries within .NET. One place it broke for me is they produce the old post uri by basically taking the post title and replacing spaces with dashes, it doesn’t strip invalid characters. I had some posts with quotations in the title (“). This broke the XML. I changed it to use category.LinkName and post.Name, since those are the url-able portions used directly by Graffiti itself. I also had it not append .aspx, since Graffiti didn’t actually do that.
- BlogML seems to treat the post’s creation date as when it was published. This can be an issue if you had migrated from to Graffiti from something else, like Community Server. I had 300 or so posts who up in December 2007 at first. The migrated data had a creation date of December 2007, but Graffiti had a separate Published field that marked when it was published. I changed the tool to handle that so I could migrate my data right.
- At least in the VB version, it was missing some null checks, I ran into one with TagList being null instead of empty.
- I imported using the BlogML importer rather than MoveableType one. For a really simple walk through, see this guide.
I will definitely miss Graffiti, since it was so drop dead simple to use.
Expressing your passion
How many times have you had a dialog like this: I should blog more. Well, what should I blog about? I don’t know, but I should blog more. Though I don’t want to sound boring, repetitive, or like an idiot.
There are probably two problems at work. First, over thinking a simple problem. Second, finding what you’re passionate about and how to best express it.
There are a number of top notch developers who hardly blog, if at all. But when they do, it is pure gold. They speak more with code than on a blog. You don’t need jaw dropping libraries or masterpieces, but just useful stuff someone else might want to use or read.
Want to find who the true leaders are? Find prominent people on Github and see what public projects they have. You’ll quickly find who is down in the trenches.
Having just gone to CodeMash 2010 last week, I am certainly reinvigorated. Especially after Joe O’Brien’s talk on "Refactoring the Programmer". It was really spot on with so many aspects of the developer’s lifestyle. Some things I’ve taken aware include:
- Scale back Twitter. It is a time sink and I rarely learn anything in that time.
- Blogs are great, but scale back what I read. All about finding the most value for the time. Ignore banter and marketing. Find others who show their passion in their writing.
- Write more code. Practice makes perfect. Athletes aren’t just naturally talented, they practice and are learning continuously.
- Read more code. Find good leaders, and learn what they’ve already learned.
- Read more books. And not necessarily on coding, but on improving yourself overall. Happiness comes from improving overall, not just in your profession.
- Go out on limbs. If you put something out there, ask people to check it out and give some honest feedback. If you have a question, seek out an expert and ask them. Be clear in what you’re asking, courteous of their time, and you’ll likely get your answer.
- Reciprocate. Asking for help is a two way street, so you need to pay it forward. Forming connections goes a lot further than hoarding your time.
My passion is in doing. Nothing makes me happier than hacking away on some random idea until 1-2am. And it is contagious. It bleeds over into all that I do. I put out better work during the day. I’m glad to go to the grocery store before dinner. I’m happier paying my bills. I came out of CodeMash with a whole list of things to hack on and hopefully get even more to keep me invigorated until next year. And hopefully I can throw the ideas out there, get some feedback, and create some value for others.
Honesty isn’t overrated
Last Friday, I had to go to pick up a piece of furniture with my dad that we’d been waiting for. We’d told them we’d be in at 5pm to pack it up, and they’d said they’d have it there from their warehouse before then. Sure enough, we get there at 5pm on the dot, and it is still at their warehouse. Luckily it is only 3 block away, so we follow the owner over there to pick it up.
When we get there, he says that he could make up a million excuses about why he didn’t have it there by 5, but the truth was he just forgot. His wife told him that morning it needed to be there by 5, but he forgot.
It may seem minor, but I was impressed he was so frank. Most places would act like they had no idea, it was someone else’s fault, or somehow your fault. When we got there and he said it was still at their warehouse, I was rolling my eyes, but when we left, was saying no problem and didn’t mind at all.
I don’t get medical billing
I don’t get how the medical industry can function.
So I’ve already posted how the hospital was gunning for their money 30 mins after my son was born back in July. So they got paid.
Then when he was coming up on two months, we started getting a trickling of other bills. The OB had some weird billing practices and we still owed on her delivery. Then we got the copay bill for the circumcision. Then we got the copay bill for the anesthesiologist. $300 here, $200 there, $400 for that one. What next, is the cook going to send me a bill for the room service?
Why can’t they just do all inclusive billing? I would much rather know all my expenses up front than to get bills trickling in one after another 2 months after the fact.
But then the thing that made me nearly crap my pants. Got the mail yesterday to find something from the hospital. Open it up, and the first thing I see before opening it up all the way is “Amount Due: $14,472″. I accidentally let an expletive slip with a toddler in the room. Though one you open it up and look over the fine details, you see it has three boxes: Amount due, amount due from insurance, and amount due from patient. The $14k was amount due from insurance, amount due from patient was $0. But why are they sending me a notice that insurance still hasn’t paid them? I don’t care. The insurance industry is just as messed up as their own billing practices. At the very minimum, they could make the statement a little bit clearer. It isn’t pleasant to take it out and see the top 1/3rd first with some big dollar amount.
That’s my rant for the day.
Ruining a moment
Yesterday, I’d posted about my son’s birth the following Friday. One thing that really irked me about the experience was the hospital ruining the moment after my son was born.
Shortly after Josh was born I was in the nursery watching the nurse bathe him, one of the other nurses came in and said the front desk was asking me to come down to handle my deductible/copayment. Josh was born at 9:34pm and my receipt was timestamped 10:13pm. So when my son was 39 minutes old, they were already wanting their money.
I couldn’t believe it, and my family was standing there asking “where you going?”
When my first son was born, I don’t remember the hospital asking me to pay the whole time we were there. I think they just sent me the bill. If I did need to pay there, it wasn’t 30 mins after he was born, it would have been later at a insignificant time to where I wouldn’t even remember it.
Sure hospitals have been hurting for money, but they could be a little more sensitive. Gee, you just welcomed a new life into the world, your going to be there for 3 days… there is plenty of time in there to have me pay rather than right afterwards.
New son, Joshua David Robertson
Last Friday, on July 10th, 2009, was pleased to welcome a new life into this world. My second son, Joshua David Robertson, was born at 9:34pm weighing 8lbs 5oz and 19.5″ long. He was originally due for July 22nd, though Trish had a c-section scheduled for Monday, July 13th (our last son was a c-section, it is hospital policy to always give c-sections after you’ve had one).
Friday night we were getting ready for dinner when Trish started feeling some strong contractions. She called her doctor who recommend we go in to hook her up to some monitors. Low and behold, she was at 7cm already and they were rushing to get her ready for the c-section before her water broke. It was kind of crazy as there were 4-5 nurses in the room getting everything hooked up and ready to go. All and all, it was 2 hours from when we were sitting at home and Josh was born.
Initially, Josh was on the observation table for the first 12 hours. He took a gulp of fluid on his way out, so they had to suction his stomach a couple of times and watch to make sure his lungs cleared up. Apparently, it is common with c-sections. He was ok by the next morning and was hanging out in the room with Trish from then on.
On top of that, he had a true knot in his cord. This is where he wiggled his way around and developed a knot in the cord. If he had been in there longer, or if they tried a normal delivery, it could have easily tightened and cut him off. He was very lucky.
Trish and Josh came home on Monday and we’ve been doing very well. He is adjusting well, Nick (our 1st son, 22 months old) is getting used to him and likes helping out. Josh is a pretty good sleeper, though still has his days and nights slightly off.
This time, taking advantage of some state programs for family leave, so taking a full 6 weeks off. So I’m now one week in, my inbox is overflowing, but been enjoying it so far. Have 5 weeks left, though I don’t think I’ll be able to make it much longer without doing some sort of dev work. I’ve already chimed in on a couple email threads that I couldn’t resist. Will definitely enjoy the remaining time.
![Joshua David [pic]](http://krobertson.smugmug.com/photos/588501130_WqyDv-XL.jpg)
Contemplating some computing changes
Recently have been thinking about some computing changes.
I switched over to a Mac almost a year and a half ago, and have been all Mac for a year now (Mac Pro desktop and Macbook Pro laptop). I have definitely fallen in love with my Mac and the tools on it. I absolutely love Spaces/Expose, Things, Quicksilver, TextMate, and the strong console environment (I’m a linux geek deep down too).
I still code in Windows though. During the day, I live in VMware Fusion. Fusion is a great app, but some of the annoyances of using VM so much are starting to catch up with me. First, I like to keep Outlook and coding separate, so I actually run two VMs all day long, one with XP and Outlook with 512mb ram, and then I code in a Windows 2008 VM with 2gb ram (I know 2gb is not helping).
My Mac Pro has 8gb of ram total, and while during the day I only have 2.5gb of VMs running, I constantly find the memory bar in iStatPro bumping up against full. I find that a little puzzling and is one reason I haven’t gone beyond 2gb on the dev VM. Other than those VMs, I usually have Adium, Safari, TokBox, and sometimes a Terminal session open (I seem to use irb a lot, even if just as a calculator).
I’d like to find a better way to improve my life.
One possibility is to move my desktop back to Windows. I would certainly gain a lot of speed, getting full use of the ram and running native, but Spaces/Expose are so ingrained into my daily use, it would be hard to lose them. If I did though, I would still keep OS X on my laptop so I can still use Things, TextMate and some of the other Mac tools. Also, the reality is I don’t really do much Ruby coding on my desktop. I always do Rails/Merb coding at night and its almost always on my laptop, in the living room.
In running prices, I think I could almost sell my Mac Pro and build a new Core i7 12gb SSD system for the same price. Sadly, Mac desktops have a huge premium. Though it is beyond me how they make dual Xeons so quiet.
The other option is to keep the Mac Pro, start running my dev VM with more ram and possibly upgrading to 16gb ram. An SSD or two is likely in my future as well, so I could have one for the OS and one for my dev VM. I would also need to find someway else of using Outlook, perhaps just running it on a spare PC and RDC to it or something.
One thing is for certain though, running my dev VM on my laptop is a painful experience. I’ve been playing with ASP.NET MVC lately and using my VM on my laptop is just annoying. I already have my MBP maxed out at 4gb ram, and it runs the same 2gb VM. But even aside from memory, virtualization uses more CPU which means more heat on the laptop and sometimes the fan goes wild even though I’m just doing basic stuff. In talking with Jayme though, he says he RDCs from his laptop to his desktop to code, so I could probably just have a small Windows XP VM and RDC into my desktop or into the dev VM on my desktop to make life easier.
As a trial though, I’ve installed Windows 7 RC x64 on my desktop with Boot Camp and will try it out this week or coding. I’ve installed Switcher, which seems like a nice replacement for Expose, but don’t know about Spaces yet. Maybe I’ll try a day or two with my dev VM bumped up to 4gb as well.
Drawing lessons from a failure
Recently, a sandwich shop here in town closed up. I wasn’t really all that surprised, since I knew it was doomed for failure from the beginning, but I was thinking about it and saw some useful lessons in it.
This is the story of the Mr. Pickles Restaurant in Lodi, CA. For almost 2 years, my wife and I lived just down the street from one of them in Elk Grove and I literally went there 2-3 times a week. It was awesome. When I saw one was opening here in town, I was excited to finally get a new sandwich shop in town, and the same one I loved going to before, but had a sense from the beginning that it might be ill fated. The building it was opening in was previously a Togo’s which had closed a few years before because no one went there either. I knew the Mr. Pickles could fall to the same fate.
The place was on the David Letterman show shortly after it opened in his “Small Town News” segments. They had a guy in a pickle costume dancing on the street corner. The cops were called on the giant pickle for holding up traffic one day. It made the local newspaper’s cop log, and ended up on Letterman. And yet just one year after that, it is closed up.
Location == Usability
The saying “location, location, location” is often over used, but always true. Can also say “usability, usability, usability”, but it is more of a tongue twister.
Things like being on the right street corner are important, but there are other factors of a location that killed this place. It is on a small lot on the corner of a busy street. There are maybe 6 parking spots. This is a big killer for your lunch crowd. First, it is busy, so pulling into a small lot might be fun. Then you find the lot is full of 3 other cars looking for a spot, which are there are none. So you fight your way out, go down the street, flip a U, and go park across the street in the much bigger lot and then you need wait at the crosswalk to go get lunch. Lesson: Don’t make people have to do extra work to get to your place, or use your app. If it is difficult to just get in the door, people won’t bother. If you app and slow to load, people will just move on. If it is a pain to register, people will skip it. A recent paper by Pingdom mentioned 28% of online shoppers will not wait more than 4 seconds for a page to load. The number goes up to 1/3 when looking at broadband users.
Choose your competition
Another killer… when you end up going across the street to park, in the nice big parking lot, there is another sandwich shop which has been in town since forever which everyone knows and loves. Right across the street from stiff competition isn’t the best place. Just the act of having to go across the street could motivate the person to go to the other place instead. Lesson: taking on competition is great, but sometimes focusing on where they’re weak might to better. With a restaurant here in Lodi, there are plenty of busy areas that could use a deli. Or be much more specialized with your sandwiches, rather than run of the mill. With software, if you competitor is weak in one aspect, make yours be awesome at it as well.
Brand yourself, and stick to it
One of the things this sandwich chain thrives on is individuality. It is a chain of franchises, so each restaurant has some differences. One thing is they all have the same sandwiches, but they all name them differently.
This can be a positive and a negative. You can go to one location, fall in love with a sandwich, but then go to another one and be completely lost looking at the menu. This can be confusing, especially if you don’t know they do this.
You also need to stick to it though. The sandwich shop here in town copped out. There is one 20 mins north from us in Elk Grove, and one 20 mins south in Stockton. Instead of coming up with their own names, this restaurant copied the names of the ones in Stockton. If your chain promotes individuality, then work it. In this case, I walked in expecting a new set of names only to realize it lacked originality. The franchise owner for this store was a disappointment.
Watch associations, and keep clean toilets
One thing about the building for the restaurant is that it lacked an inside bathroom. Bathrooms are important. People like to wash their hands before eating, people got to go pee after drinking a soda, etc. If your only option is a bathroom out around back, using it becomes unattractive. You start getting pictures of those gross bathrooms around back at the gas station where the key is tied to a giant hub cap. Associations are important. You don’t want people about to eat picturing bacteria infested bathrooms with keys on hubcaps. Not sure of a parallel to software, but don’t write something that sucks. Associations come from negative outlooks. People thought Rails was slow because Twitter had problems. Think of the anagrams for FORD.
Meet basic expectations, or exceed when you change expectations
One thing I’ve noticed at the Mr. Pickles I have been to is that they don’t have fountain drinks. This is such a basic requirement for most people that they don’t understand why a place wouldn’t have them. People want to fill up themselves, they might want more than a 12oz soda, and they often like to refill before leaving. Fountain drinks aren’t that expensive. From what I know, soda is a tremendous rip off. But Mr. Pickles doesn’t have them. The one here in town just had normal 12oz soda cans, and a couple 20oz glasses of things like Gatorade. Nothing special, just what you’d normally find in your own fridge or at the grocery store.
Couple this with the bathroom experience, and some people like my parents only tried this Mr. Pickles once. They failed to meet basic expectations. If your app fails to load on the first try, forget it, you might be lucky if they try again.
In some cases, when you don’t meet basic expectations like fountain drinks, you need to turn it into something special. The Mr. Pickles in Elk Grove which we loved so much didn’t have fountain drinks either, but instead of offering normal 12oz sodas, they were fully stocked in specialty drinks. Those brands you’ve never heard of but have the awesome flavors? They had a ton of them. They had a couple Pepsis and Sierra Mists for the vanilla people, but they had tons of brands you’ve never heard of with funky names and labels that made it an adventure to try them. When we went there, I made an effort to try all the different ones they had. The owner would regularly cycle out the ones that weren’t selling well and get something new. We got to know him and he’d tell me when he got something new in and ask my opinion.
The one in Lodi again copied the Stockton store which lacked originality. If you’re going to copy another place, copy one that rocks, not the plain one. The Stockton one stocked only normal drinks. Its only saving grace is they got a good location. The Lodi one unfortunately didn’t duplicate that. If you’re not going to meet a basic expectation, then turn it into something more exciting. Turn it into an adventure, a feature, a positive, something to differentiate yourself rather than undermine you.
Working from home through life’s stages
I had been talking to a friend recently about working from home and how it has been over the past years. I’d realized that I have a special perspective on working from home as I’ve been doing it for last 4 1/2 years and have been progressing through several of life’s stages. Over that time, I’ve collected a good set of pros/cons of each, and some tips overall that could be valuable.
I started at Telligent as a contractor when the company was only a month old, and three months later was hired on as a full-time, salaried employee. For my first year at Telligent, I was single (well, engaged), living on my own with a roommate, and independent. After that, I spent two years married with no children. And I’ve spent the past year and a half married with one child (and will be two children in 5 more months). These are pretty much the three stages others in the workforce would find themselves in. Each of them have their own sets of challenges for working at home, as well as different sets of benefits. Additionally, the transition from each can present some difficulties.
Single/On Your Own
This stage I pretty much characterize as the “bad habit risk” stage. When I first started working from home, I was engaged, but at the time primarily saw my wife on weekends. She lived about 45 minutes away, and we’d usually meet up once a week for lunch or spend the night together, but mainly saw each other on weekends. So during the week, I was on my own schedule. Working from home in this way, you can develop some really odd hours and habits. I was very much a night person, so my sleep schedule got all off. I was usually up from 9am to 3 or 4am. There were times where I’d still be up at night when Scott, on the east coast, would just be getting up. I would pretty much work, in some capacity all day. Partially because Telligent was very young, so I was doing a lot of hacking on things. Rob would say something like “it’d be cool if you can read the forums through NNTP” and I went off and wrote an NNTP server for Community Server.
It is easy to develop this kind of schedule when on your own though, since you don’t generally have anything to counter balance you. If you want to work all day, you can. If you want to stay up all night coding, you can. There aren’t as many external boundaries as there are at other stages.
In terms of just awesome code hacking, this stage is awesome… you have all the time you want. You can get as deeply engrossed in code as you want. However some negatives are vitamin-D deficiencies, skewed eating schedules, and can make future transitions harder. My eating schedule was so far off at that time. I’d eat lunch like 3-5pm and dinner at around 10pm. My mother used to say it was bad to eat late and go to bed, but in reality my schedule was like everyone else’s, just off 3 hours. I get up at 9am, adjust 3 hours and it is around most people’s time, ~6am. I ate lunch at 3-5pm, which adjusted is 12-2pm. I had dinner at 10pm, which is 7pm when adjusted, and so on.
Married w/o Kids
The next stage is when I got married, but didn’t have any kids yet. This stage can be characterized as “limited face time”.
The transition to this stage can be kind of tough. My days used to be 9am to 3am, but my wife got up earlier and would often wake me up while she was getting ready, and me being up late and moving around could keep her up at night. Also, I was used to working through the day pretty much, but now she’d want to spend time together at night. I had adjust to more normal hours, and normal work hours. As a result, I saw a drop in terms of overall output. A lot of it was from not being able to put as much time into things, but part of it was my most productive time (at night) was now gone, so I needed to find ways to be more product at other times.
With this, process becomes more important. I got on more of a daily schedule. I read up on Getting Things Done and tried to be organized. Before, I was very productive, but lacked organization. I made up for it with an abundance of time. Now, I was limited in time, so needed to compensate by being organized.
One of the challenges with this stage can be personal interaction. Gone were the times of die-hard hacking til wee hours, and instead I found it challenging that the only person I had interactions with on a daily basis was my wife. I love my wife, but I didn’t get to interact with enough people. Sure I might go out and grab lunch, but not going to spend time chatting with the clerk at Togos.
Some other challenges include bleed-over effects between work and personal time. It is very easy for work to bleed over into personal time, especially with email. It is best to just simply close email at a certain point in the day. Maybe check it a time or two for emergencies, but generally just accept that most things can wait until the morning. Nothing is that urgent. Allowing the two (work/home) to encroach can strain things at home, and an unhappy wife means an unhappy dev.
Married with Kids
This would be my current stage. The transition period to this stage sucks, but is limited. Overall, the lessons learned from the no-kids stage are valuable, but the transition period is marred with being constantly tired and insomnia. I was only off for 2 weeks after my son was born, and that wasn’t long enough. He was still getting up ever 2 hours at night, and my wife and I were both super tired. This meant productivity was down. Luckily, once he started sleeping better, it improves and eventually returns to normal. The next time around, I’m taking 6 weeks off. By that point, should be better adjusted and ready to come back. In general, take as much time as you can, because it is nice to enjoy the new member of the family, but also the longer you wait the better your sleep schedule will be.
My own experiences with this stage might be unique, but I think it is also where you benefit most from working at home.
Our situation is where my wife is a pre-school teacher here in town. Since pre-school days are pretty short, she is basically just part time and is usually home by 1pm. Since August though, attendance at the school was down (damn economy), so they cut their Tuesday/Thursday class. This did mean my wife basically got a 40% pay cut, but it also meant she (and my son) were around all day on Tuesdays and Thursdays.
The benefit of this stage is being able to spend quality time with the family. It is nice to have no commute, so whenever my wife is home, my son is home. When I take breaks every few hours, I can just go out in the living room and play around with my son. People who have long commutes often miss out on the family time. In working from home, you don’t have that and if your kids are around, you can take a few minutes out to go see them.
This can be a double edged sword though. First, they can distractions if you allow them to be. You might be tempted to go out and play when you need to get stuff done. Or more so, a crying baby can kill concentration. And second, it can pull at your strings a lot. There are sometimes where my son gets used to me being around and misses me, so he’ll come to my door during the day and bang on it, or follow me into my office, and so on. When they’re being cute and having fun, you can feel guilty saying “Daddy has go do some work”. Part of it is realizing you still have it better than most and to not feel guilty too much.
Additionally, it is important to lay some boundaries and close yourself off. Even if kids aren’t around much during the day, you may still need to contend with summer vacations. For me, when I am working, my office door is closed. I work in my office, when I am out of my office, I am not working. If the door is closed, do not bother (or please knock). Though along with that is setting some work hours. I don’t want to be interrupted to change a diaper at 11am, but at 6pm it is ok.
Overall
Overall it does take a lot of discipline to successfully work at home. It is not something that is for everyone, and it is something that you go through in waves. At times you will love it, and at times you might hate it. It all comes down to your own discipline to keeping motivation, keeping a schedule, and not burning out.