HNHacker News
TopNewBestAskShowJobs

joshavant

565 karma · joined March 29, 2012

iOS Developer

https://joshavant.com

https://x.com/joshavant

https://github.com/joshavant

https://linkedin.com/in/joshavant

<the_same_handle>@gmail.com

submissionscomments
joshavant··on Ask HN: What cool skill or project interests you, but feels out of reach?
I want to build a large format, real-time, physical music visualizer that could orchestrate an artistic light symphony for any song.

I'm imagining physical visualizers that are columns of multiple, discrete light nodes, each able to have variable brightness and color.

The real-time music processing is the hard part (for me) to crack.

There's some standard tricks here: FFTs, bandpass filters, etc.

But I want to do more: Real-time stem separation, time signature and downbeat tracking, etc.

Imagine hearing Sweet Caroline and, when the horns kick in, the whole installation 'focuses' on the horns and bright yellow light jumps between each column on each horn note, before returning to tracking the bass line or something.

I've been noodling on this idea for a long time and slowly digging into the music and CS fundamentals. The rise of LLMs might finally be the piece that enables me to close my intelligence gap and finally build this thing...

joshavant··on Ask HN: Tips to get started on my own server
Here's my strategy:

- Setup VMs locally, on your development machine. (This eliminates the cost of hosting but gives you all the technical learning opportunities). My development machine is macOS and UTM has been an excellent app to manage these VMs. You can eventually model your VM's configuration around what resources your VPS will have on AWS/DO (e.g. 1GB RAM, 2 vCPUs, etc).

- Learn the basics of Ansible, in order to provision a server (local or remote). I did the course on KodeKloud.com and found it great to getting me going quickly.

- Write Ansible playbooks to provision your local VM as you would want your VPS on AWS/DO/etc to work. Ansible Galaxy is a repository of many community-supplied roles for common tasks/services. You could consult these for best practices on building your own playbooks or totally offload provisioning onto those roles.

- Once you're comfortable getting your local VM setup, point your Ansible playbook at an AWS/DO VM and put it online!

My high-level roadmap has been to build my own Ansible playbook to provision a Ubuntu server to CIS Level 2.

CIS benchmarks define security controls for a few of the more common aspects of DevOps work (e.g. Ubuntu OS hardening, AWS account security, Docker host, etc). They're freely available and there's many well-maintained scripts that can both audit and provision your host to the standard. I've been using the benchmarks as an easy to way to self-teach security aspects (and validate I've done it correctly). Level 2 is the standard used to handle financial information and medical records, so it's probably the most secure you'll ever need to go.

Once I have a provisioning playbook to stand up a secure host with some services (Nginx, Redis, etc), the next goal on my roadmap is learn Terraform to configure + deploy a personal cloud of services to AWS/DO/etc.

joshavant··on Show HN: Not sure you're talking to a human? Create a human check
Similarly, Google purchased reCaptcha and ended up harnessing the stream of human interaction into that to, among other things, classify all of their Street View content (e.g. select the stop lights/bridges/license plates/etc).
joshavant··on iMessage, explained
Looking at the Beeper Mini announcement [1], they clearly state that a user doesn't need an Apple ID to register their phone number and send/receive iMessages. Also, they describe direct, device-to-Apple interactions.

However, this article says:

> IDS is used as a keyserver for iMessage...

> The first step in registering for IDS is getting an authentication token. This requires giving the API your Apple ID Username and Password.

> After registering with IDS, you will receive an “identity keypair”. This keypair can then be used to perform public key lookups.

So how does the Beeper Mini app take an arbitrary Android phone number, register public keys for it with IDS, and perform public key lookup of recipients... all without ever using an Apple ID?

[1] https://blog.beeper.com/i/139416474/security-and-privacy

EDIT - It looks like the answer here is the 'SMS Gateway' which is virtually undescribed in the OP article or anywhere on [1]. Guess that's the secret sauce.

joshavant··on Running a private mail server for six years, easy peasy
I've hesitated to ever attempt this because every residential ISP I've had refuses to offer static IP addresses.

As well, deploying a server in a Google/Amazon/Microsoft datacenter which could be surreptitiously monitored defeats the theoretical privacy aspects of on-premises mail server hosting inside one's personal residence.

However, today, I looked into the newish movement of 'confidential computing' in the cloud (where data in motion - e.g., in memory - is encrypted and cannot be observed from the OS or hypervisor).

