jobs-discuss

Job hunting, interview process and anything related to the experience of a job writing the Clojure language.
slipset 2020-06-04T06:04:51.420Z

Apply for Clojure jobs :)

slipset 2020-06-04T06:06:52.422600Z

Also, implement something in Clojure in your preferred domain. While Clojure experience is a plus when we hire, being interested and a good learner is so much more important.

Aron 2020-06-04T06:07:17.423200Z

I guess the worry is, if someone has 15-20 years of development experience, they don't want to be beginners again with beginner paycheck

seancorfield 2020-06-04T06:12:16.425300Z

That is a real concern: if you change tech completely, companies often expect you to come in as a "junior". That's a flaw in how we hire -- if we are willing to do any training, then a truly "senior dev" should be "senior" regardless of tech because what they bring to the table isn't their expertise in Language X but their expertise in development (and maybe architecture) as a whole. Or at least it should be.

slipset 2020-06-04T06:15:21.428Z

I think it’s a huge difference between changing from Java to Clojure and eg from web-dev to embedded

Aron 2020-06-04T06:15:47.429200Z

Agreed, but not every knowledge is translatable to other languages. If someone worked 15 years at a single company on a single architecture that was built organically in-house, it's fair to say that they will have less knowledge of what is going on than someone who did what is a less appealing story: went and worked for everyone at every job.

seancorfield 2020-06-04T06:16:21.430100Z

You might say they have "one year" of experience, repeated "15 times". πŸ™‚

Aron 2020-06-04T07:04:25.444400Z

you must realize though that we (myself and these people who unlike me, switched jobs just for better pay - I only left if it seemed pointless to stay), started with paychecks around $130/month, about 15-16 years ago. Sure, that's beginner salary even in romania, and it's after taxes, but I hope it's clear why would some people get into a habit of switching jobs for money if that's the only way to get a better pay where you are coming from.

alexlynham 2020-06-04T09:22:31.463700Z

I switch jobs on average every 18 months, and that's because generally unless it's project/agency work I hit diminishing returns. I'm good at early stage projects but less good (or frankly, that interested) in longer term stuff. In the pioneer-settler-town planner model I'm a pioneer and have built my career on being able to get things together that will scale well and hopefully be a good foundation to build on

Aron 2020-06-04T09:32:42.464Z

so you don't work more than 18 months with the same people at all? no long term work relationships?

alexlynham 2020-06-04T12:14:55.472200Z

nah I mean I stay in touch with people pretty well, I'm currently working with some folks I've worked with before. If I like people I'll make an effort to stay in touch, get lunch etc, but work is work, ya know?

alexlynham 2020-06-04T12:15:42.472400Z

I make friends with people that I like when I work with them, but if we get on, that doesn't change if/when I go (I hope - and experience seems to confirm that)

Aron 2020-06-04T12:24:36.472600Z

work is work? no, i don't know. care to elaborate?

alexlynham 2020-06-04T12:35:04.472800Z

well that it's only a part of your life, and there's more important things - friends being one of them

Aron 2020-06-04T12:48:49.475900Z

well, that's certainly true, but how about if I say that all parts of my life add up to the whole thing, and thus, all are equally important?

Aron 2020-06-04T12:51:28.477700Z

so, I don't really understand what you are trying to say, but I am exceptionally curious.

alexlynham 2020-06-04T15:17:49.485300Z

okay well I obviously don't take it that seriously, not all parts of my life are equally important. it's how I make money, I do a good job, I'm a professional with pride and standards, but where I work isn't as important as what I do, which is make stuff

alexlynham 2020-06-04T15:18:15.485500Z

so what I'm specifically saying by 'work is work' is that is a workplace which is very distinct from the work that I do

alexlynham 2020-06-04T15:18:21.485700Z

and I'm not attached to a single workplace

seancorfield 2020-06-04T20:46:05.487200Z

That's an interesting choice @alex.lynham -- I guess I'm in the opposite camp: since we spend about a third of our day working, I want that part to be as enjoyable and as convenient as possible, so I want an employer that understands and supports a good work/home life balance and offers plenty of flexibility. In addition, I like seeing large, complex projects come to fruition and as an architect I've overseen several projects that stretch out over multiple years. When I find a job that satisfies both of those, I'm likely to stay there.

2
seancorfield 2020-06-04T20:51:11.487400Z

