July 2022

339 tweets

Replying to @Niklas_L

@Niklas_L It has some downsides, too, but it
better integrates the task with the technical requirements of the individual
roles, so I think this achieves overall better aligment with company goals but
also individual skills and capacities of teams.

It makes me sad to see that a standards commitees in our industry looks like
this. So many fundamental decisions that affect the global population for years
to come are made in men-only meetings. How many standardization bodies ensure
diversity beyond member org represenation?
Embedded Photo

Replying to @sebs303

@sebs303
@gazebo_c I wouldn't call failure to recognise
lack of diversity as an issue sexism. It's like with most manels: individually
the men didn't do anything wrong, but combining their decisions turns it into a
problem.

I just noticed that I have access to GitHub CodeSpaces without paying, but my
colleague does not. And I have it across organizations, even on my personal free
account. So I guess it's because I was using it during the beta?

Received great feedback from my manager today: they way I work with students in
my group is seen as an imporant contribution. I could not be happier about this
kind of feedback: investing in the next generation of engineers is the ultimate
way to create impact.

The @LinkedIn search tool for recruiters is just
bad, so, so, bad. If you search for skillA and skillB it will show you matches
that have either. So you can't search for people that know both AWS and
Serverless and TypeScript. 😡

Replying to @bitrmn

@bitrmn @LinkedIn
Not great either, I can't speak to the candidate experience, but I know that
when I search for jobs once in a while to see what other companies are posting,
it's quite a mess and hard to quickly find relevant job posts.

Replying to @coderbyheart

I haven't had great results with the Creality Cloud slicer, so I switch to the
PrusaSlicer which is a massive improvement. Clean prints out of the box.

This morning I've watched and discussed our companies quarterly investor
presentation with my Junior. I think it's important to understand which story
top-level management is telling to customers and how individuals can support the
goals they set for us as a company.
Embedded Photo

If you work for a company that has more than 20 people, set up a trade union.
You will thank yourself later.

I've added an inverter to our van a few weeks ago, and it already paid off
because I can bring the coffee grinder! 😁
Embedded Photo

Replying to @coderbyheart

I know it's not much, but you are not fired because of your skills. You are let
go because you are employed by a financial product that tries to beat the market
10 fold and it uses people as a means to achieve that goal.

Replying to @coderbyheart

While working remotely now I just discovered two things that are annoying with
the XPS 13 Plus and Arch Linux: the webcam is not yet supported (it seems to
work in Ubuntu),

Of course there were dudes who had to sent Lena inappropriate comments.

Don't do this! A business account is not a dating platform. You are simply
adding to making tech a place that is exclusive and hostile to women.
/status/1547644011317325826

Replying to @coderbyheart

The learning here is that I will make sure to have moderation in place the next
time someone from our team does a takeover, so they only see appropriate
questions. It's my fault that I didn't foresee this.

Good thing we drove to the south coast of #Norway, because here it's warm enough
in the morning to have a breakfast outdoors, while in Trondheim it's raining at
10°C and people are turning in their wood ovens ...
Embedded Photo

Replying to @coderbyheart

Reading especially this chapters shows that this book is from a pre-Node.js
time. The content is great, but readers have to deal with Java code and XML
notation, which is definitely not MY preferred technology. #restinpractice

Replying to @coderbyheart

On a few occasions I tried to add a semantic layer to the messages exchanged
between systems, but today the solution that offers the most value for me is
adding JSON schemas to everything, which serves both as a documentation AND as a
way to validate messages. #RestInPractice
Embedded Photo

I have a @NordicTweets Thingy:91 with me and
since we've added A-GPS and P-GPS support the time it takes to acquire a fix has
been so much faster and more reliable that you see a nice trail. The time to fix
limit is set to 60 seconds for this device and is usually around 5.
Embedded Photo

Replying to @anoras

@anoras I appreciate the friendly reminder, but I
am not on vacation. I am working this and next week (our student project is
still on for another week) and you bet that this time goes into my weekly time
tracking.

I recently saw an ad by a Finnish company building a slick e-scooter, but I
cannot find it any more. Anyone might have a pointer?

Talked to a friend today and she reminded me that's always times of crisis that
reveals the #culture a company truly has, not the self-affirming speeches that
are recited during company all-hands.

I have this great task board in the van, in the evening I close the blinds and I
don't see the to-do items until the next morning.

I am teaching #TDD these days and noticed that there is one step that is not too
obvious but helps to keep focus on what what to implement: using higher level
functions to express logic instead of diving directly into the nitty gritty
implementation detail. >

Replying to @coderbyheart

I think this is typically done in the refactoring step of TDD but I've seen that
it helps to "sketch" the new business logic first using calls to helper
functions:

function addMemberToGroup(member, group) { if(!isMember(member, group)) {
addMember(member, group) } }

