Roam to WP Spike – Lessons learned

After prototyping a way to automatically integrate Roam Research into WordPress, I concluded that it’s not the best course of action.

The issue primarily lies in Roam’s default mode of expression through outlines and nested trees. This works exceptionally well for note-taking, but it doesn’t map well to final documents or web pages.

There’s also an issue of not having an extra ‘metadata’ space on individual pages. It’s possible to use Attributes in Roam to work around this. It’s still not pretty, and you’re now left with various attributes on the top or bottom of each individual page.

Example of attributes in Roam Research

On getting the data out of Roam

My first try to read the data from API was to figure out if it’s possible using alpha JavaScript API. While it’s possible, it’s not well documented or easy to use. I decided to wait until it becomes a more supported option.

The second option was parsing JSON export of whole roam database backup. The data structure isn’t too hard to parse. It’s still a bit annoying. You need to assemble the nodes together into a document and run it through the markdown parser. The main issue I have with this approach is that data upload workflow uploads your whole personal database to your WordPress blog. That’s a potential privacy issue, and it’s something that I would like to avoid.

Another option would be to write a local application that parses Roam JSON export and uploads only pages or blocks with allowed attributes. That’s probably the path I’ll attempt if I ever return back to this project.

Maybe copy/paste is enough

The more I thought about how to work around all of these issues, the more it became clear that my main issue is not how to publish content but the fact that it needs to get written. My workflow also evolved in the last few weeks.

I used to write directly into a text editor. I now outline, write the first draft, edit, run it through Grammarly and then somehow format it for publishing. Publishing from roaming directly into WordPress makes less sense as I would lose all of these in-between steps.

What I learned

Working on this project as a spike/prototype was a good approach. I learned about the Roam Research ecosystem, WordPress Plugin authoring ecosystem and reflected on my writing and publishing process.

Writing a short summary on my blog after each coding session also provided me with a more apparent scope that helped me to focus. Reflecting on work done and collecting links that I investigated feels like a valuable artifact that I’ll probably refer to in the future.

Elderberry Flower Bread

Walking through local woods, I was delighted to discover that Elderberries were in full bloom. It wasn’t hard to find them as their sweet smell was potent.

I’m still trying to understand what kind of flavors infuse best with sourdough bread. This created an excellent opportunity for an experiment. I’ve plucked one cup of Elderflowers flowers and mixed them with 500g of flour. The rest was my standard sourdough recipe at about 75% hydration.

Baked bread really delivered a potent punch of elderberry flavor. The taste really came through, and it got that aroma that you get when you drink elderberry syrup. The main difference is that it’s a bit bitter as the bread isn’t sweetened.

What I would do differently next time

I would make mix the elderberry flowers into more of a dessert type of bake. That way, you’d get the sweetness and also more association with the syrup drink.

Elderberry flowers don’t last long after they’re picked, so I would time the whole process to start mixing sooner after coming back from the forest.

Maja Rihar on basics of office ergonomics for developers

In Meaningful work interviews I talk to people about their area of work and expertise to better understand what they do and why it matters to them.

Maja Rihar (LinkedIn) is an ergonomics consultant specializing in a workplace environment. In our conversation, I tried to learn current best practices in how to set up my work environment.

What do you do?

I teach people how to best use ergonomic accessories for office use. I have past experience with managing offices and I was also in charge of ensuring workplace safety. While the popular belief is that it’s not dangerous to work in an office my experience and statistics disagree with this. That’s why I’ve started helping people to adjust workspaces to each individual worker.

Why are office workers getting hurt in the long run?

What I’ve noticed is that corporate training on workplace safety of employees is not effective. There’s also an issue that our population is getting taller on average – about 12 cm in the last 100 years. Our national office equipment standards do not adjust fast enough to these population changes.

Our current standards are made for people that are on average 178 cm in height. If you’re over 180 cm in height you’ll have problems with working in your current office environment. Lots of tall people are telling me about their back problems.

Any tips on what common mistakes you see among IT workers in their offices?

One very common mistake I see is that people have their keyboards too far from their bodies. It should be about 20 cm from the body. During a workshop, we’ll measure this distance and make sure that you have a visual feeling for where it should be.

I also suggest that you set an alarm for every 15 minutes that reminds you to stand up and sit down with a correct posture. Once you sit down with a correct posture you’ll once again be able to sit correctly for a while. Anything longer than about 15 minutes makes the body slouch so 15 minutes is a good time interval to move your body. Just doing this would prevent a lot of long-term damage to the musculoskeletal system.

