Fork me on GitHub

re: CircleCI's "dont sponsor visas" thing. in my view its OK because the whole team appears to be distributed and they're looking for remote people anyway, so where would they sponsor the visa for?

Fahd El Mazouni11:08:01

When you put it that way... It's cool :3 but I think they said they're open to remote work


i think it's fully remote, looking at the job ad there isn't any location specified.


It might be remote, but US-only and not open to B2B contracts, just US full time something that requires a visa. No idea why companies are doing that, though.


could be, but i see one other job that says "North America" as its location, so I suspect in this case it's probably not limited by borders.


It's not US-only. I am based in South America, and there are team mates in Europe and Asia

💯 8
👍 4

(talking about the developer position, customer-facing positions might be tied to locations, I don't know)


@U0FTV149X it may be good to clarify that you’re willing to hire in other countries, just not sponsoring US visas specifically


Sponsoring visas is a lot of work, time, and expense that smaller companies are often not set up for. Where I work, we're all remote and we're open to anyone we can set up as a regular US employee -- but we're too small to take on the additional time and complexity of paying a non-US employee, let alone deal with sponsoring a visa (we have done the process once -- well, actually, it's still in progress -- and we just can't invest that much time/effort/money in another employee when we can "easily" fill new roles within the US).


Why fixed on regular US employment, why not B2B with anyone, @seancorfield? I don’t know the reasons for it apart from wanting people from US and people from US expecting this kind of employment.


As I understand it, so payroll stays uniform for salaried employees (US dollars, US bank accounts, US taxes/social security etc). In general the only time we hire on contract is "contract-to-hire" positions so the same US employee rules apply.


(I assume you mean contract work when you say B2B @U5DMBPJFP?)


(Yes, @seancorfield, although I might be misunderstanding normal job vs contract or maybe I’m just treating those not strict enough - I suppose I was simply often hired on contract even though my employer would treat me as a regular employee and hope I’d stay on the team as long as possible.)


Contract vs employee is a huge difference for an employer -- the former means no benefits to pay for and a lot less liability; the latter means uniformity across "all" employees (better rates on healthcare plans etc). Dealing with a lot of individual contractors is a pain for employers (which is why many of them only work through agencies -- which are a "lowest common denominator" in my view and the worst of all worlds for everyone involved since the end contractor gets paid less and the employer often over-pays for the work).


This is a super interesting job that would allow me to work on clojure, play with JVM internals, and get to apply some of the computer architecture stuff that I studied in college.;openJobId=114084463#&amp;openJobId=114084463


unfortunately i don't think i have the required experience


any tips on how to get started with JVM internals?


That is, there are a lot of JVM roles that require deep knowledge the JVM that are mostly about understanding how GC works under various workloads. That particular role in contrast looks more like instruction and execution optimization. The JVM spec book is a good way to start.


It is also useful to bring a computer architecture perspective to evaluating the JVM instruction set that Clojure ultimately compiles down to


^ what do you think about prep for fairly unique roles like that? I always wonder if, by the time someone gets the required experience, the role will be already filled.


Unless you are a really quick study, that is probably true. So, I would guess such prep would be in anticipation of the next such opportunity. Of course, they may not be practical...


I don't think this role would be "playing with jvm internals", this looks like they want someone who knows a lot about optimizing code for the jvm. So someone with a lot of experience doing that would necessarily know how the jvm works on a pretty intimate level. Ultimately I think this just demands a person who has a lot of experience with these kinds of optimizations and I doubt studying will do much for you because the person who has real-world experience with various techniques will win.


How do people get into these specialised kinds of roles then?


I mean, what’s the path people take from being a student to a fully specialised dev like that.


probably they have to do some optimization for some reason at a job they didnt originally start off specialized, then they're able to get something a little more specialized, then they get a job at apple optimizing clojure machine learning code heh


Most of the job market looks like code factory jobs, where you’re unlikely to gain that type of experience.


Or if you tried, you’d get told off for wasting time where you should be producing Features.


yeah i guess it depends on the job


That’s why I’m curious, I haven’t seen a route connecting X with Y - you know, where the intermediate step is.


Most people I asked said “I was lucky”, but it was clear that the lucky part lay in finding out about the extraordinary job; they already had the skills to do it.


i'm not sure about JVM-related stuff but there are some clear paths with C++ for example. Like you could start off in games and then move into HFT


maybe if you do a lot of android development you've done some optimizing java code on that platform...


How do you find about this kind of stuff?


For the amount of “you need to plan your career” articles, I haven’t seen anything that actually says that you could transfer from X to Y to Z, or what the end game is for particular specialisations.


(Possibly this is because I don’t do C++ and this is clearer in that particular area? Are there any resources you would recommend? I really don’t want to get into game industry, but I would love to do proper code optimisation so would need an alternate route 😄 )


i mean i can only speak for myself, i'm in something kinda specialized which is video streaming and what i described is more or less how i got into it. I had a job where we needed a video player and someone had to make it and that someone happened to be me, then i got another job where the company was having a hard time getting decent performance and more features for a video conferencing app so since i had the most experience i ended up being the guy to do that, and then i got into some more serious stuff like making a media server, etc.


Yeah, that makes sense.


Also in what you say, this strikes me as very common: you had the most experience at X, so you were the person to do more with X.


(Which is something of a catch 22: I honestly don’t know how people are able to upskill when there is always someone more knowledgeable, who therefore gets to do the growth tasks.)


My path to very specialized work was that I joined a company, as a fresh graduate, that wrote compilers, interpreters, libraries, and runtime systems. So it was really just coincidence (that I worked on one of the first ANSI-validate C compilers and later worked on a C++ front end and was on the ANSI C++ Standards Committee for eight years).


Although that work (specifically the C compiler) got me two follow-up jobs: one at a firm of actuaries that had a high-level DSL for actuarial work that someone built in-house, and they wanted someone to write a compiler down to Parallel C, targeting Inmos Transputer grids; one with a software tools company, that licensed the C compiler to use as a front end to a metrics and coding standard analysis engine.


(and perhaps part of what helped with that path was that my final year project at university was to write an APL interpreter -- because it looked fun -- and I stayed on for PhD work on functional programming languages, building a LispKit interpreter and then designing an ML-family language that transpiled down to Lisp... so perhaps going on to work with compilers etc was an "obvious" path)


I think, these days, to get into "JVM internals" stuff you'd have to specifically seek out companies doing that (Oracle, IBM, Azul, etc) and none of those companies would appeal to me (even tho' the work probably would).


