HN user

cameroncairns

58 karma

CTO Spice Data, YC S19

Posts1
Comments22
View on HN

My physical ios device test harness has no pin numbers/touch id activated for any of the connected phones. I noticed early on in testing that it would require physical access to reinput the pin code even when the device was already unlocked when I would restart an XCUI test.

If you're able to have fully unlocked devices at your test setup I'd suggest giving that a shot to see if it fixes your issue around device restart.

Spice Data (YC S19) | Software Engineer / Sr Software Engineer | On Site San Francisco, CA

We license data to leading Fortune 500 restaurants. Data is the new oil, it serves as a vital input into the ML and data analytics pipelines that direct company strategies. Companies with a firm understanding of their internal data necessarily want to expand their understanding of their market with external datasets, that's where Spice Data comes in.

We're a small and nimble engineering team with lots of back end work that we could use some help with. We cover both sourcing (web crawling), cleaning, and formatting of large (150M+ data points a month) datasets. We'd love to talk with you if you have experience with either building/maintaining data pipelines or working on web crawling/scraping. Familiarity with unix like systems is essential as a lot of our tooling is terminal based.

Tech stack: Python, Linux, PostgreSQL, Dagster

Benefits

- Lunch provided when in office

- Unlimited PTO

- 401k

- Company paid Platinum PPO health and comparable dental & vision insurance

- Salary $100k-150k Software Engineer, $160-220k Sr Software Engineer

- Competitive equity (0.25-3% depending on position/salary)

Software Engineer: https://www.ycombinator.com/companies/spice-data/jobs/TijA35...

Sr Software Engineer: https://www.ycombinator.com/companies/spice-data/jobs/f6Bueh...

Why YC went to DC 2 years ago

Pretty sure any updates to the software count as additional R&D. Just running software you've already created doesn't count though. Something interesting we were asked was how much of our cloud costs involved developing software vs running existing software to determine if those costs must also be amortized over 5 years.

Why YC went to DC 2 years ago

Not a practitioner, just a startup cofounder affected by these changes.. not legal or tax advice. You can read the applicable text here:

https://www.law.cornell.edu/uscode/text/26/174

Section 174(c)(3)

``` (3) Software development

For purposes of this section, any amount paid or incurred in connection with the development of any software shall be treated as a research or experimental expenditure.

```

That being said... it's complicated: https://www.thomsonreuters.com/en-us/posts/tax-and-accountin...

We've heard a mix of advice from various tax professionals on what should be classified as R&D or not. The messaging gets expecially mixed since the R&D tax credit is often handled by a 3rd party that specializes in it. The company specializing in the tax credit may be incentivized to classify as much of your activity as R&D as they can, since they are usually paid a percentage of the total credits they are able to claim for your company.

It certainly complicates running a software company. My cofounder and I need to look at the amortization schedule before making any engineering hire as we basically need to consider their salary nearly 100% R&D. I imagine it's even more complicated for founders with overseas teams.

It would certainly be easier for us to do business if Section 174 was revised :)

Not who you responded to, but I worked in college radio for a while. Depending on what CDs they were listening to, generally the label will highlight which tracks are standouts and that you should listen to. Usually it would be 3 or 4 tracks max (generally track 1, 3 and 4 though there are exceptions).

Most tracks are 3 minutes long.. so given an average of lets say 3 songs a cd at 3 minutes each... 100 x 3 x 3 / 60 == 15 hours of listening (hand wavey no time to change cd and stuff...). So yeah probably pushing the limits of reasonable but not quite as crazy as you might think.

Also, although it was unfair to the artist, I would usually make up my mind on pop songs by the end of the first chorus. If I'm not hooked within 1 minute it's probably not going to play on my show. It was brain numbing work, and frankly made me view music as a chore for a few years afterwards... but you can listen to quite a few tracks this way and try and find the few gems amongst the chaff so to speak.

The tech geek in me really wants to get a studio with an M2 ultra just for the cool factor, but yeah I think cost effectiveness wise it makes more sense to rent something in the cloud for now.

Things are moving so quickly with local llms too it's hard to say what the ideal hardware setup will be 6 months from now, so locking into a platform might not be the best idea.

I've been considering buying a Mac specifically for LLMs, and I've come across a lot of info/misinfo on the topic of bandwidth. I see you are talking about M2 bandwidth issues that you read about on linkedin, so I wanted to expand upon that in case there is any confusion on your part or someone else who is following this comment chain.

M2 Ultra at 800 GB/s is for the mac studio only. So it's not quite apples to apples when comparing against the M3 which is currently only offered for macbooks.

M2 Max has bandwidth at 400 GB/s. This is a better comparison to the current M3 macbook line. I believe it tops out at 96GB of memory.

M3 Max has a bandwidth of either 300 GB/s or 400 GB/s depending on the cpu/gpu you choose. There is a lower line cpu/gpu w/ a max memory size of 96GB, this has a bandwidth of 300 GB/s. There is a top of the line cpu/gpu with a max memory size of 128GB, this has the same bandwidth as the previous M2 chip at 400 GB/s.

