Christian Heilmann

You are currently browsing the Christian Heilmann blog archives for April, 2023.

Archive for April, 2023

GitHub Copilot for Docs – putting the “fun” into RTFM

Wednesday, April 5th, 2023

Here’s a quick video of me showing you the benefits of GitHub Copilot for docs:

AI powered chat interfaces are a great and fun way to learn about new technologies. The problem is quality and relevance. Chat GPT for example doesn’t tell you the source of the information. Bing chat does at times pull from sources that are highly successful, but not necessarily the best. Another thing is that it is sorely missing is a copy button for code results.

This is not a new problem. For years I’ve prepended any Google search with “MDN” to only get results from official documentation, written by expert writers.

GitHub Copilot for docs is the best of both worlds. It gives you an interface like ChatGPT to look up information of the official documentations of libraries, products and resources.

Right now, it covers GitHub, React, MDN, Azure, TypeScript and Webpack.

The starting page of Github Copilot for docs allowing you to choose from a source documentation to chat with

Once you picked a source, you can add filters to change your level of expertise and how well you already know the subject. You can choose to only get the answer to your question or more detail about the subject in general.

The filtering interface with sliders under a search box asking you what level of learner you are, what your experience with the topic is and how much detail you want

You can then ask your question, like “how do I use the fetch API” and get a result that has information and code examples. You can keep chatting with the system to dig deeper or you can copy the code examples to your clipboard.

Copying the results is as easy as activating a button

Another thing that makes this tool great is that it gives you the source of the information. You can hover over any part of the text to find out where in the documentation you can learn more on this specific topic.

hovering over coloured text parts or activating the side annotations shows where the text is from and a link to the full documentation

I’ve been using this tool for a few days now and I’m impressed. It’s a great way to learn about technologies straight from the source without of having to learn the hard way what result sounds good but is actually bad advice.

It puts the “fun” into RTFM.

Review: Video Tap – automatically convert YouTube videos to blog posts

Monday, April 3rd, 2023

Yesterday I wrote a blog post about a question I got at a conference and I thought I try one of those fancy “AI” tools that grace my inbox every few hours. Video Tap promises to turn videos into blog posts. You give it a YouTube URL, and it writes a post for you, looking up and including relevant links and showing you an editing interface when you are done.

Sounded too good to be true, and suspicious me thought all they do is scrape the auto generated captions of YouTube and show those as paragraphs. I was positively surprised though, how thorough the tool was.

This was the video I pointed it to :

Much like ChatGPT or the Bing Chat in Microsoft Edge, it wrote a proper blog post for me, taking the information from the video. It found and included relevant links and whilst the post didn’t sound like me, it cut my writing time in half.

The generated article from my Video in the editing interface

The editing interface reminds of Medium or WordPress, so they are treading the cowpaths here.

Context-aware screenshot tool

Not relevant to this video, but I also love that it gives you a “include screenshot” option. This one shows the video at the time stamp the generated paragraph talks about and allows you to include a screenshot of that time.

You can embed a screenshot from your talk anywhere in your post by scrubbing the video

This is much more useful with content that has more meaning that just me talking. Like a slide or a code demo. Code, by the way also seems to get detected and turned into code blocks automatically.

Publish or export as Markdown or HTML

Once you are happy with the result, you can either publish the post on Video Tap, or you can export it as HTML or Markdown.

The sharing interface of VideoTap

The pricing is $1 per minute of video, which is just fair and there are also bulk pricing options for YouTube channels.

Things I’d love to see

I can see myself using this a lot in the nearer future, but there are a few things I’d love to have to make it even better:

  • The ability to upload local videos / not publicly available hosted videos This is now a feature, hooray!
  • Sharing to LinkedIn / WordPress / Medium
  • A domain that is the name of the product. I keep forgetting “Videotapit” and “Videotap” is a domain squatting site.

You can Try Video Tap here.

The Future of Senior Developers in an AI-Driven World

Sunday, April 2nd, 2023

As artificial intelligence (AI) continues to advance, many are concerned about its impact on the job market, particularly for junior developers. If AI can automate many of the tasks these developers currently perform, how will we have new senior developers and architects in the future? Let’s talk about how junior developers still have crucial roles to play, and why the potential automation of their tasks doesn’t necessarily mean a lack of future senior developers and architects.