(I don’t particularly want to get into JVM internals. Just anything more interesting than what I’m doing right now. Would love to do compilers but I have no clue how to get out of the particular sand trap I managed to land myself in.)


One good way to do that, if you can save up some money, is to come up with a speculative startup idea that involves the experience you want to have. Then quit your job and spend six months or a year working on the idea. Don't take VC money, just try to build a kickass project on your own or with a partner. If it fails -- as most startups do -- you've got the right experience to apply for jobs in the subfield you want to be in. And if it succeeds, well, then you're already in the subfield you wanted, with a successful startup to boot! I took that path a few years ago when I switched to Clojure, and it worked out very well. My wife and I lived in a falling-apart RV for six months while we did it, but I found it well worth it 🙂


That’s an interesting idea, thanks :) I think primarily the reason I work for others though is that I hate business-running work. I wouldn’t be able to sell water on the desert, whereas running a startup is primarily the process of convincing people to give you money for promises :D


Yeah, that was definitely my point of failure when I did it — neither my partner nor I was great at sales. It didn’t matter, though — it would have been cool if we ended up succeeding, but failing left me in just as good a position, ie with the right experience to get the kind of job that I was aiming for 🙂


You see it discussed some places as “failing up,” in case you haven’t run across it (I hadn’t before then).


I haven’t, though the concept makes sense to me 🙂 I guess this is my “if it’s worth doing, it’s worth doing it properly ” showing XD


But building a viable product, even if it doesn’t take over the market, is already a proof that you know and can deal with the entire lifecycle of it.


Totally. And if it doesn’t turn into a commercial success, you can open source it so that it doesn’t go to waste.


I don't know whether you'd have a take a pay cut to get started in a new industry but you'd probably need to apply for junior roles in companies that make stuff you're interested in...?


For a while, I was interviewing and seriously considering a job with a large (property) title company, because it was local and it had terrible processes that I thought it would be fun/challenging to overhaul and make more efficient. I wasn't interested in their tech stack or the business itself. I think there are lots of valid reasons to seek out work at specific companies...


potentially you could get a regular job working with a jvm stack and hope that you get opportunities were you have to really dig into it to debug


