Working from home as a father and sleep in biphasic or polyphasic cycles

For last 2 years, we have re-structured our company and teamwork process to become very (digital) nomadic. We have reconfigured all of our communication and project management processes to be remote-friendly. In fact, 7 out of 10 of our team members work completely remote. 2 of the team members that I’ve been working for last 2 years that I haven’t met in person 🙂

I took parental leave from my company last few weeks and now I’m back to work. Before I was fully coming back, I was trying to figure out how my early baby-care schedule will be working out with my work schedule.

First I re-read some of the old topics that I used to research about sleep patterns, work and focus management experiments I used to do. I’ll talk about them in this post. Then I started to create some alternative ways to define work, baby care and sleep blocks around the clock. This planning can get so anal if you want to. I kept it logically working with my existing baby-care schedule that I adapted last few weeks (since the babies arrived). Now, let’s dive into them.

Thinking about sleep schedule

Sleep is probably the #1 topic for new (or repeating) parents when it comes to newborn or young babies. I think people are doing this wrong for uncontrolled reasons. Having required working on certain hours definitely makes this harder to manage because if you have a full-time work that required you to be on-site or on specific hours, you don’t have any option to work and have to be concentrated within those hours and continue doing your baby care shift at evening, night.

Since I have the luxury to define my own hours of when to sleep, when to be awake, when to be working and when to be resting, I approached this from the “mad scientist” mindset. This actually comes from the “creative” or “scientific” geniuses that are well known in living or experimenting with alternative “sleep patterns”.

For people are foreign to the topic, there are very analytical methods of different ways to plan your “resting” hours for your day. Sleeping is not always necessarily has to be 1 block of time for 8 hours of sleep for everybody. A lot of people does multiple blocks of sleeping. Well-known example of this is “siesta” in Spanish/Italian/Latin cultures. This falls under biphasic sleep (twice daily). But there are more challenging and weird versions of this pattern as known as polyphasic sleep pattern (more than 2 times a day). The main reason for many people trying alternative sleep pattern is to decrease total hours of sleep and provide similar/enough resting time for the body, so you can save extra hours to live longer days.

This is why many scientists or creatives try these patterns to get more hours of working/thinking/creating for their peak creative years. Some of the well knows are Da Vinci, Edison, Tesla, Churchill, Benjamin Franklin, Thomas Jefferson. There are many ways to do this alternative sleep patterns but there are know models:

To learn more about polyphasic sleep patterns: https://www.polyphasicsociety.com/polyphasic-sleep/overviews/

So here is my formula that falls under Biphasic Sleep Pattern that I worked out with my own schedule:

Thinking about work schedule

Our team works in different timezones from different continents and with our clients being almost on the other side of the planet, everybody works in their own hours except our team synchronizes once every day at 10:15am EST. We do a very short standup usually averages around 5-6 minutes. Other than this we only focus on the deliverables and weekly milestones that are usually set up at the beginning of the week. Rest of the week, we keep collaboration between team members based on people’s availability without a strict model.

This allows me to define my own work hour blocks and breaks that I want to work at. So based on the splitting my sleep, I split my work hours into 2 main blocks with a long break in each work hour blocks. So I designed 4 blocks of hours on the remaining hours of the sleep to focus on my work.

The drawing below shows the work blocks and their sprints in it. I’ll talk how I think about these sprints when I sit down to work below.

How to create focus in work hours since baby-care can be super distracting

This is pretty much how to focus, how to plan your own time and this topic itself is a separate topic to cover with many alternative methods. I’ve been working in tech almost 15 years now and I’ve experimented with many many methods including the ones touches to the project management, provides team focus and better collaboration. Last few years the methods that is remote work friendly become more appealing for me.

I like the pomodoro framework with adding few extra tools and adjusting the strict-pomodoro with few changes. This was a model I worked many years ago and we did the team-pomodoro for a while couple years ago in our team with busy lights and team dashboards that plays well with our adjusted-Kanban style project management.