During my talk at the Modern Webdevelopment meetup in Microsoft last week, I got the question about how we can have Senior Developers in the future when junior roles are being replaced by machines. Here’s what I had to say.

The Role of Junior Developers in an AI-Driven World

AI will take our jobs - boring, repetitive jobs that don't need to be done by developers, like throwaway demo products

While AI-driven tools like GitHub Copilot and linting engines can generate code and identify issues, junior developers still have an important part to play in this evolving landscape. These developers need to learn about potential security vulnerabilities, such as cross-site scripting (XSS) and SQL injection problems, as well as performance and accessibility issues that may arise in the given code. In other words, what you write is less important than how it affects the product.

AI-driven tools may not yet be equipped to handle these specific issues, though advances are being made in this area. It seems a natural evolution to mix code generation with automatic validation and error reporting. And to feed these error reports back into the system that generated the code to avoid repetition.

Machine assisted code completion augments the work of developer - it doesn't replace it

Even with these tools, junior developers will still need to use their knowledge and understanding to evaluate the generated code, ensuring it is secure, performs well, and works as intended. And this comes from experiences and coaching by their peers and managers.

The role of junior developers in the age of AI doesn’t disappear; it evolves. They will need to:

  • Understand and identify security vulnerabilities like XSS and SQL injection problems
  • Diagnose potential performance issues
  • Evaluate AI-generated code for quality, security, and performance
  • Hone skills needed in this new world of machine assisted content generation. One big one that comes to mind is Prompt Engineering. Machines give better results when we ask the right questions.

Seniority in Engineering: More Than Just Writing Code

Focus Shift: from writing code to reviewing code

The role of senior and lead developers isn’t solely about writing code or the quantity of code written. Instead, these roles involve understanding and managing the impact of code on other team members and end-users. In other words, seniority in engineering is about how a developer effectively collaborates with their team, understands user needs, and produces reliable, secure, and efficient code solutions. And to empower your team to build processes, documentation and readable code solutions.

The more I advanced in my career, the less code I wrote. Instead, I reviewed code, evaluated tools and processes and helped junior engineers to become better coders. This is a two way street: I learned a ton by teaching and by evaluating how others approached a problem I knew to have already found the “perfect solution” for.

This understanding of impact and collaboration elevates senior developers and architects beyond those who merely produce code. While AI tools can certainly make code production more efficient, these tools can’t replace the human elements of senior engineering roles.

For example, senior developers and architects often:

  • Mentor and guide junior team members
  • Collaborate with other developers to solve complex problems
  • Manage and prioritise various development tasks
  • Provide input on architectural decisions
  • Understand and attend to the needs of end-users

These responsibilities require a human touch that simply cannot be replaced by AI tools.

As developers move up the career ladder from junior to senior roles to principal or architect, new challenges and opportunities arise. Some developers may prefer to avoid moving into people or product management roles, focusing instead on technical skills and contributions.

One possible solution for those who’ve reached a certain level was to invent a new role, much like how the title “Developer Evangelist” was created. These developers can then educate and inspire others while remaining deeply involved in the technical aspects of their craft.

As there is an obvious gap in the career of technical people, this may also be a good time to re-evaluate our job structures. AI can take away the level of junior developer, if that level means churning out repetitive, simple code. We could skip one level and accelerate career advancement. There is evidence that teams using AI assisted code completion are twice as effective than others, as senior engineers needed to do a lot less hand-holding. Instead, people learned by getting examples from their development environment and using it to get explanations.

In Conclusion

The fears surrounding AI’s impact on junior developers are not unfounded. However, AI tools not only transform their roles, but also create new opportunities for them to learn, grow, and eventually become future senior developers and architects. The focus should be placed on improving collaboration, understanding user needs, and contributing to a team’s efforts to create secure, efficient, and user-centered software solutions.

It’s important to remember that seniority in engineering doesn’t solely revolve around code production. Instead, it’s about the broader impact of that code on team members and users alike. As AI continues to advance and play a larger role in the world of development, humans still have an essential role to play in shaping the future of the industry.