My first job lasted four years (walking distance from home, very flexible environment, interesting projects that took time to build), my third job was four or five years (lots of global travel meeting interesting and varied client, really fun colleagues -- that I've stayed friends with for decades since!). I was at Macromedia for six years (nearly seven if you include the time after Adobe acquired them -- but I view that as a one year job that I wasn't happy with). I've been with World Singles Networks for about a decade -- super flexible about time, several multi-year project roll-outs.

seancorfield 2020-06-04T20:52:21.487600Z

In amongst all that, I had several years as a freelance consultant in England and several more years in California, mostly while I was looking for the right "next job".

alexlynham 2020-06-04T20:52:56.487800Z

I don't think we're disagreeing, necessarily. I like to have those things too - but for me I guess I don't get the long term satisfaction from seeing a product over a long period in the same way. I get itchy so I want to work on a new product or domain to learn something new, get a new perspective.

alexlynham 2020-06-04T20:53:51.488Z

I have a couple of my own tinkering things that I've chipped away at for years though, so maybe one day I will build a product I want to shepherd for a longer period :)

alexlynham 2020-06-04T20:58:51.488200Z

And to be fair I worked at swirrl (my first clj job) for nearly four years, but that was agency work so plenty of variety. A little different to one single product or project

Aron 2020-06-10T19:56:47.301Z

An interesting point relating to this thread was raised in this talk https://youtube-cutter.org/video/rOKSe2vOr (you can get the original from this cutter page, I didn't want to share an hour for a couple of sentences) But you can find the gist in this tweet: https://twitter.com/ICooper/status/1004757312374886400

seancorfield 2020-06-04T06:16:58.430700Z

@slipset Which of those shifts do you consider to be "too big" to be useful/valid?

slipset 2020-06-04T06:17:19.431Z

The domain shift.

slipset 2020-06-04T06:17:36.431800Z

The language shift I consider trivial.

seancorfield 2020-06-04T06:17:45.432100Z

Browsers are resource-constrained -- they are a form of "embedded system".

slipset 2020-06-04T06:18:35.433Z

I was thinking more in terms of bit fiddling, memory management and such.

slipset 2020-06-04T06:19:04.433400Z

Like low level C programming.

seancorfield 2020-06-04T06:19:45.434100Z

I think that is good background knowledge to have for any software position (but it is sadly rare these days).

Aron 2020-06-04T06:20:26.434900Z

still better than the same experience for 15 years without change

seancorfield 2020-06-04T06:20:54.435600Z

I've done embedded systems -- my team at Vodafone were the first in the world to create pay-as-you-go cell phone systems -- and compilers and web apps and a bunch of other things. I don't believe good software folks are confined or constrained by domain.

Aron 2020-06-04T06:21:10.435700Z

but yeah, I am also worried how people will settle down if they are used to switching jobs every 6 months as some of my friends appear to be doing (very productive, you get much better salaries much faster)

Aron 2020-06-04T06:21:29.436100Z

low level as in know thy hardware?

Aron 2020-06-04T06:21:42.436500Z

or low level as in we somehow believe that C is simpler than lisp? πŸ˜„

seancorfield 2020-06-04T06:22:02.436600Z

Salary isn't everything (well, sadly, for some folks it is).

seancorfield 2020-06-04T06:23:21.438100Z

I am bewildered by people who switch jobs regularly after less than a year (I don't think I would hire anyone who did that).

slipset 2020-06-04T06:27:29.442200Z

So if I were to apply for jobs (I'm 49 years old, been programming professionally for about 25 years mostly in backend web-dev, using Perl, Java, Javascript, Clojure and Clojurescript, throw in som ops and database stuff as well): 1. Any backend web-dev job, regardless of language, I'd expect that my experience counted. 2. Frontend architecture/full-stack web-dev, I'd expect that my experience counted 3. Pure frontend/UI/UX, wouldn't apply because a) I know my limits, b) I'd only be able to get junior positions and thus a pay cut 4. "Closer to the metal" programming, wouldn't apply because I'd only be able to get junior positions because the experience I bring to the table is not that much worth

slipset 2020-06-04T06:28:57.443500Z

So if I were interested in transitioning, eg to a pure frontend dev ie 3), I would start that transition in my current company, and then when/if I became sufficiently good at it, I'd apply for external positions.

2
Aron 2020-06-04T07:07:55.447800Z

