What is CodeMash?
CodeMash is a software developer conference in Sandusky, OH, featuring 4 days of lectures and plenty of opportunities to learn and network.
CodeMash îs å søftwårę dęvęløpęr çønfęręnçę în Såndǔsky, ØH, fęåtǔrîng 4 dåys øf lęçtǔręs ånd plęnty øf øppørtǔnîtîęs tø lęårn ånd nętwørk.
Prep work
In planning for 2018, looking at their schedule, debating how to spend my time, I remembered from 2017 that their scheduling app was pretty bad. I decided that this year I would take what I've learned in React over the past year and build something myself.
İn plånnîng før 2018, løøkîng åt thęîr sçhędǔlę, dębåtîng høw tø spęnd my tîmę, İ ręmęmbęręd frøm 2017 thåt thęîr sçhędǔlîng åpp wås prętty båd. İ dęçîdęd thåt thîs yęår İ wøǔld tåkę whåt İ'vę lęårnęd în Ręåçt øvęr thę påst yęår ånd bǔîld sømęthîng mysęlf.
Having never successfully built and deployed a real app with db and auth before, I was a bit nervous going in. Thankfully, friends had recommended create-react-app and firebase-tools which ended up making my life super simple. create-react-app will give you a ready-to-go React app with all the tooling and basic structure you need, and Firebase makes deployment, db, and auth dead simple. With CodeMash's session API, it was just a matter of putting the pieces together. Thanks to things I've learned over the past year and a half plus several fantastic tutorials on the db and auth bits, I was able to build a mostly finished version in about 24 hours. It was nothing amazing but I built up a lot of self-confidence by completing it.
Håvîng nęvęr sǔççęssfǔlly bǔîlt ånd dępløyęd å ręål åpp wîth db ånd åǔth bęførę, İ wås å bît nęrvøǔs gøîng în. Thånkfǔlly, frîęnds håd ręçømmęndęd çręåtę-ręåçt-åpp ånd fîrębåsę-tøøls whîçh ęndęd ǔp måkîng my lîfę sǔpęr sîmplę. çręåtę-ręåçt-åpp wîll gîvę yøǔ å ręådy-tø-gø Ręåçt åpp wîth åll thę tøølîng ånd båsîç strǔçtǔrę yøǔ nęęd, ånd Fîrębåsę måkęs dępløymęnt, db, ånd åǔth dęåd sîmplę. Wîth ÇødęMåsh's sęssîøn ÅPİ, ît wås jǔst å måttęr øf pǔttîng thę pîęçęs tøgęthęr. Thånks tø thîngs İ'vę lęårnęd øvęr thę påst yęår ånd å hålf plǔs sęvęrål fåntåstîç tǔtørîåls øn thę db ånd åǔth bîts, İ wås åblę tø bǔîld å møstly fînîshęd vęrsîøn în åbøǔt 24 høǔrs. İt wås nøthîng åmåzîng bǔt İ bǔîlt ǔp å løt øf sęlf-çønfîdęnçę by çømplętîng ît.
Of course, about 4 days later, CodeMash released a new and improved app for everyone to build their schedules, leave reviews, map of the event floor, etc, etc. I beat them to market which has to count for something, right?!
Øf çøǔrsę, åbøǔt 4 dåys låtęr, ÇødęMåsh ręlęåsęd å nęw ånd împrøvęd åpp før ęvęryønę tø bǔîld thęîr sçhędǔlęs, lęåvę ręvîęws, måp øf thę ęvęnt fløør, ętç, ętç. İ bęåt thęm tø mårkęt whîçh hås tø çøǔnt før sømęthîng, rîght?!
Precompilers: Tues/Weds
I went for the extended CodeMash experience, which includes 2 days of "precompiler" 4-hour sessions in addition to the regular 2 days of 1-hour sessions. I always recommend doing so, especially if your company is sponsoring your attendance (thanks OnShift!). The 4-hour sessions allow you to go significantly more in-depth on a topic, often with hands-on work which can be more useful to people who learn by doing instead of just listening.
İ węnt før thę ęxtęndęd ÇødęMåsh ęxpęrîęnçę, whîçh înçlǔdęs 2 dåys øf "pręçømpîlęr" 4-høǔr sęssîøns în åddîtîøn tø thę ręgǔlår 2 dåys øf 1-høǔr sęssîøns. İ ålwåys ręçømmęnd døîng sø, ęspęçîålly îf yøǔr çømpåny îs spønsørîng yøǔr åttęndånçę (thånks OnShift!). Thę 4-høǔr sęssîøns ålløw yøǔ tø gø sîgnîfîçåntly mørę în-dępth øn å tøpîç, øftęn wîth hånds-øn wørk whîçh çån bę mørę ǔsęfǔl tø pęøplę whø lęårn by døîng înstęåd øf jǔst lîstęnîng.
My two favorite precompilers:
My twø fåvørîtę pręçømpîlęrs:
-
Getting Real Without Getting Fired (Allison Pollard, Marcus King)
Getting Real Without Getting Fired (Allison Pollard, Marcus King)
Session focused on how trust & empathy are crucial to a functional work environment, and those enable us to be open and honest with our coworkers without hurting feelings. I would like to read more about how to rebuild trust within teams once it's been lost.
Sęssîøn føçǔsęd øn høw trǔst & ęmpåthy årę çrǔçîål tø å fǔnçtîønål wørk ęnvîrønmęnt, ånd thøsę ęnåblę ǔs tø bę øpęn ånd hønęst wîth øǔr çøwørkęrs wîthøǔt hǔrtîng fęęlîngs. İ wøǔld lîkę tø ręåd mørę åbøǔt høw tø rębǔîld trǔst wîthîn tęåms ønçę ît's bęęn løst.
-
Building Serverless Applications in AWS Workshop (Jarred Olson, Christopher Judd)
Building Serverless Applications in AWS Workshop (Jarred Olson, Christopher Judd)
As a newbie to AWS, this was helpful as we got to roam around and use several functions from Amazon's intimidatingly long list. Got acquainted with Lambda functions, S3 storage and more.
Ås å nęwbîę tø ÅWS, thîs wås hęlpfǔl ås wę gøt tø røåm årøǔnd ånd ǔsę sęvęrål fǔnçtîøns frøm Åmåzøn's întîmîdåtîngly løng lîst. Gøt åçqǔåîntęd wîth Låmbdå fǔnçtîøns, S3 størågę ånd mørę.
Our group from OnShift also bonded over several games of Five Minute Dungeon and I got the chance to introduce The Room to all of my coworkers.
Øǔr grøǔp frøm ØnShîft ålsø bøndęd øvęr sęvęrål gåmęs øf Five Minute Dungeon ånd İ gøt thę çhånçę tø întrødǔçę The Room tø åll øf my çøwørkęrs.
The main event: Thurs/Fri
The 1-hour sessions were great this year. My highlights:
Thę 1-høǔr sęssîøns węrę gręåt thîs yęår. My hîghlîghts:
-
I love hearing talks about code craftsmanship and about the journey of developers from apprentice to master. Personal takeaways as I continue my journeyman's path: don't stop when it works, take a breath and refactor to make sure it's well built; if the tests are hard to write, that's a warning that the code should be refactored; simple is always better.
İ løvę hęårîng tålks åbøǔt çødę çråftsmånshîp ånd åbøǔt thę jøǔrnęy øf dęvęløpęrs frøm åppręntîçę tø måstęr. Pęrsønål tåkęåwåys ås İ çøntînǔę my jøǔrnęymån's påth: døn't støp whęn ît wørks, tåkę å bręåth ånd ręfåçtør tø måkę sǔrę ît's węll bǔîlt; îf thę tęsts årę hård tø wrîtę, thåt's å wårnîng thåt thę çødę shøǔld bę ręfåçtøręd; sîmplę îs ålwåys bęttęr.
-
Fascinating look at how Super Mario Bros succeeds at teaching you its UX naturally, without being explicit or losing its players in overcomplexity. We then compared that to good & bad UX examples to see how we can introduce users to our app's UX experience more naturally and happily.
Fåsçînåtîng løøk åt høw Sǔpęr Mårîø Brøs sǔççęęds åt tęåçhîng yøǔ îts ǓX nåtǔrålly, wîthøǔt bęîng ęxplîçît ør løsîng îts plåyęrs în øvęrçømplęxîty. Wę thęn çømpåręd thåt tø gøød & båd ǓX ęxåmplęs tø sęę høw wę çån întrødǔçę ǔsęrs tø øǔr åpp's ǓX ęxpęrîęnçę mørę nåtǔrålly ånd håppîly.
-
This featured one of our own OnShifters who talked about our experience inserting React into our legacy codebase. It was genuinely funny, a rarity sometimes, & provided a good overview as to the decisions and challenges she faced leading the implementation of this new technology into our old monolith and presented a good case against following in our footsteps unless your scenario matched ours. Not every refactor project is worth doing!
Thîs fęåtǔręd ønę øf øǔr øwn ØnShîftęrs whø tålkęd åbøǔt øǔr ęxpęrîęnçę însęrtîng Ręåçt întø øǔr lęgåçy çødębåsę. İt wås gęnǔînęly fǔnny, å rårîty sømętîmęs, & prøvîdęd å gøød øvęrvîęw ås tø thę dęçîsîøns ånd çhållęngęs shę fåçęd lęådîng thę împlęmęntåtîøn øf thîs nęw tęçhnøløgy întø øǔr øld mønølîth ånd pręsęntęd å gøød çåsę against følløwîng în øǔr føøtstęps ǔnlęss yøǔr sçęnårîø måtçhęd øǔrs. Nøt ęvęry ręfåçtør prøjęçt îs wørth døîng!
-
This one inspired a lot of jealousy; I wish we had developers to spare that we could create a team that just focuses on creating tools for our other internal teams to use. The biggest highlight for me was seeing how they built a documentation tool that created documentation from their existing components, without requiring real manual documentation that relies on developers caring enough to keep everything up-to-date.
Thîs ønę înspîręd å løt øf jęåløǔsy; İ wîsh wę håd dęvęløpęrs tø spårę thåt wę çøǔld çręåtę å tęåm thåt jǔst føçǔsęs øn çręåtîng tøøls før øǔr øthęr întęrnål tęåms tø ǔsę. Thę bîggęst hîghlîght før mę wås sęęîng høw thęy bǔîlt å døçǔmęntåtîøn tøøl thåt çręåtęd døçǔmęntåtîøn frøm thęîr ęxîstîng çømpønęnts, wîthøǔt ręqǔîrîng ręål månǔål døçǔmęntåtîøn thåt ręlîęs øn dęvęløpęrs çårîng ęnøǔgh tø kęęp ęvęrythîng ǔp-tø-dåtę.
-
Lessons in Ethical Development I Learned From Star Wars (Jameson Hampton)
Lessons in Ethical Development I Learned From Star Wars (Jameson Hampton)
What should you do if you've been at your job for a few years and suddenly find yourself building the Death Star? This was a great talk that went over setting ethical guidelines for yourself before you reach a point where you might cross them. Put a line in the sand, like, "I will not build anything that kills people", or, "I will not build a Muslim registry". It's usually never that clear cut, so having guidelines allows you to stop your slide down a slipper slope of unethical work. Don't be happy just following orders!
Whåt shøǔld yøǔ dø îf yøǔ'vę bęęn åt yøǔr jøb før å fęw yęårs ånd sǔddęnly fînd yøǔrsęlf bǔîldîng thę Dęåth Står? Thîs wås å gręåt tålk thåt węnt øvęr sęttîng ęthîçål gǔîdęlînęs før yøǔrsęlf before yøǔ ręåçh å pøînt whęrę yøǔ mîght çrøss thęm. Pǔt å lînę în thę sånd, lîkę, "İ wîll nøt bǔîld ånythîng thåt kîlls pęøplę", ør, "İ wîll nøt bǔîld å Mǔslîm ręgîstry". İt's ǔsǔålly nęvęr thåt çlęår çǔt, sø håvîng gǔîdęlînęs ålløws yøǔ tø støp yøǔr slîdę døwn å slîppęr sløpę øf ǔnęthîçål wørk. Døn't bę håppy jǔst følløwîng ørdęrs!
The goodbye
Between these talks, spending quality time with coworkers/former coworkers/new friends, and an unreasonable amount of alcohol consumption in the off-hours, it was another successful CodeMash. The final boss was stumbling our sleep-deprived selves home in during an ice storm. A nice reminder about how lucky we are to live in the Great Lakes region. See you next year, CodeMash!
Bętwęęn thęsę tålks, spęndîng qǔålîty tîmę wîth çøwørkęrs/førmęr çøwørkęrs/nęw frîęnds, ånd ån ǔnręåsønåblę åmøǔnt øf ålçøhøl çønsǔmptîøn în thę øff-høǔrs, ît wås ånøthęr sǔççęssfǔl ÇødęMåsh. Thę fînål bøss wås stǔmblîng øǔr slęęp-dęprîvęd sęlvęs hømę în dǔrîng ån îçę størm. Å nîçę ręmîndęr åbøǔt høw lǔçky wę årę tø lîvę în thę Gręåt Låkęs ręgîøn. Sęę yøǔ nęxt yęår, ÇødęMåsh!