Early to bed and early to rise, makes a man healthy, wealthy, and wise.
Benjamin Franklin
Good evening
Software engineering - some how, nine years later, I'm still doing this. All jokes aside, my name's Nathan Cheshire, most people call me Nate these days and I go by the alias Natche online. No, my legal name is not Nathaniel, it is in fact Nathan. Nathan comes from the Hebrew verbנתן
which means "to give". It is usually inferred to mean "gift of God" or "he gave". Much of the reason I chose to learn Hebrew was because of my name and the meaning behind it. For those of you that either know or are interested in Hebrew, the Nun and Tav would have a Kamatz under them, but I digress.Ever since I was a kid, I have always been very meticulous, idiosyncratic, and strive do everything with conviction. As such, I always kept my room clean, loved making a daily task list, and found immense satisfaction in organizing things. Everything has a place and a procedure and I enjoy figuring out the best way to do things.What I do - how I make computers do my bidding
I've been writing software for almost a decade now, and in that time, I've seen a lot and solved a wide variety of problems. Even the most complex challenges can be broken down into smaller, more manageable pieces. By ensuring I understand the scope and overall problem at each level of detail, I can craft the best-fitting solution for each unique situation. And if the requirements change along the way—well, that's software. We expect it.Need technical advice or services? I translate technical jargon into English, making it easy for you and your team to understand. Do you want your custom solution to stand the test of time and not be held together by duct tape? Of course you do, and I can help with that.My approach
In todays day and age its quite easy to get caught up in trends and using specific software solutions because "that's how its been done". While I am a big fan of the "if it aint broke, don't fix it" mentality, I also believe in being to explain every decision made and not simply use an appeal to authority fallacy.I believe everyone involved in a process should be able to understand why certain decisions were made and how they impact the overall outcome. Some software engineers even explain their problems to a rubber duck, I think it follows logically that they should also be able to explain the problems to non-technical people.Implementation philosophy
Even though software doesn't last forever (spoiler; it will break if it is not being actively maintained), I still believe in writing code that is adaptible, maintainable, clean, and scalable. I heard a quote once that said you should always write code as if the person who ends up maintaining it is a violent psychopath who knows where you live.As such, by adhering to the principles outlined in in books such as Effective Java and The Clean Coder, you can trust that the code behind your solution will be high-quality, maintainable, and easy to evolve as your needs grow.Wires aren't my thing
I didn't start out thinking I'd be a software engineer. In fact, my original plan was electrical engineering—because, you know, wires and breadboards. But somewhere along the way, I realized that I was spending an insane amount of time programming as a means of procrastinating my circuits homework. Thanks to some influential family members such as my cousin and grandpa, and a natural curiosity for making computers do what I wanted, I made the switch.My first “real” foray into programming started in 2016 when I picked up Java, which at the time felt like unlocking some kind of arcane magic. I remember the exact moment it clicked in my brain from not knowing what I was doing to seeing no limit but my imagination when it comes to software and what I could use it for.From there, I was hooked. High school was a blur of side projects, building random tools for people, and realizing that I genuinely enjoyed solving technical problems and indeed had the engineer mind.Code is art
Over the years, I've worked on a lot, but one of my favorite side projects has Cyder - a bit of everything JVM project for which I also wrote an entire suite of extensible reusable utilities and an entire modern UI library built on top of AWT and Swing. Every new project I start, every new job I accept, challenges me to learn, adapt, and grow in my technical skills and problem solving ability.Beyond side projects, I've had the opportunity to work in both research and industry, including time spent at the Naval Research Laboratory. These experiences gave me a strong mix of theory and practice, meaning I can both design a scalable system and actually make it work in the real world (within reason).At the end of the day, I love tackling complex problems, breaking them down into something manageable, and delivering clean, maintainable solutions. Whether it's a personal project, an open-source contribution, or a client's system, my goal is always the same: product a truly beautiful solution, one in which the client loves and in which I am proud of. I see programming as somewhat of an art, and it is my responsibility to see the "inner angel". “I saw the angel in the marble and carved until I set him free” - MichelangeloSupport me
I spend a lot of time contributing to open-source projects and maintaining libraries on platforms like NPM. They're free for anyone to use, and while they don't exactly pay the bills, they do serve as a great showcase of my technical skills and ability to over-engineer.If you've benefited from something I've built, or just want to buy me a coffee, feel free to use the button below to BuyMeACoffee. I am quite busy working on an iOS app at the moment, but I have big plans for all my public repos and new Javascript, Java, Kotlin, and Dart libraries.