I can understand the hire worry to some degree, but not the difference between BE/FE. After doing lots of backend jobs and lately doing mostly frontend, I don't understand the distinction in people's head between the two works. Basically, the only clear difference I see is that backend devs - unless they work on highly concurrent systems or security or database management at scale, or something that's relatively rare, are having it much easier. They always have a single environment to consider, and they only have to write machines that talk to other machines. Frontend devs environment is "any device running a browser", and you have to talk to a human.

Aron 2020-06-04T07:08:21.448400Z

But I bet no "backend dev" would agree with this πŸ˜„ Usually, the attitude is that I am a javascript developer so I must be a script kiddie, and serious programmers write serious programming languages like python. Or java.

slipset 2020-06-04T07:19:11.449200Z

As a backend-dev I'd say that full-stack frontend is a lot harder.

slipset 2020-06-04T07:19:32.449500Z

Especially if you code in javascript.

βž• 2
raspasov 2020-06-04T07:24:15.454200Z

@ashnur having done only backend for many years and now doing both (backend and frontend), I completely agree with you; frontend is a harder thing to get right and it’s much more nuanced than backend

slipset 2020-06-04T07:24:19.454300Z

To me the distinction is between the frontend of the frontend and the backend of the frontend. If you think of this in a React-setting, the frontend of the frontend would be the creation of the react-components. This is work that I consider highly "visual" and (to a certain degree) is simpler, coding wise, basically it's a function that takes some data and transforms it to html. The backend of the frontend is where and how you manage state in your frontend, and also how you communicate with the backend. This has, as I think we've seen, some interesting architectural challenges.

slipset 2020-06-04T07:25:14.455300Z

Depending on how you look at it the backend of the frontend is basically backend work with a shitty language on top of either a bad cache or a database with high latency and a shitty query-language.

mpenet 2020-06-04T07:27:52.456800Z

I think there's no right answer, it depends.

slipset 2020-06-04T07:28:06.457300Z

@mpenet you must be an expert πŸ™‚

mpenet 2020-06-04T07:28:19.457500Z

some backends can be extremely complex (in both logic, size), same for front-end

mpenet 2020-06-04T07:28:21.457800Z

πŸ™‚

Prakash 2020-06-04T07:28:48.458700Z

front end has way more state than backends though, for all kind of user interactions

mpenet 2020-06-04T07:29:06.459300Z

depends

mpenet 2020-06-04T07:29:21.460200Z

as I said it's not white/black

βœ”οΈ 1
Prakash 2020-06-04T07:29:43.461Z

but one can say that backend has complex business logic as well, but I will take that anyday over a highly interactive front end

slipset 2020-06-04T07:29:43.461200Z

I'm sure one might argue that a lot of frontends are overly complex. Ie why use javascript at all if all you have is a mail-form?

slipset 2020-06-04T07:30:19.462100Z

But I think we might be moving into #off-topic land.

mpenet 2020-06-04T07:30:27.462300Z

backend for a todo list vs backend(s) for a cloud platform, front-end for gmail vs x, etc etc

mpenet 2020-06-04T07:30:57.462800Z

indeed #off-topic

2020-06-04T09:04:47.463300Z

imo you can control the environment and input for backend but not for the frontend

2020-06-04T09:04:57.463600Z

which makes them wildly different beasts

dharrigan 2020-06-04T10:19:49.465400Z

I wish! The number of times I've had to interface with a badly designed external API that I have zero control over is without saying - and the explosion of internal microservices that all seem to have their own interpretation of what REST means (I'm just as guilty!) πŸ™‚

dharrigan 2020-06-04T10:20:06.465700Z

Control is locally scoped πŸ™‚

Aron 2020-06-04T10:24:02.466600Z

backends have databases and orms, on the frontend I am frowned upon if I want something that's more than promises but less than rx.js or mobx or xstate.

Aron 2020-06-04T10:26:33.469300Z

We have to support IE, so I can't add a serviceworker because then it's two products. Meanwhile, although everyone realizes that while you can connect in a sync way to your database and run queries, 1. in the browser it's not possible 2. even if possible, no one would use an interface that blocks, so the idea that because js is single threaded, you don't have to do concurrently things is bollocks, but try using CSP in javascript and people will call you crazy (happened to me, sorry for the harsh words), because "that's overkill!"

Aron 2020-06-04T10:28:39.469600Z

I considered before sending this message if it fits this channel, and I have to say it does because I really wish there would be more job options where the long term is considered

dharrigan 2020-06-04T10:31:27.469800Z

