candu
What you're referring to is the "development" part of that. In some sense: the job you have _exists precisely because it's not part of the research phase_, and it's equally as valuable as the research part. Research is the proof of concept; development is scaling up and making production-ready and finding small efficiencies and so on.
From an industry perspective, it's tempting to conflate these, because that's what industry research labs are designed to do: integrated R&D. But that is not at all how academic research labs work.
It was very definitely better than the centuries of militaristic monarchic feudalism Europe waded through from medieval times until the mid-1900s. It is very definitely worse than modern pluralistic coalition-based democracies with proportional representation, which offer a wider range of choices to voters, and make it possible to launch competing parties / movements to counter institutional stagnation.
Until recently, the one counterargument I would hear to this second assertion is "but coalition governments have a hard time getting anything done". Now that we see a prime example of a government that alternates between a) not getting anything done and b) getting things done that belong somewhere in a timeframe from the 1890s to the 1940s, I no longer hear people making that counterargument.
Re: constitutional structure, one Irish friend I have made an interesting point: in his lifetime, there have been many changes and amendments to the Irish constitution. This is next to impossible in the US system, both because of the party loyalty dynamic mentioned above _and_ because of the incredibly high procedural bar to doing so. (And not least because of the current predominance of originalist thinking in the judicial branch, as though the constitution were an infallible document handed down from gods among men, eternally to be interpreted as the Founding Fathers intended back over 200 years ago in a completely different social, political, and technological context.)
You can of course use PreToolUse hooks to block particularly damaging actions of the "rm -rf" variety, but this is also not 100% guaranteed unless you're able to block _all_ ways of performing that damaging action (and you would be surprised: agents will happily write custom python / bash / etc. scripts to do actions you tried to block them from doing!)
Tools help instruct the agent to redo work e.g. to pass linter / formatter checks or relevant tests. But I've also seen them ignore those, often enough to be noticeable: e.g. "17 of 18 tests pass, the other 1 wasn't introduced by this feature" - regardless of whether that's actually true or not, regardless of whether I put "ALWAYS make sure ALL affected tests pass" in an instruction file somewhere.
This isn't to refute your main point: yes, you can improve your chances that AI will write good code. But there is no magic bullet that will force it, 100% of the time, to write good code; this is where vibe coders without requisite coding + engineering skills hit a wall. A multi-layered approach of guidelines + progressive disclosure + tools + hooks indeed reduces the probability of bad code enough to be useful for many engineering tasks.
[1] https://straion.com/blog/1m-tokens-wont-save-your-engineerin...
Here, labor unions are quite widespread, and very effective at negotiating reasonably but firmly. As a result, I can depend on 3 months severance _guaranteed under law_ after 6 months at a job. (After 3 years, it goes up to 4 months, and then from there up to a max of 6 months.)
It puts the responsibility for risk of instability, errors in planning hiring / capacity, etc. firmly where it belongs: with the employer.
(And no, the economic sky is not falling here as a result. Quite the opposite.)
Except these aren't conversations in the traditional sense. Yes, there's the history of prompts and responses exchanged. But the threads don't build on each other - there's no cross-conversational memory, such as you'd have in a human relationship. Even within a conversation it's mostly stateless, sending the full context history each time as input.
So there's no real data or network effect moat - the moat is all in model quality (which is an extremely competitive race) and harness quality (same). I just don't think there's any real switching cost here.
Trust and Mistrust
Here in Denmark, the previously unthinkable is happening: because of Schleswig-Holstein's leadership in moving to OSS, the Danes are now seeking to learn from the Germans (or at least, that particular set of Germans) about digitalisation! That trend, plus the Danish government's all-in-on-vendors/consultants approach to digitalisation, will likely open a sizeable market - and the traditional vendors like Netcompany have taken a large beating in public opinion themselves, so it's a good time to start something in this direction.
And at the Digital Tech Summit in Copenhagen this year, digital sovereignty (and the lack thereof) was a very prominent theme across both public and private sector talks. As was the comparative advantage the EU has in _trust_, and how that helps e.g. businesses around cybersecurity, privacy-oriented SaaS, and data management expand even outside the EU - which makes it extra infuriating to see continued political interest in things like Chat Control and cracking down on GrapheneOS. This trust is IMHO pretty much the only advantage the EU has in the global tech marketplace, and we're busy throwing it away.
To take an example - would I want the current US government to be better at compiling information across all its agencies / departments? Absolutely not. What it does with its current level of consolidation is authoritarian enough that I'm not moving back there any time soon. I hear similar sentiments from my Hungarian colleagues, who are quite familiar with competitive authoritarianism in their own country.
Of course, this mistrust becomes self-reinforcing. I don't trust the US government, so I want it to be bad at its job - but then it's bad at its job, so I see it as ineffective and bloated and continue to mistrust it.
IMHO the only way out of this spiral is the hard way: a system must do the hard work to show itself trustworthy, and it must do so _before_ people will entrust it with the information that would make the job of being trustworthy easier. As with human relationships, it takes a _lot_ more work to repair trust than it does to break it. Unlike with human relationships, you also have systemic factors: the system needs an unbroken series of good, principled leaders; it needs to visibly and credibly punish corruption, not turn a blind eye; it needs to de-escalate divisions, not inflame them; it needs various institutional safeguards to work properly, not chop away at them; it needs to allow meaningful dissent and criticism, not crack down on it; it needs to learn from expertise, not undermine it.
Most importantly: the system needs to learn from its failures, and adjust the rules and incentives of the system itself to prevent those failures from recurring. This is generational work.
The lack of something like Notion databases / tables was the last thing stopping me from migrating over; I found this feature really helpful for organizing my thoughts and tasks as I want them organized, and not having it would have been a noticeable UX regression for me.
With this launch, I'll take a deeper look. It's that simple: it provides a feature many want, largely because it's seen as a killer feature of comparable closed platforms.
There's a gaping conceptual chasm between "publicly funded" and "communist".
For instance, in 2023 the US spent ~$190B in federal funding on R&D [1], compared to a budget of ~$6T [2] - i.e. about 3%. It's really really not a lot when you consider the aggregate impact over decades.
But it is still a lot in an absolute sense. This funding supports an entire ecosystem across both academia and industry that directly creates hundreds of thousands of jobs, many of which require highly specialized skills. I mention this not to create a sense of sticker shock, but to drive home the point that making this investment is a big and complex task - and one that takes a long time to rebuild. I firmly believe that the current chaos in the US will take at least a generation to repair.
[1] https://ncses.nsf.gov/surveys/federal-funds-research-develop... [2] https://www.cbo.gov/publication/59727
Not to mention that smart people generally prefer to live in places that value and protect science, so it's _also_ an indirect form of geopolitical talent recruitment. (See brain drain + brain gain impacts of science policy, for instance. There's a strong argument to be made that US mid-20th-century dominance in science and engineering was largely driven by a lot of very smart people fleeing Nazi Germany.)
Basic science isn't so much a lottery ticket as a bond with unknown maturity measured in decades, a _very_ high rate of return, a high minimum investment, and dividend-like payouts created by adding skilled scientists, engineers, etc. to your tax base.
[1] https://marianamazzucato.com/books/the-entrepreneurial-state...
> I was laid off in May, and per Danish law, as an employee of over nine years, I have a six-month notice period. I've been relieved of my duties, but I am still officially an employee until the end of November. I'm also entitled to three months of severance pay after my notice.
As someone currently living and employed in Denmark, I can confirm that this is how it works as per Funktionærloven § 2 s. 2-3. Once you've worked somewhere for 6 months, the employer has to give you 3 months notice when terminating your employment. Every 3 years, that notice period increases by 1 month.
Depending on circumstances, other regulatory requirements, etc. employees let go might be placed on garden leave: they get paid for the notice + severance period, but aren't expected to come in.
On the other hand: he mentions working 60 hour work weeks. That is _very_ unusual in Denmark, mostly because in many cases it's illegal by the 48-hour rule (see e.g. https://english.ida.dk/working-hours).
Goodbye, Big Tech
Open to suggestions on platforms / tools, questions, respectful debate, etc.
[1] https://gizmodo.com/i-cut-the-big-five-tech-giants-from-my-l...
So: my advice is to not think of it as all-or-nothing. You will not be able to move 300k people off of Facebook overnight. This is somewhat akin to every IT migration project ever: it always takes longer than you think, and is not always a linear process from "fewer people migrated" to "more people migrated".
It's also akin to community organizing: there is no substitute for actually talking to people about it, especially in the initial phases. Or: high-touch sales, where you may initially need to spend a lot of energy and time per person successfully moved over. The other common thing here is that you will hear "no" a lot, which is a valuable experience anyways (but will be frustrating).
Also: unfortunately, no one will care if it's self-hosted or federated, outside of niche tech circles. They will care about whether they can reach the people they want to reach, and whether the user experience is good or not. This is reality: talking about these points will not help you.
Some things you'll probably need to do:
- Identify a single credible alternative platform. - Identify specific groups of people who are willing to be early "de-adopters". For instance: a local youth group, a sports club, whatever. Ideally you are a part of this group already; you then have a much better chance. Businesses will likely say no, so you want community groups. - Within those groups, identify champions: people who care about the same thing you care about, and are willing to commit time and effort to help. - Together with your champions, build a toolkit that allows you to scale up your efforts. This may be guides on how to talk to people about the change - what works, what doesn't. This might be instructions for setting up a specific platform. It might be communications channels, leaflets / flyers for putting up in public places, whatever.
That said: agree with others that sharing state between devices (either yours or others), and being able to collaborate on the same board, is sort of the canonical feature requirement of kanban boards. They can be used for 1-person projects, goal tracking, etc. - I've used e.g. Notion boards in this way - but they gain most of their value from allowing multiple people to share awareness of task status and ownership.
Plus the use of localStorage means I'd eventually blow away my board state by accident - which is kind of a showstopper IMHO; being able to trust your tools is important.
Still: nice to see people experimenting with what you can do just using web basics :)
One note on this: as your career progresses, your ability to convince others around you that you're at a certain level goes from being unimportant to important, and then from there to essential.
After all, you need to influence others to do just about anything that involves more than yourself - and developing that power of influence is very much a skill in and of itself (see [1] for instance: it takes a lot to deliver even a simple, clear decision effectively!)
Usually this should start with a frank conversation with your manager. Something like this: "For a while now, I've been fielding IT requests from the entire company. I appreciate that you've been helping manage expectations upwards, but my workload is still unsustainable, and to be honest I haven't been enjoying my work for a while now. If this situation doesn't improve by {insert near-future date}, I'll have to leave."
And then: just start saying no to things. Someone high up says "I need X immediately"? Either say "well, I'll put it on my backlog, and I can get to that in Y weeks" or "I can do that immediately, if you go to these people and tell them I can't do what they asked because this is higher priority."
At least, that's if you want to do it the gradual and non-bridge-burning way. You can also decide that game isn't worth it; there's lot of other tech jobs out there.
Yes. It is hard to build UIs that are accessible, intuitive, and robust to a wide range of user inputs, interactions, and devices. It's a different kind of hard from backend / infra work.
I agree with what many others are saying here - to get started, you can strip away the complications of React, state management, CSS libraries and just learn basics. Tinker around in CodePen. Create a minimal HTML / CSS / JS static page and serve it with e.g. `python3 -m http.server` or `npm install -g http-server; http-server .` Read through e.g. MDN docs [1].
Find someone - maybe a coworker, maybe a friend, whoever - that knows frontend development better than you do. Pair, ask questions, get some peer mentorship. Ask them to review your frontend code - maybe at work, or maybe throw a Github repo up with a personal project and send them a link.
Find examples of good UI / UX, the kind you appreciate. Pick a small part: maybe it's a specific form field, or an animation, or a data visualisation, or even just a layout. Try to build a simple version of it yourself. Start small, start simple. Even if you don't build the beautiful version, now you might see what small details are lurking in that beautiful version.
Don't forget: you've been a (mostly) backend engineer for ~10 years. How long did it take you to really grok the beauty and challenges there? It will take time and effort. It will also pay off: you'll gain a clearer understanding of what others around you are doing, and how your work fits together with theirs.
Schengen ain't what it used to be
Sometimes, they would (e.g. the "users paid more than the programmers" rule of thumb, but also: various technical disciplines, most anything used for professional-grade work). Sometimes, they wouldn't - or perhaps some would and some wouldn't (so perhaps you're looking for a simple base UI with some accelerators [2]).
IMHO the issue is that many products fall into this last camp - where a well-designed simple UI is called for, but also accelerators could greatly help a small but important subset of power users - but we treat the power users as though they don't exist.
[1] https://www.nngroup.com/articles/testing-expert-users/ [2] https://www.nngroup.com/articles/ui-accelerators/
[1] https://en.wikipedia.org/wiki/Montreal_Metro#Station_design
And then a combination of public and private unemployment benefits kick in. And if you want to e.g. retrain or pursue a graduate degree, there’s support for that too.
So there’s a solid safety net, but employers are also required to shoulder some responsibility for supporting terminated employees.
Good communication isn’t adversarial: by the time it becomes adversarial, you’ve already lost. It can include solid documentation, taking the time to mentor others, respectful but clear code reviews, helping others argue your case for rescoping, presenting your work at meet-ups or conferences, hallway testing a new feature, listening to teammates explain an approach…
…and yes, sometimes negotiating capacity. If that feels like an adversarial conversation, then your manager sucks, and you should find a new one.
[1] https://www.nytimes.com/2023/06/05/technology/twitter-ad-sal...
I'm also a fan of the "only as complex as needed, and no more" approach, but part of applying that approach is admitting when problems have a level of inherent complexity that calls for tools / frameworks to help manage it. The antidote to framework bloat is not the absence of frameworks, it's applying the right amount of them in the right places.