I openly wonder if one solution, then, is to build a secure VM that acts as a simple forwarding proxy to one's home server, gets assigned a static IP from a datacenter, and is deployed on one of these confidential computing instances, ensuring full E2E data privacy and data control?

Any guesses?

joshavant··on Ask HN: Curious to know if people still use IRC?
I got a job at 'early' Tinder (2014) after someone I chatted with on a Freenode programming channel went on to become one of its cofounders.
joshavant··on Ask HN: Freelancer? Seeking freelancer? (May 2018)
SEEKING WORK | Austin, TX or Remote | iOS

Hi, I'm Josh. I've been developing iOS apps for the last 7 years including Tinder, CrowdRise, and LivingSocial. I've also spent time at Apple, Google, Microsoft, and an acquired startup. (I'm most proud of rebuilding the Tinder card stack and watching it spend over a year in production (2015-2016).)

I can help your team with...

- Designing and developing stable iOS features, quickly

- Mentoring developers on best practices in mobile app development

- Setting up a CI pipeline, code reviews, and unit testing

- Advising on development process inefficiencies

Check out some of my previous work here: https://iamjo.sh/work/

I'm available locally in Austin, TX or remotely during normal hours for any US timezone.

My standard rate is $150 per hour and non-negotiable.

josh@iamjo.sh | https://iamjo.sh

joshavant··on Judge rules California coffee shops must display cancer warnings
When I worked at Apple, it was fun to walk in some buildings and notice the California 'cancer warning' sign posted in the lobby. From that, you knew there was probably a hardware engineering lab somewhere in that building, because I believe they had to post those due to carcinogens released from soldering. (And, inside of Apple, that kind of knowledge would only be shared on a need-to-know basis, otherwise.)
joshavant··on Ask HN: Is there server-side software that we are missing in 2018?
I'm a front-end developer.

I'd like an OSS solution that will allow me to deploy an arbitrary server-side service - be it a Ruby, Python application or even a package like OpenVPN - to some cloud infrastructure, easily.

This solution should spin up a hardened OS distro (CIS-compliant, maybe?), provision it with my arbitrary services (using Ansible or Chef or something), and deploy it to AWS or some cloud infrastructure for me (using Terraform or something).

All these component pieces exist, but nothing ties all of them together for an easy deploy for a front-end developer like me.

(And, I know things like Heroku and CodeDeploy exist, but I dislike lock-in and they nearly universally come with their own restrictions, like lack of support for server-side Swift applications or custom services like OpenVPN or git-annex.)

EDIT - I'm strongly considering taking some time off to write this soon, so get in touch if this is something you're interested in! Contributing or using!

joshavant··on Apple staffers reportedly rebelling against open office plan
Ah! I noticed this interior layout in more than a few buildings but didn't realize the backstory. Thanks for posting!
joshavant··on Ask HN: What's your total income?
I'm moving to Austin soon and currently trying to get a grasp on local salaries.

Would you mind adding your years of experience ?

I'd appreciate the update!

joshavant··on Ask HN: What's your total income?
I'm moving to Austin soon and currently trying to get a grasp on local salaries.

Would you mind adding your years of experience and what parts of the stack you're working in (iOS, Rails, 'full stack')?

I'd appreciate the update!

joshavant··on LinkedIn accesses Gmail contacts via ‘auto-authorization’
I assumed this was happening through their acquisition of Rapportive and all the authorized Gmail plugins that came with that. But this... this is sneaky.
joshavant··on Ask HN: Freelancer? Seeking freelancer? (August 2016)
SEEKING WORK - Los Angeles - Remote OK

Hi! I'm Josh. I've been an iOS developer for 5+ years. Recently, I finished leading the development of a ground-up Swift app. Prior to this, I used to work at Apple, Google, Microsoft, and an acquired startup. I'm focused on building things people love to use.

For more on my background, please see my portfolio: https://iamjo.sh

Or don't hesitate to contact me directly: josh@iamjo.sh

I'm also on Twitter at: https://twitter.com/joshavant

joshavant··on Ask HN: Describing skills and competencies in a resume?
You're the founder of Cocoa Controls?? Thank you for creating an incredibly valuable resource that I've used frequently for many years, and do get in touch if you ever find yourself in LA and would like a free beverage on me!
joshavant··on How I Could Steal Money from Instagram, Google and Microsoft
In the article, the author mentions contacting Google + they instruct him to attempt pen testing on please.break.in@gmail.com. Didn't know they maintained an account like that. Interesting.
joshavant··on Most Used SDKs in Top 200 Free iOS Apps
Alamofire (an all-Swift library) is linked in 31% more of the top 200 free apps than AFNetworking (an all-Objective C library). I guess Swift is still making headway into Big Apps...

