HN user

troyk

291 karma

sms & payments hacker

Posts2
Comments121
View on HN

I founded the first web based background screening company in 1996 and I am back in the industry today, here is what I would do:

tldr; if it is sealed, do not worry about it. If not, be upfront as soon as possible.

Call the court clerk in the county the record is sealed in and confirm the record is sealed; If so, when a court researcher searches for the record, it will not appear and not be reported by the CRA (Consumer Reporting Agency is the technical term for a background screening company).

If you have never lived or worked in this county, it may never be searched.

If somehow the county reports the record and it is sealed, and the employer does not hire you because of the record, the employer has to do what is called the adverse action process, which gives you an opportunity to dispute the information before taking final action. During this time, you can have the CRA remove the record.

Enjoy hacking away at a FAANG!

I'm evaluating svelte and have yet to do much, however handling dynamic components is a key requirement, and appears to be supported like so:

  <script>
    import RedThing from './RedThing.svelte';
    import GreenThing from './GreenThing.svelte';
    import BlueThing from './BlueThing.svelte';

    const options = [
      { color: 'red',   component: RedThing   },
      { color: 'green', component: GreenThing },
      { color: 'blue',  component: BlueThing  },
    ];

    let selected = options[0];
  </script>

  <select bind:value={selected}>
    {#each options as option}
      <option value={option}>{option.color}</option>
    {/each}
  </select>

  {#if selected.color === 'red'}
    <RedThing/>
  {:else if selected.color === 'green'}
    <GreenThing/>
  {:else if selected.color === 'blue'}
    <BlueThing/>
  {/if}

$80k is what we paid for a PM, not a senior engineers. We pay our seniors $120-$250 depending on how their domain experience maps to ours, and if you want to live and work in the Sacramento Area I can have you interviewed, vetted and on-boarded in less than a week. Being in Sacramento, we have lost talent to the Bay Area for top candidates coming into the state that want to work for a more known entity and a have a larger network work within.

No BS or bad vibes; Just real peeps writing code and having fun doing it and always looking to add great people to the team because the demand is high and experienced talent is in short supply.

Our market (Sacramento, CA) is so hungry for senior engineers (for web or mobile), I'd wager max 2 weeks to be back in the saddle. But I doubt HPE has much talent for web-stacks, likely Microsoft/.Net and SAP experience which I can agree with your statement.

We just interviewed a PM from HPE and to our surprise, he makes ~$180k a year. We hired an awesome candidate for $80k.

We do this and have great success with a small SMS/Email application doing ~2mil jobs a day (mostly over a 6hour peak period).

Except, we use postresql's LISTEN/NOTIFY which amazingly is also transaction aware (NOTIFY does not happen until the transaction is committed, and even more amazingly, sorta de-dupes itself!) to move the jobs from the database to the message queue.

This way we never lock the queue table. We run a simple go program on the postgresql server that LISTEN's, queries, pushes to REDIS and then deletes with a .25 second delay so we group the IO instead of processing each row individually.

This also allowed us to create jobs via INSERT FROM SELECT, which is awesome when your creating 50k jobs at a time.

We are sharing your sentiment that a lot of our user-facing errors could be limited by moving away from weak typing (current stack is Ruby). In hindsight, did Go and protobuf prove well, we are evaluating Go and possible Elixir as a sweet spot between static and dynamic typing.

I'm considering moving from a macbook pro to the blade and adding the core to get a beefed up desktop experience with the ability to unplug and take work anywhere it needs to go. I'm assuming I would need to stay in windows land with linux via Hyper-V. Besides iMessage, all my apps run on linux (more-so) or windows (less-so). Any thoughts?

I understand the need for businesses to make money, but I do not understand how a business can understand OSS and implement the OSS core-only model. If your product has demand, at some point, an OSS project will arise to displace you.

Are there many winners with this model to name. Maybe NGINX, MongoDB?

I had almost forgotten that I had written (and sold) a fairly popular chat system for BBS's back in the day. I google'd "Multi-User Teleconference" and to my surprise it popped up on some sites listing old BBS warez. Downloaded, read the docs and order form; so cool. I can see how it would be easy for someone not familiar with the BBS scene to ignore chat. I was there and almost forgotten.

Wow, already home brewed too! (OSX users can upgrade with `brew update && brew upgrade elixir` and it just magically works -- because awesome people have made it so)

What a great way to ring the new year! Happy New Year everyone!

Yeah, so the details of such is what I have not seen any examples of. I do plan to figure it out soon and then hopefully share it to benefit others. From what I understand thus far, I'll create a GenServer to connect to redis (so only using a single redis connection), pull jobs from redis and spawn Tasks on all nodes registered with the GenServer. And then I need to figure out how to limit the GenServer to a single instance per app on all nodes, or if too much hassle, just allow a GenServer per node and only spawn Tasks on the local node (so 1 redis connection per node).

I hear about the distributed properties of the vm often, but every example seems naive in that the work is passed to a named node, where in practice it seems the need would be to load balance between nodes available nodes.

For example, I have a system in Go that uses redis to pull jobs, each process I spin up uses a buffered channel allowing 20 concurrent requests. I looked at elixir because I liked having a the process isolation and the dynamic nature of the language (the jobs scrape data from the interwebs), but I couldn't find a simple way to distribute jobs to nodes unsuring each node is capped at 20 concurrent jobs.

Ditto except I've recently begun opening a new tab and googling the product (once found) to price compare.

I prefer amazon for ease of use (prime, trust & not having to key my personal info) and security (less footprint giving my credit card out)

I've made something very similar for a current project and haven't gotten around to extracting it as a separate pkg yet, but it is much more loose on the coercion, e.g. when calling String() on an int(5) you will get back "5", etc.

Thank you making a go driver, I've played with it a bit and the first thing that jumped out at me is the documents passed to and from the database use a special "gorethink" tag instead of the built-in "json" tags. I thought this was odd since rethinkdb is a JSON database.

I really hope I get to use Rethink in anger before I die. Last time, I had to move on because we are multi-tenant SaaS and it seemed the compound indexes just were not up to that task, does this release fix any of those issues? (I seem to recall I was having to use a between query and not being able to sort, but it was a while ago and I quickly got back to work with old reliable (postgresql))

Templating in Go 12 years ago

Doesn't mention imho the best feature of Go html templating, from the docs (http://golang.org/pkg/html/template/):

This package understands HTML, CSS, JavaScript, and URIs. It adds sanitizing functions to each simple action pipeline, so given the excerpt

  <a href="/search?q={{.}}">{{.}}</a>
At parse time each {{.}} is overwritten to add escaping functions as necessary. In this case it becomes
  <a href="/search?q={{. | urlquery}}">{{. | html}}</a>
.

Mentioned this in the blog comments, but would anyone familiar with the Go internals know if a set/modified/etc flag could be added to the struct field and available via reflection?

(That would be awesome!)

Seems like the issue is trying to keep type safety when doing a PATCH so instead of polluting the struct with pointers so it can be used to do a PATCH, why not create a separate type specific to that purpose:

  type Repository struct {
      Name        string `json:"name"`
      Description string `json:"description"`
      Private     bool   `json:"private"`
  }

  // response to blog post https://willnorris.com/2014/05/go-rest-apis-and-pointers

  type RepositoryPatch struct {
    Repository
    patched_fields []string
  }

  func (rp *RepositoryPatch) SetPrivate(private bool) {
    rp.patch_fields = append(rp.patch_fields,"private")
    rp.Private = private
  }

  func (rp *RepositoryPatch) MarshalJSON() ([]byte, error) {
    // marshal rp to []byte then unmarshal to map[string]interface{}
    // filter patched_fields and then marshal again
    // ;)
  }

I keep seeing the uuid idea for pkeys, but have yet to see them used by any big site. Last I looked, twitter, facebook are using bigints all over the place. Also, instagram went bigint and blogged about it here http://instagram-engineering.tumblr.com/post/10853187575/sha...

Also, I tried the uuid extension once... It is not well supported, had to make a small change to a c header file to get it to compile on ubuntu, for dev on os x I think I gave up.