So, essentially I split my work hours to pomodoro blocks. Which is 25-minute work + 5-minute rest (30 minutes) sprints that gives me 15 pomodoros a day. Pomodoro is just a mental checkpoint for me. To me more important to think about, how to minimize distractions. With many “screens” that we carry and wear, it becomes so much easier to get distracted even if you lock yourself in a room to work. Below, few tips I follow when I execute my pomodoros.

1) No mobile device to be vibrating, flashing screen or making sounds while working in pomodoro. A simple way to do this is, disable your notifications – using don’t disturb on mobile phones is the easiest way to do this. Put your phone/tablet etc facing screen down on the table is enough way to achieve this. Don’t use wearables that vibrate – or disable everything. I only use apple watch in airplane mode for the timer.

2) Define with pomodoro blocks that you will use communication tools, email responding, slacking, trello, social network etc… Only allow yourself to use these apps/sites. Use a tool to restrict your access to social networks, email sites even apps to use on your mac/windows. I use “Focus” app to block distracting apps and sites that show an alert even if I forgot and try to open these apps or sites.

3) Stop when pomodoro ends. 5-minute breaks are essential and don’t look at the screen on your break. Drink water, stand up, lay down on the couch but don’t interact with screens while on your short break. Use a visual or strong vibrating wearable for your pomodoro to make you annoyed if you don’t walk away from the computer. I use apple watch and it’s basic timer to get me very very aware of the timer is up with haptic feedback. I tried jawbone up and other alarms – phone alarm or pomodoro timers on mac. Nothing is as strong as my solution for me.

Bad Product Design for Multi-Team Services: You have to be part of only one team!

I started to see this bad product design of having personal and team accounts linked together on some services. Most of them are doing wrong! The biggest limitation to be able to only have one team linked along with personal accounts. Two popular ones that drove me crazy lately!

  • Dropbox
  • Quip

Don’t these companies think there are millions of freelancers that have to be part of multiple teams? I’m not a freelancer but I have multiple initiatives and I want to use them on my mobile devices, desktop and I actively participate. Unfortunately, I have to keep logout and login on the browser. Sucks for Dropbox! Honestly, it doesn’t fully deserve a huge chunk of money I pay for these services every month. Please do it right if you’re calling this feature “Teams”. It’s not team dude, it’s just collaboration.

Becoming tech father

I’ve recently had twin girls and I’ve been in the process to become a parent. Have been reading and following tons about what to expect in pregnancy as well as rising a child. Obviously, one of the active conversations everybody is having in many different aspects is; how technology affects a child’s development. My opinion is, there is a lot goes into how technology affects a person’s education depending on how kids are exposed to the technology itself.

Since my babies are very small and won’t have the difference to have or not have technological additions to their life for a while, I’m thinking how I would use tech as a tool in my parenting. I’ve been adjusting my lifestyle and adapting my tech skills to taking care of my new babies. One of the things I’ve been reading was how engineer/developer dads approach to many different aspects of technologically enhancing their early parenting experiences. Most of these are obviously about optimizing the process of nursing babies, getting an early education with technological products.

New entrepreneurs are born with kids

(Not the kids that born but the parents becoming entrepreneurs)

Often we see a lot of new ideas and products come out of these raising-child struggles and ideas around improving ancient methods of childcare. We see many fun examples of them in Shark Thank 🙂 I really enjoy watching a lot of tech-dads or tech-moms seeing an inefficiency in the process and come up with a new way of doing this never changing life cycle of humankind. I totally get why childcare ignites entrepreneurial mindset.

Every human being born the same way, raised same way at least it’s very similar despite the cultural differences at least early on in their life. This creates an amazingly similar pattern to be worked with for an entrepreneurial thinking. And best, most parents repeat this cycle multiple times.

A new area to geek on for tech-parents

Not all the custom-made solutions make its way to being a new product or service. Most often, you see these small iterations shared conventionally. With the internet, now these conventional wisdom is out there in blogs (like this one). And many parents are sharing their experiences, how they overcome certain obstacles or struggles in their parenting journey.

