Category Archives: Uncategorized

Update

It’s been a long time since I last wrote and quite a bit has happened since then.

Picking up from October, I had been interviewing at a startup in Mountain View for a Full Stack Engineering position which I got through an online coding challenge. The interview process was interesting. I had to come in for a few days and build a Django app using their API. I received some good feedback but ultimately ended up not getting an offer. I had considered staying in the Bay area since I thought it might be easier to get a tech job there, but decided to just pack up and move to LA since my wife had just started dental school in that area.

I spent pretty much the next two months looking for a job. I did work on one more project to get some experience with full stack Javascript (React, Express, Mongo), but from the conversations I had with people, I felt that they thought I was job-ready. Almost everyday, I spent all my time researching companies and reaching out to people.

It was really demoralizing and a tough couple of months. I figured not having a CS background nor any professional experience would make online applications exceptionally useless so I focused all my efforts on going to events and reaching out to anyone I possibly could. Bootcamp graduates were particularly helpful and I’m awfully thankful. A lot of them had also transitioned into the industry from non-traditional backgrounds and were often willing to chat.

Towards the beginning of December, I finally started picking up traction with a few companies and had a few phone interviews. The job I did end up getting was through a UF alumni. I had done research on the company and thought the bar might be too high for their software engineer role. I was a little lonely and didn’t know many people so figured I’d reach out anyway. We met up and had lunch. He recommended looking into the company’s Data Engineer position which I did.

I started working at Factual in January and have been really happy since then. I’ve learned about distributed computing, Hadoop Map Reduce, and Spark. I’ve started doing work around Machine Learning and managing geographical data with PostGIS. I feel like I’m learning a lot and best of all, the culture and people here are really awesome :).

5.7 Pairwise Swap – CCI

# [5.7] Pairwise Swap: Write a program to swap odd and even bits
# in an integer with as few instructions as possible (e.g., bit
# 0 and bit 1 are swapped, bit 2 and bit 3 and swapped, and so on)

import unittest

def pairwise_swap(num):
    
    even_mask = create_even_mask(num)
    odd_mask = create_odd_mask(num)
    even_cleared = num & even_mask
    odd_cleared = num & odd_mask
    combined = (odd_cleared >> 1) | (even_cleared << 1)
    return (odd_cleared >> 1) | (even_cleared << 1)

def create_odd_mask(num):
    bin_representation = bin(num)[2:]
    bit_length = len(bin_representation)
    bit_sign = '0'
    mask = []

    for i in range(bit_length):
        mask.insert(0, bit_sign)
        bit_sign = '1' if bit_sign =='0' else '0'

    return int(''.join(mask),2)

def create_even_mask(num):
    bin_representation = bin(num)[2:]
    bit_length = len(bin_representation)
    bit_sign = '1'
    mask = []

    for i in range(bit_length):
        mask.insert(0, bit_sign)
        bit_sign = '1' if bit_sign =='0' else '0'

    return int(''.join(mask),2)


class Test(unittest.TestCase):
    
    def test_create_even_mask(self):
        self.assertEqual(create_even_mask(int('111000', 2)), int('010101',2))
        self.assertEqual(create_even_mask(int('1110000', 2)), int('1010101',2))

    def test_create_odd_mask(self):
        self.assertEqual(create_odd_mask(int('111000', 2)), int('101010',2))
        self.assertEqual(create_odd_mask(int('11100110', 2)), int('10101010',2))

    def test_pairwise_swap(self):
        self.assertEqual(pairwise_swap(int('111000',2)), int('110100',2))
        self.assertEqual(pairwise_swap(int('11100111',2)), int('11011011',2))

if __name__ == '__main__':
    unittest.main()

5.5 Debugger – CCI

# [5.5] Debugger: Explain what the following code does:
# ((n & (n-1)) == 0)

# n & (n-1) removes the most least significant 1
# if the result is zero, means there was only one
# one-bit. This means the number was a power of two

import unittest

def check_power_of_two(n):
    return ((n & (n-1)) == 0)

class Test(unittest.TestCase):
    
    def test_check_power_of_two(self):
        self.assertTrue(check_power_of_two(2))
        self.assertTrue(check_power_of_two(4))
        self.assertTrue(check_power_of_two(8))
        self.assertTrue(check_power_of_two(16))

        self.assertFalse(check_power_of_two(3))
        self.assertFalse(check_power_of_two(5))
        self.assertFalse(check_power_of_two(9))
        self.assertFalse(check_power_of_two(17))


if __name__ == '__main__':
    unittest.main()

Finished Traveling

We are finally back home. We started our travels on April 11th and got back on May 24th. We visited Thailand (Bangkok, Chiang Mai, Krabbi), Singapore, Hong Kong, Japan (Kyoto and Tokyo) and Seoul.

While I didn’t do much writing I did continue learning to code and worked on this project. ItsPong is a web app that helps users find nearby people interested in playing ping pong.

I also started learning about how to use Backbone.js and am in the process of thinking about a single-page web app project to work on.

I primarily keep this blog because I believe reiterating what I’m learning forces me to understand things better.

I’ll keep it short for today. My previous routine is completely decimated at this point and I might need a few days to ease back into it.

 

Startups

I heard the other day that a startup led by a person that I respected is planning on shutting down. It’s unfortunate because I admired the founder’s views. I suppose this is the nature of startups.

On another note, at a talk I attended, Ron Weissman mentioned that only 1/9 startups that received seed funding would go on to raise a series A, meaning 8/9 startups would fail. He attributed the “series A crunch” to the fact that angel and seed financing has had explosive growth relative to series A financing.

 

 

 

Ron Weissman Lessons

I attended a talk yesterday by Ron Weissman. Ron Weissman is an angel investor at Band of Angels. He was a professor at Brown University, but left to join Steve Jobs at NeXT. He’s worked in tech companies and in Venture Capital for many years.

He shared some lessons he learned from Steve Jobs.

  • Micromanagement by walking around – Don’t stay in your office isolated from everyone else. Know what people are working on.
  • Intense focus – Focus means saying no. It might mean turning away a big customer if it takes away focus from your broader customer base.
  • Clean Sheet Thinking – Don’t get married to your past. Be willing to move in a new direction
  • Be 10x better – Be top 1-3. What can you do that you are obviously 10x better to the customer? It can be a number of things: amazing product, barriers to entry, availability of information, ability to create buzz, access to customers, etc.
  • Hire Different – Don’t focus on credentials. Evaluate how they can contribute.

He also talked about what he looks for in investments using the acronym DUMB.

  • Domination – Can answer the question how they will dominate the market
  • Unusual – Many business models are the same. Show how it is different. You can also prove this with traction and metrics.
  • Metric-Driven: What are the internal metrics that will drive your finances?
  • Business-Driven: Many companies with great technology and great products fail. Need to know how you are going to build a successful business.

 

 

RIP Andy Grove

Andy Grove was the first hire at Intel. As CEO, he helped transform the company into an industrial giant. His biography by Richard Tedlow is on my reading list. I’m currently reading The Innovators by Walter Issaacson and there was a quote by him that I thought was worth writing down.

By the time I was twenty, I had lived through a Hungarian Fascist dictatorship, Germany military occupation, the Nazis’ Final Solution, the siege of Budapest by the Soviet Red Army, a period of chaotic democracy in the years immediately after the war, a variety of repressive Communist regimes, and a popular uprising that was put down at gunpoint. –Andy Grove