Also, 6 apps are still using ASIHTTPRequest, despite the last release being 5 years ago.

Worse still, 3 apps use a combination of ASIHTTPRequest, AFNetworking, and Alamofire - that's a library that was abandoned 5 years ago, an Objective-C library, and a Swift library. Oh man.

joshavant··on Securing a travel iPhone
I thought I once read that, since Touch ID relies on fingerprints, a US court order can compel you to provide those, thus forcing you to unlock an iPhone in question.

This, as opposed to a passcode-only configuration, which a court order cannot compel you to give (I believe since this would fall in the category of 'forcing you to testify against yourself').

If that is indeed the case, I imagine it would make better sense to leave Touch ID disabled, unlike what this article suggests.

joshavant··on My best employee quit because I wouldn’t let her go to college graduation
IANAL, but, for the _California_ readers, I'm fairly certain a contract with a clause like 'losing all intellectual rights to ANYTHING done/written/created ANYTIME and ANYWHERE' will NEVER hold up in California court, assuming said projects are done with the employee's own time + materials.

...Which is also a strong reason why you should always avoid using/making/doing anything personal on your employer's laptop/equipment.

joshavant··on Ask HN: Rust or Swift for system programming?
I've done a small amount of work for a Swift-based project that was packaged as CLI program. FWIW, it was a really difficult project to develop for.

This mainly had to do with the fact that the project had to be built from a hacky Rakefile, not Xcode. This was because Xcode would embed the Swift runtime only into an .app or .ipa file (because projects need to be shipped with the same Swift version used to build it, thanks to lack of ABI stability). But, as a CLI tool, there was no .app bundle - only a single executable. One downfall.

So, now that you're not using the Xcode IDE to build + run the project, you can't use the debugging IDE tooling in Xcode, making the development process that much harder. Another downfall.

I haven't checked if this has been fixed in recent builds (this all happened back in January), but figure that these are the kind of issues you're going to encounter, until the Swift language is a little more stable + proper tooling evolves.

That said, it seems pretty clear the future is Swift, so it would be better to start building experience with it sooner rather than later!

joshavant··on A lead generation CMS built for freelancers
Does anyone see a link to a demo of anything?
joshavant··on Ask HN: Who is hiring? (June 2016)
CrowdRise | Onsite | Downtown Los Angeles, CA

CrowdRise allows anyone to raise money online for personal causes and charities. Right now, we're looking for a senior-level iOS Developer to join me as iOS Developer #2!

Technical Background: 100% Swift codebase, including 362 test cases (and growing!). The codebase is only 11 months old and has been built from the ground up on patterns like reactive design + MVVM. We have plans to open-source as much as possible, too!

