|
Hughlander posted:Only if you do deployment it in such a way. Oft times I'll start with a SOA architecture where everything lives in a single deployment, whether JAR or executable. The height of which was an MMO I worked on about 12 years ago where you could run the server in any role and the client in a single executable tracing from player input through the network layer, to the server RPG mechanic in a debugger with no external dependencies. The current MMOs I work on have one JAR for every role and it's just what role the machine is configured for on startup that gets loaded. Again developers run all the roles in a single JVM, while production will usually run just 1-2 roles on a single instance. It's all variations, but for debugging multiple services I infinitely prefer deploying the production environment with config overrides (reduce the number of concurrent instances, turn on a debug port, override other services with your local versions, etc.) as is. Might be overkill when the number of services and applications is known and small, but for working with many external teams its so nice to be able to deploy and vend my own personal environment as if it were just another host in our fleet.
|
# ¿ Apr 27, 2014 23:44 |
|
|
# ¿ Apr 26, 2024 00:00 |
|
Paolomania posted:Hey oldies. Thanks for the advice. I have made past the first all-day interview to the point where I will be talking to various team leads. Any tips on what to ask aside from "what does your team do?" or "how do you run your project?" if you'd like to be more specific: do you do code reviews do you do qa how long does it generally take a new feature to be added, and why how do you assign and divide work do you have production metrics for what do you use your productions metric do you have a system for catching bugs in production what is your turn around time on bug report to fix how often does your team miss target for deliverables who are the stakeholders in your project how much developer input is there throughout the planning process is there oncall rotations how important is eliminating technical debt to the team how often do you actually get to work on technical debt do you have a mechanism for testing new features in production safely are there any good food trucks nearby will it be a problem if i dont drink how often do people on your team take vacations does it ever feel like someone on your team is irreplaceable how early do most people come in how late do most people stay do you find the work atmosphere conducive to work are you expected to attend a lot of meetings are you expected to mostly output code does your team keep up with security fixes and incremental updates in your dependencies how do you manage your dependencies, anyways how do you perform deployments how often are you deploying changes how do you handle bad deployments how do you manage your fleet who owns deployment how much new work is there how much maintenance work is there and im sure a bunch of other questions.
|
# ¿ Jul 12, 2014 02:34 |
|
Oh, and because it is so important i will make it a separate post instead of an edit what do you use for source control
|
# ¿ Jul 12, 2014 02:36 |
|
yeah, speaker phone is necessary in these cases. put it on something soft on your desk; they'll be able to hear you just fine and unless you're on a ridiculous clicky-clacky keyboard won't hear you typing. as for your question - I'd expect someone to be able to implement some kind of search w/in an hour. Would it be A*? Maybe not, though as long as your language has a heap in its standard library (sorry ruby) its not that much different from a breadth-first or depth-first search. You were caught off guard because of a miscommunication from your recruiter and your interviewer left you out to dry, but you'll find a lot of companies will expect you to be able to traverse something like a graph in a phone/in-person interview. it's pretty clear what to do, there's no super cool trick you have to figure out, and its slightly less contrived than most other interview questions.
|
# ¿ Sep 17, 2015 21:12 |
|
usually large companies will have a "target compensation" where they combine salary, stock, and bonuses. when people say they're making 200-300k, they're (usually) not talking about purely cash in hand but all those things combine, with stock starting to make up much more of the whole number as time goes on.
|
# ¿ Oct 26, 2015 03:07 |
|
baquerd posted:Hadoop or real-time? Kind of funny that I phrase the question that way, but are there any real contenders to Hadoop emerging for static analysis? Yes? Spark is a quickly maturing alternative to Hadoop that is easier and more flexible to write. Unless you mean "Hadoop the cluster manager, file system, and processing framework" in which case I'd say nobody is really building out a new file system. A couple of groups I know of are copying the basic idea of EMRFS and getting somewhere in the 1.2 - 1.5x of HDFS speed via S3. That does tie you to aws as your provider of choice without wanting to kill yourself over bandwidth charges.
|
# ¿ Jan 14, 2016 10:54 |
|
It's weird how you can tell a company's heritage from the leveling system for their engineers.
|
# ¿ Feb 8, 2016 18:42 |
|
one of the things that doesnt correlate with poo poo hours is money. see: every vc-backed startup ever
|
# ¿ Feb 26, 2016 06:04 |
|
Urit posted:I have an onsite interview with A Large Software Company based in Redmond WA (no points for guessing this one) scheduled. I doubt it pays as well, and it's not for a terribly prestigious team, but it's an actual Software Engineer job doing C# for online services management tools (I should note I've never actually held the title Software Engineer/Developer/whatever, I come from an Ops background so getting that on my resume would be a fairly big thing for me in terms of future jobs). It's full-time, and the commute isn't very bad from my apartment. I doubt it pays as well as the other one but they won't give me a salary number because "we do the levelling after the interview." I also don't have an offer yet since I haven't been interviewed yet. I've never worked for Microsoft, but why would you expect their salaried offer to not be competitive with the remote position? I'm surprised they won't give you bands for different levels, but most large companies define levels (Microsoft has the distinction of levels within levels) that determine your pay band. They likely have some idea given your resume what your level is but won't know for sure until after the interview.
|
# ¿ Feb 28, 2016 00:16 |
|
Urit posted:I meant 70/hr W2 through the contract agency. It's not a 1099. But good call on the bonuses too. the math on 70 an hour for the full 9 month period at 40-50 hours per week is 100-125k. i believe that your annual income (not just base pay) from working at microsoft will match or exceed that, and at the extreme worst will not be sufficiently lower to be a lifestyle change. i would say this regardless of the money situation, but you should really think about what you want to get out of the job for your career. here's things that I would personally consider: * personal wellbeing/happiness * growth opportunities * mentorship * resume-worthwhile work and i would try and pick the option that best fit my priorities for the particular job
|
# ¿ Feb 28, 2016 02:09 |
|
B-Nasty posted:While this is very true, I think at some point one has to make some consideration of a language's current relevance. That is, who's starting new, large applications using it, and how many newly-minted (Jr.) programmers are interested in using it. I'm not so much talking about the raw language, but all the tooling, patterns, config, libraries, and that's-the-way-it's-done knowledge that comes along with knowing a platform. notable companies which have a significant portion of their codebase in a JVM language * amazon * netflix * cognitect * databricks * lightbend (formerly typesafe) * square * stripe all of them are doing greenfield work and all of them are using Java or a JVM language as part of their toolset. they span about 2 decades of founding dates, and several of them didn't even start out using the JVM.
|
# ¿ Feb 28, 2016 19:00 |
|
B-Nasty posted:I agree in principle, but I find it somewhat humorous that the few posts following yours talk about how an interview for a non-Jr position programming in X language would involve specifics of said language up to and including deep framework trivia, non-obvious best-practices, and opinions on various libraries/tools. if you're getting asked trivia in an interview - especially if there's no context beyond "used java" - then either the interviewer or that company just doesn't know how to interview and they're worse off for it.
|
# ¿ Mar 1, 2016 05:07 |
|
Mniot posted:I don't see that as incongruous. If you've been working in Java for the past 3 years then you should have developed some depth in the language. If you apply for a Java job with zero Java and "5 years Python" on your resume, then you should expect trivial Java questions and deep Python questions (or just algorithm questions if they don't know Python). Its more like his line of questioning (or the impression it gives off) is trying to disqualify people for what they don't know, rather than trying to figure out what a person does know and (more importantly) what they do. if your interview process is all the former then you end up hiring people whose predicted success is a total question mark. EDIT: The explanation with the javadocs and a design problem is much better than "Whats the difference between Map X vs Map Y and why would you use one over the other?" or "Whats the difference between strong, weak, and soft references?"
|
# ¿ Mar 1, 2016 05:13 |
|
necrobobsledder posted:People I've recently hired: a completely incompetent coder that's still a good worker that gives a drat, a network engineer that's beyond retirement age that I can hardly inspire into learning more about anything outside a Cisco manual, a well-rounded sysadmin / devopsy guy, a Java coder just out of school that's been writing Ruby and JS for months now. I literally can't hire anybody like myself because they all quit because they know better - they all have quit within months, in fact, or outright reject the offer. Hell, I rejected the offer initially as well. You should consider changing jobs
|
# ¿ Mar 1, 2016 17:21 |
|
That man was Ronald Reagan
|
# ¿ Mar 3, 2016 15:12 |
|
Can you constructively talk about it? I've inherited a couple services that have a lot of bad ideas, but half were due to time constraints and half were things that nobody knew were bad ideas until growth happened. My favorite bad design choices are the ones that work well for a long time, because you will have to make a trade off eventually in your career. Knowing what blows up a year later vs a month is helpful in those situations. Your baby also probably has tons of bad ideas, you just don't know it.
|
# ¿ Jun 21, 2016 16:57 |
|
Tell them to not feel bad they have good dicks then slap their dick in your hand so they can see how big it is.
|
# ¿ Aug 15, 2016 17:23 |
|
oliveoil posted:How much is "a lot of money"? I thought they paid like 70% of what other big tech companies pay but if you stay for more than two years then you start vesting properly and finally you're making the big bucks: maybe 90% of what LinkedIn/Facebook/Google/Uber would have paid you when they first hired you, but chances are you got a raise and/or more equity at some point, so those companies are still way ahead. Are you really suggesting that midlevel Amazon SDEs make 90% of what an entry level SDE makes elsewhere? That seems tenuous. Anecdotally, I make about 180k a year after about 2 years. This years it's a bit more due to the stock jump, but I'm not counting that. My next promotion would put me into the high 200s/low 300s. I could make a bit more by job hopping within Seattle, and more still if I job hopped to the bay. Though, that would be a rude increase in cost of living AND I probably wouldn't be able to walk to work anymore .
|
# ¿ Aug 26, 2016 03:57 |
|
Doctor w-rw-rw- posted:I mean, that doesn't sound too far off the mark? The person I was responding to said he made 170k+ at a "comparable company" after 2 years. Assuming that + is 5-10%, we make about the same amount of money. If he's in the bay he's got a much higher rent and state income tax to pay. I also don't have to commute an hour to get to work, but now that it seems like every company out there has offices in SLU, that's less of a differentiator.
|
# ¿ Aug 26, 2016 15:26 |
|
speng31b posted:It's used extensively. I use it, too - almost daily. left-pad day caused us some trouble. why arent you versioning all of your dependencies internally?
|
# ¿ Oct 3, 2016 00:38 |
|
One idea might be that every key gets its own directory and you store the file ands it's metadata with a name that is the epoch concatenated with a hash of the contents. Retrievals take the newest file found, tie break on hash. This would have the nice properties that: * a lot of eventually consistent stores do let you read your creates, so new files and "modifications" should immediately be viewable from ex s3 *simultaneous modification is possible and resolves consistently by time and then hash * you can easily garbage collect each file with a background reaper to reduce space usage Metadata and the file being separate is still an issue. Writing metadata before the file and having your application retrieve the newest metadata for a file it can also find should resolve that. FamDav fucked around with this message at 16:11 on Nov 18, 2016 |
# ¿ Nov 18, 2016 16:03 |
|
Nobody is writing to the same location in a backend; every modification is creating a new set of files under a key. So conflict resolution is performed by querying for the set of files it can find in a backend and applying a total order to them to figure out what the current revision is. The total ordering is a bit lame because happened after is murky due to ntp drift, but if you cared about a stronger happened after ordering you would allow a better data store for metadata. If you wanted to provide it, you could do reads across all backends to pick the latest revision that exists in N backends for a quorum read (if it's not committed to N backends, I don't consider it durable). This gets you out of having to implement rollback of partially failed writes; a file that never made it to your desired number of replicas will never be returned, while a file that did will eventually be returned (or some newer version).
|
# ¿ Nov 19, 2016 19:28 |
|
Though really you should just be able to use a key-value store like dynamodb that allows conditional, quorum writes for your metadata. You probably do want to fail if someone else updates a key while you were trying to update it, as opposed to just a guarantee that the system would eventually converge to some state for all parties.
|
# ¿ Nov 19, 2016 19:33 |
|
ratbert90 posted:Companies can't legally punish people for discussing compensation with other employees. That's a federal law as far as I remember. And yet
|
# ¿ Jan 16, 2017 18:36 |
|
Roadie posted:So, here's a warning for anybody else interested in SDE stuff at Amazon: regardless of your experience or references, they will make you take a programming test with someone watching you through your webcam the entire time. Not an interview or anything interactive, just a "proctor" from a third-party company operating on the basic assumption that you are a cheating liar and you and your computer need to be monitored the entire time. Could you give dates for when this happened to you? My understanding is that we stopped doing that (and said we stopped) once the broader SDE community found out and pitched a tent. The interview process /should/ be 1-2 phone interviews using something like collabedit followed by an onsite with 4-5 interviewers. these monitored tests were supposed to be pre-screening, but they are somewhere between not great to awful for the interviewee. FamDav fucked around with this message at 23:21 on Feb 17, 2017 |
# ¿ Feb 17, 2017 23:19 |
|
xpander posted:Anyone know anything about System Engineer roles at Amazon? Someone from the Edge Services team emailed me yesterday, and I'm wondering how they interview for those vs pure SDE jobs. Was it a system engineer job or a system development engineer job? The former requires minimal coding, whereas the other requires you to meet something close to an SDE.
|
# ¿ Mar 20, 2017 17:34 |
|
oliveoil posted:These all sound like things that require just a little experience with distributed systems, which is something you could get on your first day at some companies. How much QPS, storage is fairly basic math (I think Programming Pearls had a section on back of the napkin estimates, but if not, I've heard there are plenty of sites that will walk you through this for interview questions), and sharding is a pretty straight-forward concept. i think a naive view of these things begets a naive response. For example, sharding isn't simply just "pick a primary key, hash and bucket", some of the things you want to consider * shards have multiple (in)dependent axes of scalability; how do we identify when we are near the scaling limits? how do we identify how things within a shard are hitting various scaling limits? * on what bounds do we shard? what can span shards? * how do these shards help or hinder blast radius reduction? * sharding can be done logically "Foo object F goes into shard S" or ex. geographically "Foo object F stuff in availability zone 1 is managed by shard S in zone 1". Are you sharding on one, the other, or both? Is one more important now? * how do we split and rebalance shards over time? minnows become whales, and you'll need to migrate those whales seamlessly and (ideally) proactively. The last one alone can seriously impact how you design the system, as implementation details around storage and event persistence can change migration from a complex/fragile experience to a fairly straightforward process. more generally, i think there's two levels of thought about system design that people grow through. the first is learning how to design systems, by understanding how to combine things together (I use a key-value store here! I use a message queue there!) and coming up with cogent designs. the second is learning how to design systems that are safe and available, by removing single points of failure and containing things to static boundaries. its not just knowing how to build something but all the myriad ways it can fail. this is especially important for maintaining/modifying services that exist and have consumers, as you no longer have the benefits of greenfield development or the ability to gently caress up in production. i think we're getting better as an industry about making the first thing easier to learn through more intuitive and accessible infrastructure as well as whitepapers, but we're not doing a great job of externally communicating the second.
|
# ¿ Mar 24, 2017 06:00 |
|
Doctor w-rw-rw- posted:EDIT: "junior-level position" Elsewhere, they've said they have 4 years experience overall. Regardless, given they've said they work at a "MicroLinkedFaceGooberZon" i would be really concerned about having two years experience as an entry-level engineer without having been put up for promotion. they'll need some good storytime to explain why they haven't been promoted, and their reasons should be something like having a bad manager/mentor or transferring teams to much. also, if they do want to leave and come back, they should be cognizant of the fact that most large tech companies take growth into account. someone who's entry level and straight out of college is fine, but someone who has been stuck at entry-level for 5 years probably isn't worth the hire. additionally, what do they actually want to be? in this thread they've thought about * becoming a sales engineer * focusing on ML * somehow getting a senior-level position at another major tech company (when they can't even convince their current company that they should be promoted once from entry-level?) * taking a whole summer off to play videogames so maybe figure that out first?
|
# ¿ Apr 9, 2017 01:28 |
|
minato posted:My co-worker at FB had previously worked at Amazon. He didn't have much to say about it, other than it was a fairly standard place to work at, but that it was run by retail people not technical people so a lot of the tech-first culture that exists at FB didn't exist at Amazon (he didn't cite specific examples, but it sounded like there was lots of tech debt). He also refuted that article that says everyone cries at their desks at Amazon, and he went home at 5pm every day. There are apparently few perks at Amazon (like free lunches, etc), apart from free bananas (!?!?). the "retail people not technical people" really only seems true on teams that are doing very focused product work. the infrastructure teams and all of aws are generally technical all the way up. though i would say we're willing to take on technical debt/operational load if it provides customers a better experience, which also influences what we choose to work on over time. one thing i think that differentiates amazon is that we tend towards decentralized solutions whereas other large tech co's have chosen centralized solutions. teams are run as if they're their own small company and we have enough primitives in place to make it really easy for teams to do whatever it is they want to do. this does mean there is less homogeneity across the company and makes it much more difficult to contribute to teams that don't have good processes in place for accepting external contributions. one of the more interesting outcomes of this decentralization (imo) is that we're rapidly moving towards most/all teams running everything out of their own aws accounts s.t. retail is really just another company that runs on AWS.
|
# ¿ Apr 29, 2017 23:34 |
|
TooMuchAbstraction posted:I can pretty much guarantee you that any cloud service that isn't poo poo is being dogfooded by its developers. Cloud services are so useful to big software companies that there's no reason not to dogfood; the only other alternative would be paying for someone else's cloud services, which doesn't say much about your confidence in your product. so there is a difference between leveraging what you're building and running as if you were just another customer. Amazon has leveraged AWS for a long time but in a way that was unique to Amazon (in addition to legacy infrastructure), and there is now a big push to move away from that model towards using AWS as its publicly consumed, i.e. Amazon would be just another Netflix to AWS. thats what i think is so interesting. And just to be clear by Amazon I'm referring to everything but AWS. Paolomania posted:Yeah I thought "cloud services" was pretty much just each company productizing the infrastructure they had already developed for their own services. this is generally not the case, unless you want to argue that they are productizing their experience at building the infrastructure. the constraints, considerations, and priorities in building public infrastructure vs private infrastructure are such that what you have internally is rarely suitable for public consumption without a significant amount of changes/an entire rewrite.
|
# ¿ Apr 30, 2017 04:49 |
|
TooMuchAbstraction posted:
It's not even just that (though it's part of it). There's a lot of work around billing, lifecycle management, security, and maybe even blast radius that you wouldn't do if you were just running internally. Also, at least in AWS' case there is little "what have we built internally?" And mostly "what do customers need/what's an interesting idea?" going on today.
|
# ¿ Apr 30, 2017 16:19 |
|
Analytic Engine posted:Elliot could never bring himself to kill a graybeard, much less 5 then he finds out what they traffic in
|
# ¿ May 8, 2017 21:36 |
|
quote:- It can be high pressure. The best SWEs were those who could walk into an emergency with little knowledge of the systems, calmly and systematically probe some important points to figure out the problem, and crank out a mitigation or solution fairly quickly, all while managers are screaming and tearing their hair out that $$$ & customer goodwill are being lost every minute. Not everyone is built to work like that. (Personally, I panicked every time I encountered a problem that I hadn't seen before so I was a terrible SRE to be oncall with) management failing to remain calm and manage the customer/business side independently of the developers is a sign of lack of maturity and/or trust. isolate the tech team to resolve the issue while the business team can work on customer management. I do think developing the ability to work well under pressure with the unknown is a very valuable (and valued) skill in this day and age, and those who choose not to develop this skill or smugly say "SDEs shouldn't be oncall" are going to lose this battle. I would also say any actively developed service where the SDEs are not the most adept group at operating and debugging their service is a service you probably don't want to be relying on =/. EDIT: the big difficulty with SRE showing value is that their value is inherently in all the money you didn't spend or lose. A good way of doing this (I've seen) is showing how SRE work has reduced the time to do certain common functions or allowed for scaling to not require a (super)linear increase in headcount. Another avenue would be measuring availability of the service, which any good service should have as a key objective. FamDav fucked around with this message at 22:28 on Sep 16, 2017 |
# ¿ Sep 16, 2017 22:23 |
|
TooMuchAbstraction posted:I’ve worked for Amazon and Google and neither had issues like that. It took them both a little bit to get my workstation hooked up, but I had a working laptop (sufficient to do “real work” with in Google’s case) in the meantime and plenty of documentation to review / training videos to watch while I waited. The Amazon thing has changed in the past two years. Many/Most people do some form of development on their (usually mac) laptop and either run things locally or sync to a dev desktop on ec2 (usually something like an m4.2xl but really whatever you need). Now that Brazil runs on macs/Ubuntu and they have some dev wrappers for running native stuff in amazon linux containers it's mostly about how much cpu/memory you need to run stuff :/. Some people are also starting to play with some Brazil integration into cloud9 but I find developing in a browser weird. FamDav fucked around with this message at 02:22 on Oct 13, 2017 |
# ¿ Oct 13, 2017 02:12 |
|
TooMuchAbstraction posted:I should have clarified that my Amazon knowledge is pretty out of date (mid-2000's). It's not surprising that they've made advances, considering that EC2 was just beginning to be a thing when i was working there. I remember when they first started trying to get us to put all our stuff on VMs instead of actual physical machines. Fair, though I’d say the anemic laptop thing was an issue for much longer than mid 2000s
|
# ¿ Oct 14, 2017 01:46 |
|
Munkeymon posted:A local VM with device passthrough isn't going to be noticeably slower unless you're running on some really crappy hardware or have hosed up your VM/container settings. oh hey thats me. i really enjoy it because it gives me tons of flexibility over how many and what kind of machines i have available for development, and makes it relatively trivial to migrate to new distros or hardware as i see fit in a sane manner. i can also anecdotally say its made our it support's life 100% better now that they don't have to janitor dev machines. one thing i'll say is that running a vm on ec2 is an entirely different experience compared to running a vm on a local development machine because of all the work people in ec2 have put into it as well as the context in which that vm is running. i see objectively better performance compared to some other setups i've had on top of the benefits described above.
|
# ¿ Nov 6, 2017 07:33 |
|
Pollyanna posted:Has anyone actually done this? Is it seen as a negative? How often does it work out? https://www.youtube.com/watch?v=Kp7eSUU9oy8
|
# ¿ Jan 8, 2018 16:54 |
|
Pollyanna posted:I don't think I'm prepared for this screening - is it still worth a try? literally (like literally) the only thing you lose out on from applying and not being hired is the ability to apply for another ~year. the only time i can think of where an interviewee was effectively blacklisted was when he said some p derogatory things about his previous interviewer. as for the phone screen, i generally think its more geared towards finding reasons why you should be given an onsite as opposed to a first step weeder pass. this is mostly to account for the lack of multiple inputs into the process, as well as that whole phone/shared code editor setup.
|
# ¿ Jan 16, 2018 04:38 |
|
Pollyanna posted:I can do a good job, and whether or not the project is successful is up to the project. Really? The result of a project is a function of the people working on it, their output, and the processes around it (also a bunch of other stuff including some luck). I know you know there are better ways to do things on projects you've worked on because I've seen you call it out in other posts! Getting buy-in to your ideas and improving the people, their output, and the processes ya'll follow to make a project better is exactly what it means to be a "better developer". also, your parents are abusive in a way that's very hard for people to say "wow, that's abusive". you should really try out therapy and setting boundaries with them.
|
# ¿ Feb 6, 2018 09:11 |
|
|
# ¿ Apr 26, 2024 00:00 |
|
ForrestPUMP69 posted:Just wanted to share the perspective from an Enterprise CRUD Ninja who's never worked for Big Tech. Sorry if I missed it, but what kind of employer do you work for? $180k base seems REALLY high to me as a senior dev, I've never seen that anywhere. I've worked for a few different household name F50 companies and currently work remotely for a big west coast healthcare provider. I make ~$115k + 10% bonus as a senior dev (8 yrs xp), and I think principals make $120-140k + slightly higher bonus. I never saw anything higher than this for developers at any of the companies I've worked for, in fact it was typically lower. At State Farm we had lead devs making like $90k, it was pretty bad. but how much stock do you get tho
|
# ¿ Feb 9, 2018 18:12 |