Replying to @coderbyheart

Once you have the structure of your implementation, you can implement isMember
and addMember.

This way you are not distracted by figuring out how to do it before having a
good understanding of what to do.

Replying to @Niklas_L

@Niklas_L In my book is still TDD because we
only focus on this one feature. In JavaScript we then often use closures which
are internal anyway, so it's more work to make them public.

Replying to @Rene_Wiersma

@Rene_Wiersma I don't see how TDD has an
influence on the internal implementation (and it shouldn't). My point here was
that it's clearer to first write in high level functions vs. diving into the
implementation detail right away.

Replying to @coderbyheart

@Rene_Wiersma listOfMembers.contains(member)

would work, but here you already need to know that listOfMembers

  • exists
  • is a list that has the contains() API

Two more things that are easy for experienced developers, but not
straightforward for beginners.

Surprise! My bank (Sparebank 1 Markets AS) just closed the online access to my
stock account, because of technical reasons. It only works for Norwegian
citizens. I still can call them to trade, but WTF?
Embedded Photo

My junior is happy that they are learning basics in project management (how to
prioritize), architecture (how to divide software problems in small modules) and
testing (write tests first to create clarity). That kind of feedback makes me
happy.

I had the absolute pleasure to attend a
@microbit_edu workshop at Our Lady's &
Tarach Secondary School in #Kenya with
@i_amthecode where young girls are learning
to code! I said a few words about that learning to program teaches you a skill
that allows you to work from anywhere!
Embedded Photo

Replying to @coderbyheart

We as a software industry really need to aim for inclusion and must put in the
effort to make our communities open and welcoming to people from all around the
globe, because they bring the knowledge about local problems and will solve them
where it has a direct impact.

Some great insight today from my junior re teaching programming:
@code LiveShare is brilliant, because they can
explore the entire codebase of the project, while following me. This allows them
to quickly look up things they might not have in memory. >

Replying to @coderbyheart

That does not work when I share my screen, or when I gather them around to watch
my screen when we are in the same room. Then they see only what I think is
important for me at the moment.

So in the future I will use LiveShare always, even if we are in the same room.

Had a bit of fever two nights ago, and now got the confirmation: I caught
COVID-19 for the first time. This means no #Rammstein in Oslo for me. 😤
Symptoms for me are mild now, a little cough and slightly sore throat.
Embedded Photo

Really love how @LinkedIn tweets like the
platform it should be, rather than what it is. Good reminder that everyone who
makes hiring decision needs to take a part in making it happen.

Note that when you are using an email forwarder, some forwarded emails will be
lost because the sender's domain does not allow forwarding in their #DMARC
policy. This needs to be fixed in your forwarding MX implementation.

Good question in a brain picking 🍴🧠 call today: how do you stay engaged when
there are constantly new things to learn and you don't really know, which ones
will be relevant in a few years?

There is a saying that if you do what you enjoy, you will find the job for these
skills. /status/940636875794067456

Replying to @coderbyheart

This has been true for me. I also made decisions to not to learn highly
marketable skills (e.g. Java, Crypto) because they didn't appeal to me, and also
switched to less marketable skills at the time (from serverbased PHP to
serverless JavaScript), because I was seeing potential.

Replying to @dtanzer

@dtanzer I agree, hooks look too much like magic,
but they are so widespread, it seems that few people are actually testing them
(hooks using hooks should happen quite often)...

Replying to @Niklas_L

@Niklas_L Second: this (wildly guesturing at
the codebase) is our money stack, it shits dollar every day and we don't
really know how it does it. But it pays your salary, and ours. So be gentle.

Replying to @Niklas_L

@Niklas_L Yes, absolutely! There is always a
good reason why a code base is a certain way, and for this project it was the
best outcome that could have been produced given the available resources. So we
should honor what came before us.

TFW you've spent hours escaping JSON the right way so it passes through 10
layers of the CI pipeline, only to realize that the actually relevant values are
missing in THIS special case.

Replying to @maaretp

@maaretp I think the way to have expensive people
involved in a small project is to treat them as consultants. I'd pull them in
the concept phase and then to pull them in once in a while to review important
changes / milestones / deliverables.

Replying to @maaretp

@maaretp I don't think there is a good answer if
you are an employee and not a solo-freelancer, you are supposed to work with
others, and you create value by multiplying your skills with others. And
organizations are successfull because of this
sum-of-all-is-bigger-than-individual-parts.

One key number for a businesses is revenue per employee, and you can look at
these numbers to get an understanding if your business is doing good (compared
to the industry peers), and then assests how salaries are compared to this
number, and the growth strategy.

Replying to @coderbyheart

Did a shopping trip to the city with the bike and the way back has a 15% uphill
part which I managed as well as before the infection. So it seems I didn't get
any impact on my performance.