Laptops shouldn’t be used for any long-term work. They are ergonomically correctly set up only when used with an external keyboard with a screen on a raised platform. The constant hunched-down position is very hard on the body. This is further compounded by all the mobile and other device use.

I’m happy to see more and more standing desks in offices. I think this is one of the best things that you can do for your body. Mainly because it forces you throughout the day to keep moving all the time as you switch from standing to sitting setup and back.

How do you pick good equipment?

I think it’s important that you trial many different vendors and that you are picky with what you choose. Don’t just try one office chair. Try many, figure out if you’ll know how to adjust it correctly, and also ask your peers what worked for them.

When setting up a home office environment you can learn from your work office. If you ever try to work from your kitchen table you’ll quickly get a feeling if it’s a better or worse experience than your office table. This can help you guide your decisions and you’ll know how to improve it toward what feels good.

It’s also a good idea to talk to experts before making these choices. Any office equipment that you’ll buy will probably be used for many hours every day for the next ten years. Getting good advice upfront can be a good investment in such a context.

Any more practical advice?

You should think about how you work. Make sure to adjust your body and how you work so that it will support you in a long run. 

Invest in quality lighting. Get into the habit that you’re opening windows and adding fresh air to your space.

Take breaks often and move your body during these breaks. I don’t think it’s healthy to work for long periods and then go train for another long period. It’s much better to mix both throughout the day.

Talk to your peers about how they’re solving their problems. Seeing how others adjust their workspace makes it much easier for you to imagine how you could improve yours. The more embodied your experience with trying different accessories is the easier it will be to get a feel if it’s right for you.

Can you recommend any additional resources on this topic?

Official guidance

Vendors

Good YouTube Channels on this topic:

What I learned from talking with Maja

The embodied experience of trying different ergonomic accessories is worth the effort.

Using external triggers to make sure that I check on my pose.

Standing desk provides a lot more benefits than I expected and the hype seems justified.

Sara Vošinek Gašpar explains why developers should switch jobs every 3 years

In Meaningful work interviews I talk to people about their area of work and expertise to better understand what they do and why it matters to them.

Sara Vošinek Gašpar is an IT recruiter. She explained to me why job ads in the IT industry are so strange, the specifics of the Slovenian IT market, and how developers can further level up. After talking with her I started to see the benefits of building a relationship with a recruiter and not just randomly applying to job ads.

How do others introduce you?

They would say that I’m an IT recruiter and a talent sourcer. I would add to that that I see myself more as a talent enabler. I’m always trying to figure out how to empower developers and find opportunities where they can grow.

What is it like to work with developers for you?

Sometimes I hear from people that it’s weird to work with developers. I think that’s a lazy excuse. My experience is that developers are super chill and very straightforward people. The nature of their job is creative and they want to protect their creativity. They want to be very quickly on the same page, very informal, and straight to the point. They’re very quick to notice red flags and potential issues with clients that try to recruit them.

This makes my job very easy as I don’t need to waste time and very hard as it makes it very hard for me to recruit people for certain companies that have a reputation. 

That doesn’t mean that it’s impossible to find developers that would work in such an organization. It just takes more work to find someone that is driven by the idea that they can fix the culture, make such systems work more reliably, or just like the mission of the company.

Developer job ads often mention the perk of having access to fresh fruit and coffee machines in the office. Is that really a factor for developers when considering new employment?

Yes, it turns out that it’s a perk for some people. There is a non-trivial amount of companies that still don’t offer this and you need to buy or bring your own coffee.

What I see, at least in Slovenia, is that developers have much better working environments compared to other positions with a similar level of education. Job ads are traditionally written by the HR department and for them, these things are genuine perks that they probably don’t even have access to. There’s also the difference in the salary (developers usually earn a lot more compared to HR) and they’re constantly recruited by the competition. Bringing all of these differences together sometimes results in job ads that list benefits that are self-evident to developers.

What can we developers do to make job ads more realistic?

If developers compare their jobs to non-developers jobs they’ll always feel like they have a really great working environment, perks, and pay. The trick is that they need to compare their job to other developers’ jobs. This is the best way to see if you’re actually in a bad job and that you need to switch for something better.

There’s still a lot of opportunities for developers to push back on bad hiring and working practices. At the moment there’s still too much power in the hands of the companies . Developers are the only ones digitally literate and it will remain so  for the next 15-20 years so it is crucial  for developers to  take back creative control. We need  to support open-source and new R&D developments while protecting our data and empower developers to be the counterweight to other interests in the digital market.

How can we help improve the working environment for developers?