I used to think often "I'd do anything more interesting than what i'm doing now", I think one should do something about it if it's causing either burnout or stale learning. But I've learned in my short time as professional developer, the better and faster I become, the more fun it is and more influence I have. And I think it goes without saying, easier to get the jobs one wants. It's my theory that everyone goes trough a period of, "shit this is boring" in any job there is on this planet, but it's usually happening on the most crucial time, when one's in a position to learn even more. But I could be wrong.


It's great that you're raising this @lady3janepl, solving for this kind of growth and being able to execute an escape is hard to manage/do on a systematic basis. I've been in the industry for a long time, and I've seen it mostly get harder, in large part because the degree of technical taxonomic specialization has increased dramatically. But the first step in successful career management is recognizing that it needs to be managed.


I’d argue that while looking for a first job out of college should deprioritize the job’s tech stack and prioritize higher things like culture and training resources


i think open source work can probably augment your career specialization too. A lot of video people start with open source work.


Yeah, I think I'd "+1" on both of those opinions (@hlolli and @jonahbenton). I didn't "plan" my career -- I just sort of fell into the compiler stuff after uni but then I had a complete change when a telecom job came up (C++, embedded systems), then I joined a small services company that was using C++ to build all sorts of stuff, including e-commerce/knowledge-base systems for the web -- and at that point it was much easier to switch jobs (in the web world).


because that first job isn’t so much about “learning to program in X and Y” as it is “learning to work a full-time job as an engineer and what that entails”


@scriptor I don't know... I think a lot of fresh graduates who learned tech X at uni will gravitate to companies that use X primarily and only figure out culture etc as an afterthought.


(but you're probably right that they should be treating that first job as "how to become a software developer")


@seancorfield yep, and that may be because all they know at that point is the tech. But at least at my first job so much of it was just learning all the “other stuff”


i felt like it took a few years before I "got it" when it came to "how to be a software developer". Before that I don't know if I was too immature or lacked confidence or what, but I felt like it took a while and more than one job.

💯 4

like understanding the product and business, understanding what’s expected of you at any given point, figuring out the relationship between you and your boss and team members, how to coordinate inter-team stuff, how to gather and maybe help shape requirements, etc.


@lady3janepl if you really want to try something new why not put out some resumes? Lots of places just need people who can get shit done regardless of whether or not they're a perfect fit.


One good way to do that, if you can save up some money, is to come up with a speculative startup idea that involves the experience you want to have. Then quit your job and spend six months or a year working on the idea. Don't take VC money, just try to build a kickass project on your own or with a partner. If it fails -- as most startups do -- you've got the right experience to apply for jobs in the subfield you want to be in. And if it succeeds, well, then you're already in the subfield you wanted, with a successful startup to boot! I took that path a few years ago when I switched to Clojure, and it worked out very well. My wife and I lived in a falling-apart RV for six months while we did it, but I found it well worth it 🙂


that's one way to do it i guess


I would advocate a different approach from just putting out resumes- which you can certainly do, but from a career management perspective that's kind of like buying a lottery ticket. The thing that's hard, but that in my experience pays dividends, is to get into career storytelling- for which there are a lot of techniques, but one is- 1 year/3 years/5 years from now- what would you want your resume to say?

👍 4

It's a much more direct route than trying to slowly tack in the general direction you're trying to get 🙂


that's true, it is.


And yes, working speculatively on something is one technique after you have a vision, but with a vision, there are other ways to level up


@jonahbenton i agree partially, but a lot of times people don't really know what they want to do. Just talking to young programmers and a lot of the time they can tell you what they don't like and not what they like


@jgh absolutely- and to that point a lot of the work involves changing perspective. it's less about what you like and more about what you might accomplish, what you might enable, what you might support. family and other considerations ideally can factor in

👍 4

sure, different people have different motivations. I guess I was speaking on a more tactical level though. For example if I had to do front-end web development the rest of my life I'd probably become a farmer.


Yeah, but then you end up spending most of your time having to create public-facing user interfaces for your farm. Trust me, it's terrible. The days of just slapping together a PHP-based produce stand are long over...


Hey, sorry for disappearing; I do have work to take care of ;)


that's a good way to force yourself to find a new job- stop doing your current one


It’s getting a bit too specific for a discussion on a public channel, but I do have a fair chunk of experience, just not in the right direction (I don’t quite know what the right direction is.)


Fair being > 10 years. It’s just, life happened.


