Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "emacs"
I'm drunk and I'll probably regret this, but here's a drunken rank of things I've learned as an engineer for the past 10 years.
The best way I've advanced my career is by changing companies.
Technology stacks don't really matter because there are like 15 basic patterns of software engineering in my field that apply. I work in data so it's not going to be the same as webdev or embedded. But all fields have about 10-20 core principles and the tech stack is just trying to make those things easier, so don't fret overit.
There's a reason why people recommend job hunting. If I'm unsatisfied at a job, it's probably time to move on.
I've made some good, lifelong friends at companies I've worked with. I don't need to make that a requirement of every place I work. I've been perfectly happy working at places where I didn't form friendships with my coworkers and I've been unhappy at places where I made some great friends.
I've learned to be honest with my manager. Not too honest, but honest enough where I can be authentic at work. What's the worse that can happen? He fire me? I'll just pick up a new job in 2 weeks.
If I'm awaken at 2am from being on-call for more than once per quarter, then something is seriously wrong and I will either fix it or quit.
pour another glass
Qualities of a good manager share a lot of qualities of a good engineer.
When I first started, I was enamored with technology and programming and computer science. I'm over it.
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there's any recommendations, I'd seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)
Related to above, writing good proposals for changes is a great skill.
Almost every holy war out there (vim vs emacs, mac vs linux, whatever) doesn't matter... except one. See below.
The older I get, the more I appreciate dynamic languages. Fuck, I said it. Fight me.
If I ever find myself thinking I'm the smartest person in the room, it's time to leave.
I don't know why full stack webdevs are paid so poorly. No really, they should be paid like half a mil a year just base salary. Fuck they have to understand both front end AND back end AND how different browsers work AND networking AND databases AND caching AND differences between web and mobile AND omg what the fuck there's another framework out there that companies want to use? Seriously, why are webdevs paid so little.
We should hire more interns, they're awesome. Those energetic little fucks with their ideas. Even better when they can question or criticize something. I love interns.
Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us.
Tech stack matters. OK I just said tech stack doesn't matter, but hear me out. If you hear Python dev vs C++ dev, you think very different things, right? That's because certain tools are really good at certain jobs. If you're not sure what you want to do, just do Java. It's a shitty programming language that's good at almost everything.
The greatest programming language ever is lisp. I should learn lisp.
For beginners, the most lucrative programming language to learn is SQL. Fuck all other languages. If you know SQL and nothing else, you can make bank. Payroll specialtist? Maybe 50k. Payroll specialist who knows SQL? 90k. Average joe with organizational skills at big corp? $40k. Average joe with organization skills AND sql? Call yourself a PM and earn $150k.
Tests are important but TDD is a damn cult.
Cushy government jobs are not what they are cracked up to be, at least for early to mid-career engineers. Sure, $120k + bennies + pension sound great, but you'll be selling your soul to work on esoteric proprietary technology. Much respect to government workers but seriously there's a reason why the median age for engineers at those places is 50+. Advice does not apply to government contractors.
Third party recruiters are leeches. However, if you find a good one, seriously develop a good relationship with them. They can help bootstrap your career. How do you know if you have a good one? If they've been a third party recruiter for more than 3 years, they're probably bad. The good ones typically become recruiters are large companies.
Options are worthless or can make you a millionaire. They're probably worthless unless the headcount of engineering is more than 100. Then maybe they are worth something within this decade.
Work from home is the tits. But lack of whiteboarding sucks.40
I finally got one of these boards, I still need to figure what to track on it, I already have a planner with me for my day to day
For all of youse that ever wanted to try out Common Lisp and do not know where to start (but are interested in getting some knowledge of Common Lisp) I recommend two things:
As an introductory tutorial:
And as your dev environment:
Notice that the dev environment in question is Emacs, regardless of how you might feel about it as a text editor, i can recommend just going through the portacle help that gives you some basic starting points regarding editing. Learn about splitting buffers, evaluating the code you are typing in order for it to appear in the Common Lisp REPL (this one comes with an environment known as SLIME which is very popular in the Lisp world) as well as saving and editing your files.
Portacle is self contained inside of one single directory, so if you by any chance already have an Emacs environment then do not worry, Portacle will not touch any of that. I will admit that as far as I am concerned, Emacs will probably be the biggest hurdle for most people not used to it.
Can I use VS Code? Yes, yes you can, but I am not familiar with setting up a VSCode dev environment for Emacs, or any other environment hat comes close to the live environment that emacs provides for this?
Why the fuck should I try Common Lisp or any Lisp for that matter? You do not have to, I happen to like it a lot and have built applications at work with a different dialect of Lisp known as Clojure which runs in the JVM, do I recommend it? Yeah I do, I love functional programming, Clojure is pretty pure on that (not haskell level imo though, but I am not using Haskell for anything other than academic purposes) and with clojure you get the entire repertoire of Java libraries at your disposal. Moving to Clojure was cake coming from Common Lisp.
Why Common Lisp then if you used Clojure in prod? Mostly historical reasons, I want to just let people know that ANSI Common Lisp has a lot of good things going for it, I selected Clojure since I already knew what I needed from the JVM, and parallelism and concurrency are baked into Clojure, which was a priority. While I could have done the same thing in Common Lisp, I wanted to turn in a deliverable as quickly as possible rather than building the entire thing by myself which would have taken longer (had one week)
Am I getting something out of learning Common Lisp? Depends on you, I am not bringing about the whole "it opens your mind" deal with Lisp dialects as most other people do inside of the community, although I did experience new perspectives as to what programming and a programming language could do, and had fun doing it, maybe you will as well.
Does Lisp stands for Lots of Irritating Superfluous Parentheses or Los in stupid parentheses? Yes, also for Lost of Insidious Silly Parentheses and Lisp is Perfect, use paredit (comes with Portacle) also, Lisp stands for Lisp Is Perfect. None of that List Processing bs, any other definition will do.
Are there any other books? Yes, the famous online text Practical Common Lisp can be easily read online for free, I would recommend the Lisperati tutorial first to get a feel for it since PCL demands more tedious study. There is also Common Lisp a gentle introduction. If you want to go the Clojure route try Clojure for the brave and true.
What about Scheme and the Structure and Interpretation of Computer Programs? Too academic for my taste, and if in Common Lisp you have to do a lot of things on your own, Scheme is a whole other beast. Simple and beautiful really, but I go for practical in terms of Lisp, thus I prefer Common Lisp.
how did you start with Lisp?
I need some inspiration man......show me something? Sure, look for a game called Kandria in youtube, the creator, Shimera (Nicolas Hafner) is an absolute genius in the world of Lisp and a true inspiration. He coded the game in Common Lisp, he is also the person behind portacle. If that were not enough, he might very well also be Shirakumo, another prominent member of the Common Lisp Community.
Ok, you got me, what is the first thing in common lisp that I should try after I install the portacle environment? go to the repl and evaluate this:
(+ 0.1 0.2)
Watch in awe at what you get.
In the truest and original sense of the phrase (MIT based) "happy hacking!"10
Besides firefox and emacs there is also Linux, the library emacs uses to interact with the computer hardware
F*ck me, for "i-dont-know-how-many" days I've found myself scripting Lua to implement stuff for NeoVim.
Stuff that Emacs/VSCode/Sublime already have.
But no, let's redo it in Lua and have an incomplete LSP.
Let's use tree-sitter (which follows TextMate's grammar btw) BUT let's implement an API for it in an incompatible way that removes TextMate's grammar which other editors, and LSP btw, use.
And don't let me get started on NeoVim's forefather, ViM, which I've also used for a long long time.
Don't get me wrong, NeoVim IS A GREAT IMPROVEMENT OVER VIM, but while improving Vim in a lot of ways, some decisions made are almost impossible to remake without massive breaking changes, like, for example:
The decision of REWRITING Vim's C code instead of wrapping its core with Rust and going on from there. Like Deno does it, like Tree-sitter does it. F*CK ME!
"Oh, but Lua doesn't have great Rust FFI..."
Well, F*CK THAT, JUST DON'T CHOOSE LUA.
"You can use msgpack..."
Seriously, compromise performance on an editor whose mantra IS PERFORMANCE?
Anyhow, I'm leaving.
It's not that I can't stand to stop what I'm coding just to waste time scripting an editor so I can have what other editors already have.
It's having to build stuff from scratch because the editor doesn't follow the patterns laid out by other editors. F*ck, if at least it was Typescript or Python I could show the work on my portifólio, but no, IT'S LUA - very easy to script by the way, but close to no standard library.
I'm going Emacs TODAY.
"Wait, but isn't Emacs non-standard?"
YES, you're right!
BUT it's got all the stuff the others have completely implemented and a truly fully-fledged programming language to script it with so not to waste my time reinventing the wheel.
That's it. Haters gonna hate, but f*ck (Neo)Vim and my thousands of hours sunk into configuring, tweaking, scripting and learning it.6
why the fuck those images wouldn't load? they come corrupt from K8S, but they are fine if I run the container locally, like... wtf? is Ingress NGINX doing something to them or did I configure something wrong?!15
for the life of me I cannot figure out in my mind how to structure this project I want to start, and jumping right into coding does not improve this mental block.
At work this Golang code base has a clean architecture, so easy to maintain and extend, and I'm unable to replicate it on my own project(s). It sucks to be an ignorant.2
honest question: if I know ReactJS, Golang, Python, Typescript, and a bit of Postgres and living in Costa Rica, what sort of freelance services could I promote on the net?
I used to freelance on sites like PeoplePerHour, doing projects of 1 month in 3 weeks or less, but I would like to do that again in my own website under my own terms, sort of speak.
last week I finished a course on k8s "simply, for developers". Today I decided to fiddle with kubectl to move a project I'm working on to k8s and it was a complete success (thing runs on minikube and pulls containers from a private Gitlab registry).
I'm happy with the results, there is still room for learning k8s and devops in general.
"Per our conversation [Redacted] would like to do a Teams Video call with you to discuss RonR opportunity with us."
What's RonR? I'll interview for a backend software engineer position with an offshore company4
I don't describe what I did in my CV for any of my current or past job(s). Any tips to end that bad practice?
I'm looking to switch jobs for a larger pay (around 35% to 81% more)5
> * npm login *
> puts everything right, uses token because of OTP
> npm login fails: incorrect user or password
you know what, fuck you5
My latest question on what to do to start freelancing didn't get any traction. My guess is that the question was put incorrectly or was too broad.
Anyway, I'm still interested on working as a freelance7
I'm getting contacted by remotely.works with job offers, I like the idea of doubling my current salary, but it really worries me the job stability and I believe switching jobs to work remote for a US-based company leaves me with responsibilities an employer normally take cares for me.
Should I risk it and give it a try?3
ps: I'm not a natively English speaking person, please forgive tipos and other pedantic writing mistakes.
On another example of regressing for advancemente, the interested reader should read about performance differences and justification for it between grep and perl's regex implementation.
is there a tool I can use to render a candle chart (like those use in trading) but with code? like PlantUML but allowing to render candle charts4
super.so is annoyingly expensive
am I crazy if I want to integrate Notion with a custom site solution built with SvelteKit?1