This is particularly convenient for tech-parents. I’m sure I’ll be participating on this like others. In fact, I already made experiments with some hardware to enhance my fresh baby-care journey.

What this means in the internet, software world is pretty much a lot of new apps and some hardware supported software or services. Since geeking on this is essential, I will be sharing my experiences soon (within the tech-related topics).

Super Affordable Cloud VPS: Scaleway

Recently I have been having performance issues with few personal sites that I was hosting on my small Digital Ocean instance. I was using 2vCpu, 2gig ram instance costing me $10/month + 30gb disk for extra $3/month. To be honest this is a very very cheap personal server to have and host few sites as well as doing minimal software tests and playing a good proxy/vpn when I need it.

I have installed New Relic, Datadog, Pingdom and linked them to my personal slack account to have everything monitored and reported seamlessly. I’ve been getting CPU and occasional memory alerts mostly because of my wife’s blogs that is getting much higher traffic than my sites. Even with that traffic, it was making me feel the performance that I supposed to get from that server wasn’t as consistent as I wanted.

A new kid in the block

A few weeks ago I started going into cheap ssd vps hunt again and I saw many more players in the game including Amazon Web Services’ Digital Ocean killer. I compared many services and wanted to find something more stable and reliable. But I found a very very new and smaller company utilizing raspberry pi like ARM based hardware in greater scale for this small to medium size VPS services called Scaleway. Although the CPU architecture as “server” is foreign to me, I was getting curious. One of the differentiator factors for Scaleway is because of the initial and maintenance cost of the hardware, the costs of equivalent instances to be ~5 times cheaper. This means I can get 3-4 times more powerful machines with the same minimal monthly cost I’m spending for Digital Ocean or similar services. Scaleway is definitely pushing hard on the $5/mo SSD VPS game.

The main question was and remains “how reliable this new French startup for a permanent VPS need?”. This is obviously a risk but for me, it’s an easy risk to take because I mastered to set up and migrate web and database servers in many years with bare minimum servers as well as with cloud services like AWS or Azure.

So I took the risk and moved to Scaleway in 2 hours with 2x size instance with pretty much half of what I pay which is ~$5/month. It’s been 2,5 weeks and I’m seeing no hickups or any issues so far.

You can explore the machine options and pricing for each architecture here: https://www.scaleway.com/pricing/

Great resource to learn programming Swift

If you are interested in getting started with mobile development and if you like to start with iOS, I bumped into a great resource to learn Swift. There are tons of sample projects and great video walkthroughs as well as source codes of the projects you can download from GitHub.

Lessons Page:
https://swifteducation.github.io/teaching_app_development_with_swift/

Available on iTunesU to follow lessons on mobile devices:
https://itunes.apple.com/us/course/app-development-teaching-swift/id1003406963

Sample projects’ source codes:
https://github.com/swifteducation

Mobile simulators on cloud

I had a radical switch to iPad Pro as my primary workspace and I used that set up exclusively for 6 months. As part of my day to day work, I test a lot of features and new developments on our mobile development cycle. I uninstall and re-install and replicate a lot of weird conditions on mobile environments. It’s great to do these and relatively easy to simulate these cases with real devices but when it comes to testing Android, it gets a pretty wide range of devices and hardware/software differences. Often I test the same user behavior on 5-6 devices which is very annoying.

This could be easily me doing testing 🙂

Anyway, I was in search of doing this on the actual mobile device but replicate the other hardware and software variations but in the very cloud, remote-desktop fashion. Why there is no strong service doing this more professionally? Other than testing purposes, I really want to open and want to play with a new android OS on a real device with any resolution I want to and stream that to my existing mobile device? I would love to check out some android apps on my ios device, vice versa…

I gave a try to:

  • AWS Device Farm – their browser experience is very lagging, starting up a device takes at least 4-5 minutes (why?) and there are most of the time device initialization errors.
  • appetize.io – so far, the best experience, mobile browser friendly as well, but limited virtual device variations and there is just one real device type.
  • Genymotion cloud – I haven’t got a chance to play with it since they are in their private beta.
  • Other option is to build it manually with VPN or RDP but required rooting or jailbreaking the device which is not ideal and painful to go through.