The different bandwidths depending on the M3 max configuration chosen has led to a lot of confusion on this topic, and some criticism for the complexity of trade offs for the most recent generation of macbook (number of efficiency/performance cores being another source of criticism).

Sorry if this was already clear to you, just thought it might be helpful to you or others reading the thread who have had similar questions :)

I wish it was easier to parse/compare the supported cell frequencies list from phone/gsm arena. Especially for devices more targeted at non US markets you can end up missing a lot of useful frequencies. I guess part of the issue is how non standard the US cell networks tend to be (iirc our 5g is also a little weird compared to the rest of the world)

It's one of the things I feel like iPhone does right supporting most frequencies even for US models. The new mandatory eSIM on it makes it a no-go for me though when I travel to Europe and want to buy a SIM card at the airport/corner store.

Anecdata, but I suspect my current issues with charging my iphone are due to wear on the charging port from using the lightning -> headphone adapter. When looking for a new phone I noticed that many sony phones still provide headphone jacks on their higher end models (xperia 5v, 10v) but generally it seems relegated to cheaper android phones.

I hate the waste generated from having battery powered headphones, and generally dislike the batterification of so many products these days. Wires can be messy but they are usually replaceable and I don't have to worry about properly disposing of them as much as I would for an item with a LiON battery.

IIRC the xperia phones are just as water/dustproof as the pixels/iphones so not really sure why we had to give up the port other than for maybe a mm of thinness and a reason to sell a new series of audio devices to consumers.

The syntax has a bit of a learning curve, but there's a library called glom that can be helpful in parsing heterogeneous JSON. Specifically it has a coalesce operator that let's you define multiple paths to get the data you are trying to get at, with a default value if none of the paths are valid.

https://glom.readthedocs.io/en/latest/api.html#defaults-with...

e.g.

    target = [{"a": {"b": "c"}}, {"a": {"c": "e"}}, {"a": {}}]
    results = glom(target, [Coalesce("a.b", "a.c", default="")]) # -> ["c", "e", ""]

There have been some efforts to utilize the type hints to give performance boosts. There's a project called mypyc that apparently has been used by black (python formatting library) that will compile type hinted python into c extensions. Unfortunately I think development has stalled, but as more people start using type hints I think there will be more motivation for similar projects.

Really great techniques listed in this thread! I wanted to point out though that it's generally nicer to the website owner if you enable `Accept-Encoding: gzip, deflate`. The difference in the amount of bandwidth charges for the site owner is quite significant, especially should you want to do comprehensive crawls.

Yes, go ahead and disable that header when piping curl's output into `less`, however when converting the curl request into python just remember to re-add that header. Pretty much every python library I've used to handle web requests will automatically unzip the response from the server so you don't need to futz about with the zipping/unzipping logic yourself.

Fish Shell 3.2 5 years ago

This alone might convince me to start using fish again. Thanks for the tip!

Reading the letters, they are only signed by two Democratic members of the house. They are both on the committee for communications and technology, but they only represent 2 of 28 voting representatives.

This really feels more like a publicity stunt on their part to please their constituents than some sort of concerted effort by the Democratic party, but perhaps someone with more insight on congress could enlighten me.

https://en.wikipedia.org/wiki/United_States_House_Energy_Sub...

I don't! As far as I know, scraping data behind a login is illegal in the united states. You can look into the supreme court case Facebook v Powers Inc for information behind that. This page https://www.rcfp.org/scraping-not-violation-cfaa/ seems to have a decent overview of scraping laws in general. It's definitely a legal gray area so I'd suggest doing your research! This doesn't constitute legal advice and all that, I'm not a lawyer just a guy who does some scraping here and there :)

I think this article does an OK job covering how to scrape websites rendered serverside, but I strongly discourage people from scraping SPAs using a headless browser unless they absolutely have to. The article's author touches on this briefly, but you're far better off using the network tab in your browser's debug tools to see what AJAX requests are being made and figuring out how those APIs work. This approach results in far less server load for the target website as you don't need to request a bunch of other resources, reduces the overall bandwidth costs, and greatly speeds up the runtime of your script since you don't need to spend time running javascript in the headless browser. That can be especially slow if your script has to click/interact with elements on the page to get the results you need.

Other than that, I'd strongly caution anyone looking into making parallel requests. Always keep in mind the sysadmin and engineers behind the site you are targeting. It's can be tempting to value your own time by making a ton of parallel requests to reduce the overall time of your script, but you can potentially cause massive server load for the site you're targeting. If that isn't enough motivation to cause you pause, keep in mind that the site owner is more likely to make the site hostile to scrapers if there are too many bad actors hitting the site heavily.

Thanks for the notice! Looks like we're still working on getting some of the job descriptions posted. In the mean time, please reach out to us at careers at simplelegal.com.