HN user

jathu

7 karma
Posts15
Comments45
View on HN

We had a very large monorepo at my previous company and building Docker images required us to set the context at the root of the directory (libraries, protos and helpers scattered around the repo). On macOS this is extremely slow as Docker copies the context into the daemon. This used to take several minutes.

Fortunately, we also used Bazel. So I created a custom Bazel rule that aggregates all the required files of a target/service then builds the Docker image within the Bazel sandbox which only contains the files we need. This massively reduced the context size and thus the image build time. From several minutes to single digit seconds.

Hi Peter, thanks for doing these AMAs! I’m a Canadian currently working in the US on a TN visa. I am interested in starting my own SaaS startup.

I’m currently exploring my options to raise a pre-seed round as a solo founder. Will I be able to stay in the Bay Area to start a company as a solo founder with some pre-seed and angel investors?

If not, will it be possible with an American co-founder? If not that, what is the best way for a Canadian technical founder to continue to stay in the Bay Area to startup?

I love Kowloon because it feels very r/outrun. I'm sure actually living there probably sucked though.

I'm not sure if they are mapping every single pixel or using some average pixels, but it's pretty fast.

Here is a shameless plug for one of my color extracting library: https://github.com/jathu/UIImageColors/

It currently takes around ~0.3s on average to extract the colors. However, with my new PR (https://github.com/jathu/UIImageColors/pull/54), it takes around ~0.14s on average. IMO this is still slow, I would like to bring it below 0.1s.

I tried to optimize this with k-means to reduce total number of colors, but the result was slower and worse color choices. If anyone has methods to improve the performance, please make a PR.

I've been reading a lot about this "ancestral hijacking" lately and have tried to cut out on a lot of them. My phone now only has two possible notifications: phone calls and Things app. I have 0 social apps or games. I am also slowly cutting out sugars and extra carbs. I think you guys should read about supernormal stimulus [1].

There is this comic [2] about supernormal stimulus that shows how man, and man alone, has the ability to overcome it.

[1] https://en.wikipedia.org/wiki/Supernormal_stimulus

[2] http://www.stuartmcmillen.com/comic/supernormal-stimuli/

Location: Toronto

Remote: No

Willing to relocate: Yes, preferably to the US.

Technologies: Python, Java, Swift, web stack, iOS, NumPy

Résumé/CV: http://jathu.me/resume/2017.pdf

Email: [On my resume at the bottom right]

=============

I have a lot of experience in designing and developing products from web to apps (please look at my site for some examples: http://jathu.me/). However, I am really interested in CS + finance and looking to get into a HFT, quant firm, hedge fund or a bank.

This is reminiscent of auteur theory in film, which essentially says that the director is the author of the film. Similar to corporations, making a movie requires a lot of people with different skills/talent. The director overshadows everyone and is the person primarily credited with authoring a film, they even overshadow the writers of the screenplay. One of the leading arguments for auteur theory is that the director has the vision of the film and they set out to create it. This is the same narrative used in the startup world: the founders have the vision. So this extends to why we credit founders for the invention of products, just like how we credit directors for films.

Maybe 100 years from now we will say "Steve Jobs invented the iPhone/smartphone", just like how we say "Thomas Edison invented the light bulb" or "Martin Scorsese made Taxi Driver".

* Your layout is a bit confusing. It's kind of difficult to figure out what title is the company name and your job title. I suggest you keep the EXPERIENCE and EDUCATION labels on the left and move everything else to the right. I've done a rough mock: http://imgur.com/a/g2t0c

* I'm not a fan of the design, but that's just my opinion. You can search for better resume templates

* Add a section where you point out what languages you know

* Another section for all the frameworks, tech stack, experiences and etc.

* "Netted over 700 hours...", I'm not sure if quantifying something like that is a good thing. 700 hours is kind of arbitrary, even as a developer I don't know that that really entails. You should just say you know how to build web apps, you're a full stack eng. and etc.

* "After learning about this word from a friend...", totally irrelevant. I don't think a recruiter cares about this. It is a good story to tell in an interview, but just not an a resume. Just get to the point as fast as possible while describing what the app does

* Overall the resume tells me what your projects do but it doesn't tell me too much about you. Tell me what you did, what you learned, obstacles you overcame, etc. This is a good area to quantify things. i.e. "Used CSS to develop convolutional neural network to improve efficiency by 100000000%"

* I'm not sure if your other two work experiences are relevant for a web dev, but you did a good job in making it sound relevant to who you are

How do you differentiate a product and a company? There are obvious examples like most of the stuff on Shark Tank (i.e. cookies, jam, clothing, food products). However, I find it hard to think Pebble was just a product and not a company. Doesn't every company start off as a product? Apple started off as Apple I, Google started off as search and Snap started off as a photo sharing app. By your definition, a product is something that can be superseded by a competitor? Isn't that every company ever? My guess was, Pebble believed it could become a company and not just a product... but Apple had other plans for them.

for-in is elegant, and you can use enumerate() to access index. However, if we had to do reverse for-loops in Swift 3, we would have to use for-in with either from.stride(to:by:) or reverse(), and to me that is not as elegant as c style for loops.

Yes, I just added an MIT license to all my work after some people suggested it. I was just too naive to think no one would do this, hence my very loose initial license. Wouldn't the "Please include the original header in any modifications or redistributions" hold up?

I grew up around Toronto and we started saying this in high school back around 2009/2010. I always assumed it was patois influenced, like ever other slang in Toronto, but I guess it's Australian.

"yeah, no worries bro", or simply in texts as "nw".

I made Annex, my first iOS app. http://jathu.me/annex/

It made it on to the front page of Product Hunt and reached top 100 in productivity, so I'm pretty happy!

One thing I learned is that after the media hype dies down, visits/downloads drop A LOT! I knew this from articles I've read before, but seeing it happen is something else (and sucks).

Well the main reason is not so much for me (I prefer all lowercase too), but rather other people linking the sites. A 404 resulting from something as simple as the wrong case is costly. Users don't try to fix the URL, they just leave!

Also, regarding the UIImageColors, if I'm making a library for a language that follows CamelCase, then it's only appropriate I follow that standard.

Yes.

One of my projects on GitHub is "UIImageColors", so if I were to create a gh-pages for it, the link would be jathu.me/UIImageColors.

This has been on my mind since I began this project. Once I get iCloud integration, I want to ask users to anonymously share their data so I can open source them.

We can study patterns that cause other patterns, the type of productivity, behaviours and so much more.

Thanks for the kind words!

I wouldn't call my self a "real" app developer just yet as I'm still learning app development (i.e. still don't know how to sync core data with iCloud). I used to focus mostly on web, but recently started iOS. I'm not working yet, I'm still in University studying CS.

I usually don't like to discuss the exact amount I'm making from my app, however I would say I'm "ramen profitable" for a student.

1. Annex: http://jathu.me/annex

2. Being tired of how unproductive I was. My friend sending a spreadsheet of him tracking his time and finally watching this video: https://www.youtube.com/watch?v=ZexvTZ1sV8U

3. I just want to help myself in becoming productive and in the process help others. So far the app has helped me become more productive and I have received many emails/DMs thanking me for helping others achieve this too. The most important thing I want to learn is how to launch a product and keep updating it with the user's feedback. I received a negative feedback from a bug on my initial app, then I fixed it with an update (and added more features) and the user then changed his negative review to a 5-star positive reivew on the app store and was very happy. This alone sold me on the importance of listening to your customers. This is one of my first iOS apps, so I'm learning about iOS development and launching a product at the same time.

When I switched from web to iOS development, I did 99% of design programmatically because it is what I was used to (CSS). The only things that I used interface builder was for segues. The frames of each element would be dependent on one another, so if I were to change the frame values of one element, it would adjust everything else accordingly, which was perfect.

However, doing things programmatically takes a long time, so much time wasted trying to align things in your head then implementing it. After talking to a friend who did iOS development for a long time, he convinced me to switch to interface builder. I couldn't be any happier. Firstly, all the elements are available visually, this is a big help to me and anyone else that looks at the project. Secondly, handling size and alignment in interface builder will be daunting initially, but once you get the hang out of it, it becomes extremely easy. The biggest advantage is the amount of time you save from not having to write code.

The author points out the negatives to interface builder, which is pretty important. Maybe iOS developers should start diving into the XML like Android developers.

I really like that approach, but I think it may confuse people if I phrase it like that. Maybe something like: "Swipe if you're making dinner". The biggest problem is that friction, had it been Android I can give options directly on the lock screen, maybe (hopefully) Apple would open up more as time goes on.

Thanks for the feedback and help, I'm definitely going try the lock screen method to see if people like it.

Bit strong colors perhaps.

A lot of my users actually loved the colors. Maybe in the future updates, I can let users choose their own colors. Although, I don't like giving users too many frivolous options, it would depend if I get any more requests for this feature.

It's a nice idea, but opening an app to record each single change in activity will be a hard sell, even with the reminders (eventually they will annoy you). I think that if it is more effort to enter something than it is to close/ignore it - then eventually it will get ignored.

The reason I left the activities broad and limited the number of activities allowed is because of this reason. I would get pretty annoyed if I had to take my phone out to record every time I went to the washroom, read a blog post or played a game. However, if you broadly categorize those activities, they are all "Chilling" in my view, something unproductive to my goals. So in reality, people only change their broad activities few times a day and not as frequently: sleep, eat, study, meeting and etc. I do plan on making this easier by allowing people to update it via their Apple Watch, Mac and iPhone notification center (I can't do this yet as I still have an iPhone 4, so I can't develop for iOS9- living off of student loan sucks haha).

A small example I have personally is "Day One" app for OSX.

As you said, one thing I hate about apps like this is that it requires so much effort for me to update it. The idea of updating something everyday is daunting because I have to fill a blank slate. Where as in Annex, all I have to do is touch an option. It would be easier to touch an option rather than touch cancel.

---

Thanks for the feedback!