When I did ask people about the routes their candidates take, I heard they come with PhDs in the specific thing they’re recruiting for :) which again does match what you guys say.


I have been wondering if I should go back to uni, but with Brexit coming up that seems unwise.


why's that


is that 10 years of professional experience?


I’m old :) just, most of my life was spent away from large tech centres because Reasons.


ah sorry, was confusing you with someone else who asked a question here who was just out of college


@jgh All the EU grants are going away


oh i see


Last time I talked to a friend from academia he was Worried with a capital W


Everyone's story and path is different, but I've interviewed a few PhDs this week whose particular PhD training has nothing to do with the role they're interviewing for. It's infuriating, actually


Anyway, thank you for sharing guys :) It confirms the trends I’m seeing which is useful in itself


It looks like a lot of people are encouraged to transfer to that because “maths training”


yeah- stats, data modeling, experiment design- somewhat reusable from phd work, but one guy had been doing his phd for 6 years


high time he started earning something from that investment ¯\(ツ)


Indeed, indeed. What I find infuriating about it is that the 6 years is about 1 year of engineering time, and 5 years in a data/analytical domain in which there is no work outside of uni (and very little in uni, for that matter). There are good things about that- all sorts of stuff needs to be studied, for which there isn't a business model, and he was mostly funded so did not emerge with an enormous debt load. But still... The real world is very different. My oldest kid is just entering high school and I find the prospect of her submitting herself to the higher ed ecosystem (in the US) to be...I don't have a word for it. It has predatory/illusory aspects that I find unacceptable, and it seems like it only going to get worse. Apologies, /rant.

steven kent17:08:21

Great discussion everyone, very thoughtful


I always say when mentoring - 'what do you want to be doing in 5 years?' then try to help them plot a path based on small steps (transfer to a new team, build a side project) - and then even if that vision continually changes it gives a frame to put things into a context and adjust when things aren't going so well


It's also how I avoid getting too sad when work isn't what I would 100% like to be doing... just interrogate whether I can use what I'm doing as part of the story I tell somebody in 5 years


If so then no worries I guess


But so much of it is about the story we tell others and the way we reconcile that story with ourselves


Yes! And with reality.


definitely with reality. Both personal and work life can be better when you feel like you have a narrative


i just tell people im doing this and that


It may be obvious but the professional narrative becomes more important the more senior one is. One reason is that there is a gradual and sometimes subtle change in the interaction model between- companies looking to develop candidates in X- to companies looking for leaders in Y. One wants to have an authentic professional narrative that matches Y to get those latter roles.


Ok stupid question time


Another tension I find is between expertise and learning- if you are a leader in Y, can you also be a learner in Y? Or are you a learner in Z? Many folks as they first move up the seniority chain find comfort in expertise, and then hit the wall- which can also be a sand/tar pit, as per an earlier analogy. This is more commonly framed as the specialist/generalist tension but I find it more productive to think of it on a learning dimension, since one always needs to be learning. The narrative is critical to frame a path around the tar pit, to answer the question how you keep learning.


Would anyone who knows how to write a story help me rewrite mine?


Sure - probably DM


(“Uhh maybe some other time....” is very understandable, but I had to ask :) )


I'm a storyteller-learner myself but happy to act as a sounding board, feel free to ping on DM.


@lady3janepl I help out with a lot of recruitment at my current place - if you have a current CV you're comfortable DM'ing, happy to take a look 🙂

👍 4

Very interesting discussion. A few years ago I was faced with similar questions - years of Java, generalist rather than anything too specific, and I discover Clojure. How do I turn the career ship in the direction I want to go? I had an interesting first try at a Clojure role that didn't work out but it led me to a contract to hire position and I'm very happy now.


Are you still a generalist, though a Clojure generalist, or did you decide to specialise in more than language?


I would consider myself still a generalist, and Clojure a general purpose language. I guess by "generalist" I mean to say that I've done server-side Java with Spring and JINI (back in the day) as well as Android framework layer (Java source), silicon that executed byte-code, etc. Just a wide range of different things over the years. I prefer not to be too pigeon-holed I guess.


I guess currently I specialize in streaming data for analysis in Clojure, but that's not something I want to restrict myself to.


I do think generalists have come back into vogue a bit recently 🙂


But there are a lot of specific problems that are pretty specialized that I don't think anyone would pay me while I ramped up 😉