Hopefully, we’ll get there and we’ll have the option to stream apps or OSes as we do movies tv shows today…

Digital Nomads

The term “Digital Nomad” becoming more and more popular in every year within last decade, maybe more visible in last 5 years. It has become well known and accepted as more people shared their nomadic stories on their blogs.

We can say it’s more like a lifestyle change than a temporary thing for most people. There is a pattern on the personas accepted this lifestyle. They are working mostly in the tech industry, usually creates stuff, standalone or not needing constant collaboration with a team or don’t have physical dependencies (sourcing materials etc). People like sysadmins, developers, designers, digital artists…

The term “nomad” explains the lifestyle factor more than being digital because it’s all about being location independent. Working from everywhere at any time (often working all the time for entrepreneur versions). Does it sound great right? Executing is not necessarily that great 🙂

I’ve been experimenting with different elements of becoming a digital nomad in last year period. Each of the following topics below deserves a much deeper explanation but I’ll summarize them now. I’ll write about each one separately later. Continue reading “Digital Nomads”

A Beginner’s Guide to HTML & CSS

 @shayhowe sum up HTML & CSS for beginners: “A Beginner’s Guide to HTML & CSS” http://learn.shayhowe.com/html-css/

A nice presentation in 10 topics showing techniques that’s not outdated. Most of the resources you search on web about html and css, are from 90s showing very old outdated methods.

Shay Howe also started to work on “Advanced Guide to HTML & CSS”. It’s still in progress but it’s accessible as it’s available http://learn.shayhowe.com/advanced-html-css/

Integration and verification of iOS In-App Purchases

 Economy models in iOS apps use In-App purchases become very popular. Lots of developers pick iOS environment because of the flawless payments through iTunes.

If you’re planning to have a monetization model in your app, it has to go through Apple system and you have to use in-app purchases. There is no other way to accept payments from your iOS apps. There are pros and cons of using Apple in-app purchases. I’ll try to explain some of them.

The biggest con is Apple takes 30% of your sale. And another con is, there are difficulties and grayed areas in the integration of in-app purchases to your app and back-end. But the pros make all even. Because delegating whole payments to Apple is gonna affect your sales because Apple makes it so seamless that it reduces all money related steps to only one confirmation box. So it changes the purchase experience and makes it what it supposed to be. Most of the checkout or payment experiences on web, faces lots of drops because of unnecessary and boring steps like putting your credit card info, trying to give the trust to user that you’re a legitimate company and have legitimate payment system that you will not sell their info out or you won’t let hackers to pick your customer info up. All those buying experience changed in iTunes payments. So this is why you should want to integrate in-app purchases. Continue reading “Integration and verification of iOS In-App Purchases”

Profiling and optimization on Facebook PHP SDK

If you’re developing PHP based Facebook application, you might want to use (or already using) Facebook integration little more than just authentication and identification of your user. Even if you have the simplest Facebook app and using PHP SDK, you probably have regularly done API calls.

You write your app and you start to see performance issues. You start to optimize your database interactions, PHP code optimization, after you done with your application optimization if you still have performance problems it’s possibly from Facebook calls. Since you use SDK, you might not know what’s happening with Facebook communication. So you want to do profiling between your app and Facebook API servers.

You can add a basic timing profiling to your API calls to see how many calls you do, what kind of calls they are and how long they take to run.

Let’s dive in SDK, modify it a bit and start getting profiling information. Here is the actual method you need to modify in base_facebook.php file:

and we’re modifying it like this:

It simply appends a global array named “facebookApiCalls” and adds the API call details as “args” and timing as “duration”. So at the end of your page logic code, you can print this information after sorting it by duration and you can also filter to show only slow ones (for instance, the ones took over 200 milliseconds).

After this profiling you can start to identify the slow calls, also if you do same calls multiple times because of recursing, recalls etc…, you can see and optimize, combine them.

This optimization is not only a performance tweak for the user, also it will decrease the number of calls made between your server and Facebook servers.