← Back

Tailwind UI: My Next Challenge

May 26, 2020

Hi Adam, Steve, and whomever else might be reading,

I’m going to be frank from the start: I’m 18, and I’ll graduate in about a week. Don’t stop reading yet! I believe that I have a variety of experience, both personal and professional, that will make me a valuable asset to the team and just as good or better than anybody else you might hire. My employer last summer was also skeptical of me, given that (as far as I’m aware) they hadn’t had any high school interns before. They weren’t sure a high schooler would be worth paying to get anything actually valuable done. From the start, though, the manager who interviewed me said I was better than many of the fresh college grads they often interview. Furthermore, they liked my work on their production Angular/Python app so much that—amidst the crisis, when they told most of their other interns they wouldn’t have them back this summer—they gave me a raise and started me working for them earlier than planned this year!

So please, before passing me over, give this a read! I promise that if given a chance, I’ll be more competent and capable than you’re expecting, and I’ll bring valuable skills, personality, and perspective to the team.

When it comes to working, I’m best when I’m collaborating. On any given day, I’ll usually send my coworkers a few messages to ask about the context of the current issue I’m working on or advice for what they think of a change I’m making. “Do you think this method should go here or here? I like here because…”, “Are we already doing the calculations for this field somewhere? I found something similar here but…”, etc. Though I don’t get to do it very often at my current job, I love pairing! I find talking out problems helps me arrive at better solutions, and being able to bounce ideas off of somebody else usually makes me think of things I wouldn’t otherwise.

Another thing about my work is that if I’m going to work on something, I’m not going to give it 60% or 70%—I’ll give it 100%. Granted, that doesn’t mean working weekends and evenings! What it means is that while I’m working, I’ll do my best to make each and every component, design, and PR the best it can possibly be.

Part of that passion and determination means caring deeply about the small details. One example of this is that I have a particular affinity for interacting with and using APIs that just feel good. I could try to describe in more detail what that means, but since you’re developers I think you know what I mean. Take for example in Vue, you can set a property directly on this and Vue will automatically rerender your component. The alternative in React is setState, which of course makes sense conceptually. But when I read that code, something about the “feeling” of this.thing = value versus setState makes me smile.

That kind of attention to small things is one of the reasons I think I’d make a great addition to the team. Anybody with time to learn can understand and use frameworks and APIs. But it takes someone who cares deeply about the small things—whether we use the same naming convention for booleans everywhere, whether we use third person verbs for predicate methods (exists?) or second person like (exist?), etc.— to be able to really craft an API that’s not only useful but also enjoyable.

I think Tailwind does a great job at caring about those small touches, and I would continue to help in that effort was I part of the team.

Despite the passion, I’m also easy going. My whole life isn’t development, and I talk to my current coworkers about what I’m up to outside of work. I’m a generally social person and we frequently went to lunch last summer. That doesn’t work remotely, but it doesn’t mean I’ll be any less social or interactive!

Something that I’m intrigued by in the world of development is the variety of experiences that the web can offer. Some sites, like a ticketing system that I built a while ago for my high school technology team called “Lexington”, work best as a traditional server rendered app. It was built of mostly forms and tables/lists with minimal interactivity, so building it as a traditional PHP app made the most sense.

However, other sites can offer completely different tradeoffs. The passion project I’m working on right now, tentatively called “Jetson”, is a blend of Notion, Trello, and Todoist, and involves a more heavy frontend and a dumber, more resource-based backend. The frontend, built with React, is backed by mobx-state-tree models which send and receive JSON to and from a Laravel backend. While a heavy frontend adds complexity, it’s interesting to see how the web can offer both sites a platform with completely different advantages and disadvantages.

Finally, I enjoy the concept of “worldbuilding” as it applies to development. What does that mean? Well, building worlds can mean many things when developing apps! Domain modeling, where you work out entities and how they relate and interact is a form of world building. More relevantly to this job, when crafting UIs I enjoy coming up with terminology for each part. For example, Jetson is made up of the “launch panel”, “collection panel”, “detail panel”, and “at a glance panel”, with those being made up of “cards” and “actions”. Conceptualizing UIs and Domains as a world of things that live together and interact is something I find a lot of fun in.

In terms of experience, I think I have plenty to make me a valuable member of the team! You can check out my resume from the navigation at the top for any details and specifics, but I’ve worked on many projects both personally and professionally. I’ve built several personal sites with Laravel, Rails, and NodeJS. I also have production experience with Angular, and personal experience with React and Vue.

Overall, I’m probably not the typical candidate you expected to apply. Hiring a recently graduated high schooler can seem like a big risk! I urge you to at least consider me. I think it’d be really fun to work together and I’m excited by all the things you’re doing with Tailwind!

-- Liam