389 karma · joined May 30, 2008
IMHO the biggest factor at being fast is training fast and understanding this is a multi-year effort not a quick fix. Odds are you will need to change slightly your foot strike pattern, this is a long term project, not something that's done in a month.
Good luck.
Many Canadian companies are not doing "interesting" things so I can understand the perspective of being at the long end of the funnel on sprint tasks for a product that might not be getting huge marketing wins. You've already taken the first step at figuring out what's interesting to you. As others have said, start learning about some topic areas find the meetups over those topics and start networking and getting to know people in the field.
Lastly, interviewing is a skill.
What's different between full on UNIX systems and Docker, the possibility of deploying code based on scratch images. Imagine a system which only had the pieces necessary to run in production, your security exception reports would go to zero.
At scale your Fx fees can be less than 2% of the conversion amount, I know that at scale the fees can get down to <0.2% if you're moving multiple millions (USD) in a month.
I know that both Adyem and Braintree will capture into local currency, so you can avoid Fx fees by the payment processor themselves.
ps. Don't get me started about figuring out how to send automated payments and if you're lucky enough to find a bank that has a broken API to this.
The US "instant payments" is Venmo/PayPal which are secondary to the banks not primary.
You then can build all of the testing on mocks/stubs to test the behavior. If you access a database you access in through the interface which can mimic the appropriate behavior for your code in test vs production. If you need to you can do local integration testing of the db access layer.
* Test coverage -- that's not a metric on NPM * Code practices -- what's the review history * Issue velocity -- hard metric, lots of features vs fixes * Hygiene -- for many languages is typing enforced / validated
I'm sure there are lots of other metrics, but so many times you're just evaluating two packages based on "star count" or "npm installs".
What they're trying to do is get you to continue with the process and potentially slow down any other interviews by putting the total compensation out there at the start.
Prevents breaking a key off in a lock by a large factor.
I never would have imagined SOCKS being used for this use case. There was no such thing as geo-restrictions or censorship at the time on the internet.
Never would have imaged that use case.
If you saw 300,000,000 requests in the month on a 256MB lambda function and 500ms of runtime. It would only cost $678 for the order capture. Maybe my math is wrong here, but not huge in my book.
My quick observations:
* It's nice to write TypeScript as the configuration language
* The provider documentation is poor and lacks the examples that terraform has, I find my self reading terraform documentation to understand how to configure Pulumi.
* You're constantly fighting with "async" vs "Input" vs "apply" when using a value, basic cases are handled in Pulumi but as soon as you want to do something complex you're toast. Maybe I just am doing it wrong, but that goes back to the lack of docs.
* How it handles dev/production/staging is just a little off from my expectations, not that terraform at it's core does this well either (why terragrunt exists).
Overall it's not bad, but it's not a silver bullet either to the typical problems. And suffers from a "small" community problem where you can't google solutions to problems with the same success.
I think there are a few levels of code reviews that should be in place.
* Automated checks eslint/typescript as examples, you would be surprised at how many companies don't have this!
* Best practices -- react hooks, golang interfaces, calling conventions...
* Testing -- are the tests structure to test good and bad, are they brittle? * Security -- Did you build the right IAM role in terraform, did somebody just checkin their GITHUB key (ok, that should be automated).
* Performance -- Is that Promise.all going to dispatch 1000 calls in parallel.
* Architecture and inter dependancies, there is a limit for a 3rd party here.
Now if you're the Lead/Architect on a project and at a minimum you can outsource the Best practices / Testing portion of the pull request to a 3rd party you now can focus on the architectural dependancies that are really what you care about.
As an architect you can easily provide reviewer notes to the person doing the review that you are interested in focusing on specific areas of improvement across your team. Giving you the coverage to focus on the high level issues and inter dependancies while not focusing on variable names or test coverage.
Your time is valuable, you should spend it on character development not on the punctuation.
The biggest problem I've seen is that early applications are not built in a modular fashion. More as a maze of twisty little functions calling each other, where you quickly end up with circular dependancies and other "challenges". If your base monolithic architecture mimics the world of microservices, modular single purpose functions and event busses to pass around information.
Good design is good design.