Welcome to Skill Boost - Your Support for Technical Mastery

Unlock your potential. We help developers and teams grow their skills with expert-led workshops, personalized support, and enterprise training. Whether you're looking to enhance your personal skill set or empower your team, we're here to provide the resources and guidance you need to succeed.

How We Can Help You

What's Coming Soon

We’re continually expanding our resources to support your learning journey. Stay tuned for upcoming learning materials, including:

About Me (and Us)

I’m the Founder of Skill Boost and Co-Founder of Feelings AI, with over 10 years of experience working across different organizations and projects in software development. Throughout my career, I’ve built and maintained applications in various industries, giving me a broad perspective on real-world development challenges.

For the past 3+ years, I’ve been passionate about teaching. I worked as a full-time Senior Instructor at a bootcamp, where I helped over 200 adults transition from complete beginners into professional developers. My teaching style focuses on hands-on, project-based learning, ensuring that students not only understand key concepts but can also apply them in real development environments.

While I devolve on technical training, my partner manages the business operations for both Skill Boost and Feelings AI. Together, we collaborate with university professors and startup founders to turn academic research into commercial services (a.k.a. knowledge transfer). Our dual role natural ensures that our training stays relevant, addressing real-world business challenges and equipping students with cutting-edge skills in demand.

Why Choose Skill Boost?

Start Your Journey with Skill Boost

Whether you're ready to join a workshop, get individual support, or upskill your team, Skill Boost is here to help.

Contact Beeno to learn more about our services or discuss how we can help you achieve your technical goals.

Source Code of home.tsx
(import statements omitted for simplicity, click to expand)
import { o } from '../jsx/jsx.js'
import { prerender } from '../jsx/html.js'
import SourceCode from '../components/source-code.js'
import { Routes } from '../routes.js'
import { title } from '../../config.js'
import Style from '../components/style.js'
import { markdownToHtml } from '../format/markdown.js'
import { Raw } from '../components/raw.js'
import smallGroupReactMasteryWorkshop from './course/small-group-react-mastery-workshop.js'
import { toRouteUrl } from '../../url.js'
import { readFileSync } from 'fs'
import { Context } from '../context.js'
import { Locale, isPreferZh } from '../components/locale.js'
// Calling <Component/> will transform the JSX into AST for each rendering.
// You can reuse a pre-compute AST like `let component = <Component/>`.

// If the expression is static (not depending on the render Context),
// you don't have to wrap it by a function at all.

let style = Style(/* css */ `
`)

let react_mastery_workshop = toRouteUrl(
  smallGroupReactMasteryWorkshop.routes,
  '/course/small-group-react-mastery-workshop',
)

async function loadNote(file: string) {
  let markdown = readFileSync(file).toString()
  let html = await markdownToHtml(markdown)

  html = html.replaceAll(
    `<a href="#react-mastery-workshop">`,
    `<a href="${react_mastery_workshop}" onclick="emitHref(event)">`,
  )

  return Raw(html)
}

let en = await loadNote('notes/home-en.md')
let zh = await loadNote('notes/home-zh-hk.md')

function Home(attrs: {}, context: Context) {
  return (
    <>
      {style}
      <div id="home">
        <Locale en={en} zh={zh} />
        <SourceCode page="home.tsx" />
      </div>
    </>
  )
}

let routes = {
  '/': {
    menuText: <Locale en="Home" zh="主頁" />,
    resolve(context) {
      let zh = isPreferZh(context)
      return {
        title: title(zh ? '主頁' : 'Home'),
        description: zh
          ? 'Skill Boost - 幫助您掌握技術。我們提供專家領導的工作坊、個人化支援及企業培訓,助您提升技能。'
          : 'Welcome to Skill Boost - Your support for technical mastery. We offer expert-led workshops, personalized support, and enterprise training to help developers and teams grow their skills.',
        menuText: zh ? '主頁' : 'Home',
        node: <Home />,
      }
    },
  },
} satisfies Routes

export default { routes }