I agree, frontend work, targetted towards browsers sucks eggs πŸ™‚ I don't mind writing javascript for server-side stuff 'tho πŸ™‚

Aron 2020-06-04T10:36:40.470Z

but there even php is enjoyable, in such a controlled environment

Aron 2020-06-04T10:36:56.470200Z

I find it a bit strange that some people refrain from the hard work πŸ˜„

dharrigan 2020-06-04T10:41:25.470400Z

programmers are inherently lazy πŸ™‚

dharrigan 2020-06-04T10:42:02.470600Z

Who else would spend 1 week to code something automated up to save 1 minute’s worth of time… :D

2020-06-04T10:42:02.470800Z

the only con is backend visualization tools kinda suck so we’re stuck with cli niceties

Aron 2020-06-04T10:43:29.471100Z

there is a lot of con in this

Aron 2020-06-04T10:45:45.471300Z

e.g. we have only a single web browser

Aron 2020-06-04T10:46:47.471500Z

so a single runtime environment, which lends the necessary context that explains why js is successful. The minimum deployment time for this single runtime environment

Aron 2020-06-04T10:49:38.471700Z

oh, and what is bothering me most is that the backend devs who sometimes have no real experience with browser work then go and limit what the frontend dev can do purely on idealistic grounds. I am in this situation at my current work and it's quite frustrating at times, although again, it was a good learning experience, I discovered new limits in self control

2020-06-04T10:51:51.471900Z

#triggered

πŸ˜„ 1
alwyn 2020-06-04T12:40:37.474300Z

I draw a distinction between 'web backends' and 'non-web backends'. The first you can often operate under the illusion that your code is single threaded while on the latter a back-end without concurrency is in my experience not very common.

Aron 2020-06-04T12:47:13.475300Z

@alwyn I think that might be accurate. I am curious what do you think the jobs ratio is, that is how many hours are spent working in each, globally, at any time scale you might hazard a guess? πŸ™‚

2020-06-04T13:05:25.480200Z

I was thinking of implementing a basic REST service to get stock data and render it in a nice way. Does that seem reasonable for a project?

alwyn 2020-06-04T13:32:12.481400Z

I think it leans, perhaps heavily, in the web-backend direction due to web being the preferred interface into services. Depending on industry or domain non-web backends are usually where large volume processing happens or integrations between systems, with hardware, etc. At 47 I've been going about this for 30 years, probably a 40% web split for me and I prefer the non-web since often its more challenging (and frustrating at times).

Aron 2020-06-04T13:36:00.484700Z

I am only in it for ~16 years but I would say it's probably even more. Also I think this ties back to the taylorism, because most of what you call web-backend I would characterize also as repetitive. Similar trends are on the frontend served by for example TypeScript. It's really a different kind of programming. It's not about finding and solving challenging software problems, rather, as not so long ago someone told me "building products". This is a recurring theme, how productive these people are for their employers compared to me at least πŸ™‚.

alwyn 2020-06-05T21:18:16.017100Z

Those that need to care about what they do and those that don't?

Aron 2020-06-05T22:22:36.026200Z

Best not to assume we know "why" people do things. It's bad enough to generalize.

alwyn 2020-06-06T01:09:12.026700Z

I'm talking about my own experience, no matter how hard I try I cannot get myself to not care about what I do.

Aron 2020-06-06T07:24:02.027300Z

I got that, but I wouldn't want to make that kind of generalization from my own experience to someone else's experience, I don't like it when other people do it with me either.

πŸ‘ 1
alwyn 2020-06-04T14:25:58.485100Z

Totally agree. The repetitiveness is getting to me. Made worse by all the extra baggage we add to it. Clojure (and to a lesser degree Kotlin) appeals to me because the ideology cuts through all the bull down to the essence of "what do I want to do with this data". I'm a clojure noob by all measures, but I'm hoping to make something of it some day.

Aron 2020-06-04T17:38:49.486200Z

@alex.lynham do you make the same stuff twice?

alexlynham 2020-06-04T17:49:45.486400Z

A lot of the problems are the same from a big picture perspective, but no I don't really make the same stuff twice. Depends what you mean though. If you count 'any backend work' as the same thing then yes I do

Aron 2020-06-04T17:52:20.486600Z

@alex.lynham I am trying to make the case that there are two entirely different kind of classes of programmers, one that tries to make money and doesn't mind programming and one that tries to program and doesn't mind getting paid πŸ™‚