Mostly by educating them on what’s possible. Presenting them with alternative approaches to professional growth, team organization, or work practices.

I really like when companies allow developers to work on non-work projects during work time so that they can familiarise themselves with new technologies, for  example Internet of Things, drones, playing around with Raspberry Pi or Arduino,…. It could also be free time that they can use to fix whatever issue they find annoying in their existing codebase or learn something new.

I also wish more developers would talk about how they use SCRUM or Agile methodologies and actually have Scrum Masters in their team. To explain to other developers how to push back on bad implementations from management. That you shouldn’t remove retrospectives because someone arbitrarily decided that they’re not needed.

What are some specifics that are unique to the IT market in Slovenia?

In Slovenia, it’s possible to survive as an IT company just by virtue that your software has a Slovenian language interface. These kinds of companies can exist for 15+ years with about 30 clients that keep them afloat. They are very risk-averse and don’t really want to change or update any technologies or processes. It also means that the whole company is stagnating. Developers don’t learn anymore and salaries are low when compared to the market. It would be good for the market and the developers if some of these companies would go out of business. They’re holding the whole market back.

How often should a developer switch jobs?

If it’s your first job you need to absolutely switch if you’re there more than 3 or 4 years. It doesn’t matter if it’s a good team and you enjoy your work. You need to switch so that you’ll learn something new and see how different teams operate.

I see people that are technologically obsolete after their first two years at their job. They got assigned such a specific dead-end technological job that they don’t have any experience with modern IT practices. It’s much harder to help them with finding their next job as they don’t have any real modern development experience. This should not happen to a young person and they need to watch out for it.

Job hopping is the best way to achieve exponential growth of your potential. You get to see how other people think and do things. Having multiple experiences help you understand what you want and with that knowledge, it’s much easier to find a job where you’ll stay longer (5 – 10 years).

What’s the profile of a developer that you’re most looking for?

I’m looking for someone with 10 – 15 years of work experience with modern technologies. They already switched their job a few times and have a range of experience of working in different teams. They understand technology enough to know when the latest hyped technology is not a good fit for their project. This profile is in its prime at the moment.

How do you comment on general burnout feeling among developers and often stated wish to exit industry “before they are too old to code”?

I don’t understand developers that say that they can’t imagine still coding when they’re in their 60’s. I can’t imagine hearing this from a painter. That they can’t imagine painting anymore when they’re 60. I can understand that a painter doesn’t want to work on commissioned art anymore. But they still want to paint!

I’m wondering how and when they lose this appreciation for solving technological problems. Writing code is just a medium for how you solve these challenges and not the end goal.

What tends to happen is that they are put in a position where they’re unhappy. Fixing bugs, working with technology that they hate, deadlines, and an uninspiring team. After a few years of this, they mentally burn out and want to exit the industry. Developers need to notice this early enough and switch their job.

A developer’s job should be all about learning new mental models, how to solve new types of problems, and to keep growing.

How should (non-junior) developers market themselves so that they get access to better job opportunities?

You should have your basic profiles set up: LinkedIn, StackOverflow, and GitHub. That will help you get the first round of opportunities.

After that, you should look into niche communities around Reddit, Hacker News, Slack, and Discord. That’s where founders and senior technical staff hang out. If you can meaningfully participate in these communities you’ll be able to connect with thought leaders in the space. These will be the same people that can then hire you or connect you to opportunities that are not even advertised yet.

You need to think about how you would hire a skilled developer. Where would you go to meet them and how would you identify them? Then do that yourself so that other developers will notice you.

Are there any resources that you’d recommend for leveling up?

What I learned from talking with Sara

Switching jobs every few years is now expected. Not switching jobs often enough can be a potential liability.

There’s a quiet tension between the creative work of developers and managers that try to control processes around it. It’s probably worth exploring more.

There’s still a lot of opportunities to create support communities for developers and related profiles.

Reflection on & review of Building a Second Brain Course

Building a Second Brain is a productivity course produced by Forte Labs. It’s focused on improving your personal knowledge management system and habits around it. It’s delivered as a 5-week cohort-based online course. I was part of Cohort 12 in May 2021.

 When I was telling my friends about it there two things that stood out the most: cohort-based and the price.

Cohort-based – part of the course is delivered through Zoom lectures and more interactive workshops. There’s also an online forum, Slack, and other opportunities to connect. It’s kind of amazing to be on a Zoom call with 600 people. There were over 1500 students enrolled and amazingly it wasn’t a problem to find opportunities to ask questions and get back a thoughtful response from the instructor and fellow students.

