News for hackers. Stuff that matters.

thenanante

Re:Surviving Disillusionment in Software Development on Saturday December 31, 2022 @08:39AM (#34196329)
I do agree that a microservice architecture needs, apart from a product that actually needs to be scalable, first and foremost educated folks, because working in a distributed systems environment is hard! Coincidentally, the company I'm working at now has a lot more degree holders than the other company. I wouldn't trust most of my former coworkers to build a scalable microservice infrastructure, because they wrote super inefficient code that made data fetching already slow, because they never bothered to learn the basics of algorithms and data structures.
Re:Surviving Disillusionment in Software Development on Saturday December 31, 2022 @08:28AM (#34196251)
I see. I don't understand it but I can see the point. To give my two cents, I would never consider a JVM solution in my problem space. Docker is much more flexible to use and to scale. With wasm containers + Rust, it's now super trivial to build highly efficient compute networks with arbitrary scalability. Docker is not a re-invention, it's an evolution that makes absolutely sense imo. I have less experience with web dev so I don't trust my opinions there for another couple years.
Re:Surviving Disillusionment in Software Development on Saturday December 31, 2022 @05:05AM (#34195105)
Could you give me some examples of those cycles? Genuinely curious what you mean.

I started my career just a couple years ago. In my first company, they used 10+ year old tooling and imo it was terrible. A very old legacy mess monolith that made adding features pure torture. Trunk-based development with a "who needs tests" mindset, resulting in horrendously buggy code, 50:50 chance pulling newest version would break something. Several instances of files with over 10k lines of code and deep nesting, absolute nightmare. Absolutely no mindset for performance. They wrote quadratic complexity code in the backend to fetch data because hash-based data structures already seemed too advanced to many of my coworkers and then they wondered why their frontend was so terribly slow. Not that they had a lot of pressure to deliver a great product, because they are / were market leader in their B2B niche. I left within a year.

Now I'm working in a company that uses all the latest gitlab CI/CD shenanigans, code reviews and heavy use of unit, integration and end to end tests. Everything is hosted in the cloud with a microservice architecture. We actually need it as we scale to millions of customers and have performance and reliability requirements.

The difference is not just the tech stack that was horribly outdated and imo extremely tedious to work with, but also the mentality is completely different.

In the first company, you couldn't change anything, there was a strict hierarchy and everything stayed as is because "it works". You totally got the feeling that there's some old people up in the hierarchy that were way too lazy to learn new things and didn't want to endanger their meaning in the company. When I left, I spoke with the Head of HR and he told me that basically all people that leave do so because of the mentioned reasons. So that company drives away motivated talent with their crap mentality. Pay wasn't very good either, but a first job is a first job after all.

Now mind you, both companies are a couple decades old, but imo one always kept up and the other didn't. Both companies have 10+ year seniors. Personally, the people in the current company are way more competent and excited about work. Much more fun to work with, I learn more and I absolutely don't get the feeling the tooling is reinvented in any way. It's improved in all possible aspects I could think of and makes the development experience much better.

Re:Ups and Downs of a Side Project on Thursday December 29, 2022 @09:34AM (#34172939)
I'm building my first significant side-project (2 yoe in industry) which I started after years of brainstorming something that can be both useful and in the best of cases can also become absolutely huge and finance my life, as I don't have a mindset of working for free.

I did some reconnaissance and got into contact with business angels to start going with a pitch deck for fund raising and the idea seems to click with a lot of people. So much so, I even told my main business angel to slow down, because I'm not ready to go full in on the money-begging train yet and want to go on my own pace for now. I'm not worried about time-pressure and competition at all, if I were, I wouldn't have started with this project.

I'm making good progress, I believe. But for some reason I wanted to take the opportunity to really learn Rust to the level of employability (the current job is the last job I'll ever use Java, not because I hate it, but because I want to work on problems that require one to think about a high level of resource efficiency at scale), so I'm building the backend services in Rust. But Rust has a learning curve and even though I absolutely love the language so far, it's the biggest motivational hurdle at the moment.

I have no worries that I will get over that hurdle, but it does slow everything down and I could be faster just doing it in Java, Python or Javascript. I just have to keep going, slowly, and build my product in the hopes of one day having my first visitors and optimally, a steady super-linear increase thereof. Even if it fails and I'll end up setting the repository to public, I believe this project will be a door opener to lots of exciting opportunities. That's all the justification and motivation I need.

Re:Introduction to the Theory of Programming Languages (1991) on Friday September 30, 2022 @10:26AM (#33035288)
Yes, at ETH Zürich. I'm not a big fan of Eiffel, but pre- & postconditions + invariants are a great way to verify simple functions in isolation. Still needs integration and end-to-end tests to verify sufficient correctness in a complex distributed environment. On top of that, I really don't like strong OOP. It can be misused so easily. Multiple inheritance sounds good in theory, but just based on some Java inheritance code nightmares I've seen in my career so far, think 10s of layers of deep nesting done by misusing inheritance; multiple inheritance would massively overcomplicate many codebases. I'm very happy the industry seems to move into a pragmatic middle ground, where both lightweight OOP and lightweight FP have their uses.
Re:Chaos researchers can now predict perilous points of no return on Thursday September 15, 2022 @01:50PM (#32855834)
Using a chaotic system to predict a chaotic system.
I studied at ETH Zürich and am Swiss. It still always surprises me how competitive we are as such a super small country.
Your argument seems to be in bad faith, but I'll bite. As a Swiss, OKAY! Whatever, so my life sucks 0.1% more in order for thousands of potential employees in the taxi service to get better living conditions as demanded by Swiss employment laws. What a proud "hurt" Swiss consumer I am. I make > $110k with just a single year of experience as a software developer, I can live super nicely and safe a ton of money. I'm also super happy and proud that retail and service workers get > 40k in this country, so they can live a decent life as well even if they didn't have the privileges to become highly educated and specialized.
Yes, Redmond got involved later due to the immense success. Doesn't take anything away from the fact that the core is being developed by a small team in Switzerland.
I interviewed with the VSCode team at Microsoft Zürich (didn't get the job because there were more senior candidates that already contributed to the open source repo, fair game). I have to say I'm super impressed that a small team in Switzerland managed to build and maintain it! Coming from that point of view it's imo totally okay that there are some proprietary parts. If it doesn't generate revenue in one way or another, we wouldn't have it. FOSS is cool and all but someone has to pay the devs eventually.