Company Background: We're a gang of folks on an awesome mission: We raise money for good causes. At CrowdRise, you'll regularly get emails in your inbox that the thing your working on has helped people get a surgery they needed or shelter they couldn't afford. It's quite a fulfilling job. As far as org structure goes, the LA office is all engineering so it's a bit of a nerd oasis. We're about 35 people in our Downtown LA office, near Bottega Louie and Seven Grand. (We're across the street from One Wilshire, so we have a 1-2ms ping which is fun, too.)

Hiring Process: First, we'd like to talk on the phone and ask you some light technical questions and give you the chance to ask us questions. Next, we'll ask you to come into the office and meet the team. For the iOS part of the interview, I've been keeping a Playground in the project repo with some interview questions. I'd like to pair with you in the Playground on those questions, and generally just talk iOS. There will be no reverse binary tree sorting.

If this sounds like your kinda place, please email me personally with your resume and, if you happen to have any, some work samples: (my-first-name-which-is-the-first-four-letters-of-my-HN-handle)@crowdrise.com. I promise a reply to everyone who emails!

joshavant··on US military uses 8-inch floppy disks to coordinate nuclear force operations
I seem to remember someone telling me how there are a couple of cottage industries that center around the fact that the US Government has to buy goods that are US-made.

I think ceiling fans are one example. (i.e. There's relatively few US-based ceiling fan manufacturers. For one of them, I think the large chunk of their business is the US Government.)

I have a feeling this may be an example of that.

joshavant··on Ask HN: How long did it take you to get your first dev job?
This has always been a difficult challenge when job hunting for me, and I'd be curious to hear how you dealt with this in your application process.

Nearly every job offer I've encountered expects a response within a few days. In practice, I'm usually interviewing at multiple places and at different stages of the interview process at each.

When engaging with so many companies, how in the world do you synchronize all the offers + interviews?

For nearly every offer I've received, I feel that the company might take objection or even not allow me more than 3-4 days to decide on an offer.

Also, how do you manage other companies sensing that you're 'playing the field' with them (which can easily become apparent, when you're employing these tactics)? That's generally not positive for goodwill with someone you might eventually be working directly + closely with.

joshavant··on Ask HN: Who is hiring? (May 2016)
CrowdRise | Onsite (Los Angeles, CA)

CrowdRise allows anyone to raise money online for personal causes and charities. Right now, we're looking for iOS Developer #2 to join me, iOS Developer #1.

Technical Background: 100% Swift codebase, including 362 test cases (and growing!). The codebase is only 10 months old and has been built from the ground up on patterns like reactive design + MVVM. This week we're launching the first internal beta build to the whole company! We'd like to open-source as much as possible, too, once we get a chance to breathe.

Company Background: We're a gang of folks on an awesome mission: We raise money for good causes. At CrowdRise, you'll regularly get emails in your inbox that the thing your working on has helped people get a surgery they needed or shelter they couldn't afford. It's quite a fulfilling job. As far as org structure goes, the LA office is all engineering so it's a bit of a nerd oasis. We're about 35 people in our Downtown LA office, near Bottega Louie and Seven Grand. (We're across the street from One Wilshire, so we have a 1-2ms ping which is fun, too.)

Hiring Process: First, we'd like to talk on the phone and ask you some light technical questions and give you the chance to ask us questions. Next, we'll ask you to come into the office and meet the team. For the iOS part of the interview, I've been keeping a Playground in the project repo with some interview questions. I'd like to pair with you in the Playground on those questions, and generally just talk iOS. There will be no reverse binary tree sorting.

If this sounds like your kinda place, please email me personally with your resume and, if you happen to have any, some work samples: (my-first-name-which-is-in-my-HN-handle)@crowdrise.com. I promise a reply to everyone who emails!

joshavant··on Unraveling of the tech hiring market
This has always been a difficult challenge when job hunting for me, and I'd be curious to hear how others deal with this in their careers.

Nearly every job offer I've encountered expects a response within a few days. In practice, I'm usually interviewing at multiple places and at different stages of the interview process at each. The 'exploding offer' system makes applying to multiple companies near impossible for the job seeker.

Sure, I see how it creates leverages for the job offerers to get candidates to accept. However, the flip side is that turns the hiring process into a game of forced, snap decision making, which doesn't necessarily seem to be in everyone's interest, either.

joshavant··on Ask Us Anything: Y Combinator Hardware Companies Crowdfunding
Los Angeles, and curious to hear about the opportunity regardless of where it's located! Contact information is in my HN profile. Please get in touch!
joshavant··on Ask Us Anything: Y Combinator Hardware Companies Crowdfunding
Thanks!
joshavant··on Ask Us Anything: Y Combinator Hardware Companies Crowdfunding
Hi folks!

I graduated from a moderately-ranked undergrad program with a 3.0 in Computer Engineering (the HW-centric flavor of CS), going on 6 years ago.

After graduation, I wanted to get into the embedded field, but was discouraged by the employment options (hardware hadn't yet made the comeback it has been making over the last 3-5 years... 'old' players like Intel still dominated, which wasn't particularly attractive to a bright-eyed 21 year old).

In the interim 6 years, I've been doing iOS development, and believe I've amassed a CV that speaks well to my dedication and work ethic (and is moderately accomplished, at that!).

My question is... how far off am I from being a viable candidate for embedded job opportunities? What kinds of projects/side-work would you like to see to prove that I 'still have it' and/or could sufficiently think on my feet, and get back into embedded development?

FWIW, I have resume experience at Apple, Microsoft, and Google (I actually was hired at Apple out of college to do hardware QA but, once I realized the path from QA to embedded development would be a near impossible feat, I quickly moved on to iOS development).

Thanks! And good luck with your respective products!!

joshavant··on Microsoft FFmpegInterop library for Windows
I find these first-party interop libraries from Microsoft really interesting, in light of the fact that Oracle v. Google is still ongoing.

Depending on how that case finally comes back, I'd expect that could really affect Microsoft's strategy, here.

Page 1 of 4Next →