Cost – As Ali Abdaal mentioned in his video review it costs a stupidly large amount of money – 3000 USD in my case. Initially, this challenged most of my existing beliefs about how much value an online course provides.

I’m also happy that some of my friends stepped back and ask a more important question: does it deliver this much value and how does it do that?

My answer to that is yes – if you do the work. The value comes from a large amount of high-quality content, very clear case studies, learning opportunities, and opportunities to discuss learnings with peers and mentors.

The main essence of Building a Second Brain (BASB)

There are two main pillars of BASB: C.O.D.E. and P.A.R.A.

C.O.D.E. stands for Capture, Organize, Distill, and Express. It’s a set of tools and approaches. An example of such workflow would be how to take a highlight from your Kindle (Capture), file it in your digital knowledge management tool (Organize), summarize a few of such notes (Distill), and then use it in your next blog post (Express).

P.A.R.A. stands for Projects, Areas, Resources, and Archive. It’s an organizational structure that helps you reuse parts of your work in future projects.

While the course presents both techniques with widely popular tools it’s mostly doing it just so that you understand how to apply the concepts using your tools.

If you’d like to learn more about these concepts Tiago’s short Podcast episodes are a good start as are free articles on fortelabs.co blog.

 Is that it? Just a course on organizational techniques?

That’s how it starts and then in the second week, it shifts into a personal development course. After it fixes the basic technology workflows of participants it starts to ask important questions: what do you want to produce and why does it matter to you?

This shift from productivity to a personal development course is where it shines. What I noticed is that it doesn’t matter how well I can plan a project if I can’t emotionally connect with it. I’ll procrastinate on it and it’s going to be a big struggle. So what BASB does with monthly and weekly reviews is that it makes sure that you work on projects that you care about.

In my case it also forced me to reflect on the kind of content I’m consuming and what am I doing with all of this information. An example of this would be listening to the content by the Microconf community and reading books about running a Software as a service website. I already know enough about the topic so I should start focusing on execution and less on studying. This is also true for any conference videos, podcasts, and blog articles.

 What they could do better

I wish the initial part of the course and mentor groups would be less focused on the technology. I think the course is teaching something greater and constant refocusing on technology is distracting from the part of showing up and doing the important work. Mentor groups were also too focused on technology and I also missed more time slots in European Time Zone.

I was also surprised by how poor the technology choices for their platforms were. Teachable felt outdated as a teaching platform. I found Circle forum software much less developed than open-source discourse and hard to use.

Parts of the course delivery felt like they’re still in an early stage of technological development and while it’s great to see how the team builds in public it was also a bit disappointing at times. Probably because I have experience with building similar technology and I know what’s possible. At no point, it prevented me from fully participating in the course and learning. I just know it can be done better.

 What I liked

The community of students was amazing and they’ve helped me get over my struggles with excellent answers.

Just a ton of content that allowed me to really deep dive into parts of course where I felt that I needed further information. It was pure productivity geeking out of heaven.

I have lifetime access to all future cohorts and I’m looking forward to the fall one. I’m sure I’ll be able to further improve my processes so I can do even more work that matters to me.

 Was it worth it and would I recommend it?

For me, it was absolutely worth it and I’d mostly recommend it to others too. I’d say there are two important things to consider.

You should already be in a well-paid job. I’d say that if you make over $50k/year after taxes then it makes sense to invest about 5% of your salary to boost your personal organization and productivity skills. For students and people in lower-paying jobs, it might take too long for new systems and habits to start returning on the course investment.

You need to be able to invest time and focus during the 5 weeks of the course. There’s a lot of supporting content that you’ll want to study and think about. You’ll also want to experiment with new tools and how you organize your information and that’s hard to do if you’re in a middle of a few large projects. As it’s a cohort-based approach you’ll lose a lot of learning opportunities if you can’t participate in the scheduled activities.

Powerful thoughts that stuck with me

Capturing and consuming by itself doesn’t add any value. It’s just gorging on information making it a 3rd tier type of task. Everything else is a priority.

Consuming content is the least unique to you and with this least useful.

Define projects in a way that they will succeed or fail as soon as possible. Avoid zombie projects at all costs.

Publish the work when it is 80% ready so that you get a maximum outcome based on the effort you put in.

 Closing thoughts

Most of the time I complete a course or a workshop it feels like it will have a lasting effect on my life. Building a second brain was no different. It provided me with a paradigm shift that I needed as I start my work on new projects.

If you’re even a bit of a productivity geek you should enroll in such a course and give this part of you some attention as you reflect on your habits.

Technology and tools that we use don’t matter that much in the end. Know your why and you’ll find your how.